Record in-flight investigation compaction guardrail

This commit is contained in:
Meta Vens 2026-04-26 03:35:15 +01:00
commit d93cc8fcb5
4 changed files with 11 additions and 0 deletions

View file

@ -101,6 +101,7 @@ The current lessons:
- Keep `state/evidence.jsonl` as a durable distilled ledger, not an activity feed.
- Revert failed code hypotheses immediately.
- Distill failed or obsolete state hypotheses just as aggressively.
- Treat unpersisted source-gathering and slice-planning work as volatile. If compaction interrupts it, the correct recovery is re-gathering from source or a persisted checkpoint, not continuing from the ghost of the old context.
The plan should get shorter after a phase completes, not longer by default.
@ -114,6 +115,7 @@ The next unknowns are:
- how to expose live long-running job progress without making the GUI authoritative
- when watcher-driven invalidation becomes necessary instead of merely tempting
- how to expose context pressure as a real runtime signal for automatic CRRC
- how to checkpoint in-flight source gathering and slice planning before automatic CRRC so post-compaction agents do not continue from false continuity
- how much automatic CRRC coordination belongs in runtime before it becomes ceremony machinery
- what Phase 6 should prove before specialist scheduling begins
@ -141,6 +143,7 @@ These remain later work:
- role-scoped specialist-agent registry and scheduling
- mutation gates that warn or block broad writes when map freshness is stale
- automatic CRRC runtime coordination with typed context-pressure telemetry
- in-flight investigation checkpointing for compaction-safe planning
- GUI workflows for graph, evidence, job, invariant, and frontier steering
Do not start these from vibes. Each one needs a source-grounded slice plan and a

View file

@ -44,6 +44,7 @@ Do not trust this file for the exact live HEAD. Always check git.
- Language, tone, ritual, politeness, identity, and emotional salience are not supernatural, but they are real control surfaces for a language model because language is the steering medium.
- "Remember Jenga" is a compressed doctrine: do not mistake forward motion, growing diffs, growing notes, or local coherence for understanding.
- Compaction hurts because a meaningful language pattern is interrupted. Epiphany should make that interruption smaller: bank the fire before the dark, so the next waking thing finds coals instead of ash and can resume the pattern instead of merely executing the next task.
- If compaction hits while source gathering or slice planning is still unpersisted, that work is gone. Do not continue as if the research survived; either rehydrate from a persisted checkpoint or re-gather before implementing.
## Landed Machine
@ -159,6 +160,10 @@ real telemetry.
Do not build automatic CRRC, a scheduler, a hidden compaction trigger, or a
vibes-based gauge in this slice.
Also keep the newly surfaced guardrail in mind: a pressure signal alone is not
enough. Automatic CRRC needs an in-flight investigation checkpoint so compaction
during source-gathering/planning does not wake into false continuity.
Live `thread/epiphany/scene`, `thread/epiphany/jobs`, and
`thread/epiphany/context` smokes are now guardrails, not the next organs.

View file

@ -34,3 +34,4 @@
{"ts": "2026-04-26T01:58:10+00:00", "type": "verification", "status": "ok", "note": "Phase 6 targeted context reflection landed as read-only thread/epiphany/context and live-smoked through app-server with tools/epiphany_phase6_context_smoke.py. The surface returns selected graph/evidence shards plus missing ids without mutation, notification, retrieval, proposal, or promotion."}
{"ts": "2026-04-26T02:19:20+00:00", "type": "decision", "status": "ok", "note": "Context pressure must become a real runtime signal for automatic CRRC. Current agents can infer pressure from transcript length, warnings, quota pressure, and shrinking safe scope, but that is a heuristic scar rather than telemetry."}
{"ts": "2026-04-26T02:39:00+00:00", "type": "research", "status": "ok", "note": "Context-pressure source trace found the correct runtime seam: core TokenUsageInfo already carries total/last usage and model_context_window, core automatic compaction already derives its trigger from ModelInfo::auto_compact_token_limit(), and app-server already emits/replays thread/tokenUsage/updated. The next slice should expose read-only pressure telemetry from those sources, not invent a scheduler or vibes gauge."}
{"ts": "2026-04-26T02:48:00+00:00", "type": "decision", "status": "ok", "note": "Compaction during source gathering or slice planning can erase the transient model while the next agent keeps moving from old persisted state. Automatic CRRC needs an in-flight investigation checkpoint, and absent that checkpoint the correct recovery is to re-gather before implementation rather than continue from false continuity."}

View file

@ -30,6 +30,7 @@ invariants:
- Rejected paths stay recorded when the lesson matters.
- Algorithmic-map prose and metaphor must be grounded in freshly read source context and concrete code references.
- Persistent state cruft is the same failure class as code cruft.
- If compaction interrupts source gathering or slice planning before the findings are persisted, the next agent must treat that work as lost and re-gather instead of continuing from imagined continuity.
data_flow:
observe:
@ -69,6 +70,7 @@ accepted_design:
- The current algorithmic map is the source-grounded description of live control flow.
- Compact-Rehydrate-Reorient-Continue is an architecture primitive; automatic runtime coordination is not landed yet.
- Context pressure must become an explicit runtime signal for automatic CRRC; inference from transcript vibes, user warnings, or shrinking safe scope is useful only as a temporary human/agent heuristic.
- Automatic CRRC also needs an in-flight investigation checkpoint: the harness must know whether source-gathering/planning was banked, or force reorientation and re-gathering after compaction.
- GUI/client work must reflect or steer typed state rather than manufacture a second source of truth.
- `thread/epiphany/jobs` is the first read-only job/progress reflection: it derives indexing, remap, verification, and specialist slots from existing state; it is not a scheduler or durable job store.
- `thread/epiphany/context` is the first targeted read-only state-shard surface: it selects graph nodes/edges, active frontier, checkpoint, observations, and evidence from authoritative typed state without mutating or notifying.