Skip to content

v0.3.1 — install=mechanism · deletable auto-seeded default · unified backfill

Choose a tag to compare

@IngTian IngTian released this 19 Jul 22:42
1aee13f

CLI-surface cleanup (#102 / #103): the install and lens commands now follow a clean separation of concerns, and the built-in "default" lens is an ordinary, deletable lens rather than a special built-in.

Highlights

  • install is a pure mechanism. It wires the Claude Code hooks / OpenCode plugin + MCP server and binds the runner — and never prompts or seeds content. Safe to run as a hook subprocess and in CI.
  • The built-in "default" person-growth lens is auto-seeded once on the first time an archive is opened (a fresh personal install, or a pre-1a migration), and is fully deletable: witness lens disable/deregister default sticks forever — it will not silently come back. Restore it any time with witness lens load-default, or opt a fresh archive out entirely with WITNESS_NO_DEFAULT_LENS=1.
  • install now prints the enabled-lens set so you can see what will run (and cost an LLM call) on every session.
  • lens rebuild is unified into lens backfill <name> [--fresh]. Backfill now always refreshes the lens's facets after re-mining (fixing a drift where facets could lag the re-mined observations). --fresh (the old rebuild) drops the lens's observations + facets first, and is now guarded: it fails fast if a worker is running, asks for confirmation with exact counts (--yes to skip), and warns that in-session (hand-recorded) observations are not reproducible by a re-mine.
  • Docs/messages corrected for the "default is an ordinary lens" world (profile/facets help + empty states).

Verification

make fmt vet test + -race green; npm checks 26/26; a full live end-to-end run (real LLM: capture → mine → observations → review → facets → profile) on an isolated archive; and an adversarial merge-gate review (correctness / best-practices / long-term-plan / UX) that came back GREEN with no blockers.

Upgrade is transparent for existing archives (the pre-1a default is migrated in automatically on first open).