Skip to content

quecto-agent v0.2.1

Choose a tag to compare

@adityak74 adityak74 released this 25 Jul 17:38
· 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 its CAPSULE.md frontmatter — a comma-separated list of session-state keys it intends to write.
  • /load now rejects activating a capsule whose declared writes overlap 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.md for 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)