Repository navigation
Releases: navels/neal
Release list
v0.6.12
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.287to0.3.293and@openai/codex-sdkfrom0.160.0to0.161.0. Re-qualified both native adapters withneal compat; no behavior change.
Added
providers.openai_compatible.structured_output_mode(json_schemaor
json_object, defaultjson_schema) for OpenAI-compatible endpoints that
support JSON mode but not schema-enforced output, such as direct DeepSeek.
Injson_objectmode neal asks for plain JSON, accepts a reply wrapped in a
```jsonfence, and checks it with the same protocol validator. The
default is unchanged (#81).neal usagetotals turns, tokens, and cost by provider and role for the
current run, one run (--run <run-id>), or every run in the repo (--all),
with--jsonfor scripts. It reads each run'sevents.ndjson, so it covers
whole runs, including unfinished ones.RUN_METRICS.jsononly has whole-run
totals for finished runs (#82).
Fixed
- OpenAI-compatible runs overstated cost. The AI SDK reports cached input as
inputTokenDetails.cacheReadTokens, and the cost math never read it, so
every cached token was billed at the full input rate. Agent loops resend the
whole conversation each turn, so most input is cached: on an 80%-cached turn
with cached input priced at a tenth of the full rate, the input cost came out
about 3.6 times too high. Run metrics now also count
cache writes and reasoning tokens from the same shape. Costs already recorded
in old runs aren't recomputed. - A run could finish even though a manual gate's results showed a failure. A
gate's checks usually only prove the operator did the work, and once they
passed, neal forgot the gate. Now the run keeps a record of each gate and
shows it to the coder and both reviewers, who are told to read the results.
On a failure, the coder either opens a new gate or splits the plan so the fix
gets reviewed and the gate runs again (#87). - When a gate's checks required success and the manual step failed, the run
was stuck: the checks kept failing, andneal resume --messagewas refused
while the gate was open.--messagenow closes the gate and passes the
message to the coder (#87).
v0.6.11
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.280to0.3.287and@openai/codex-sdkfrom0.156.1to0.160.0. Re-qualified both native adapters withneal compat; no behavior change.
v0.6.10
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.274to0.3.280and@openai/codex-sdkfrom0.154.0to0.156.1. Re-qualified both native adapters withneal compat; no behavior change.
v0.6.9
Changed
-
Updated
@anthropic-ai/claude-agent-sdkfrom0.3.269to0.3.274. Re-qualified the native adapter withneal compat; no behavior change. -
A manual gate opens during the coder's first pass on a scope, before any
review. A scope that both built something for the operator to use (a test
harness, a procedure, a script) and gated on the operator using it handed over
unreviewed tooling, and a buggy handoff looped gate, resume, coder fix, gate
without ever reaching the reviewer. The planner now puts that tooling in its
own scope ahead of the gate scope, the plan reviewer raises a blocking finding
on a scope that does both, and a coder that lands in one returnssplit_plan
instead of opening the gate. A plan authoredone_shotmay expand to
multi_scopefor this case only.docs/plan-format.mdhas a new "Manual
gates" section anddocs/troubleshooting.mdcovers the reopening gate. The
plan_author(now 6),plan_reviewer(now 5), andscope_coder(now 4)
prompt-spec versions bumped (#70).
v0.6.8
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.261to0.3.269and@openai/codex-sdkfrom0.153.4to0.154.0. Re-qualified both native adapters withneal compat; no behavior change.
v0.6.7
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.260to0.3.261and@openai/codex-sdkfrom0.153.2to0.153.4. Re-qualified both native adapters withneal compat; no behavior change.
v0.6.6
Fixed
- The read-only reviewer doctrine told every reviewer it had read tools and no
shell. That's true for Claude and for OpenRouter models, but a Codex reviewer
reads through a shell in a read-only sandbox, so a model that took the wording
literally (gpt-6-astradid) had no way to open files and blocked every
review. The doctrine now says read access may be a read-only shell and that a
shell is for reading and searching only. Thescope_reviewerand
completion_reviewerprompt-spec versions bumped (#57).
v0.6.5
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.252to0.3.260and@openai/codex-sdkfrom0.151.0to0.153.2. Re-qualified both native adapters withneal compat; no behavior change.
v0.6.4
Fixed
- A planner block during
neal planno longer loses its reason. The planner's
explanation is saved with the run and shown on the console, in the run result,
and inneal status. The run result's next step now says a plainneal resume
re-runs the planner when that's what the block needs, instead of the generic
--messagehint. A crashed round (a provider error or timeout) now prints its
error on the console too, instead of a bare "Run failed.";neal status
already showed it (#49).
v0.6.3
Changed
- Updated
@anthropic-ai/claude-agent-sdkfrom0.3.251to0.3.252. Re-qualified the native adapter withneal compat; no behavior change.