Keep verification behind unavailable modeling

This commit is contained in:
Meta Vens 2026-04-30 04:19:29 +01:00
commit d1660270ba
2 changed files with 22 additions and 0 deletions

View file

@ -36,3 +36,4 @@
{"ts": "2026-04-30T02:12:42+00:00", "type": "rejected_path", "status": "contaminated", "note": "Aetheria dogfood exposed a supervision-boundary failure: the supervising Codex session directly edited and committed target-repo slices instead of driving Epiphany GUI/coordinator/fixed lanes. Treat those commits as supervisor-seeded implementation, not clean Epiphany evidence; future dogfood must quarantine direct edits as explicit operator interventions or contamination."}
{"ts": "2026-04-30T02:24:44+00:00", "type": "implementation", "status": "ok", "note": "Dogfood supervision now has a projection boundary: operator/status/coordinator/live-specialist/dogfood tools sanitize direct worker payloads by default, seal raw transcripts/stderr as forensic artifacts, and coordinator smoke asserts rawResult is sealed in operator-facing summaries. Durable instructions now forbid supervisor exposure to raw worker thoughts during normal dogfood."}
{"ts": "2026-04-30T02:39:43+00:00", "type": "implementation", "status": "ok", "note": "Function/API telemetry now gives dogfood supervision a non-thought instrument panel: status, coordinator, GUI action, dogfood, and live-specialist tools emit agent-function-telemetry.json from sealed app-server transcripts with method counts, request shape, job/status/path metadata, and visible tool names while sealing text, raw results, turn items, and direct worker messages."}
{"ts": "2026-04-30T03:18:48+00:00", "type": "implementation", "status": "ok", "note": "Aetheria supervised dogfood exposed a coordinator policy bug: after the modeling/checkpoint worker was interrupted and roleResult became backendUnavailable, coordinator skipped to verification. Fixed map_epiphany_coordinator so backendUnavailable is treated as a relaunchable role status for modeling and verification; focused Rust test and live coordinator plan now keep verification behind modeling."}

View file

@ -14034,6 +14034,7 @@ fn map_epiphany_coordinator(
}) && matches!(
signals.modeling_result_status,
ThreadEpiphanyRoleResultStatus::MissingBinding
| ThreadEpiphanyRoleResultStatus::BackendUnavailable
| ThreadEpiphanyRoleResultStatus::BackendMissing
| ThreadEpiphanyRoleResultStatus::Cancelled
| ThreadEpiphanyRoleResultStatus::Failed
@ -14070,6 +14071,7 @@ fn map_epiphany_coordinator(
}) && matches!(
signals.verification_result_status,
ThreadEpiphanyRoleResultStatus::MissingBinding
| ThreadEpiphanyRoleResultStatus::BackendUnavailable
| ThreadEpiphanyRoleResultStatus::BackendMissing
| ThreadEpiphanyRoleResultStatus::Cancelled
| ThreadEpiphanyRoleResultStatus::Failed
@ -19585,6 +19587,25 @@ mod tests {
EpiphanyCoordinatorAutomationAction::None
);
let modeling_backend_unavailable = coordinator_signals(
ThreadEpiphanyCrrcAction::Continue,
ThreadEpiphanyReorientResultStatus::MissingBinding,
ThreadEpiphanyRoleResultStatus::BackendUnavailable,
ThreadEpiphanyRoleResultStatus::MissingBinding,
);
let relaunch_modeling = map_epiphany_coordinator(
ThreadEpiphanyReorientStateStatus::Ready,
true,
&pressure,
&recommendation,
&roles,
&modeling_backend_unavailable,
);
assert_eq!(
relaunch_modeling.action,
ThreadEpiphanyCoordinatorAction::LaunchModeling
);
let modeling_done = coordinator_signals(
ThreadEpiphanyCrrcAction::Continue,
ThreadEpiphanyReorientResultStatus::MissingBinding,