v1.1.1
@veyyon/ai
Added
setAnthropicProviderModule,setOpenAICompletionsProviderModule,setOpenAIResponsesProviderModule,setGoogleProviderModule,setGoogleGeminiCliProviderModule,setGoogleVertexProviderModule,setOllamaProviderModule, andsetDevinProviderModuleare exported from@veyyon/ai/providers/register-builtinsto allow deterministic provider stream simulation across production provider API routing and lazy watchdog wrappers.
@veyyon/coding-agent
Changed
- The todo board is back to the tree list it was before 1.1.0: one status glyph per task, open work first, the phase in parentheses after the content, and the withheld count on the last row. The panel form shipped in 1.1.0 is reverted — Roman-numeral phase headings, per-phase fractions, the header progress gauge, the indented rail body and the fourteen-frame entrance are all gone. The board is static again: it is drawn once when the result lands and never repaints, so nothing on it moves after a write and no interval is armed for it.
Fixed
- A
todocall that names no operation is refused by validation instead of by the executor.opwas plainly optional for one release so a Claude/CursorTodoWritepayload (which carriestodosand noop) would validate, and that made the schema lie about every other shape:{"task":"Scaffold"}and{"operation":"start","task":"Scaffold"}both validated CLEAN — a missing optional field is legal, and an undeclared key is not refused for an ArkType-authored tool — after which the executor answeredMissing op; pass op explicitly, naming a field the call had just been told it could leave out. The repair layer reported the same callclean, so all three layers declined to act and a model that believed it had named its operation retried the identical payload.opis now required by a schema-level narrow that admits its absence only alongsidetodos, so the compatibility whole-board write keeps working and every other shape is refused where the repair loop and the model-facing error path can act on it. A narrow rather than a required property, and rather than a union of the two shapes, because a top-level union converts toanyOfand the Anthropic tool-schema builder readspropertiesoff the root, so a union would advertise the tool as an object with no fields at all. operationandactionare repaired ontoopfor any tool that declares one (todo,goal). A model reaching for the operation field writes the whole word; the value used to sit in the call untouched, because an undeclared key on an ArkType-authored tool is not refused, and the tool then reported the field missing.- A
todocall carrying an emptytodoslist is refused instead of guessed at. An empty container is not a read: withmerge: falseit says "replace my board with nothing", which is destructive, and withmerge: trueit says nothing at all. It used to be inferred as an init and could clear the board. The refusal names the operation that does mean it —An empty "todos" list cannot initialize or clear todos. Pass op explicitly: op "rm" clears the board— and the recorded board is returned unchanged. - An unrecognized op reaching
applyOpsToPhasesreturns the board and names the op instead of returningundefinedphases and crashing the next read of it. The tool schema cannot produce one, but the/todoslash command and any extension build ops themselves and never pass through it.
What changed
23 commits since v1.1.0.
Fixes
- fix(ci): repair provider format and docs link
- fix(ai): accept semantic OpenAI stream EOF
- fix(todo): dropping a task is not doing it
- fix(ci): bound the singleton bucket to a chunk like every other bucket
- fix(demo): the hero declares the size of the file that is tracked
- fix(todo): refuse a call that names no operation at the schema, not the executor
Refactors
- refactor(ai): keep provider override types internal
Reverts
- revert(todo): the board is the tree list it was before 1.1.0
Documentation
- docs: refresh internal verification claims
- docs(settings): regenerate the reference from the schema
- docs(upstream): the radar is a script, not a scheduled workflow
- docs(testing): plan whole-product Rust conformance
- docs: standardize terminal proof captures
Tests
- test(todo): accept dropped tally fragment in partition sweep
- test(ci): serialize watchdog simulations
- test(simulations): exercise lazy provider routing
- test(ci): isolate singleton partition collisions
Build & CI
- ci: stop mirroring upstream ports as issues
Chores
- chore: regenerate root changelog
- chore(legal): regenerate the embedded bundle after the UPSTREAM.md edit
- chore: bump version to v1.1.1
- chore(changelog): render the root from the package changelogs
Other changes
- demo(hd): re-record the hero take and publish it at its native size