Repository navigation
Releases: OoneBreath/project-brain
Release list
v2.4.0 — Topic-level tiering in the compact index
Closes a gap an audit of the brain's own claims turned up: the README promises the per-session
cost stays bounded "not by how much history you keep" — true across projects (HOT/WARM/COLD
tiers, since 2.0), but not true within a single project, whose full topic list rendered
unconditionally no matter how large it grew.
Backward compatible, still zero required runtime dependencies (Python 3 stdlib only).
Added
- Topic-level tiering in the compact index. Same idea as HOT/WARM/COLD, one level down:
⚠ in-progresstopics are always shown in full, however many there are; once a project passes
15 topics, its finished ones (✓v/✓d/✗/⨯) start collapsing — the most-recently-dated
ones stay expanded up to that cap, the rest fold into one+K more, oldest <date>line. Pure
function ofindex.md, deterministic, no new file format. brain-check's existing "project has >15 topics" warning now references the same threshold
(_compact.TOPIC_THRESHOLD) instead of a second, independently-defined15, and its wording
reflects that the compact self-corrects now even though the underlying files still benefit from
consolidating.
Full details in the CHANGELOG.
v2.1.2 — correctness patch (self-audit)
Small correctness fixes found by auditing the tool against its own author's production brain. Backward compatible — no format changes, no new required fields.
Fixed
- People changes now count as compact drift —
data_lines()stripped every@line as metadata, but@people/@ <slug>lines are data; editing# Peoplenever triggered the "index.compact is out of date" warning. Regression test added. brain-nudgeno longer nudges right after a save — it fires only when a change is newer thanindex.md, not on a merely-dirty git tree.- HOT tiering counts the resume line — recency is now max(topic dates, resume date), so an actively-worked project keeps its HOT slot.
[inactive …]no longer parses asactive— status matching uses word boundaries.--diffno longer mislabels archived topics as project_archive; archived material is excluded from the changed-since view.brain-compactcounted only WARM projects in its summary line (PmissedP+).
Added
brain-checkprints its own version in the summary — a stale install (repo updated,install.shnot re-run) is now visible instead of silently mis-validating.- Wider export redaction: emails / ssh targets (
user@host), IPv6, and a much broader TLD list (.pl,.cz,.fr,.online, …).
Full details in CHANGELOG.md.
v2.1.1 — allow_conflict: opt-out for aggregator topics
Patch release — a narrow opt-out for the conflict detector. Backward compatible: brains without the new field behave exactly as before. Still zero runtime dependencies.
Added
allow_conflict:frontmatter on a topic.brain-checkflags a project that names two mutually-exclusive techs (a relational DB, a host) — but an aggregator topic (an infra topology map, a multi-repo roadmap/checklist) legitimately lists several at once. Opt a group out withallow_conflict: [relational-db](ortruefor all groups). It is narrow: only that topic's tokens are excluded from the tally, so genuine drift in other topics still surfaces. An inline# commentafter the value is tolerated; an unknown group name is warned.
Fixed
- Aggregator topics no longer raise a permanent false-positive conflict warning that no note could silence (e.g. an infra
server-topologythat maps each project's DB across MariaDB / Postgres / SQLite).
Full changelog: https://github.com/OoneBreath/claude-code-project-brain/blob/main/CHANGELOG.md
v2.1.0 — Brain bootstraps into native memory
Brain 2.1 — bootstraps into Claude Code's native memory.
- install.sh now registers the brain-nudge Stop hook (merge, not overwrite)
- brain-bootstrap: on-demand native→brain redirect (non-destructive, backs up first)
- /project-brain init seeds the redirect for the current workspace
- README/hook wording fix (turn-end + throttle)
Full notes in CHANGELOG.