quecto-agent v0.2.1
·
4 commits
to main
since this release
quecto-agent v0.2.1
Capsules: declared write-key surface + load-time conflict guard.
Prompted by a design review of the capsules load/unload lifecycle: unloading a capsule frees its instructions but not any shared session state it may have written, so two capsules claiming the same state key can produce hard-to-trace "ghost" behavior. v1's active set only ever touched the system prompt (fully recomputed on every load/unload, so no such bug exists in the shipped v0.2.0), but this closes the gap ahead of any future capsule capability that writes real shared session state.
What's new
- A capsule can declare
writes:in itsCAPSULE.mdfrontmatter — a comma-separated list of session-state keys it intends to write. /loadnow rejects activating a capsule whose declaredwritesoverlap an already-active capsule's, with a message naming the conflicting key and capsule (e.g.cannot load beta: write key "theme" is already claimed by active capsule alpha) — before either capsule's instructions touch the system prompt.- The full three-part guard (declared surface, load-time conflict check, unload scope-clear contract) is documented as a hard design constraint in
docs/superpowers/specs/2026-07-23-capsules-design.mdfor any future capability that writes real session state.
Quality
- 4 new unit tests covering
writes:parsing and the conflict check (both the rejection and the disjoint-keys-coexist cases); full workspace suite green, clippy clean. - Live end-to-end UAT against the release binary in a real terminal session, including a scenario that confirms the conflict check walks every declared key across every active capsule, not just the first match — see
docs/UAT-capsule-write-conflict-report.md.
(#27)