Repository navigation
v0.2.1
[0.2.1] — 2026-08-31
The release headline: one logical conversation, however many session
UUIDs the harness spends on it. Compaction, resume, clear and replay
each mint a new UUID, but the hooks, the wrap verdict join, and
context_served all keyed on a single one — the logical-session chain
(#183 stack, PR #203) fixes all three keying bugs, and reverses a v0.2.0
behavior along the way: SessionStart context is now served once per
session, never re-injected on resume/compact. /brief, /learn, and
weave health ride along (feature work on a patch release — a deliberate
call on the 0.x contract; the v0.3 milestone continues separately).
Changed
- Serve-once SessionStart (#175, PR #203):
startup/clearserve the
full snapshot exactly once — replay identity survives double
registration and buffer archival;resume/compactinject nothing,
recording a visibleskipped_lifecycleevent. Resume replays the
transcript, and post-compaction retrieval is on-demand via theweave_*
surface. Reverses v0.2.0's "resume/compact always re-inject" (#161):
that fix ended silent holes, this one ends the ~25k-char snapshot
re-delivery those injections cost — the biggest daily token waste in the
system — by deletion (−585 lines), not by delta. - Acquisition lanes tightened (#192, PR #192): event lanes gain
freshness windows (news 7d, podcast/youtube events 14d) and the Haiku
stage-1 funnel extends to podcast + YouTube; the repo queue actually
dedups (urljoineddedup_keys);feed_errors_detailnames the
failing feed; daily/update-hubsin cron no longer stalls on a
question.
Added
weave health(#120, PR #193): deterministic system-health
collector — cron jobs joined to run evidence, per-lane queue depth,
drain-backlog advisories (never the exit code), hook errors, digest
freshness;--jsonis/brief's contract./brief(#170, PR #193): daily orientation over the nightly
digests — a watermarked deterministic collect (health, timeline,
per-lane landings with bound cron feeders and weakest-link state,
three-layer focus merge, attention, catalysts) rendered exactly per its
render_plan./learn(#171, PR #193): vault-grounded tutor — one retrieval
partitioned into the user's own trajectory vs world material, test-first
on revisit, a learn-note validator, and unanswered questions feeding the
probe rail.- The
logical_sessionchain primitive (#180, PR #203): hooks stamp
each segment note from the transcript's bridge-session row; wraps
record a durablesegments:union on the primary note; the one
chain-membership rule (shared key orsegments:match, minus siblings
a real wrap already labeled) lives oncore.vault.is_chain_sibling,
called by both the verdict join and the RLVR exposure union.
Fixed
- Wrap verdict rail (#181, PR #203): one verdict labels exactly one
prompt (identical-text collapse, exact match over prefix, per-channel
label separation so re-wraps are a fixed point); events-file resolution
matches both session identities and ranks prompt-bearing archives over
recreated live buffers; prune can no longer GC the folder a wrap just
wrote verdicts into; the join spans the whole compaction-segment chain. - The probe rail actually flows (#192): wrap catch-up sees live
buffers, not just archived ones (645 had piled up invisible); prompt
labels reach the index (archive-before-index + explicit reprojection —
the priority worker had been consuming pre-#101 heuristic fossils);
the labeler's probe bar rewritten around retention. bin/weaveno longer re-syncs (and prunes) the venv on every call
(#164 straggler, PR #192): the silent--extra mcpsync uninstalled
the other extras — the bug that killed the news pull for 11 days;
weave doctor --mcpgains a venv-extras check, and the check itself
survives absent parent packages (PR #203 pre-slice).