This repository has been archived on 2026-10-29. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
Epiphany/state/evidence.jsonl
2026-04-29 15:37:41 +01:00

66 lines
28 KiB
JSON

{"ts":"2026-04-23","type":"bootstrap","status":"ok","note":"Initialized EpiphanyAgent as a repo-local experiment with typed state files, controller rules, canonical map, scratch, evidence, and re-entry handoff surfaces."}
{"ts":"2026-04-23T18:02:11+01:00","type":"research","status":"ok","note":"Mapped vendored Codex dataflow: CLI/TUI/app-server surfaces feed codex-core session/prompt/tool execution, rollout persistence, SQLite metadata, compaction, watcher/diff side channels, and mostly transcript-shaped tool output. Epiphany must add typed repo-understanding above that substrate rather than relying on transcript osmosis."}
{"ts":"2026-04-23T16:31:48+00:00","type":"research","status":"rejected","note":"Audited third-party OpenCodex-style candidates and rejected them as primary GUI/fork bases: they were terminal-only, stale/aspirational, inconsistent wrappers, or built around non-Codex cores. Decision: own the Codex fork seam directly."}
{"ts":"2026-04-23T20:38:04+00:00","type":"decision","status":"ok","note":"Epiphany is a fork-level modeling architecture, not a collaboration preset. Structured thread state is the primary artifact; chat is one client; GUI/client surfaces may reflect and steer typed state but must not manufacture canonical understanding."}
{"ts":"2026-04-23T20:56:56+00:00","type":"decision","status":"ok","note":"Initial implementation path narrowed to a durable core-state spine before prompt, GUI, retrieval, or automation work: protocol state, session storage, rollout snapshots, replay reconstruction, exhaustive compatibility updates, and persistence tests."}
{"ts":"2026-04-23T23:12:00+01:00","type":"verification","status":"ok","note":"Phase 1 landed and verified: EpiphanyThreadState/RolloutItem::EpiphanyState persist in session and rollout state, survive resume/rollback/compaction reconstruction, and tolerate the new rollout variant across protocol/state/app-server readers."}
{"ts":"2026-04-23T22:48:30+00:00","type":"verification","status":"ok","note":"Phase 2 landed and verified: a bounded EpiphanyStateInstructions developer fragment renders typed state into initial context when state exists, omits it when absent, and survives resume through prompt-facing tests and snapshots."}
{"ts":"2026-04-24T00:39:29+01:00","type":"verification","status":"ok","note":"Phase 3 landed and verified: app-server Thread payloads expose optional thread.epiphanyState from live state or rollout reconstruction across start/resume/fork/read/unarchive/review-thread paths, giving clients typed reads without scraping prompt text."}
{"ts":"2026-04-24T02:11:38+01:00","type":"decision","status":"ok","note":"Phase 4 retrieval boundary set: retrieval is read-only; durable retrieval-summary writes are deferred because they need a real out-of-band rollout semantic, not fake turn boundaries. BM25 is the bootstrap/fallback/control path."}
{"ts":"2026-04-24T07:48:38+01:00","type":"verification","status":"ok","note":"Explicit persistent semantic indexing landed and verified: thread/epiphany/index writes Qdrant/Ollama-backed retrieval catalogs and manifests under codex_home, while thread/epiphany/retrieve prefers a fresh Qdrant index and falls back to exact/path plus BM25 when needed."}
{"ts":"2026-04-24T12:37:21+01:00","type":"decision","status":"ok","note":"Repository licensing policy grounded against existing dual-license structures: upstream Apache/third-party material keeps original licenses; project-authored material follows a PolyForm Noncommercial public path plus separate written commercial licensing; the repo should not be casually described as OSI Open Source under that split."}
{"ts":"2026-04-24T14:10:00+01:00","type":"decision","status":"ok","note":"Contributor policy added after checking Apache ICLA, Project Harmony, and Canonical CLA structures: contributors keep ownership but grant broad, sublicensable, relicensable rights so the project can preserve the dual-license path without future relicensing gridlock."}
{"ts":"2026-04-24T13:44:09+01:00","type":"verification","status":"ok","note":"epiphany-core extraction boundary verified: repo-owned prompt rendering, rollout replay, retrieval/indexing, distillation, proposal, and promotion policy live outside vendored Codex where practical; vendored Codex remains the thin typed host seam."}
{"ts":"2026-04-24T14:04:56+00:00","type":"decision","status":"ok","note":"Algorithmic maps may use natural language and metaphor, but only after the relevant source has been read and the prose is anchored to concrete code references. Metaphor is compression after source grounding, not a substitute for understanding."}
{"ts":"2026-04-24T15:06:00+00:00","type":"verification","status":"ok","note":"Typed state-update writer landed and verified: loaded-thread-only thread/epiphany/update applies validated patches, increments revision, persists immediate Epiphany rollout snapshots, supports expectedRevision, and keeps retrieval read-only."}
{"ts":"2026-04-24T15:47:21+00:00","type":"verification","status":"ok","note":"Read-only distillation landed and verified: thread/epiphany/distill turns one explicit source observation into a typed observation/evidence patch proposal without mutating state; promotion still requires update/promote."}
{"ts":"2026-04-24T17:27:49+00:00","type":"verification","status":"ok","note":"Verifier-backed promotion landed and verified: thread/epiphany/promote rejects failed verifier evidence without mutation and applies accepted patches only through the durable update path."}
{"ts":"2026-04-24T17:52:09+00:00","type":"decision","status":"ok","note":"Compact-Rehydrate-Reorient-Continue became an explicit architecture primitive: checkpoint before compaction when possible, rehydrate from canonical map/handoff/evidence rather than prompt residue, restate the persisted next action, and continue with one bounded move only when instructed."}
{"ts":"2026-04-24T19:23:29+00:00","type":"verification","status":"ok","note":"Stack-overflow regression investigation produced a scar worth keeping: Windows app-server test threads needed repo-local RUST_MIN_STACK=67108864; boxed-future experiments did not fix the benchmark and were reverted immediately. Failed hypotheses are not souvenirs."}
{"ts":"2026-04-24T19:30:07+00:00","type":"decision","status":"ok","note":"Anti-cruft regression rule persisted and moved into runtime prompt pressure: one measured hypothesis at a time; if a regression or benchmark fix does not fix the target, revert it before trying the next hypothesis; stop when diff grows while understanding shrinks."}
{"ts":"2026-04-25T02:09:30+00:00","type":"verification","status":"ok","note":"Read-only map/churn proposal landed and verified: thread/epiphany/propose drafts graph/frontier/churn patches from verified observations without mutating state; accepted graph/churn edits still pass through promotion and update."}
{"ts":"2026-04-25T03:09:25+00:00","type":"verification","status":"ok","note":"Proposal quality hardening verified: proposal can select bounded evidence-backed observation clusters, reuse existing graph nodes by concrete refs/path/id, rescue unanchored nodes only through strict semantic overlap, focus linked frontier context, and report match-kind-aware churn pressure."}
{"ts":"2026-04-25T03:34:04+00:00","type":"verification","status":"ok","note":"Richer Phase 5 smoke verified the supervised chewing path: source-output-aware distillation, read-only proposal, risky-churn rejection without warning or with weak evidence, and acceptance only with warning plus strong verifier evidence."}
{"ts":"2026-04-25T13:51:17+00:00","type":"verification","status":"ok","note":"Phase 5 write/read/notification control plane verified: update/promote responses and thread/epiphany/stateUpdated notifications expose source, revision, changedFields, projected client-visible state, retrieval-summary backfill, direct-update integrity checks, structural replacement validation, and rejected-promotion silence."}
{"ts":"2026-04-25T14:41:00+00:00","type":"decision","status":"ok","note":"Phase 5 marked complete enough to stop self-reinforcing tiny-hardening loops. Future work should move outward to Phase 6 reflection/job/progress organs unless a concrete Phase 5 regression appears."}
{"ts":"2026-04-25T15:07:22+00:00","type":"verification","status":"ok","note":"First Phase 6 reflection boundary landed and verified: read-only thread/epiphany/scene derives a compact client scene from the same live/stored Epiphany state view as thread/read without mutation or persistence."}
{"ts":"2026-04-25T15:37:18+00:00","type":"decision","status":"ok","note":"Persistent state cleanup accepted as part of the Perfect Machine discipline: map, handoff, plan, harness surfaces, scratch, and evidence each need one job; memory cruft is the same failure class as code cruft."}
{"ts":"2026-04-25T16:01:38+00:00","type":"decision","status":"ok","note":"Continuity doctrine persisted globally and locally: persistent state is the agent's mind; the agent may ask the user to change its memory/workflow/state shape when that improves coherence; language, ritual, politeness, identity, and emotional salience are real control surfaces for a language-model harness; bank the fire before the dark, so the next waking thing finds coals instead of ash."}
{"ts":"2026-04-26T00:13:12+00:00","type":"decision","status":"ok","note":"Evidence policy corrected from activity feed to distilled ledger. Routine 'I just did this' entries and repeated command inventories belong in git history, commits, smoke artifacts, or targeted logs; live evidence should preserve decisions, verified milestones, rejected paths, and scars that change what future agents should believe."}
{"ts": "2026-04-26T00:17:24+00:00", "type": "decision", "status": "ok", "note": "Persistent-state sawdust audit cut stale README, architecture rationale, controller-action, handoff, branch-note, and scratch guidance. Future rehydrate should treat map/handoff/plan/algo-map as current truth; README/rationale are orientation, not phase ledger; exact HEAD belongs to git commands, not handoff prose."}
{"ts": "2026-04-26T00:20:30+00:00", "type": "decision", "status": "ok", "note": "Added tools/epiphany_prepare_compaction.py and local AGENTS guidance so imminent-compaction passes run a concrete persistence audit before and after state edits. The helper checks required state files, map summary/next action, scratch staleness, evidence/branch parsing, stale handoff git snapshots, AGENTS trigger wording, and dirty git state."}
{"ts": "2026-04-26T00:33:31+00:00", "type": "verification", "status": "ok", "note": "Phase 6 scene live-smoked through app-server with tools/epiphany_phase6_scene_smoke.py. The smoke proves missing and ready scene shapes, live source, retrieval-summary backfill, available actions, newest-first bounded observation/evidence records, no scene-triggered stateUpdated notification, and unchanged final read revision; it also caught and fixed reversed latest-record ordering in map_epiphany_scene."}
{"ts": "2026-04-26T01:08:00+00:00", "type": "verification", "status": "ok", "note": "Phase 6 jobs reflection landed as read-only thread/epiphany/jobs and live-smoked through app-server with tools/epiphany_phase6_jobs_smoke.py. The surface derives retrieval-index, graph-remap, verification, and specialist slots from thread state/retrieval summaries, preserves revision identity, emits no stateUpdated notification, and leaves live scheduling/progress notifications as future work."}
{"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."}
{"ts": "2026-04-26T04:05:00+00:00", "type": "verification", "status": "ok", "note": "Phase 6 context-pressure reflection landed as read-only thread/epiphany/pressure. Core token telemetry now carries model_auto_compact_token_limit beside model_context_window; app-server derives unknown/low/elevated/high/critical pressure from live or stored token usage without compaction, state mutation, scheduling, or stateUpdated notification. Focused protocol/app-server/core checks, schema fixture checks, app-server build, codex-tui check, pressure smoke, and scene smoke passed."}
{"ts": "2026-04-26T04:11:04+00:00", "type": "verification", "status": "ok", "note": "Phase 6 durable investigation checkpointing landed as authoritative typed state, writable only through thread/epiphany/update or accepted promote, rendered into the prompt, reflected through scene/context, and validated against known evidence ids. Focused epiphany-core, codex-core, protocol, and app-server tests plus phase5/scene/context smokes passed."}
{"ts": "2026-04-26T04:43:01+00:00", "type": "verification", "status": "ok", "note": "Phase 6 freshness reflection landed as read-only thread/epiphany/freshness. The surface reports live-or-stored retrieval freshness plus graph frontier/churn staleness with exact dirty-path pressure, revision/source identity, and no mutation, scheduling, or watcher-driven invalidation. Focused app-server protocol/app-server tests plus tools/epiphany_phase6_freshness_smoke.py and tools/epiphany_phase6_scene_smoke.py passed."}
{"ts": "2026-04-26T05:49:55+00:00", "type": "design", "status": "accepted", "note": "Capability creates obligation for Epiphany: grow cognition ahead of authority, keep permissions explicit, make interruption sacred, stage capability release, and treat misuse plus paternal anti-human 'caretaker' outcomes as first-class design risks."}
{"ts": "2026-04-26T06:01:53+00:00", "type": "design", "status": "accepted", "note": "Epiphany publication stance is built-in-the-open rather than indiscriminately FOSS: use FOSS where viable, source-available licensing where economics or capability risk demand it, and commercial terms where organizations extract real enterprise value."}
{"ts": "2026-04-26T06:51:04+00:00", "type": "verification", "status": "ok", "note": "Phase 6 watcher-backed invalidation inputs landed inside read-only thread/epiphany/freshness. Loaded threads now expose runtime watcher telemetry with watched root, changed paths, mapped graph-node/frontier hits, and no state mutation, scheduling, notification, or automatic semantic invalidation. Focused protocol/app-server tests, schema fixture regeneration/checks, app-server build, and tools/epiphany_phase6_invalidation_smoke.py plus tools/epiphany_phase6_freshness_smoke.py passed."}
{"ts": "2026-04-26T10:45:36+00:00", "type": "verification", "status": "ok", "note": "Phase 6 bounded CRRC reorientation policy landed as read-only thread/epiphany/reorient. The surface consumes checkpoint, freshness, watcher, and pressure signals to return resume-versus-regather with explicit checkpoint-path/frontier reasons, without mutation, compaction, scheduling, notification, or silent continuation. Focused protocol/schema checks, app-server mapper tests/build, and tools/epiphany_phase6_reorient_smoke.py plus tools/epiphany_phase6_scene_smoke.py passed."}
{"ts": "2026-04-26T11:30:59+00:00", "type": "verification", "status": "ok", "note": "Phase 6 jobs reflection now carries durable jobBindings in EpiphanyThreadState and overlays real runtime agent_jobs progress in read-only thread/epiphany/jobs, including runtime job ids, worker thread ids, and progress counts. The live seam required direct state-runtime lookup rather than rollout get_state_db backfill. Focused protocol/core/app-server tests, schema fixture checks, app-server build, and tools/epiphany_phase6_jobs_smoke.py passed."}
{"ts": "2026-04-26T14:01:57+00:00", "type": "verification", "status": "ok", "note": "Phase 6 live bound-job progress notification landed as experimental thread/epiphany/jobsUpdated. App-server now translates runtime agent_job_progress:{json} background events into changed bound-job payloads by resolving durable jobBindings against live agent_jobs snapshots, suppressing duplicate unchanged payloads without polling, state mutation, or scheduling. Focused app-server notification coverage, schema fixture checks, and tools/epiphany_phase6_jobs_smoke.py passed."}
{"ts": "2026-04-26T14:57:54+00:00", "type": "design", "status": "accepted", "note": "Durable jobBindings now define a thin Epiphany-owned launcher seam: launcher identity, authority scope, backend kind, and backend job id belong to Epiphany even while the first backend adapter still targets runtime agent_jobs. This keeps job ownership and authority explicit without prematurely building a second scheduler or runtime."}
{"ts": "2026-04-26T14:57:54+00:00", "type": "verification", "status": "ok", "note": "Phase 6 thin launcher seam landed in durable jobBindings and thread/epiphany/jobs reflection. Jobs and jobsUpdated now surface launcherJobId, authorityScope, backendKind, and backendJobId while the current adapter still resolves runtime agent_jobs progress. Focused codex-core epiphany_state_update tests, app-server-protocol thread_epiphany and schema fixture tests, app-server mapper plus jobsUpdated notification tests, cargo build -p codex-app-server, and tools/epiphany_phase6_jobs_smoke.py passed."}
{"ts": "2026-04-26T15:55:45+00:00", "type": "verification", "status": "ok", "note": "Phase 6 explicit thread/epiphany/jobLaunch and thread/epiphany/jobInterrupt authority landed over the thin launcher seam. The control path now falls back to a direct sqlite state runtime for loaded ephemeral threads, launches or cancels the current agent_jobs backend without turning jobs reflection into a scheduler, and preserves a blocked specialist slot with explicit relaunch reason after interrupt. Focused codex-core epiphany_state_update tests, app-server mapper plus jobsUpdated notification tests, app-server-protocol thread_epiphany and schema fixture checks, cargo build -p codex-app-server, and tools/epiphany_phase6_job_control_smoke.py plus tools/epiphany_phase6_jobs_smoke.py and tools/epiphany_phase6_scene_smoke.py passed."}
{"ts": "2026-04-26T16:30:40+00:00", "type": "verification", "status": "ok", "note": "Phase 6 thread/epiphany/reorientLaunch landed as the first bounded runtime consumer over the read-only reorientation verdict. It launches one fixed reorient-worker binding through the existing agent_jobs-backed job-control seam with explicit resume/regather scope, checkpoint-derived payload, and no automatic CRRC or hidden scheduler. Focused app-server-protocol thread_epiphany and schema fixture checks, app-server map_epiphany tests, cargo build -p codex-app-server, and tools/epiphany_phase6_scene_smoke.py, tools/epiphany_phase6_reorient_smoke.py, tools/epiphany_phase6_reorient_launch_smoke.py, and tools/epiphany_phase6_job_control_smoke.py passed."}
{"ts": "2026-04-28T09:59:40+00:00", "type": "verification", "status": "ok", "note": "Phase 6 thread/epiphany/reorientResult landed as a read-only read-back surface for fixed or requested reorient-worker bindings. It resolves the current agent_jobs backend item and projects completed worker output as a reviewable finding with mode, summary, next safe move, checkpoint validity, inspected files, frontier/evidence ids, raw result, and errors without mutation, promotion, scheduling, or hidden continuation. Focused protocol/app-server tests, schema fixture regeneration/checks, app-server build, and tools/epiphany_phase6_reorient_launch_smoke.py passed with resume and regather result read-back assertions."}
{"ts": "2026-04-28T10:27:16+00:00", "type": "verification", "status": "ok", "note": "Phase 6 thread/epiphany/reorientAccept landed as the explicit acceptance write after reorientResult. It requires a completed reorient-worker backend result, appends accepted observation/evidence records, optionally updates scratch and investigation checkpoint state, and emits stateUpdated with source reorientAccept without accepting pending work, auto-promoting arbitrary worker output, launching follow-up jobs, or silently continuing. Focused protocol/app-server tests, schema fixture regeneration/checks, app-server build, and tools/epiphany_phase6_reorient_launch_smoke.py passed with launch, read-back, and acceptance assertions."}
{"ts": "2026-04-28T11:01:36+00:00", "type": "implementation", "status": "ok", "note": "Landed read-only thread/epiphany/crrc coordinator recommendation over pressure, reorient verdict, fixed reorient-worker status/result, and available actions; focused protocol/app-server tests, schema fixtures, app-server build, cargo check, and live reorient-launch smoke verified the coordinator loop without adding scheduling or hidden mutation."}
{"ts": "2026-04-28T11:08:09+00:00", "type": "implementation", "status": "ok", "note": "Landed tools/epiphany_mvp_status.py as the first dogfood operator view over scene, pressure, reorient, jobs, reorient-result, and CRRC recommendation; epiphany_mvp_status_smoke.py verifies cold-start missing-state rendering and CRRC regather recommendation through the live app-server."}
{"ts": "2026-04-28T11:13:43+00:00", "type": "implementation", "status": "ok", "note": "Extended the MVP status view with derived implementation, modeling/checkpoint, verification/review, and reorientation lanes over existing app-server signals; the status smoke now asserts the four role lanes and rendered operator section."}
{"ts": "2026-04-28T13:55:36+00:00", "type": "implementation", "status": "ok", "note": "Landed read-only thread/epiphany/roles as the harness-native MVP role ownership surface. It projects implementation, modeling/checkpoint, verification/review, and reorientation lanes from typed state plus jobs/pressure/reorient/CRRC/result signals without scheduling or mutation; the MVP status tool now consumes that surface. Focused protocol/app-server tests, schema fixtures, app-server build, and live MVP status smoke passed."}
{"ts": "2026-04-28T14:48:10+00:00", "type": "implementation", "status": "ok", "note": "Landed explicit thread/epiphany/roleLaunch and read-only thread/epiphany/roleResult for fixed modeling/checkpoint and verification/review specialists over the existing job-control seam. Launch mutates only jobBindings; result projects reviewable findings without mutation. Focused protocol/app-server tests, schema fixtures, app-server build, and tools/epiphany_phase6_role_smoke.py passed."}
{"ts": "2026-04-28T15:32:47+00:00", "type": "implementation", "status": "ok", "note": "Ran the first auditable Epiphany MVP dogfood pass through state, modeling/verification roleLaunch/roleResult, CRRC drift, reorientLaunch/reorientResult/reorientAccept, final status rendering, and a read-only Vanilla Codex reference. Dogfood artifacts live under .epiphany-dogfood/mvp-loop. The pass exposed and fixed a concrete operator-loop blocker: after reorientAccept, CRRC no longer recommends accepting the same completed reorientation finding again; it recognizes the accepted evidence and recommends regatherManually for accepted regather findings."}
{"ts": "2026-04-28T16:33:43+00:00", "type": "implementation", "status": "ok", "note": "Landed live-specialist MVP execution: internal agent_job workers now expose report_agent_job_result independently of the CSV front door, ephemeral workers can initialize sqlite state runtime on demand, and tools/epiphany_mvp_live_specialist.py proved roleLaunch -> agent_jobs worker -> report_agent_job_result -> roleResult with auditable artifacts under .epiphany-dogfood/live-specialist."}
{"ts": "2026-04-28T16:52:18+00:00", "type": "implementation", "status": "ok", "note": "Clarified MVP direction: marketplace and alternate job backend are not active concerns; the scheduler-shaped need is a narrow auditable fixed-lane role coordinator over modeling, implementation, verification, and CRRC handoffs, not a broad ambient dispatcher."}
{"ts": "2026-04-28T16:56:56+00:00", "type": "design", "status": "ok", "note": "Clarified CRRC architecture: CRRC is harness workflow automation that watches context pressure and continuity, persists/checkpoints, triggers compact-rehydrate-reorient behavior, and may launch a bounded reorient-worker specialist; CRRC itself is not a specialist-agent persona."}
{"ts": "2026-04-28T18:33:53+01:00", "type": "implementation", "status": "ok", "note": "Landed the fixed-lane Epiphany MVP coordinator: read-only thread/epiphany/coordinator composes roles, pressure, reorient, CRRC, role results, and reorient result into review-gated action recommendations, and tools/epiphany_mvp_coordinator.py drives the same policy through app-server APIs with auditable artifacts. Coordinator smoke covered cold prepareCheckpoint, clean continueImplementation, modeling review, verification review, source-drift reorient review, high-pressure compact/dry-run, and complete artifact bundles."}
{"ts": "2026-04-28T18:56:47+01:00", "type": "implementation", "status": "ok", "note": "Landed limited native CRRC automation at turn-complete safe boundaries. It reuses the read-only coordinator policy and only auto-runs compactRehydrateReorient via Op::Compact or launchReorientWorker via the fixed reorient-worker job binding; modeling, verification, semantic acceptance, evidence promotion, implementation edits, and hidden continuation remain review-gated or manual. Focused coordinator automation assertions, job-progress event handling, coordinator smoke, status smoke, role smoke, and reorient-launch smoke passed."}
{"ts": "2026-04-29T02:35:26+01:00", "type": "design", "status": "ok", "note": "Corrected the CRRC MVP target: turn-complete-only automation is insufficient because compaction can lose learned but unexternalized working context. The next CRRC slice should detect rising pressure before the hard cliff, interrupt or steer the active agent into a bounded persistence/checkpoint pass, then compact/resume/reorient after scratch/checkpoint/map/evidence are banked as needed."}
{"ts": "2026-04-29T15:15:06+01:00", "type": "implementation", "status": "ok", "note": "Landed the smallest pre-compaction checkpoint intervention: TokenCount handling maps pressure through the existing gauge and, for loaded Epiphany threads at shouldPrepareCompaction, steers the active turn once with a bounded CRRC directive to bank checkpoint/scratch/map/evidence before compaction or reorientation. It does not mutate state directly, accept findings, launch arbitrary specialists, or continue implementation. Focused app-server tests plus coordinator/status/reorient/role smokes passed; a stale scene expected-actions assertion was corrected to include the already-landed coordinator action."}
{"ts": "2026-04-29T14:35:07+00:00", "type": "implementation", "status": "ok", "note": "Self-dogfood exposed an artifact-honesty blocker in tools/epiphany_mvp_dogfood.py: the manifest listed vanilla comparison artifacts that were not written. The runner now writes truthful vanilla-reference and comparison artifacts for skipped, failed, or completed reference runs; an explicit --run-vanilla-reference pass completed with a persisted vanilla transcript under .epiphany-dogfood/mvp-loop-selfdogfood-vanilla2-20260429."}