v0.1.5
(feat) Tier-2/3 block distillation
Compressing a block's summary node now distills it into a higher tier (T1 → T2 → T3), using acp-kernel's native tier machinery:
- Block-boundary refs — compress accepts the checkpoint seq of an existing block; the kernel parses it as a block boundary and produces a tier-2/tier-3 block (consuming the parent block).
- Recursive decompress — decompressing a tier-2/3 block expands through the parent chain back to the original messages ("(tier N, distills k block(s))").
- Log rehydration — kernel blocks (tier, parent, kernel block id, original coverage) are rehydrated from the durable log on session load, so distillation keeps working across restarts.
- Tier-aware nudge/status — the nudge shows "Tier 2: N tier-1 block(s) distillable (X tokens)"; /acp status and compress output tag blocks [T2]/[T3].
- Skip warnings surfaced — overlapping/duplicate batch entries now report "Skipped range …" instead of silently dropping or double-writing.
Live verification (this session, real DSH GUI)
- T1→T2:
compress [219616..219616](checkpoint of a 103-message block) →block f2391cfa: … tier 2;decompress f2391cfa→ "(tier 2, distills 1 block(s))" + full originals. - T2→T3:
compress [251304..251304](f2391cfa's checkpoint) →block aee626a3: … tier 3;decompress aee626a3→ "(tier 3, distills 1 block(s))" + two-level recursive expansion. - Batch multi-segment compress re-verified (
Compressed 2 block(s)).
Tests
42/42 passing (8 new: tier-2 distillation, tier-3 chaining, overlapping-batch skip warning, mixed message↔block boundary, kernel-block rehydration, rehydration-survives-restart, tier-2 nudge recommendation, nudge rendering). typecheck clean; build 44.06 KB.