v0.8.1 — Vault polish
vibe-council v0.8.1 — Vault polish (capped release-history index)
Ready for the v0.8.1 tag — not yet tagged. The version bump (
backend/__init__.py,
pyproject.toml,uv.lockself-version) and the datedCHANGELOG.mdsection are done
(chore: prepare v0.8.1 release); the repo now reports0.8.1. The git tag and the GitHub
Release are still a separate, manual step — see §"Final release checklist" below and
docs/release-checklist.md.
The vault-polish patch of the v0.8.x "Solidify the core, local-first" line. It keeps the
project vault (and its context pack) lean by adding a capped, newest-first release-history index
— docs/context/project/RELEASES.md — and a documented
STATUS-trimming workflow, so STATUS.md can stay focused on the current state instead of a
growing release log. Docs + tests only: no code behavior change, no new command, no dependency
change. Based on and crediting
karpathy/llm-council.
No commercial-clearance claim. License/provenance remains an unresolved "Question 0"
commercial gate; noLICENSEis added.
How v0.8.x was planned (council-backed + Fable architecture)
- Council-backed planning (docs-only):
v0.8.x-council-debate.md
weighed candidate directions;v0.8.x-phase-brief.mdcaptured the
resolved theme;v0.8.x-fable-input.mdwas the curated handoff. - Fable architecture plan (docs-only, version-line — architecture-only, no implementation):
v0.8.x-architecture-plan.mdresolved the open questions into
a 9-PR sequence. v0.8.1 is PR 5 (the vault index/workflow) plus this release prep (PR 6).
Per the balanced review, thevibe summarize-historycommand was deferred — a documented
workflow delivers the same lean-STATUS outcome with zero new command surface.
What this release adds (PR 5)
docs/context/project/RELEASES.md — a capped release-history index
- A newest-first index of shipped releases (v0.8.0 → v0.1.0), one line per release, each
pointing at its canonicaldocs/releases/<version>.mdnote. - It is an index / working-memory aid, not canonical detailed release notes: it does not inline
full release-note bodies. The detailed notes remain indocs/releases/*.md,
andCHANGELOG.mdremains the canonical chronological change list. - Cap / collapse policy: a hard cap of 30 visible release/history entries; on overflow the
oldest entries collapse into a single roll-up line (history is summarized, never endlessly
appended). The rule is documented inline in the file. - Not ingested into the context pack.
vibe context buildstill builds only fromSTATUS.md+
decisions; a test asserts a phrase distinctive toRELEASES.mdnever reaches the pack. Context
health stays 21/21 and the pack size is unchanged.
STATUS-trimming workflow (in WORKFLOWS.md)
- A short "Trimming STATUS history" workflow: move aged "Current state" bullets into the release
notes, keep a one-line pointer plus aRELEASES.mdentry, and use agit logrecipe to reconstruct
what shipped when. Human curation — deterministic, local, and there is no command (no
summarize-history). STATUS.mdis kept focused on current state / the latest release, with a pointer to
RELEASES.mdfor the full history.
Tests
tests/test_project_vault.pygains checks:RELEASES.mdpresent + in the deterministic vault set,
≤ 30 entries, documents its cap/collapse policy, links the canonical release notes, is framed as
an index (not a replacement/duplicate), does not inline note bodies, the README/STATUS/WORKFLOWS
pointers exist, no private-plan names appear, and the context pack does not ingest it.
Safety posture — unchanged from v0.8.0
- No code behavior change. No new CLI command; no
summarize-historycommand / no RELEASES.md
automation; no context-builder rewrite or budget change; novibe project doctor,vibe guide,
vibe context export, orvibe init-agentbehavior change; no redaction-semantics change. - No Workbench / proposal / importer / executor / trust change, no command-allowlist expansion.
Approval stays separate from execution; the deterministic trust boundary remains authoritative. - No preference schema/validator yet, no
.council/profile.*store, no preference application —
personalization stays advisory/pointer-only and tighten-only. - No vector DB / database / hosted stack, no network / LAN / mobile mode, no new dependency
(the onlyuv.lockchange is thevibe-councilself-version line). Redaction lint stays 0
critical (30 warnings);context checkand MCP health stay 21/21.
Explicit non-goals (deferred, not started in this release)
No v0.8.2 preference schema/validator yet · no summarize-history command / RELEASES.md automation ·
no local .council/profile.* store · no preference applier · no named profiles · no Workbench-UX
changes · no /council real command · no hosted / network / LAN / mobile mode. v0.8.1 is the vault
release-history index + STATUS-trimming workflow only.
Release checklist (must be clean before tagging)
-
uv run python -m unittest discover -s tests -t .is green (861 tests). -
uv run python -m backend.cli --versionprintsvibe-council 0.8.1. -
vibe lint --redactionreports 0 critical (30 warnings, expected). -
vibe decisions lintpasses. -
vibe project doctorreports READY. -
vibe context checkscores 21/21. -
vibe mcp inspect --context --healthscores 21/21. -
uv syncproduces nouv.lockdiff beyond the intentional self-version sync in this PR. - No
.council/artifact (incl..council/runtime/payloads/and.council/profile.*)
staged/committed; no rootCLAUDE.md/AGENTS.md/FABLE.md; no private/local plan file staged.
Final release checklist (manual steps, after this PR merges)
These are not automated by this PR — a maintainer performs them once the checklist above is clean
on master:
- Merge this PR (
chore: prepare v0.8.1 release) intomaster. - On the merged
master, re-confirm: tests green,vibe --versionreportsvibe-council 0.8.1,
redaction lint 0 critical (30 warnings), decisions lint passes,vibe project doctorREADY,
context check21/21, MCP health 21/21, anduv syncshows no drift. - Verify
git status --shortand the merged diff carry no private/local artifacts
(.council/,.council/profile.*, the two untracked private plan files,.env/.venv//data/,
secrets, generated packs/exports, rootCLAUDE.md/AGENTS.md/FABLE.md). - Create an annotated git tag:
git tag -a v0.8.1 -m "vibe-council v0.8.1"on the merge
commit, thengit push origin v0.8.1. - Create the GitHub Release for
v0.8.1manually, using this document
(docs/releases/v0.8.1.md) as the release-notes body.
Known limitations
RELEASES.mdcuration is human. There is no digest/summarize command; keeping it capped and
rolling up old entries is a documented manual workflow, by design (thesummarize-historycommand
was deferred pending a concrete, reviewable extraction spec).- Index only.
RELEASES.mdintentionally holds no detailed notes — follow its pointers into
docs/releases/. - Personalization is still advisory/documentation — no preference is read or applied yet.
- No hosted/team/mobile/voice — deferred to later phases.
Next after v0.8.1
Cut the v0.8.1 tag/GitHub Release, then continue the v0.8.x line per
docs/fable/v0.8.x-architecture-plan.md: v0.8.2 (the
tighten-only JSON preference schema + a read-only validator in vibe project doctor, full review;
no application). Preference application, a .council/profile.* store, mobile/LAN/voice, and
hosted/team stay deferred to v0.9.x behind their own gated designs.