Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .changeset/claude-code-nonzero-exit.md

This file was deleted.

23 changes: 0 additions & 23 deletions .changeset/headless-permission-default.md

This file was deleted.

5 changes: 0 additions & 5 deletions .changeset/missing-verdict-fail-closed.md

This file was deleted.

27 changes: 27 additions & 0 deletions packages/framework/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,32 @@
# @gemstack/framework

## 0.5.2

### Patch Changes

- 1d3ce64: Fix the Claude Code driver treating a non-zero agent exit as success when the agent had already streamed some text. A crash mid-build now fails the turn (surfacing stderr or the partial text) instead of resolving as a result the loop can score production-grade.
- 45b13b2: Default the CLI to bypassPermissions so the headless loop can build/verify

Every framework turn is a headless `claude -p` invocation, which can't answer an
interactive approval. The driver's library default (`acceptEdits`) auto-approves
edits but not Bash, so installs/builds/tests were silently denied: the
production-grade checklist tried `npm run build` / dev-boot, hit "Build needs
interactive approval which isn't available," failed pass 1 as "could not be
executed this session," and the loop ground on listing blockers it couldn't
verify.

The `framework` CLI now defaults its Claude Code driver to `bypassPermissions` so
the full loop (install, build, test, dev-boot) runs unattended and the checklist
verifies for real. This is a permissive default appropriate to a headless
autonomous builder; `--permission-mode <mode>` still overrides it (e.g.
`--permission-mode acceptEdits` for the old, conservative behavior), and
`--dangerously-skip-permissions` still takes precedence. The `ClaudeCodeDriver`
library default is unchanged (still `acceptEdits`); only the CLI opts up.

Closes #225.

- 1259282: Fail closed when a checklist reply omits the required `{ blockers }` verdict. A verdict-less reply was scored as empty-blockers (production-grade) and stopped the loop; it now surfaces a blocker so the loop re-prompts instead of declaring the app done off an unverifiable reply.

## 0.5.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/framework/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@gemstack/framework",
"version": "0.5.1",
"version": "0.5.2",
"description": "The (AI) Framework: turnkey, zero-config AI orchestration that wraps a coding-agent CLI (Claude Code) as a black box and takes you from an idea to a running app. Vite for AI.",
"keywords": [
"ai",
Expand Down
Loading