Skip to content

v0.8.1 — Vault polish

Choose a tag to compare

@EfeAydinalp EfeAydinalp released this 06 Jul 23:23
· 30 commits to master since this release
a8c8b48

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.lock self-version) and the dated CHANGELOG.md section are done
(chore: prepare v0.8.1 release); the repo now reports 0.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; no LICENSE is 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.md captured the
    resolved theme; v0.8.x-fable-input.md was the curated handoff.
  • Fable architecture plan (docs-only, version-line — architecture-only, no implementation):
    v0.8.x-architecture-plan.md resolved 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, the vibe summarize-history command 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 canonical docs/releases/<version>.md note.
  • It is an index / working-memory aid, not canonical detailed release notes: it does not inline
    full release-note bodies
    . The detailed notes remain in docs/releases/*.md,
    and CHANGELOG.md remains 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 build still builds only from STATUS.md +
    decisions; a test asserts a phrase distinctive to RELEASES.md never 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 a RELEASES.md entry, and use a git log recipe to reconstruct
    what shipped when. Human curation — deterministic, local, and there is no command (no
    summarize-history).
  • STATUS.md is kept focused on current state / the latest release, with a pointer to
    RELEASES.md for the full history.

Tests

  • tests/test_project_vault.py gains checks: RELEASES.md present + 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-history command / no RELEASES.md
    automation
    ; no context-builder rewrite or budget change; no vibe project doctor, vibe guide,
    vibe context export, or vibe init-agent behavior 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 only uv.lock change is the vibe-council self-version line). Redaction lint stays 0
    critical (30 warnings)
    ; context check and 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 --version prints vibe-council 0.8.1.
  • vibe lint --redaction reports 0 critical (30 warnings, expected).
  • vibe decisions lint passes.
  • vibe project doctor reports READY.
  • vibe context check scores 21/21.
  • vibe mcp inspect --context --health scores 21/21.
  • uv sync produces no uv.lock diff beyond the intentional self-version sync in this PR.
  • No .council/ artifact (incl. .council/runtime/payloads/ and .council/profile.*)
    staged/committed; no root CLAUDE.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) into master.
  • On the merged master, re-confirm: tests green, vibe --version reports vibe-council 0.8.1,
    redaction lint 0 critical (30 warnings), decisions lint passes, vibe project doctor READY,
    context check 21/21, MCP health 21/21, and uv sync shows no drift.
  • Verify git status --short and the merged diff carry no private/local artifacts
    (.council/, .council/profile.*, the two untracked private plan files, .env/.venv//data/,
    secrets, generated packs/exports, root CLAUDE.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, then git push origin v0.8.1.
  • Create the GitHub Release for v0.8.1 manually, using this document
    (docs/releases/v0.8.1.md) as the release-notes body.

Known limitations

  • RELEASES.md curation is human. There is no digest/summarize command; keeping it capped and
    rolling up old entries is a documented manual workflow, by design (the summarize-history command
    was deferred pending a concrete, reviewable extraction spec).
  • Index only. RELEASES.md intentionally 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.