summaryrefslogtreecommitdiff
path: root/mise.toml
AgeCommit message (Collapse)Author
2026-08-20Replace lyaml with api7-lua-tinyyaml and prepare the 0.1.0 releasev0.1.0t
lyaml binds the system libyaml, which luarocks does not vendor, so installing the rock failed wherever that library was absent, taking the whole extension down on a stock macOS machine. api7-lua-tinyyaml is pure Lua and matches lyaml on every quoting, escaping and block-scalar form profiles use. What the subset costs: anchors and aliases are not resolved, and plain multi-line scalars raise. The raise surfaces through the existing parse warning, but an unresolved alias came back as the literal "*alias" string and would have become a profile name, so frontmatter.parse now detects those keys, drops them, and warns. Point source.url at code.tjp.lol with a v0.1.0 tag, replacing a GitHub URL that never existed. Add a LICENSE file and mise release tasks, and fix the README dependency-install command, which called a luarocks.cmd function that does not exist.
2026-08-17jobs: only settle may close; e2e proof harnesst
close_all no longer joins pump threads from the owner thread: job:close() joins the pump, and a pump parked in an owner-posted tool batch needs the owner back in the loop, so a synchronous close at turn_end could deadlock. close_all now cancels everything, closes only already-settled jobs, and defers the rest to their own settle; jobs.active() ignores closing children so the next turn can resume the id. e2e/ reconstructs the end-to-end proof against the real binary in print mode: a scripted fixture protocol plays primary and children, and the suite asserts the product surface from process output and JSONL bytes on disk — parallel batch with unknown-agent error, lane identity, tool inheritance minus subagents.*, resume with manifest re-identification, workflow diamond, sandbox fan-out with an ephemeral structured worker, catalog round-trip, child-store isolation from the session picker. mise run e2e; check stays independent.
2026-08-17subagents extension on the generic host surfacest
The rock now owns all subagent policy on top of libpanto-lua's generic APIs: children are ordinary panto.agent instances over rock-constructed stores, started with agent:run_async and awaited by arming uv.new_poll on each job's wake_fd from the tool handler's coroutine. subagents/jobs.lua carries the session policy the host used to own: the concurrency gate (4 running, FIFO queue, cancel-while-queued never starts), the await contract (results in input order; "first" returns settled plus remaining by identity), and settle-time shaping. subagents/spawn.lua seeds new children (primary system context, child role, profile body with manifest metadata), resolves model/reasoning through panto.ext.resolve_model, filters subagents.* out of the inherited tool set via agent:set_tools, and reads resume defaults back from stored message metadata. One-shot structured workers are a null_store agent with a declaration-only output tool, tool_choice forced, dispatch_tools=false. subagents/progress.lua renders per-tool-entry cards through the component handle's invalidate seam; turn_interrupt cancels live children, turn_end closes them. Spec suite rewritten against fakes of the new surfaces (98 cases), including gate/queue/cancel bounds, resume-default extraction, one-shot capture via unresolved tool calls, tool filtering, and manifest seeding.