{
  "schema_version": "runtime-health-materialized-read-model-v1",
  "source": "runtime-core",
  "generated_at": "2026-05-23T11:52:10.523Z",
  "source_sequence": 62370,
  "stale_after_seconds": 25,
  "surface_freshness": [
    {
      "surface": "runtime_work_session",
      "freshness_class": "owned_state_event",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 10,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "runtime_work_step",
      "freshness_class": "owned_state_event",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 10,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "role_activity",
      "freshness_class": "derived_runtime_projection",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 10,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "socket_diagnostics",
      "freshness_class": "functional_probe",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 10,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "runtime_services",
      "freshness_class": "functional_probe",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 25,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "dispatcher",
      "freshness_class": "derived_runtime_projection",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 25,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "scheduler",
      "freshness_class": "derived_runtime_projection",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 25,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "leases_operations",
      "freshness_class": "derived_runtime_projection",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 25,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "validation_status",
      "freshness_class": "derived_runtime_projection",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 25,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "audit_timeline",
      "freshness_class": "heavy_summary",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 60,
      "freshness_status": "fresh",
      "source_sequence": 62370
    },
    {
      "surface": "governance_carry_forward",
      "freshness_class": "heavy_summary",
      "generated_at": "2026-05-23T11:52:10.523Z",
      "stale_after_seconds": 60,
      "freshness_status": "fresh",
      "source_sequence": 62370
    }
  ],
  "snapshot": {
    "schema_version": "runtime-health-snapshot-v1",
    "source": "runtime-core",
    "generated_at": "2026-05-23T11:51:50.330Z",
    "runtime_state_journal_sequence": 62370,
    "bounded": true,
    "redacted": true,
    "mutates_authority_state": false,
    "summary": {
      "overall_health": "healthy",
      "runtime_available": true,
      "execution_state": "healthy",
      "current_gate": "implementation",
      "dispatcher_actionability": "none",
      "close_commit_gate_reason": "No close/commit dispatcher action is pending.",
      "owner_role": "Developer",
      "coordination_owner_role": "Orchestrator",
      "active_chunk": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md",
      "active_work_package": "ai/work-packages/active/wp-runtime-governance-architecture-migration.md",
      "orchestration_mode": "full_orchestration",
      "authority_mode": "manual",
      "authority_basis": "operator_approved",
      "authority_label": "manual_operator_approval",
      "validation_status": "degraded",
      "lease_status": "healthy",
      "pending_human_action": false,
      "recommended_next_action": "Runtime is operational, but validation is degraded. Review `node ai/runtime/dist/cli.js timeline archive-plan --json`; run `node ai/runtime/dist/cli.js timeline archive-execute --json` only through the canonical Runtime maintenance workflow when appropriate.",
      "generated_at": "2026-05-23T11:51:50.330Z",
      "source": "runtime-core"
    },
    "gates": [
      {
        "id": "requirement",
        "label": "Requirement",
        "state": "passed",
        "detail": "Plan/work-package scoped gate remains passed for the current package context.",
        "scope": "plan"
      },
      {
        "id": "planning",
        "label": "Planning",
        "state": "passed",
        "detail": "Plan/work-package scoped gate remains passed for the current package context.",
        "scope": "plan"
      },
      {
        "id": "consultant_review",
        "label": "Consultant review",
        "state": "passed",
        "detail": "Manual plan-review checkpoint is active and already represented in current planning evidence.",
        "scope": "plan"
      },
      {
        "id": "implementation",
        "label": "Implementation",
        "state": "active",
        "detail": "",
        "scope": "chunk"
      },
      {
        "id": "qa",
        "label": "QA",
        "state": "not_started",
        "detail": "",
        "scope": "chunk"
      },
      {
        "id": "validation",
        "label": "Validation",
        "state": "degraded",
        "detail": "Validation is degraded independently of current chunk activity; review validation details.",
        "scope": "runtime"
      },
      {
        "id": "human_review",
        "label": "Human review",
        "state": "idle",
        "detail": "No human review is pending.",
        "scope": "chunk"
      },
      {
        "id": "close_commit",
        "label": "Close/commit",
        "state": "idle",
        "detail": "No close/commit dispatcher action is pending.",
        "scope": "chunk"
      }
    ],
    "operations": {
      "queued": [],
      "executing": [],
      "recently_completed": [],
      "stale": [],
      "conflicts": [],
      "bounded": true
    },
    "leases": {
      "schema_version": "runtime-leases-v1",
      "active_count": 0,
      "leases": [],
      "mutates_authority_state": false,
      "conflict_count": 0,
      "conflicts": []
    },
    "validations": [
      {
        "id": "governance",
        "label": "Governance",
        "status": "passed",
        "source": "runtime-core"
      },
      {
        "id": "summary",
        "label": "Summary schema",
        "status": "failed",
        "source": "runtime-core",
        "detail": ""
      },
      {
        "id": "audit",
        "label": "Audit boundedness",
        "status": "degraded",
        "source": "runtime-core",
        "detail": "1 bounded audit growth hotspot(s) require maintenance review."
      },
      {
        "id": "timeline",
        "label": "Timeline boundedness",
        "status": "degraded",
        "source": "runtime-core",
        "code": "action_timeline_hot_window_unbounded",
        "message": "action timeline has 255 hot events; limit is 250",
        "current_count": 255,
        "limit": 250,
        "detail": "action_timeline_hot_window_unbounded: action timeline has 255 hot events; limit is 250. Recommended maintenance: Review `node ai/runtime/dist/cli.js timeline archive-plan --json`; run `node ai/runtime/dist/cli.js timeline archive-execute --json` only through the canonical Runtime maintenance workflow when appropriate.",
        "recommended_maintenance_action": "Review `node ai/runtime/dist/cli.js timeline archive-plan --json`; run `node ai/runtime/dist/cli.js timeline archive-execute --json` only through the canonical Runtime maintenance workflow when appropriate."
      }
    ],
    "carry_forward": {
      "status": "advisory",
      "open_count": 23,
      "blocking_open_count": 0,
      "non_blocking_open_count": 23,
      "pending_enforcement_open_count": 1,
      "open_by_type": {
        "follow_up": 16,
        "compatibility": 1,
        "warning": 2,
        "observation": 1,
        "pending_enforcement": 1,
        "advisory": 2
      },
      "items": [
        "cfd-0001: close_commit post-success reconciliation/idempotency anomaly (advisory, non-blocking)",
        "cfd-0005: emergency-only legacy lifecycle shell paths remain (follow_up, non-blocking)",
        "cfd-0006: Runtime Action Panel technical naming compatibility (compatibility, non-blocking)",
        "cfd-0007: backend e2e requires configured test database (warning, non-blocking)",
        "cfd-0008: frontend bundle and Admin Health SCSS warning budgets remain (warning, non-blocking)",
        "cfd-0009: Playwright browser tooling pinning and invocation guidance (observation, non-blocking)",
        "cfd-0011: Runtime Health role activity lacks scheduled and live work-session visibility (follow_up, non-blocking)",
        "cfd-0013: Admin UI style primitives and tab bar polish need centralization audit (follow_up, non-blocking)",
        "cfd-0014: Authenticated browser and Socket.IO E2E live-update proof (follow_up, non-blocking)",
        "cfd-0015: Lifecycle and work-package journal producer coverage (follow_up, non-blocking)",
        "cfd-0016: Dispatcher result journal producer coverage remains (follow_up, non-blocking)",
        "cfd-0020: Assistant final chat summary enforcement remains policy-bound (pending_enforcement, non-blocking)",
        "cfd-0022: Runtime Action Panel needs a small Angular signal facade for route activation and live-state coordination (follow_up, non-blocking)",
        "cfd-0023: Browser proof channel PID 1 zombie debris and large smoke harness remain (follow_up, non-blocking)",
        "cfd-0024: Runtime API autonomous killed-process resurrection proof remains (follow_up, non-blocking)",
        "cfd-0027: Admin Runtime Health page remains a large frontend aggregation component (advisory, non-blocking)",
        "cfd-0028: Backend and Runtime architecture advisory findings need targeted boundary cleanup (advisory, non-blocking)",
        "cfd-0029: Codex compaction must preserve autonomous workflow continuation (follow_up, non-blocking)",
        "cfd-0031: Web console paste can duplicate command submission (follow_up, non-blocking)",
        "cfd-0032: Runtime-owned backlog activation path is missing (follow_up, non-blocking)",
        "cfd-0033: Service recovery policy should grow circuit-breaker and backoff semantics before broader auto-resurrection (follow_up, non-blocking)",
        "cfd-0034: Audit every Runtime and developer entrypoint for automatic work registration coverage (follow_up, non-blocking)",
        "cfd-0035: Minimum downtime reload discipline across Runtime, backend, and frontend (follow_up, non-blocking)",
        "cfd-0036: Canonical command wrapper enforcement for hosted shell execution (follow_up, non-blocking)"
      ],
      "blocking_items": [],
      "non_blocking_items": [
        {
          "id": "cfd-0005",
          "title": "emergency-only legacy lifecycle shell paths remain",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Pending Enforcement",
            "Policy Enforcement"
          ],
          "reason_to_track": "Emergency lifecycle recovery paths are intentionally retained but must not become normal authority-state mutation paths.",
          "next_action": "Keep `activate-chunk.sh` and `complete-chunk.sh` emergency-only and hard-guarded. Replace the remaining activation recovery path with a typed Runtime lifecycle owner only if Draft/Backlog activation becomes normal workflow again.",
          "revisit_trigger": "`ai/commands/activate-chunk.sh` or `ai/commands/complete-chunk.sh` is used outside explicit severe recovery/preapproved dispatcher compatibility, or a typed Draft/Backlog activation owner is added."
        },
        {
          "id": "cfd-0006",
          "title": "Runtime Action Panel technical naming compatibility",
          "severity": "compatibility",
          "item_type": "compatibility",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Details",
            "Handoff"
          ],
          "reason_to_track": "Intentional naming mismatch is useful compatibility debt and should not be forgotten during future route/API or export naming work.",
          "next_action": "Preserve /admin/health compatibility until a dedicated migration chunk proves a safe route/API/file rename; update docs/exports when touched.",
          "revisit_trigger": "A future route/API/component rename, navigation label change, export naming change, or public documentation update touches Runtime Action Panel/Admin Runtime Health naming."
        },
        {
          "id": "cfd-0007",
          "title": "backend e2e requires configured test database",
          "severity": "warning",
          "item_type": "warning",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Validation",
            "Handoff"
          ],
          "reason_to_track": "The condition recurs during validation and can be mistaken for product regression rather than environment setup; skipped e2e means database-backed API coverage was not exercised.",
          "next_action": "Provision the app_test database locally or in CI when database-backed e2e coverage is required; keep yarn env:check and the safe e2e skip warning visible when TEST_DATABASE_URL is absent.",
          "revisit_trigger": "Backend e2e is required for a chunk, CI test database setup changes, or Prisma/database work is planned."
        },
        {
          "id": "cfd-0008",
          "title": "frontend bundle and Admin Health SCSS warning budgets remain",
          "severity": "warning",
          "item_type": "warning",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Bad",
            "Ugly",
            "Validation"
          ],
          "reason_to_track": "Small UI additions can turn warning-level budget debt into noisy validation output or a hard budget error.",
          "next_action": "Plan a focused frontend budget cleanup if warnings worsen, become hard errors, or block UI work.",
          "revisit_trigger": "Runtime Action Panel/App Shell UI changes add significant styles or bundles, or frontend build warnings become operationally noisy."
        },
        {
          "id": "cfd-0009",
          "title": "Playwright browser tooling pinning and invocation guidance",
          "severity": "observation",
          "item_type": "observation",
          "status": "open",
          "source_sections": [
            "Lessons Learned",
            "Carry Forward",
            "Validation"
          ],
          "reason_to_track": "UI QA can regress into false browser-unavailable claims if the pinned command and managed server assumptions are forgotten.",
          "next_action": "Keep using the pinned Playwright command documented in UI/runtime standards until a dedicated dependency/tooling chunk changes it.",
          "revisit_trigger": "UI/browser review policy changes, Docker image Playwright version changes, or browser smoke becomes a hard validation gate."
        },
        {
          "id": "cfd-0011",
          "title": "Runtime Health role activity lacks scheduled and live work-session visibility",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Handoff"
          ],
          "reason_to_track": "Operators need to distinguish role inactivity from planned next-role responsibility and from live in-between Orchestrator/Codex work. Otherwise correct lifecycle states can look like missing activity, while overloading gates or trusting stale client timers would create false active states.",
          "next_action": "Keep automatic work-step emission on Runtime-owned validation, testing, browser-smoke, typed supervisor, summary validation, governance validation, and bounded maintenance paths. Add auto-registration to a future typed QA review executor once that path exists. Consider dispatcher-path registration only inside canonical dispatcher execution without changing approval or close/commit authority. Add a per-role active-step projection only if concurrent role-specific detail is still required. Keep the chunk 000190 liveness-confidence rule enforced: active/blinking UI requires Runtime-provided fresh confidence, and frontend elapsed timers are display-only.\n",
          "revisit_trigger": "Future Runtime Action Panel role activity, QA scheduling, chunk lifecycle, or workflow-state projection work touches role activity semantics."
        },
        {
          "id": "cfd-0013",
          "title": "Admin UI style primitives and tab bar polish need centralization audit",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Handoff"
          ],
          "reason_to_track": "Repeated page-local UI fixes create drift between Admin pages and make future navigation, theming, and connection-status behavior harder to reason about.",
          "next_action": "Audit Admin UI cards, headers, form controls, status dots, connection banners, tab bar style variants, and theme primitives; promote common patterns into shared UI components/classes/services while preserving intentional per-page overrides. Browser-verify the iOS tab bar frost/translucency and adjust the shared tab bar style until it is visually distinct from the custom/floating style. Keep app-shell connection notification and mobile tab-bar behavior centralized rather than adding page-specific recovery or style fixes.",
          "revisit_trigger": "Future Admin UI polish, theme-system, Runtime Action Panel, App Shell, Settings, mobile tab bar, or card/form/status indicator work touches shared visual primitives."
        },
        {
          "id": "cfd-0014",
          "title": "Authenticated browser and Socket.IO E2E live-update proof",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Validation"
          ],
          "reason_to_track": "Socket.IO can be correctly wired in unit tests while browser authentication, room membership, reconnect timing, or app-shell service behavior still prevents live operator updates.",
          "next_action": "Keep the browser proof command available as the baseline live-update regression check. Revisit the duplicate-context current-device-count assertion and backend/browser registry behavior before relying on that proof as non-flaky. Plan separate installed iPhone/PWA proof and restart-recovery proof. Planned Runtime/backend restarts should emit a backend-owned reason/actor before disconnect so the app-shell toast can distinguish intentional maintenance from unexpected connection loss.",
          "revisit_trigger": "Future Socket.IO, auth/session, browser smoke, Runtime Action Panel, or live-update verification work touches authenticated delivery."
        },
        {
          "id": "cfd-0015",
          "title": "Lifecycle and work-package journal producer coverage",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward"
          ],
          "reason_to_track": "Operators expect current gate and work-package state to update live, but lifecycle authority must not be weakened by casual producer hooks.",
          "next_action": "Add journal producers only at canonical work-package lifecycle/archive mutation points, or document compatibility fallback if ownership remains authority-sensitive. Do not add producers at shell compatibility wrappers.",
          "revisit_trigger": "Future work-package lifecycle, archive, Runtime Health, or journal producer work touches active/completed work-package or work-package archive state."
        },
        {
          "id": "cfd-0016",
          "title": "Dispatcher result journal producer coverage remains",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward"
          ],
          "reason_to_track": "Dispatcher results are high-value live surfaces, but producer hooks must not alter approval, close/commit, or dispatcher authority.",
          "next_action": "Move guarded dispatcher result execution to a typed Runtime/Node owner or add a producer at that canonical owner, then mark `approved_action_dispatcher_results` covered. Do not add producer hooks in compatibility wrappers that would obscure dispatcher authority.",
          "revisit_trigger": "Future dispatcher, close/commit, approved-action execution, Telegram/operator notification, Runtime Action Panel human-action, or journal producer work touches dispatcher result execution."
        },
        {
          "id": "cfd-0020",
          "title": "Assistant final chat summary enforcement remains policy-bound",
          "severity": "pending_enforcement",
          "item_type": "pending_enforcement",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Policy Enforcement",
            "Ugly"
          ],
          "reason_to_track": "Operators can miss important Good/Bad/Ugly/Validation/Next context if final chat output drifts away from canonical Runtime summaries, even when the markdown artifact is correct.",
          "next_action": "Prefer rendering or mirroring the canonical Runtime summary for final chat responses; add platform/tooling enforcement if a future integration can validate or generate assistant final responses directly.",
          "revisit_trigger": "Future summary renderer, Codex/assistant integration, workflow-output validator, Telegram details, or final-response automation work can mechanically validate or generate assistant final chat output."
        },
        {
          "id": "cfd-0022",
          "title": "Runtime Action Panel needs a small Angular signal facade for route activation and live-state coordination",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Other"
          ],
          "reason_to_track": "Runtime Action Panel liveness depends on coordinated auth readiness, route activation, socket invalidation, GraphQL refetch, cursor freshness, and diagnostics. Keeping that coordination in scattered components risks stale or empty panels and page-specific fixes. Classic NgRx would add unnecessary boilerplate for this surface, so the preferred path is a lightweight Angular signals facade/store pattern.",
          "next_action": "Keep Runtime Action Center route activation and user actions behind `RuntimeActionCenterFacade`; move additional page-local liveness coordination into the facade only when it simplifies components without making frontend state canonical. Revisit for closure after browser smoke proves the facade path under route reload/reconnect.",
          "revisit_trigger": "Future Runtime Action Panel, app-shell navigation, socket invalidation, GraphQL state, admin auth guard, or frontend state-management work touches page activation or live refetch coordination."
        },
        {
          "id": "cfd-0023",
          "title": "Browser proof channel PID 1 zombie debris and large smoke harness remain",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Bad",
            "Ugly",
            "Carry Forward"
          ],
          "reason_to_track": "The testing channel and browser proof channel are now bounded and fail-fast, but PID 1 zombie debris can still confuse operators and the large Runtime Action Panel browser-smoke harness remains a maintenance hotspot for future reliability proof variants.",
          "next_action": "Keep `ai/commands/runtime-action-panel-browser-smoke.mjs` as the bounded canonical Action Panel browser proof facade over Runtime-owned proof variants. Do not block fresh browser proof solely on old unreapable PID 1 zombie debris when fresh launch succeeds. Revisit only if active Playwright-owned process leaks accumulate again, Chromium fresh launch fails, or the large browser-smoke harness blocks safe maintenance; a true fix for PID 1 defunct debris requires container init/reaper lifecycle work rather than repo-level cleanup.",
          "revisit_trigger": "Future Runtime testing, validation-runner, broad Runtime test, browser smoke, PWA proof, lease cleanup, or fail-fast proof-mode work touches test execution."
        },
        {
          "id": "cfd-0024",
          "title": "Runtime API autonomous killed-process resurrection proof remains",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Other"
          ],
          "reason_to_track": "Runtime Action Panel reliability depends on services failing visibly and recoveries being distinguishable from silent outages. Planned Runtime API restart, controlled local/dev unplanned failure visibility, and safe real killed-process local/dev frontend resurrection are now browser-proven; the remaining gap is unsolicited Runtime API killed-process detection plus an autonomous Runtime-owned resurrection watchdog policy/proof.",
          "next_action": "Keep the chunk 000261 safe local/dev frontend resurrection smoke and browser proof as the baseline killed-process regression. The remaining scope is narrower: implement a Runtime API watchdog policy that observes unsolicited Runtime API daemon death without frontend inference, records planned/manual suppression state, immediate_resurrection_allowed, observed failure, recovery started/completed/failed, and concrete next action in Runtime-owned service status/journal evidence, then proves an autonomous Runtime API resurrection in the browser. Keep `runtime_api_build_reload` generation replacement checks as the planned restart baseline regression. Chunk 000297 confirmed this remains unsafe to prove by killing the Runtime API today: the live daemon is identifiable from `.tmp/runtime-api/pid` and typed planned restart actions exist, but the supervisor loop only executes queued requests and does not yet watch Runtime API liveness, record an unsolicited death policy decision, or autonomously enqueue recovery. Chunk 000300 added the non-destructive Runtime-owned watchdog prerequisite: `runtimeApiWatchdogPolicy`, typed fail-log evidence, planned/manual suppression, heartbeat/pid ownership inspection, cooldown/circuit-breaker fields, Runtime Health service projection fields, an API export, and the `supervisor runtime-api-watchdog-policy` CLI. The remaining scope is now the autonomous supervisor loop plus browser-visible killed-process proof, not the policy/projection design.",
          "revisit_trigger": "Future service restart, frontend dev server, backend API, Runtime supervisor, crash notification, or Action Panel service-status work touches planned/failure notification behavior."
        },
        {
          "id": "cfd-0027",
          "title": "Admin Runtime Health page remains a large frontend aggregation component",
          "severity": "advisory",
          "item_type": "advisory",
          "status": "open",
          "source_sections": [
            "Policy Enforcement",
            "Carry Forward"
          ],
          "reason_to_track": "Large page components are more likely to accumulate data orchestration, template method mappings, and Runtime-specific presentation coupling unless future UI chunks keep moving semantic view models into services, facades, or focused child components.",
          "next_action": "When the next substantial Admin Runtime Health UI change occurs, extract the touched semantic section into a focused computed view model, facade, or child component instead of adding more page-local orchestration.",
          "revisit_trigger": "Future Admin Runtime Health, Runtime Action Center, workflow artifact, service-status, socket diagnostics, or operator message UI work touches the page component or adds new semantic sections."
        },
        {
          "id": "cfd-0028",
          "title": "Backend and Runtime architecture advisory findings need targeted boundary cleanup",
          "severity": "advisory",
          "item_type": "advisory",
          "status": "open",
          "source_sections": [
            "Policy Enforcement",
            "Carry Forward"
          ],
          "reason_to_track": "Without a tracked follow-up, future backend/Runtime work can continue adding orchestration to large services or leaking raw IO/env/shell access through request/projection paths even though the standard now forbids new violations.",
          "next_action": "Treat the backend architecture report as the review entry point for the next touched backend/Runtime area. Fix narrow findings immediately when local and safe; otherwise split the touched hotspot into typed adapters, projection helpers, or Runtime modules under a focused chunk with tests.",
          "revisit_trigger": "Future Admin Runtime Health backend, Runtime API transport, Runtime CLI, Runtime Health snapshot, Runtime supervisor, Socket.IO diagnostics, service-status projection, or backend Runtime bridge work touches one of the reported files or adds new shell/env/tmp access."
        },
        {
          "id": "cfd-0029",
          "title": "Codex compaction must preserve autonomous workflow continuation",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Other"
          ],
          "reason_to_track": "Autonomous package execution should survive context compaction without changing the commanded workflow, otherwise the Action Panel can correctly show registered work while actual Codex execution waits for a new user nudge.",
          "next_action": "Add a Runtime/Codex resume guard that records an autonomous package continuation token in the existing work-registration model and verifies after compaction or Stop/Start that active autonomous chunks resume or are explicitly terminalized as blocked/stale. As part of that chunk, inspect work-registration workflows, schemas, role/activity states, hook adapter states, and Action Panel projections for unused, obsolete, or overly loose states left by previous designs; remove or tighten them where local and safe, and record exact remaining compatibility-only states if any must stay. Add explicit parent/return-role semantics for automatic wrapper sessions so Runtime Supervisor, validation, QA, and browser-proof work can be displayed without erasing the owning Developer/Orchestrator context. Prove that role cards do not disappear during wrapper start, completion, read-model refresh, and browser refetch. Keep deterministic capture for hosted Codex tool actions that bypass project-local hooks as a visibility diagnostic in Runtime Health, not as accepted work. Chunks 000287 and 000295 added that bounded diagnostic as visibility-only `hosted_codex_activity` plus normalized `unregistered_activity_diagnostic` display items; they do not satisfy work-registration requirements. A future enforcement chunk still needs an end-to-end Action Panel proof where a direct hosted file-inspection command, a patch/edit command, a validation wrapper, and a QA command all produce visible registered work or a clear registration violation without manual work registration. The proof must show work stays visible throughout a multi-tool orchestration sequence, not only for a short `PreToolUse` pulse. Include message-stream freshness proof so lagging health snapshots cannot regress operator/assistant notes after a newer note has been rendered. Keep close-gate validation as hard enforcement, and do not introduce a second work-registration store.",
          "revisit_trigger": "Future Codex hook, autonomous orchestration, work-session resume, context-compaction, hosted Codex tool/log parsing fallback, or Action Panel active-work visibility changes touch session continuation behavior."
        },
        {
          "id": "cfd-0031",
          "title": "Web console paste can duplicate command submission",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Other"
          ],
          "reason_to_track": "Duplicate command paste/submit can trigger repeated operator actions, create confusing Runtime work evidence, or increase risk around authority-sensitive commands if the console does not debounce or idempotently identify submissions.",
          "next_action": "Add a focused browser/input test that pastes and submits commands through the web console using clipboard, keyboard, and direct input events; verify exactly one command buffer update and one submission are produced. If duplication reproduces, fix paste/keydown/input composition handling with debouncing or submission idempotency at the UI boundary, and keep backend/Runtime command execution idempotency as a separate safety layer.",
          "revisit_trigger": "Future web console, operator command entry, terminal input, command submission, keyboard/paste handling, or Runtime Action Panel console work touches command input behavior."
        },
        {
          "id": "cfd-0032",
          "title": "Runtime-owned backlog activation path is missing",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Policy Enforcement"
          ],
          "reason_to_track": "This item is resolved for normal Runtime-owned Backlog -> Active activation and terminal active-chunk archive. It remains in the registry as regression guidance because lifecycle authority is sensitive and shell compatibility helpers must not return to normal workflow.",
          "next_action": "Reopen only if normal backlog activation or terminal active-chunk archive requires `activate-chunk.sh`, `complete-chunk.sh`, manual file movement, or another non-Runtime authority path. Remaining optional naming cleanup is to alias \"Ready for Human Review\" to a mode-aware \"Ready for Review\" concept where human/manual vs autonomous review is determined by policy.",
          "revisit_trigger": "Future chunk activation, backlog scheduler, autonomous package continuation, chunk planner output activation, lifecycle registry, ready/review state naming, autopilot mode policy, archive/commit completion, or shell lifecycle hard-guard work touches Draft/Backlog to Active or terminal archive semantics."
        },
        {
          "id": "cfd-0033",
          "title": "Service recovery policy should grow circuit-breaker and backoff semantics before broader auto-resurrection",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Other"
          ],
          "reason_to_track": "Without circuit-breaker/backoff semantics, expanded auto-resurrection can create restart loops, mask degraded dependencies, or produce noisy operator state transitions under persistent failure.",
          "next_action": "Before enabling broader automatic recovery, add a typed recovery state machine with explicit observed_failure, recovery_started, probe_half_open, recovered, recovery_failed, cooldown, and suppressed states; add bounded retry/backoff with jitter; expose expected downtime boundaries to the frontend when planned; and prove mocked frontend state-machine behavior before full-system restart/recovery browser proof.",
          "revisit_trigger": "Future service supervisor, auto-resurrection, service freshness, restart/recovery scheduler, or Action Panel service-state work expands recovery beyond the narrow local/dev one-shot proof."
        },
        {
          "id": "cfd-0034",
          "title": "Audit every Runtime and developer entrypoint for automatic work registration coverage",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Validation"
          ],
          "reason_to_track": "The Runtime Action Panel cannot be authoritative if work disappears whenever a caller bypasses a shell hook or uses a direct Node/API entrypoint. Work-registration enforcement must be owned by Runtime entrypoints and core functions, not by operator memory or hosted hook behavior alone.",
          "next_action": "Keep the Runtime-owned entrypoint coverage validator current as new Runtime CLI/API/shell surfaces are added; the current 000299 report has no remaining advisory entries. Add representative regression tests for remaining hosted-tool visibility bypasses, including hosted tool names such as `exec_command`, `write_stdin`, `apply_patch`, `multi_tool_use.parallel`, shell read commands such as `rg`, `sed`, `tail`, `head`, `find`, and direct Runtime module invocations. Move high-confidence work-producing entrypoints toward hard enforcement: execute with an existing work contract, auto/ad-hoc register through Runtime-owned wrappers, or reject execution. Keep single owning role plus foreground child as the supported model, now explicitly reported as `single_parent_foreground_child`, until a future chunk adds a canonical task-level or multi-active role execution model. The display projection can now show unsupported concurrent sessions as a model warning, but a future execution model must still distinguish parallel tasks from parallel roles, log both without flattening, avoid stale parent rollback, and include the chunk/backlog action detection case added to chunk 000295.",
          "revisit_trigger": "Future changes touch Runtime CLI commands, direct Node test files, `ai/commands/*` helpers, supervisor actions, validation/testing runners, lifecycle activation/closure, Codex hook configuration, or Runtime Health work-session projection."
        },
        {
          "id": "cfd-0035",
          "title": "Minimum downtime reload discipline across Runtime, backend, and frontend",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Policy Enforcement"
          ],
          "reason_to_track": "Operators need the Action Panel and dev surfaces available for as much of the work chunk as possible. Minimum downtime should not slow the work materially, but disruptive reloads should be batched, ordered, and announced as planned maintenance only when a fresh daemon/server is needed for validation, browser proof, generated schema/codegen, or runtime-dependent commands.",
          "next_action": "Add a minimum-downtime reload planner that batches source edits, defers Runtime/backend/frontend reloads until the latest safe freshness-gated boundary, then executes the smallest typed reload sequence with visible planned-restart state and post-reload freshness proof. The planner should prefer build-before-stop and only stop/restart services when the built artifact is ready and a test/browser proof actually needs it.",
          "revisit_trigger": "Future work touches Runtime build/reload, backend or frontend dev-server restart behavior, freshness-gated tests, browser proof orchestration, or validation scheduling."
        },
        {
          "id": "cfd-0036",
          "title": "Canonical command wrapper enforcement for hosted shell execution",
          "severity": "follow_up",
          "item_type": "follow_up",
          "status": "open",
          "source_sections": [
            "Carry Forward",
            "Policy Enforcement"
          ],
          "reason_to_track": "Documentation alone is insufficient if hosted tools can bypass Runtime contracts. The remaining hardening should make wrapper use canonical in AI repository instructions and validators, detect direct work-producing commands that bypass the wrapper, and eventually reject or recover them with explicit ad hoc registration according to the work-registration policy. Non-shell tools that cannot be routed through the command wrapper need an equivalent pre-tool work-contract guard or mandatory ad hoc recovery before their edits are accepted.",
          "next_action": "Add guard validation that classifies repository command execution as accepted only when it is executed through the Runtime command wrapper, a typed Runtime entrypoint with an equivalent work contract, or a non-shell tool guard that starts/heartbeats Runtime work before mutation. Update AI instructions to make the wrapper the default command path for work-producing commands, keep pure inspection low-risk commands advisory until the guard is proven, and add browser proof that bypassed command or file-edit activity appears as diagnostic-only or is recovered through ad hoc work.",
          "revisit_trigger": "Future work-producing shell commands, validation runners, testing wrappers, lifecycle tools, or hosted Codex hook/diagnostic changes are touched."
        }
      ],
      "pending_enforcement_items": [
        {
          "id": "cfd-0020",
          "title": "Assistant final chat summary enforcement remains policy-bound",
          "next_action": "Prefer rendering or mirroring the canonical Runtime summary for final chat responses; add platform/tooling enforcement if a future integration can validate or generate assistant final responses directly.",
          "revisit_trigger": "Future summary renderer, Codex/assistant integration, workflow-output validator, Telegram details, or final-response automation work can mechanically validate or generate assistant final chat output."
        }
      ],
      "mutates_authority_state": false
    },
    "human_actions": {
      "pending_questions": 0,
      "actionable_approved_actions": 0,
      "stale_approved_actions": 0,
      "blocked_approved_actions": 0,
      "pending": [],
      "recommended_next_action": "Runtime is operational, but validation is degraded. Review `node ai/runtime/dist/cli.js timeline archive-plan --json`; run `node ai/runtime/dist/cli.js timeline archive-execute --json` only through the canonical Runtime maintenance workflow when appropriate."
    },
    "action_summary": {
      "schema_version": "runtime-action-summary-v1",
      "source": "runtime-core",
      "headline": "Orchestrator implementing",
      "detail": "Hosted command work is being registered before running git.",
      "current_work_item": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md",
      "next_action": "Runtime is operational, but validation is degraded. Review `node ai/runtime/dist/cli.js timeline archive-plan --json`; run `node ai/runtime/dist/cli.js timeline archive-execute --json` only through the canonical Runtime maintenance workflow when appropriate.",
      "human_action_required": false,
      "evidence_source": "runtime_work_session",
      "mutates_authority_state": false
    },
    "runtime_work_session": {
      "schema_version": "runtime-work-session-v1",
      "id": "93bf9776-63b0-4537-88da-ce5f1c9f337e",
      "status": "active",
      "actor_role": "Orchestrator",
      "activity": "implementing",
      "detail": "Hosted command work is being registered before running git.",
      "scope": "hosted-command",
      "artifact": {
        "type": "hosted-command",
        "id": "git"
      },
      "started_at": "2026-05-23T11:42:03.162Z",
      "last_heartbeat_at": "2026-05-23T11:52:02.839Z",
      "elapsed_seconds": 587,
      "stale_after_seconds": 3600,
      "liveness_confidence": "fresh",
      "liveness_reason": "active heartbeat is within the stale threshold",
      "confidence_updated_at": "2026-05-23T11:51:50.330Z",
      "heartbeat_age_seconds": 0,
      "source": "runtime-command-runner",
      "mutates_authority_state": false,
      "work_origin": "ad_hoc",
      "reason": "Hosted command execution had no fresh accepted parent work; Runtime command runner registered ad hoc parent work.",
      "source_action": "runtime.command.parent",
      "file_change_expected": false,
      "changed_files": false,
      "follow_up_created": false,
      "required_registration": true,
      "recent_steps": [
        {
          "id": "15364265-608b-46e6-91ee-90472174d879",
          "type": "diagnosis",
          "label": "Running command: node",
          "detail": "Command exited with code 1.",
          "actor_role": "Orchestrator",
          "status": "failed",
          "artifact": {
            "type": "hosted-command",
            "id": "node"
          },
          "started_at": "2026-05-23T11:47:29.900Z",
          "last_heartbeat_at": "2026-05-23T11:47:29.900Z",
          "failed_at": "2026-05-23T11:47:32.260Z",
          "elapsed_seconds": 260,
          "duration_seconds": 2,
          "liveness_confidence": "failed",
          "liveness_reason": "Runtime recorded a terminal failed state",
          "confidence_updated_at": "2026-05-23T11:51:50.330Z",
          "heartbeat_age_seconds": 260,
          "source": "runtime-command-runner",
          "mutates_authority_state": false,
          "work_origin": "automatic",
          "reason": "Hosted command execution requires foreground Runtime work registration.",
          "source_action": "runtime.000300.runtime_supervisor_test",
          "file_change_expected": false,
          "changed_files": false,
          "follow_up_created": false,
          "required_registration": true
        },
        {
          "id": "d5371ffa-a0d9-4737-b6e4-c1bc8af2802c",
          "type": "diagnosis",
          "label": "Preparing command: git",
          "detail": "Runtime command runner registered parent work for git.",
          "actor_role": "Orchestrator",
          "status": "completed",
          "artifact": {
            "type": "hosted-command",
            "id": "git"
          },
          "started_at": "2026-05-23T11:42:03.243Z",
          "last_heartbeat_at": "2026-05-23T11:47:29.900Z",
          "completed_at": "2026-05-23T11:47:29.900Z",
          "elapsed_seconds": 587,
          "duration_seconds": 326,
          "liveness_confidence": "proven_complete",
          "liveness_reason": "Runtime recorded a terminal completed state",
          "confidence_updated_at": "2026-05-23T11:51:50.330Z",
          "heartbeat_age_seconds": 260,
          "source": "runtime-command-runner",
          "mutates_authority_state": false,
          "work_origin": "ad_hoc",
          "reason": "Hosted command execution had no fresh accepted parent work; Runtime command runner registered ad hoc parent work.",
          "source_action": "runtime.command.parent",
          "file_change_expected": false,
          "changed_files": false,
          "follow_up_created": false,
          "required_registration": true
        }
      ]
    },
    "work_stack_projection": {
      "schema_version": "runtime-work-stack-projection-v1",
      "source": "runtime-core",
      "projection_model": "single_parent_foreground_child",
      "status": "active",
      "mode": "single_session",
      "active_parent_session": {
        "schema_version": "runtime-work-session-v1",
        "id": "93bf9776-63b0-4537-88da-ce5f1c9f337e",
        "status": "active",
        "actor_role": "Orchestrator",
        "activity": "implementing",
        "detail": "Hosted command work is being registered before running git.",
        "scope": "hosted-command",
        "artifact": {
          "type": "hosted-command",
          "id": "git"
        },
        "started_at": "2026-05-23T11:42:03.162Z",
        "last_heartbeat_at": "2026-05-23T11:52:02.839Z",
        "elapsed_seconds": 587,
        "stale_after_seconds": 3600,
        "liveness_confidence": "fresh",
        "liveness_reason": "active heartbeat is within the stale threshold",
        "confidence_updated_at": "2026-05-23T11:51:50.330Z",
        "heartbeat_age_seconds": 0,
        "source": "runtime-command-runner",
        "mutates_authority_state": false,
        "work_origin": "ad_hoc",
        "reason": "Hosted command execution had no fresh accepted parent work; Runtime command runner registered ad hoc parent work.",
        "source_action": "runtime.command.parent",
        "file_change_expected": false,
        "changed_files": false,
        "follow_up_created": false,
        "required_registration": true,
        "recent_steps": [
          {
            "id": "15364265-608b-46e6-91ee-90472174d879",
            "type": "diagnosis",
            "label": "Running command: node",
            "detail": "Command exited with code 1.",
            "actor_role": "Orchestrator",
            "status": "failed",
            "artifact": {
              "type": "hosted-command",
              "id": "node"
            },
            "started_at": "2026-05-23T11:47:29.900Z",
            "last_heartbeat_at": "2026-05-23T11:47:29.900Z",
            "failed_at": "2026-05-23T11:47:32.260Z",
            "elapsed_seconds": 260,
            "duration_seconds": 2,
            "liveness_confidence": "failed",
            "liveness_reason": "Runtime recorded a terminal failed state",
            "confidence_updated_at": "2026-05-23T11:51:50.330Z",
            "heartbeat_age_seconds": 260,
            "source": "runtime-command-runner",
            "mutates_authority_state": false,
            "work_origin": "automatic",
            "reason": "Hosted command execution requires foreground Runtime work registration.",
            "source_action": "runtime.000300.runtime_supervisor_test",
            "file_change_expected": false,
            "changed_files": false,
            "follow_up_created": false,
            "required_registration": true
          },
          {
            "id": "d5371ffa-a0d9-4737-b6e4-c1bc8af2802c",
            "type": "diagnosis",
            "label": "Preparing command: git",
            "detail": "Runtime command runner registered parent work for git.",
            "actor_role": "Orchestrator",
            "status": "completed",
            "artifact": {
              "type": "hosted-command",
              "id": "git"
            },
            "started_at": "2026-05-23T11:42:03.243Z",
            "last_heartbeat_at": "2026-05-23T11:47:29.900Z",
            "completed_at": "2026-05-23T11:47:29.900Z",
            "elapsed_seconds": 587,
            "duration_seconds": 326,
            "liveness_confidence": "proven_complete",
            "liveness_reason": "Runtime recorded a terminal completed state",
            "confidence_updated_at": "2026-05-23T11:51:50.330Z",
            "heartbeat_age_seconds": 260,
            "source": "runtime-command-runner",
            "mutates_authority_state": false,
            "work_origin": "ad_hoc",
            "reason": "Hosted command execution had no fresh accepted parent work; Runtime command runner registered ad hoc parent work.",
            "source_action": "runtime.command.parent",
            "file_change_expected": false,
            "changed_files": false,
            "follow_up_created": false,
            "required_registration": true
          }
        ]
      },
      "foreground_work_session": {
        "schema_version": "runtime-work-session-v1",
        "id": "93bf9776-63b0-4537-88da-ce5f1c9f337e",
        "status": "active",
        "actor_role": "Orchestrator",
        "activity": "implementing",
        "detail": "Hosted command work is being registered before running git.",
        "scope": "hosted-command",
        "artifact": {
          "type": "hosted-command",
          "id": "git"
        },
        "started_at": "2026-05-23T11:42:03.162Z",
        "last_heartbeat_at": "2026-05-23T11:52:02.839Z",
        "elapsed_seconds": 587,
        "stale_after_seconds": 3600,
        "liveness_confidence": "fresh",
        "liveness_reason": "active heartbeat is within the stale threshold",
        "confidence_updated_at": "2026-05-23T11:51:50.330Z",
        "heartbeat_age_seconds": 0,
        "source": "runtime-command-runner",
        "mutates_authority_state": false,
        "work_origin": "ad_hoc",
        "reason": "Hosted command execution had no fresh accepted parent work; Runtime command runner registered ad hoc parent work.",
        "source_action": "runtime.command.parent",
        "file_change_expected": false,
        "changed_files": false,
        "follow_up_created": false,
        "required_registration": true,
        "recent_steps": [
          {
            "id": "15364265-608b-46e6-91ee-90472174d879",
            "type": "diagnosis",
            "label": "Running command: node",
            "detail": "Command exited with code 1.",
            "actor_role": "Orchestrator",
            "status": "failed",
            "artifact": {
              "type": "hosted-command",
              "id": "node"
            },
            "started_at": "2026-05-23T11:47:29.900Z",
            "last_heartbeat_at": "2026-05-23T11:47:29.900Z",
            "failed_at": "2026-05-23T11:47:32.260Z",
            "elapsed_seconds": 260,
            "duration_seconds": 2,
            "liveness_confidence": "failed",
            "liveness_reason": "Runtime recorded a terminal failed state",
            "confidence_updated_at": "2026-05-23T11:51:50.330Z",
            "heartbeat_age_seconds": 260,
            "source": "runtime-command-runner",
            "mutates_authority_state": false,
            "work_origin": "automatic",
            "reason": "Hosted command execution requires foreground Runtime work registration.",
            "source_action": "runtime.000300.runtime_supervisor_test",
            "file_change_expected": false,
            "changed_files": false,
            "follow_up_created": false,
            "required_registration": true
          },
          {
            "id": "d5371ffa-a0d9-4737-b6e4-c1bc8af2802c",
            "type": "diagnosis",
            "label": "Preparing command: git",
            "detail": "Runtime command runner registered parent work for git.",
            "actor_role": "Orchestrator",
            "status": "completed",
            "artifact": {
              "type": "hosted-command",
              "id": "git"
            },
            "started_at": "2026-05-23T11:42:03.243Z",
            "last_heartbeat_at": "2026-05-23T11:47:29.900Z",
            "completed_at": "2026-05-23T11:47:29.900Z",
            "elapsed_seconds": 587,
            "duration_seconds": 326,
            "liveness_confidence": "proven_complete",
            "liveness_reason": "Runtime recorded a terminal completed state",
            "confidence_updated_at": "2026-05-23T11:51:50.330Z",
            "heartbeat_age_seconds": 260,
            "source": "runtime-command-runner",
            "mutates_authority_state": false,
            "work_origin": "ad_hoc",
            "reason": "Hosted command execution had no fresh accepted parent work; Runtime command runner registered ad hoc parent work.",
            "source_action": "runtime.command.parent",
            "file_change_expected": false,
            "changed_files": false,
            "follow_up_created": false,
            "required_registration": true
          }
        ]
      },
      "foreground_work_step": null,
      "child_work": null,
      "restored_parent_expected": false,
      "unsupported_parallel_detected": false,
      "unsupported_parallel_roles_detected": false,
      "process_fanout_detected": false,
      "unsupported_process_concurrency_detected": false,
      "unsupported_parallel_session_ids": [],
      "active_task_processes": [
        {
          "id": "session:93bf9776-63b0-4537-88da-ce5f1c9f337e",
          "kind": "session",
          "session_id": "93bf9776-63b0-4537-88da-ce5f1c9f337e",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "active",
          "label": "Orchestrator implementing",
          "detail": "Hosted command work is being registered before running git.",
          "source": "runtime-command-runner",
          "source_action": "runtime.command.parent",
          "work_origin": "ad_hoc",
          "artifact": {
            "type": "hosted-command",
            "id": "git"
          },
          "started_at": "2026-05-23T11:42:03.162Z",
          "last_heartbeat_at": "2026-05-23T11:52:02.839Z",
          "heartbeat_age_seconds": 0,
          "liveness_confidence": "fresh",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "session:a2fb6585-f791-4a6c-9df3-02bbdbad3026",
          "kind": "session",
          "session_id": "a2fb6585-f791-4a6c-9df3-02bbdbad3026",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "completed",
          "label": "Orchestrator implementing",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.entrypoint_coverage",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "node"
          },
          "started_at": "2026-05-23T11:51:53.209Z",
          "last_heartbeat_at": "2026-05-23T11:51:58.298Z",
          "completed_at": "2026-05-23T11:52:02.839Z",
          "terminal_age_seconds": 0,
          "heartbeat_age_seconds": 0,
          "liveness_confidence": "proven_complete",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "step:691881dd-5ced-49b4-bc42-6bc4a3b1a8aa",
          "kind": "step",
          "session_id": "a2fb6585-f791-4a6c-9df3-02bbdbad3026",
          "step_id": "691881dd-5ced-49b4-bc42-6bc4a3b1a8aa",
          "actor_role": "Orchestrator",
          "activity": "diagnosis",
          "status": "completed",
          "label": "diagnosis",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.entrypoint_coverage",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "node"
          },
          "started_at": "2026-05-23T11:51:53.228Z",
          "last_heartbeat_at": "2026-05-23T11:51:58.298Z",
          "completed_at": "2026-05-23T11:52:02.813Z",
          "terminal_age_seconds": 0,
          "heartbeat_age_seconds": 0,
          "liveness_confidence": "proven_complete",
          "parent_session_id": "a2fb6585-f791-4a6c-9df3-02bbdbad3026",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "session:94afe676-6f95-42c2-ad6b-6683407750c8",
          "kind": "session",
          "session_id": "94afe676-6f95-42c2-ad6b-6683407750c8",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "completed",
          "label": "Orchestrator implementing",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_cfd_0024_rest",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "started_at": "2026-05-23T11:50:38.124Z",
          "last_heartbeat_at": "2026-05-23T11:50:38.143Z",
          "completed_at": "2026-05-23T11:50:38.172Z",
          "terminal_age_seconds": 72,
          "heartbeat_age_seconds": 72,
          "liveness_confidence": "proven_complete",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "step:ac7dda9e-06b4-4df3-892b-41ec9fe0c1e7",
          "kind": "step",
          "session_id": "94afe676-6f95-42c2-ad6b-6683407750c8",
          "step_id": "ac7dda9e-06b4-4df3-892b-41ec9fe0c1e7",
          "actor_role": "Orchestrator",
          "activity": "diagnosis",
          "status": "completed",
          "label": "diagnosis",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_cfd_0024_rest",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "started_at": "2026-05-23T11:50:38.143Z",
          "last_heartbeat_at": "2026-05-23T11:50:38.143Z",
          "completed_at": "2026-05-23T11:50:38.158Z",
          "terminal_age_seconds": 72,
          "heartbeat_age_seconds": 72,
          "liveness_confidence": "proven_complete",
          "parent_session_id": "94afe676-6f95-42c2-ad6b-6683407750c8",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "session:07d1e53e-f33c-45c6-a049-5067d68df59d",
          "kind": "session",
          "session_id": "07d1e53e-f33c-45c6-a049-5067d68df59d",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "completed",
          "label": "Orchestrator implementing",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_cfd_0024",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "started_at": "2026-05-23T11:50:30.095Z",
          "last_heartbeat_at": "2026-05-23T11:50:30.126Z",
          "completed_at": "2026-05-23T11:50:30.186Z",
          "terminal_age_seconds": 80,
          "heartbeat_age_seconds": 80,
          "liveness_confidence": "proven_complete",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "step:f5fc5c43-a92c-44a8-9c77-9572db9b81cc",
          "kind": "step",
          "session_id": "07d1e53e-f33c-45c6-a049-5067d68df59d",
          "step_id": "f5fc5c43-a92c-44a8-9c77-9572db9b81cc",
          "actor_role": "Orchestrator",
          "activity": "diagnosis",
          "status": "completed",
          "label": "diagnosis",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_cfd_0024",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "started_at": "2026-05-23T11:50:30.126Z",
          "last_heartbeat_at": "2026-05-23T11:50:30.126Z",
          "completed_at": "2026-05-23T11:50:30.157Z",
          "terminal_age_seconds": 80,
          "heartbeat_age_seconds": 80,
          "liveness_confidence": "proven_complete",
          "parent_session_id": "07d1e53e-f33c-45c6-a049-5067d68df59d",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "session:53e8de13-81f8-4a4a-ac78-590393d615f9",
          "kind": "session",
          "session_id": "53e8de13-81f8-4a4a-ac78-590393d615f9",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "completed",
          "label": "Orchestrator implementing",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_cfd",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "rg"
          },
          "started_at": "2026-05-23T11:50:19.199Z",
          "last_heartbeat_at": "2026-05-23T11:50:19.416Z",
          "completed_at": "2026-05-23T11:50:19.416Z",
          "terminal_age_seconds": 90,
          "heartbeat_age_seconds": 90,
          "liveness_confidence": "proven_complete",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "session:00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "kind": "session",
          "session_id": "00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "completed",
          "label": "Orchestrator implementing",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.date",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "date"
          },
          "started_at": "2026-05-23T11:50:19.285Z",
          "last_heartbeat_at": "2026-05-23T11:50:19.396Z",
          "completed_at": "2026-05-23T11:50:19.540Z",
          "terminal_age_seconds": 90,
          "heartbeat_age_seconds": 90,
          "liveness_confidence": "proven_complete",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "step:51259f01-91f4-4d38-8b11-8ebcbaac64a4",
          "kind": "step",
          "session_id": "00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "step_id": "51259f01-91f4-4d38-8b11-8ebcbaac64a4",
          "actor_role": "Orchestrator",
          "activity": "diagnosis",
          "status": "completed",
          "label": "diagnosis",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.date",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "date"
          },
          "started_at": "2026-05-23T11:50:19.396Z",
          "last_heartbeat_at": "2026-05-23T11:50:19.396Z",
          "completed_at": "2026-05-23T11:50:19.497Z",
          "terminal_age_seconds": 90,
          "heartbeat_age_seconds": 90,
          "liveness_confidence": "proven_complete",
          "parent_session_id": "00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "step:bffe41cc-a845-44bd-bf4a-b74d34aeef8b",
          "kind": "step",
          "session_id": "00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "step_id": "bffe41cc-a845-44bd-bf4a-b74d34aeef8b",
          "actor_role": "Orchestrator",
          "activity": "diagnosis",
          "status": "completed",
          "label": "diagnosis",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_cfd",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "rg"
          },
          "started_at": "2026-05-23T11:50:19.297Z",
          "last_heartbeat_at": "2026-05-23T11:50:19.297Z",
          "completed_at": "2026-05-23T11:50:19.341Z",
          "terminal_age_seconds": 90,
          "heartbeat_age_seconds": 91,
          "liveness_confidence": "proven_complete",
          "parent_session_id": "00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        },
        {
          "id": "session:1b59ea08-d567-46a0-9c24-e583f168c535",
          "kind": "session",
          "session_id": "1b59ea08-d567-46a0-9c24-e583f168c535",
          "actor_role": "Orchestrator",
          "activity": "implementing",
          "status": "completed",
          "label": "Orchestrator implementing",
          "detail": "Hosted command execution requires foreground Runtime work registration.",
          "source": "runtime-command-runner",
          "source_action": "runtime.000300.inspect_chunk",
          "work_origin": "automatic",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "started_at": "2026-05-23T11:50:19.104Z",
          "last_heartbeat_at": "2026-05-23T11:50:19.249Z",
          "completed_at": "2026-05-23T11:50:19.249Z",
          "terminal_age_seconds": 91,
          "heartbeat_age_seconds": 91,
          "liveness_confidence": "proven_complete",
          "foreground": false,
          "registered_work": true,
          "mutates_authority_state": false
        }
      ],
      "live_work_display_items": [
        {
          "id": "registered:session:a2fb6585-f791-4a6c-9df3-02bbdbad3026",
          "kind": "registered_work",
          "trust": "accepted",
          "role": "Orchestrator",
          "category": "Unknown",
          "origin": "automatic",
          "status": "completed",
          "liveness_confidence": "proven_complete",
          "action_title": "Orchestrator · Unknown · completed",
          "action_body": "Hosted command execution requires foreground Runtime work registration.",
          "action_meta": "hosted-command:node / runtime.000300.entrypoint_coverage",
          "artifact": {
            "type": "hosted-command",
            "id": "node"
          },
          "duration_seconds": 9,
          "source_action": "runtime.000300.entrypoint_coverage",
          "live_visible": true,
          "display_until": "2026-05-23T11:53:02.839Z",
          "terminal_age_seconds": 0,
          "mutates_authority_state": false,
          "display_transparent": false,
          "wrapper_only": false,
          "sessions": [
            {
              "role": "Orchestrator",
              "category": "Unknown",
              "source_action": "runtime.000300.entrypoint_coverage",
              "status": "completed",
              "activity": "diagnosis",
              "artifact": {
                "type": "hosted-command",
                "id": "node"
              },
              "liveness_confidence": "proven_complete",
              "duration_seconds": 9
            }
          ]
        },
        {
          "id": "registered:session:94afe676-6f95-42c2-ad6b-6683407750c8",
          "kind": "registered_work",
          "trust": "accepted",
          "role": "Orchestrator",
          "category": "Unknown",
          "origin": "automatic",
          "status": "completed",
          "liveness_confidence": "proven_complete",
          "action_title": "Orchestrator · Unknown · completed",
          "action_body": "Hosted command execution requires foreground Runtime work registration.",
          "action_meta": "hosted-command:sed / runtime.000300.inspect_cfd_0024_rest",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "duration_seconds": 0,
          "source_action": "runtime.000300.inspect_cfd_0024_rest",
          "live_visible": false,
          "display_until": "2026-05-23T11:51:38.172Z",
          "terminal_age_seconds": 72,
          "mutates_authority_state": false,
          "display_transparent": false,
          "wrapper_only": false,
          "sessions": [
            {
              "role": "Orchestrator",
              "category": "Unknown",
              "source_action": "runtime.000300.inspect_cfd_0024_rest",
              "status": "completed",
              "activity": "diagnosis",
              "artifact": {
                "type": "hosted-command",
                "id": "sed"
              },
              "liveness_confidence": "proven_complete",
              "duration_seconds": 0
            }
          ]
        },
        {
          "id": "registered:session:07d1e53e-f33c-45c6-a049-5067d68df59d",
          "kind": "registered_work",
          "trust": "accepted",
          "role": "Orchestrator",
          "category": "Unknown",
          "origin": "automatic",
          "status": "completed",
          "liveness_confidence": "proven_complete",
          "action_title": "Orchestrator · Unknown · completed",
          "action_body": "Hosted command execution requires foreground Runtime work registration.",
          "action_meta": "hosted-command:sed / runtime.000300.inspect_cfd_0024",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "duration_seconds": 0,
          "source_action": "runtime.000300.inspect_cfd_0024",
          "live_visible": false,
          "display_until": "2026-05-23T11:51:30.186Z",
          "terminal_age_seconds": 80,
          "mutates_authority_state": false,
          "display_transparent": false,
          "wrapper_only": false,
          "sessions": [
            {
              "role": "Orchestrator",
              "category": "Unknown",
              "source_action": "runtime.000300.inspect_cfd_0024",
              "status": "completed",
              "activity": "diagnosis",
              "artifact": {
                "type": "hosted-command",
                "id": "sed"
              },
              "liveness_confidence": "proven_complete",
              "duration_seconds": 0
            }
          ]
        },
        {
          "id": "registered:session:53e8de13-81f8-4a4a-ac78-590393d615f9",
          "kind": "registered_work",
          "trust": "accepted",
          "role": "Orchestrator",
          "category": "Unknown",
          "origin": "automatic",
          "status": "completed",
          "liveness_confidence": "proven_complete",
          "action_title": "Orchestrator · Unknown · completed",
          "action_body": "Hosted command execution requires foreground Runtime work registration.",
          "action_meta": "hosted-command:rg / runtime.000300.inspect_cfd",
          "artifact": {
            "type": "hosted-command",
            "id": "rg"
          },
          "duration_seconds": 0,
          "source_action": "runtime.000300.inspect_cfd",
          "live_visible": false,
          "display_until": "2026-05-23T11:51:19.416Z",
          "terminal_age_seconds": 90,
          "mutates_authority_state": false,
          "display_transparent": false,
          "wrapper_only": false,
          "sessions": []
        },
        {
          "id": "registered:session:00412d88-e0fa-40a0-846f-dfc42c37e6cb",
          "kind": "registered_work",
          "trust": "accepted",
          "role": "Orchestrator",
          "category": "Unknown",
          "origin": "automatic",
          "status": "completed",
          "liveness_confidence": "proven_complete",
          "action_title": "Orchestrator · Unknown · completed",
          "action_body": "Hosted command execution requires foreground Runtime work registration.",
          "action_meta": "hosted-command:date / runtime.000300.date",
          "artifact": {
            "type": "hosted-command",
            "id": "date"
          },
          "duration_seconds": 0,
          "source_action": "runtime.000300.date",
          "live_visible": false,
          "display_until": "2026-05-23T11:51:19.540Z",
          "terminal_age_seconds": 90,
          "mutates_authority_state": false,
          "display_transparent": false,
          "wrapper_only": false,
          "sessions": [
            {
              "role": "Orchestrator",
              "category": "Unknown",
              "source_action": "runtime.000300.date",
              "status": "completed",
              "activity": "diagnosis",
              "artifact": {
                "type": "hosted-command",
                "id": "date"
              },
              "liveness_confidence": "proven_complete",
              "duration_seconds": 0
            },
            {
              "role": "Orchestrator",
              "category": "Unknown",
              "source_action": "runtime.000300.inspect_cfd",
              "status": "completed",
              "activity": "diagnosis",
              "artifact": {
                "type": "hosted-command",
                "id": "rg"
              },
              "liveness_confidence": "proven_complete",
              "duration_seconds": 0
            }
          ]
        },
        {
          "id": "registered:session:1b59ea08-d567-46a0-9c24-e583f168c535",
          "kind": "registered_work",
          "trust": "accepted",
          "role": "Orchestrator",
          "category": "Unknown",
          "origin": "automatic",
          "status": "completed",
          "liveness_confidence": "proven_complete",
          "action_title": "Orchestrator · Unknown · completed",
          "action_body": "Hosted command execution requires foreground Runtime work registration.",
          "action_meta": "hosted-command:sed / runtime.000300.inspect_chunk",
          "artifact": {
            "type": "hosted-command",
            "id": "sed"
          },
          "duration_seconds": 0,
          "source_action": "runtime.000300.inspect_chunk",
          "live_visible": false,
          "display_until": "2026-05-23T11:51:19.249Z",
          "terminal_age_seconds": 91,
          "mutates_authority_state": false,
          "display_transparent": false,
          "wrapper_only": false,
          "sessions": []
        }
      ],
      "hosted_codex_activity": {
        "schema_version": "runtime-hosted-codex-activity-diagnostic-v1",
        "source": "codex_tui_log",
        "status": "codex_activity_detected",
        "detected_at": "2026-05-23T11:51:52.724297Z",
        "heartbeat_age_seconds": 0,
        "tool_name": "exec_command",
        "action_summary": "exec_command: node ai/runtime/dist/cli.js command run --source-action runtime.000300.entrypoint_coverage -- node ai/runtime/dist/cli.js work-registration entrypoint-coverage --write --report ai/ (/workspace)",
        "registered_work_present": true,
        "accepted_as_work": false,
        "confidence": "medium",
        "role_unknown": true,
        "source_action_unknown": true,
        "retention_seconds": 300,
        "notes": [
          "Recent hosted Codex tool activity was detected, but registered Runtime work remains authoritative.",
          "Source is the bounded Codex TUI log tail; canonical enforcement still belongs to Runtime work contracts and entrypoint wrappers."
        ],
        "mutates_authority_state": false
      },
      "notes": [],
      "mutates_authority_state": false
    },
    "role_activity": {
      "schema_version": "runtime-role-activity-v1",
      "source": "runtime-core",
      "coordination_owner_role": "Orchestrator",
      "execution_owner_role": "Developer",
      "items": [
        {
          "key": "requirements",
          "role": "Requirements",
          "label": "Requirements",
          "status": "not_applicable",
          "activity": "not_used",
          "scope": "requirement",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "requirements_review",
          "role": "Requirements Review",
          "label": "Requirements Review",
          "status": "not_applicable",
          "activity": "not_used",
          "scope": "requirement",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "prompt_synthesizer",
          "role": "Prompt Synthesizer",
          "label": "Prompt Synthesizer",
          "status": "not_applicable",
          "activity": "not_used",
          "scope": "requirement",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "consultant_checkpoint",
          "role": "Consultant Checkpoint",
          "label": "Consultant Checkpoint",
          "status": "not_applicable",
          "activity": "not_used",
          "scope": "work_package",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "orchestrator",
          "role": "Orchestrator",
          "label": "Orchestrator",
          "status": "active",
          "activity": "coordinating",
          "scope": "chunk",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": "Hosted command work is being registered before running git."
        },
        {
          "key": "chunk_planner",
          "role": "Chunk Planner",
          "label": "Chunk Planner",
          "status": "passed",
          "activity": "planned",
          "scope": "work_package",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": "Chunk plan exists"
        },
        {
          "key": "developer",
          "role": "Developer",
          "label": "Developer",
          "status": "scheduled",
          "activity": "assigned",
          "scope": "chunk",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "qa",
          "role": "QA",
          "label": "QA",
          "status": "scheduled",
          "activity": "scheduled_after_implementation",
          "scope": "chunk",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "runtime_executor",
          "role": "Runtime Executor",
          "label": "Runtime Executor",
          "status": "waiting",
          "activity": "validating",
          "scope": "runtime",
          "reference": {
            "type": "runtime"
          },
          "detail": "Validation needs attention"
        },
        {
          "key": "dispatcher",
          "role": "Dispatcher",
          "label": "Dispatcher",
          "status": "idle",
          "activity": "idle",
          "scope": "dispatcher",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        },
        {
          "key": "operator",
          "role": "Operator",
          "label": "Operator",
          "status": "idle",
          "activity": "idle",
          "scope": "approval",
          "reference": {
            "type": "chunk",
            "path": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md"
          },
          "detail": ""
        }
      ],
      "inference_policy": "Runtime-owned projection; frontend must not infer role activity from paths, labels, or owner strings."
    },
    "consultant_checkpoints": {
      "schema_version": "consultant-checkpoint-status-v1",
      "source": "runtime-core",
      "enforcement": "Enforced",
      "mode": "manual_only",
      "external_api_integration": false,
      "autonomous_consultant_calls": false,
      "shell_authority_allowed": false,
      "slots": {
        "requirement_shaping": {
          "status": "inactive",
          "mode": "manual_only",
          "blocks_workflow": false,
          "description": "Manual requirement-shaping consultant checkpoint slot reserved for future activation."
        },
        "plan_review": {
          "status": "active",
          "mode": "manual_only",
          "blocks_workflow": true,
          "blocks_phase": "implementation",
          "waiting_state": "waiting_for_manual_consultant_review",
          "description": "Manual plan review checkpoint after planning evidence and before implementation."
        },
        "completion_review": {
          "status": "inactive",
          "mode": "manual_only",
          "blocks_workflow": false,
          "description": "Manual completion/iteration review checkpoint slot reserved for future activation."
        }
      },
      "active_slots": [
        "plan_review"
      ],
      "runtime_state_path": ".tmp/consultant-checkpoints",
      "durable_reports_path": "ai/reports/consultant-checkpoints",
      "operations": {
        "status": {
          "api_method": "consultantCheckpoints.status",
          "execution_class": "readonly_parallel",
          "lease_required": false,
          "mutation_class": "read_only"
        },
        "export_packet": {
          "api_method": "consultantCheckpoints.exportPacket",
          "execution_class": "readonly_parallel",
          "lease_required": false,
          "mutation_class": "read_only"
        },
        "validate_packet": {
          "api_method": "consultantCheckpoints.validatePacket",
          "execution_class": "readonly_parallel",
          "lease_required": false,
          "mutation_class": "read_only"
        },
        "import_response": {
          "api_method": "consultantCheckpoints.importResponse",
          "execution_class": "singleton_per_checkpoint_or_plan",
          "lease_required": true,
          "mutation_class": "runtime_state_mutation",
          "idempotency": "content_hash"
        },
        "list_responses": {
          "api_method": "consultantCheckpoints.listResponses",
          "execution_class": "readonly_parallel",
          "lease_required": false,
          "mutation_class": "read_only"
        },
        "show_response": {
          "api_method": "consultantCheckpoints.showResponse",
          "execution_class": "readonly_parallel",
          "lease_required": false,
          "mutation_class": "read_only"
        },
        "record_plan_revision_recommendation": {
          "api_method": "consultantCheckpoints.recordPlanRevisionRecommendation",
          "execution_class": "singleton_per_checkpoint_or_plan",
          "lease_required": true,
          "mutation_class": "runtime_state_mutation",
          "idempotency": "response_id"
        }
      },
      "mutates_authority_state": false
    },
    "runtime_freshness": {
      "active_generation": {
        "schema_version": "runtime-active-generation-v1",
        "source": "runtime-core",
        "path": "[redacted-path]",
        "exists": true,
        "generation": "1779536920015-87208-8f4f5221627a",
        "source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
        "build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
        "manifest_path": "[redacted-path]",
        "immutable_generation_dir": "[redacted-path]",
        "immutable_dist_dir": "[redacted-path]",
        "dist_symlink": "[redacted-path]",
        "activation_model": "immutable_generation_symlink"
      },
      "build_info": {
        "schema_version": "runtime-build-info-v1",
        "source": "runtime-core",
        "manifest_path": "[redacted-path]",
        "manifest_exists": true,
        "generation": "1779536920015-87208-8f4f5221627a",
        "source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
        "build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
        "current_source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
        "current_build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
        "atomic_swap": true,
        "immutable_generation": true,
        "active_generation": "1779536920015-87208-8f4f5221627a",
        "immutable_generation_dir": "[redacted-path]",
        "activation_model": "immutable_generation_symlink"
      },
      "build_state": {
        "schema_version": "runtime-atomic-build-status-v1",
        "source": "runtime-core",
        "status": "ready",
        "errors": [],
        "build_info": {
          "schema_version": "runtime-build-info-v1",
          "source": "runtime-core",
          "manifest_path": "[redacted-path]",
          "manifest_exists": true,
          "generation": "1779536920015-87208-8f4f5221627a",
          "source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
          "build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
          "current_source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
          "current_build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
          "atomic_swap": true,
          "immutable_generation": true,
          "active_generation": "1779536920015-87208-8f4f5221627a",
          "immutable_generation_dir": "[redacted-path]",
          "activation_model": "immutable_generation_symlink"
        },
        "build_state": {
          "schema_version": "runtime-build-state-v1",
          "source": "runtime-core",
          "state_path": "[redacted-path]",
          "status": "ready",
          "generation": "1779536920015-87208-8f4f5221627a",
          "build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
          "source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
          "atomic_swap": true,
          "immutable_generation": true,
          "immutable_generation_dir": "[redacted-path]",
          "active_build": false
        },
        "partial_dist_protection": "immutable_generation_active_symlink",
        "immutable_generation_status": {
          "schema_version": "runtime-generation-status-v1",
          "source": "runtime-core",
          "status": "ready",
          "generation": "1779536920015-87208-8f4f5221627a",
          "active_generation": {
            "schema_version": "runtime-active-generation-v1",
            "source": "runtime-core",
            "path": "[redacted-path]",
            "exists": true,
            "generation": "1779536920015-87208-8f4f5221627a",
            "source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
            "build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
            "manifest_path": "[redacted-path]",
            "immutable_generation_dir": "[redacted-path]",
            "immutable_dist_dir": "[redacted-path]",
            "dist_symlink": "[redacted-path]",
            "activation_model": "immutable_generation_symlink"
          },
          "dist_is_symlink": true,
          "immutable_generation": true,
          "replay_safe": true,
          "errors": [],
          "manifest": {
            "schema_version": "runtime-build-manifest-inspection-v1",
            "source": "runtime-core",
            "generation": "1779536920015-87208-8f4f5221627a",
            "manifest_path": "[redacted-path]",
            "manifest_exists": true,
            "manifest": {
              "schema_version": "runtime-build-manifest-v1",
              "source": "runtime-atomic-build",
              "generated_at": "2026-05-23T11:48:43.192Z",
              "generation": "1779536920015-87208-8f4f5221627a",
              "source_hash": "8f4f5221627a62db044859599177ae2b5d398d55d2a6504aad364ae58895d354",
              "build_hash": "2c6943346e48ae6289bc58f37f554c7ef767517d169e69dc66183af442393d03",
              "staging_dir": "[redacted-path]",
              "immutable_generation_dir": "[redacted-path]",
              "immutable_dist_dir": "[redacted-path]",
              "dist_dir": "[redacted-path]",
              "atomic_swap": true,
              "immutable_generation": true
            }
          }
        }
      },
      "status": "ready"
    },
    "runtime_services": {
      "status": "degraded",
      "services": [
        {
          "name": "operator-daemon",
          "status": "running or recently active",
          "health": "healthy",
          "raw_health": "healthy",
          "heartbeat_age_seconds": "1",
          "pending": 0,
          "stale": 0,
          "failed": 0,
          "state_dir": "/workspace/.tmp/operator-daemon",
          "last_result": ""
        },
        {
          "name": "runtime-supervisor",
          "status": "running",
          "health": "healthy",
          "raw_health": "healthy",
          "heartbeat_age_seconds": "0",
          "pending": 0,
          "stale": 0,
          "failed": 0,
          "state_dir": "/workspace/.tmp/runtime-supervisor",
          "last_result": "dev_server_restart target must be frontend, backend, or all"
        },
        {
          "name": "approved-action-dispatcher",
          "state_dir": "/workspace/.tmp/approved-action-dispatcher",
          "status": "running",
          "health": "degraded",
          "raw_health": "degraded",
          "heartbeat_age_seconds": "4",
          "pending": 0,
          "stale": 2,
          "failed": 2,
          "results": 190,
          "approved_pending": 0,
          "approved_stale": 2,
          "failed_open": 2,
          "last_result": "/workspace/.tmp/approved-action-dispatcher/results/simyes061158.env",
          "last_result_state": "succeeded",
          "latest": {
            "id": "simyes061158",
            "action": "simulated_approved_action",
            "status": "succeeded",
            "raw_status": "success",
            "message": "simulated approved action executed",
            "completed_at": "1778652719",
            "path": "/workspace/.tmp/approved-action-dispatcher/results/simyes061158.env"
          },
          "authority_owner": "approved-action-dispatcher",
          "canonical_surface": "Runtime API dispatcher.status",
          "shell_status_surface": "compatibility_only",
          "mutates_on_read": false,
          "last_result_status": "success"
        },
        {
          "name": "frontend-dev-server",
          "status": "reachable",
          "health": "healthy",
          "raw_health": "healthy",
          "heartbeat_age_seconds": "unknown",
          "pending": 0,
          "stale": 0,
          "failed": 0,
          "state_dir": ".tmp/runtime-supervisor",
          "last_result": "HTTP 200 at http://127.0.0.1:4220/",
          "functional_probe_status": "passed",
          "functional_probe_reason": "http_200",
          "functional_probe_duration_ms": 55,
          "port": 4220,
          "url": "http://127.0.0.1:4220/",
          "supervised_pid_file": true,
          "restart_action": "dev_server_restart"
        },
        {
          "name": "telegram-bridge",
          "status": "RUNNING",
          "health": "degraded",
          "raw_health": "degraded",
          "heartbeat_age_seconds": "20",
          "pending": 0,
          "stale": 0,
          "failed": 0,
          "state_dir": "/workspace/.tmp/telegram-dev-bridge",
          "last_result": "",
          "delivery_lag_status": "healthy",
          "outbox_count": 0,
          "oldest_outbox_age_seconds": "unknown",
          "latest_sent_at": 1779441271,
          "latest_message_id": "1517",
          "latest_sent_age_seconds": 95858,
          "failed_count": 0,
          "last_send_error": ""
        },
        {
          "name": "runtime-api",
          "status": "running",
          "health": "healthy",
          "raw_health": "running",
          "heartbeat_age_seconds": "1",
          "pending": 0,
          "stale": 0,
          "failed": 0,
          "state_dir": ".tmp/runtime-api",
          "last_result": "",
          "functional_probe_status": "passed",
          "functional_probe_reason": "health_snapshot_ok",
          "functional_probe_duration_ms": 7557,
          "functional_probe_timed_out": false,
          "freshness_status": "healthy",
          "restart_required": false,
          "recovery_state": "not_requested",
          "watchdog_status": "healthy",
          "watchdog_recovery_allowed": false,
          "watchdog_recommended_action": "none",
          "watchdog_reason": "Runtime API daemon is alive and heartbeat is fresh.",
          "watchdog_circuit_breaker_open": false,
          "watchdog_attempts_in_window": 0,
          "last_probe_at": "2026-05-17T10:49:00.148Z",
          "error_recent_count": 50,
          "last_error_reason": "write EPIPE",
          "error_log_path": "/workspace/.tmp/runtime-api/errors.jsonl"
        }
      ]
    },
    "dispatcher": {
      "status": "running",
      "health": "degraded",
      "approved_pending": 0,
      "approved_stale": 2,
      "failed_open": 2,
      "last_result_state": "succeeded",
      "failed_then_consumed_count": 5,
      "cfd_0001_relevant": true,
      "actionability": "none",
      "close_commit_gate_reason": "No close/commit dispatcher action is pending.",
      "detail": {
        "name": "approved-action-dispatcher",
        "state_dir": "[redacted-path]",
        "status": "running",
        "health": "degraded",
        "raw_health": "degraded",
        "heartbeat_age_seconds": "3",
        "pending": 0,
        "stale": 2,
        "failed": 2,
        "results": 190,
        "approved_pending": 0,
        "approved_stale": 2,
        "failed_open": 2,
        "last_result": "[redacted-path]",
        "last_result_state": "succeeded",
        "latest": {
          "id": "simyes061158",
          "action": "simulated_approved_action",
          "status": "succeeded",
          "raw_status": "success",
          "message": "simulated approved action executed",
          "completed_at": "1778652719",
          "path": "[redacted-path]"
        },
        "authority_owner": "approved-action-dispatcher",
        "canonical_surface": "Runtime API dispatcher.status",
        "shell_status_surface": "compatibility_only",
        "mutates_on_read": false
      }
    },
    "timeline": {
      "status": "healthy",
      "hot_event_count": 255,
      "hot_window_limit": 250,
      "boundedness_status": "degraded",
      "boundedness_code": "action_timeline_hot_window_unbounded",
      "boundedness_message": "action timeline has 255 hot events; limit is 250",
      "archive_event_count": 1438,
      "current_summary": {
        "count": 250,
        "malformed_count": 0,
        "duplicate_count": 0,
        "by_type": {
          "approved_action_started": 78,
          "approved_action_executed": 70,
          "approved_action_validated": 84,
          "approved_action_failed": 8,
          "approved_action_blocked": 10
        },
        "by_status": {
          "started": 78,
          "success": 154,
          "failed": 8,
          "blocked": 10
        },
        "by_action": {
          "close_commit": 250
        },
        "latest_timestamp": "2026-05-22T09:16:31.522Z",
        "earliest_timestamp": "2026-05-16T23:28:54.824Z"
      },
      "recent_events": [],
      "bounded": true
    },
    "details": {
      "redacted": true,
      "raw_available": false,
      "work_package_context": {
        "selected": {
          "path": "ai/work-packages/active/wp-runtime-governance-architecture-migration.md",
          "file_name": "wp-runtime-governance-architecture-migration.md",
          "status": "Active",
          "created": "2026-05-13",
          "automation_policy": "",
          "commit_policy": "",
          "chunks_remaining": null,
          "current_stop_reason": "",
          "contains_active_chunk": false,
          "is_umbrella": true,
          "classification": "umbrella",
          "selection_priority": 50,
          "selection_reason": "long-running umbrella package"
        },
        "active_chunk": "ai/chunks/active/chunk-000300-runtime-api-watchdog-safe-resurrection-design-cfd-0024.md",
        "current_gate": "implementation",
        "close_commit_gate_reason": "No close/commit dispatcher action is pending.",
        "dispatcher_actionability": "none",
        "workflow_state": "active",
        "work_package_review_pending": false,
        "overlapping_active_records": [
          {
            "path": "ai/work-packages/active/wp-runtime-governance-architecture-migration.md",
            "file_name": "wp-runtime-governance-architecture-migration.md",
            "status": "Active",
            "created": "2026-05-13",
            "automation_policy": "",
            "commit_policy": "",
            "chunks_remaining": null,
            "current_stop_reason": "",
            "contains_active_chunk": false,
            "is_umbrella": true,
            "classification": "umbrella",
            "selection_priority": 50,
            "selection_reason": "long-running umbrella package"
          }
        ]
      },
      "state_vocabulary": {
        "schema_version": "runtime-health-state-vocabulary-v1",
        "source": "runtime-core",
        "overall": [
          "healthy",
          "degraded",
          "blocked",
          "failed",
          "unknown"
        ],
        "workflow": [
          "idle_between_chunks",
          "no_active_chunk",
          "active",
          "ready_for_human_review",
          "waiting_for_close_commit_approval",
          "waiting_for_manual_consultant_review",
          "healthy_waiting"
        ],
        "gate": [
          "not_started",
          "active",
          "passed",
          "idle",
          "waiting",
          "blocked",
          "failed",
          "skipped",
          "degraded"
        ],
        "validation": [
          "passed",
          "degraded",
          "failed",
          "idle",
          "unknown"
        ],
        "scope_rules": [
          "Requirement, Planning, and Consultant Review are plan/work-package scoped gates.",
          "Implementation, QA, Human Review, and Close/Commit are chunk/workflow-cycle scoped gates.",
          "Validation is a runtime/system health dimension and may be degraded even with no active chunk.",
          "Skipped means explicitly skipped by policy, not merely inactive.",
          "Idle/no-active-chunk means no current work for that gate.",
          "Healthy waiting states are not failures."
        ]
      },
      "authority_terminology": {
        "schema_version": "runtime-authority-terminology-v1",
        "source": "runtime-core",
        "authority_mode": [
          "manual",
          "autonomous",
          "unknown"
        ],
        "authority_basis": [
          "operator_approved",
          "deemed",
          "policy_granted",
          "system_recovery",
          "unknown"
        ],
        "rules": [
          "authority_mode is the top-level user-facing category.",
          "authority_basis explains why the mode applies.",
          "deemed is an autonomous authority basis/source, not a user-facing authority mode.",
          "authority_label and audit_label remain audit/detail metadata.",
          "answer_source describes the origin of an approval or answer record."
        ]
      },
      "authority_context": {
        "authority_mode": "manual",
        "authority_basis": "operator_approved",
        "authority_label": "manual_operator_approval",
        "audit_label": "manual_operator_approval",
        "answer_source": "operator",
        "user_facing_authority_value": "manual"
      },
      "role_activity_semantics": {
        "schema_version": "runtime-role-activity-semantics-v1",
        "source": "runtime-core",
        "rules": [
          "Coordination owner and execution owner are distinct.",
          "Role activity is emitted by Runtime Health, not inferred by frontend code.",
          "Only evidence-backed active/waiting roles are marked active or waiting.",
          "Insufficient evidence is represented as idle or omitted, not guessed.",
          "Live in-between Orchestrator/Codex work is represented by runtime_work_session, not by reactivating lifecycle gates."
        ]
      },
      "work_session_semantics": {
        "schema_version": "runtime-work-session-semantics-v1",
        "source": "runtime-core",
        "rules": [
          "Work sessions are operator visibility metadata.",
          "Work sessions do not approve, close, commit, or transition lifecycle state.",
          "Socket.IO events only invalidate; GraphQL/Runtime Health remains canonical truth.",
          "Active work-session indicators become stale after heartbeat expiry.",
          "Parent/child work is projected explicitly; true parallel roles are detected but not claimed as supported."
        ]
      },
      "validation_explanations": [
        {
          "surface": "timeline_boundedness",
          "status": "degraded",
          "code": "action_timeline_hot_window_unbounded",
          "message": "action timeline has 255 hot events; limit is 250",
          "current_count": 255,
          "limit": 250,
          "source": "action_timeline",
          "source_path": ".tmp/action-timeline/timeline.jsonl",
          "recommended_maintenance_action": "Review `node ai/runtime/dist/cli.js timeline archive-plan --json`; run `node ai/runtime/dist/cli.js timeline archive-execute --json` only through the canonical Runtime maintenance workflow when appropriate."
        },
        {
          "surface": "audit_boundedness",
          "status": "degraded",
          "code": "audit_growth_hotspots_present",
          "message": "1 bounded audit growth hotspot(s) require maintenance review.",
          "current_count": 1,
          "limit": 0,
          "source": "runtime_audit_index",
          "recommended_maintenance_action": "Review the specific boundedness surface details before running canonical Runtime maintenance."
        }
      ],
      "carry_forward": {
        "open_count": 23,
        "blocking_open_count": 0,
        "non_blocking_open_count": 23,
        "pending_enforcement_open_count": 1,
        "open_by_type": {
          "follow_up": 16,
          "compatibility": 1,
          "warning": 2,
          "observation": 1,
          "pending_enforcement": 1,
          "advisory": 2
        },
        "items": [
          "cfd-0001: close_commit post-success reconciliation/idempotency anomaly (advisory, non-blocking)",
          "cfd-0005: emergency-only legacy lifecycle shell paths remain (follow_up, non-blocking)",
          "cfd-0006: Runtime Action Panel technical naming compatibility (compatibility, non-blocking)",
          "cfd-0007: backend e2e requires configured test database (warning, non-blocking)",
          "cfd-0008: frontend bundle and Admin Health SCSS warning budgets remain (warning, non-blocking)",
          "cfd-0009: Playwright browser tooling pinning and invocation guidance (observation, non-blocking)",
          "cfd-0011: Runtime Health role activity lacks scheduled and live work-session visibility (follow_up, non-blocking)",
          "cfd-0013: Admin UI style primitives and tab bar polish need centralization audit (follow_up, non-blocking)",
          "cfd-0014: Authenticated browser and Socket.IO E2E live-update proof (follow_up, non-blocking)",
          "cfd-0015: Lifecycle and work-package journal producer coverage (follow_up, non-blocking)",
          "cfd-0016: Dispatcher result journal producer coverage remains (follow_up, non-blocking)",
          "cfd-0020: Assistant final chat summary enforcement remains policy-bound (pending_enforcement, non-blocking)",
          "cfd-0022: Runtime Action Panel needs a small Angular signal facade for route activation and live-state coordination (follow_up, non-blocking)",
          "cfd-0023: Browser proof channel PID 1 zombie debris and large smoke harness remain (follow_up, non-blocking)",
          "cfd-0024: Runtime API autonomous killed-process resurrection proof remains (follow_up, non-blocking)",
          "cfd-0027: Admin Runtime Health page remains a large frontend aggregation component (advisory, non-blocking)",
          "cfd-0028: Backend and Runtime architecture advisory findings need targeted boundary cleanup (advisory, non-blocking)",
          "cfd-0029: Codex compaction must preserve autonomous workflow continuation (follow_up, non-blocking)",
          "cfd-0031: Web console paste can duplicate command submission (follow_up, non-blocking)",
          "cfd-0032: Runtime-owned backlog activation path is missing (follow_up, non-blocking)",
          "cfd-0033: Service recovery policy should grow circuit-breaker and backoff semantics before broader auto-resurrection (follow_up, non-blocking)",
          "cfd-0034: Audit every Runtime and developer entrypoint for automatic work registration coverage (follow_up, non-blocking)",
          "cfd-0035: Minimum downtime reload discipline across Runtime, backend, and frontend (follow_up, non-blocking)",
          "cfd-0036: Canonical command wrapper enforcement for hosted shell execution (follow_up, non-blocking)"
        ],
        "blocking_items": [],
        "non_blocking_items": [
          {
            "id": "cfd-0005",
            "title": "emergency-only legacy lifecycle shell paths remain",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Pending Enforcement",
              "Policy Enforcement"
            ],
            "reason_to_track": "Emergency lifecycle recovery paths are intentionally retained but must not become normal authority-state mutation paths.",
            "next_action": "Keep `activate-chunk.sh` and `complete-chunk.sh` emergency-only and hard-guarded. Replace the remaining activation recovery path with a typed Runtime lifecycle owner only if Draft/Backlog activation becomes normal workflow again.",
            "revisit_trigger": "`ai/commands/activate-chunk.sh` or `ai/commands/complete-chunk.sh` is used outside explicit severe recovery/preapproved dispatcher compatibility, or a typed Draft/Backlog activation owner is added."
          },
          {
            "id": "cfd-0006",
            "title": "Runtime Action Panel technical naming compatibility",
            "severity": "compatibility",
            "item_type": "compatibility",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Details",
              "Handoff"
            ],
            "reason_to_track": "Intentional naming mismatch is useful compatibility debt and should not be forgotten during future route/API or export naming work.",
            "next_action": "Preserve /admin/health compatibility until a dedicated migration chunk proves a safe route/API/file rename; update docs/exports when touched.",
            "revisit_trigger": "A future route/API/component rename, navigation label change, export naming change, or public documentation update touches Runtime Action Panel/Admin Runtime Health naming."
          },
          {
            "id": "cfd-0007",
            "title": "backend e2e requires configured test database",
            "severity": "warning",
            "item_type": "warning",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Validation",
              "Handoff"
            ],
            "reason_to_track": "The condition recurs during validation and can be mistaken for product regression rather than environment setup; skipped e2e means database-backed API coverage was not exercised.",
            "next_action": "Provision the app_test database locally or in CI when database-backed e2e coverage is required; keep yarn env:check and the safe e2e skip warning visible when TEST_DATABASE_URL is absent.",
            "revisit_trigger": "Backend e2e is required for a chunk, CI test database setup changes, or Prisma/database work is planned."
          },
          {
            "id": "cfd-0008",
            "title": "frontend bundle and Admin Health SCSS warning budgets remain",
            "severity": "warning",
            "item_type": "warning",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Bad",
              "Ugly",
              "Validation"
            ],
            "reason_to_track": "Small UI additions can turn warning-level budget debt into noisy validation output or a hard budget error.",
            "next_action": "Plan a focused frontend budget cleanup if warnings worsen, become hard errors, or block UI work.",
            "revisit_trigger": "Runtime Action Panel/App Shell UI changes add significant styles or bundles, or frontend build warnings become operationally noisy."
          },
          {
            "id": "cfd-0009",
            "title": "Playwright browser tooling pinning and invocation guidance",
            "severity": "observation",
            "item_type": "observation",
            "status": "open",
            "source_sections": [
              "Lessons Learned",
              "Carry Forward",
              "Validation"
            ],
            "reason_to_track": "UI QA can regress into false browser-unavailable claims if the pinned command and managed server assumptions are forgotten.",
            "next_action": "Keep using the pinned Playwright command documented in UI/runtime standards until a dedicated dependency/tooling chunk changes it.",
            "revisit_trigger": "UI/browser review policy changes, Docker image Playwright version changes, or browser smoke becomes a hard validation gate."
          },
          {
            "id": "cfd-0011",
            "title": "Runtime Health role activity lacks scheduled and live work-session visibility",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Handoff"
            ],
            "reason_to_track": "Operators need to distinguish role inactivity from planned next-role responsibility and from live in-between Orchestrator/Codex work. Otherwise correct lifecycle states can look like missing activity, while overloading gates or trusting stale client timers would create false active states.",
            "next_action": "Keep automatic work-step emission on Runtime-owned validation, testing, browser-smoke, typed supervisor, summary validation, governance validation, and bounded maintenance paths. Add auto-registration to a future typed QA review executor once that path exists. Consider dispatcher-path registration only inside canonical dispatcher execution without changing approval or close/commit authority. Add a per-role active-step projection only if concurrent role-specific detail is still required. Keep the chunk 000190 liveness-confidence rule enforced: active/blinking UI requires Runtime-provided fresh confidence, and frontend elapsed timers are display-only.\n",
            "revisit_trigger": "Future Runtime Action Panel role activity, QA scheduling, chunk lifecycle, or workflow-state projection work touches role activity semantics."
          },
          {
            "id": "cfd-0013",
            "title": "Admin UI style primitives and tab bar polish need centralization audit",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Handoff"
            ],
            "reason_to_track": "Repeated page-local UI fixes create drift between Admin pages and make future navigation, theming, and connection-status behavior harder to reason about.",
            "next_action": "Audit Admin UI cards, headers, form controls, status dots, connection banners, tab bar style variants, and theme primitives; promote common patterns into shared UI components/classes/services while preserving intentional per-page overrides. Browser-verify the iOS tab bar frost/translucency and adjust the shared tab bar style until it is visually distinct from the custom/floating style. Keep app-shell connection notification and mobile tab-bar behavior centralized rather than adding page-specific recovery or style fixes.",
            "revisit_trigger": "Future Admin UI polish, theme-system, Runtime Action Panel, App Shell, Settings, mobile tab bar, or card/form/status indicator work touches shared visual primitives."
          },
          {
            "id": "cfd-0014",
            "title": "Authenticated browser and Socket.IO E2E live-update proof",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Validation"
            ],
            "reason_to_track": "Socket.IO can be correctly wired in unit tests while browser authentication, room membership, reconnect timing, or app-shell service behavior still prevents live operator updates.",
            "next_action": "Keep the browser proof command available as the baseline live-update regression check. Revisit the duplicate-context current-device-count assertion and backend/browser registry behavior before relying on that proof as non-flaky. Plan separate installed iPhone/PWA proof and restart-recovery proof. Planned Runtime/backend restarts should emit a backend-owned reason/actor before disconnect so the app-shell toast can distinguish intentional maintenance from unexpected connection loss.",
            "revisit_trigger": "Future Socket.IO, auth/session, browser smoke, Runtime Action Panel, or live-update verification work touches authenticated delivery."
          },
          {
            "id": "cfd-0015",
            "title": "Lifecycle and work-package journal producer coverage",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward"
            ],
            "reason_to_track": "Operators expect current gate and work-package state to update live, but lifecycle authority must not be weakened by casual producer hooks.",
            "next_action": "Add journal producers only at canonical work-package lifecycle/archive mutation points, or document compatibility fallback if ownership remains authority-sensitive. Do not add producers at shell compatibility wrappers.",
            "revisit_trigger": "Future work-package lifecycle, archive, Runtime Health, or journal producer work touches active/completed work-package or work-package archive state."
          },
          {
            "id": "cfd-0016",
            "title": "Dispatcher result journal producer coverage remains",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward"
            ],
            "reason_to_track": "Dispatcher results are high-value live surfaces, but producer hooks must not alter approval, close/commit, or dispatcher authority.",
            "next_action": "Move guarded dispatcher result execution to a typed Runtime/Node owner or add a producer at that canonical owner, then mark `approved_action_dispatcher_results` covered. Do not add producer hooks in compatibility wrappers that would obscure dispatcher authority.",
            "revisit_trigger": "Future dispatcher, close/commit, approved-action execution, Telegram/operator notification, Runtime Action Panel human-action, or journal producer work touches dispatcher result execution."
          },
          {
            "id": "cfd-0020",
            "title": "Assistant final chat summary enforcement remains policy-bound",
            "severity": "pending_enforcement",
            "item_type": "pending_enforcement",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Policy Enforcement",
              "Ugly"
            ],
            "reason_to_track": "Operators can miss important Good/Bad/Ugly/Validation/Next context if final chat output drifts away from canonical Runtime summaries, even when the markdown artifact is correct.",
            "next_action": "Prefer rendering or mirroring the canonical Runtime summary for final chat responses; add platform/tooling enforcement if a future integration can validate or generate assistant final responses directly.",
            "revisit_trigger": "Future summary renderer, Codex/assistant integration, workflow-output validator, Telegram details, or final-response automation work can mechanically validate or generate assistant final chat output."
          },
          {
            "id": "cfd-0022",
            "title": "Runtime Action Panel needs a small Angular signal facade for route activation and live-state coordination",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Other"
            ],
            "reason_to_track": "Runtime Action Panel liveness depends on coordinated auth readiness, route activation, socket invalidation, GraphQL refetch, cursor freshness, and diagnostics. Keeping that coordination in scattered components risks stale or empty panels and page-specific fixes. Classic NgRx would add unnecessary boilerplate for this surface, so the preferred path is a lightweight Angular signals facade/store pattern.",
            "next_action": "Keep Runtime Action Center route activation and user actions behind `RuntimeActionCenterFacade`; move additional page-local liveness coordination into the facade only when it simplifies components without making frontend state canonical. Revisit for closure after browser smoke proves the facade path under route reload/reconnect.",
            "revisit_trigger": "Future Runtime Action Panel, app-shell navigation, socket invalidation, GraphQL state, admin auth guard, or frontend state-management work touches page activation or live refetch coordination."
          },
          {
            "id": "cfd-0023",
            "title": "Browser proof channel PID 1 zombie debris and large smoke harness remain",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Bad",
              "Ugly",
              "Carry Forward"
            ],
            "reason_to_track": "The testing channel and browser proof channel are now bounded and fail-fast, but PID 1 zombie debris can still confuse operators and the large Runtime Action Panel browser-smoke harness remains a maintenance hotspot for future reliability proof variants.",
            "next_action": "Keep `ai/commands/runtime-action-panel-browser-smoke.mjs` as the bounded canonical Action Panel browser proof facade over Runtime-owned proof variants. Do not block fresh browser proof solely on old unreapable PID 1 zombie debris when fresh launch succeeds. Revisit only if active Playwright-owned process leaks accumulate again, Chromium fresh launch fails, or the large browser-smoke harness blocks safe maintenance; a true fix for PID 1 defunct debris requires container init/reaper lifecycle work rather than repo-level cleanup.",
            "revisit_trigger": "Future Runtime testing, validation-runner, broad Runtime test, browser smoke, PWA proof, lease cleanup, or fail-fast proof-mode work touches test execution."
          },
          {
            "id": "cfd-0024",
            "title": "Runtime API autonomous killed-process resurrection proof remains",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Other"
            ],
            "reason_to_track": "Runtime Action Panel reliability depends on services failing visibly and recoveries being distinguishable from silent outages. Planned Runtime API restart, controlled local/dev unplanned failure visibility, and safe real killed-process local/dev frontend resurrection are now browser-proven; the remaining gap is unsolicited Runtime API killed-process detection plus an autonomous Runtime-owned resurrection watchdog policy/proof.",
            "next_action": "Keep the chunk 000261 safe local/dev frontend resurrection smoke and browser proof as the baseline killed-process regression. The remaining scope is narrower: implement a Runtime API watchdog policy that observes unsolicited Runtime API daemon death without frontend inference, records planned/manual suppression state, immediate_resurrection_allowed, observed failure, recovery started/completed/failed, and concrete next action in Runtime-owned service status/journal evidence, then proves an autonomous Runtime API resurrection in the browser. Keep `runtime_api_build_reload` generation replacement checks as the planned restart baseline regression. Chunk 000297 confirmed this remains unsafe to prove by killing the Runtime API today: the live daemon is identifiable from `.tmp/runtime-api/pid` and typed planned restart actions exist, but the supervisor loop only executes queued requests and does not yet watch Runtime API liveness, record an unsolicited death policy decision, or autonomously enqueue recovery. Chunk 000300 added the non-destructive Runtime-owned watchdog prerequisite: `runtimeApiWatchdogPolicy`, typed fail-log evidence, planned/manual suppression, heartbeat/pid ownership inspection, cooldown/circuit-breaker fields, Runtime Health service projection fields, an API export, and the `supervisor runtime-api-watchdog-policy` CLI. The remaining scope is now the autonomous supervisor loop plus browser-visible killed-process proof, not the policy/projection design.",
            "revisit_trigger": "Future service restart, frontend dev server, backend API, Runtime supervisor, crash notification, or Action Panel service-status work touches planned/failure notification behavior."
          },
          {
            "id": "cfd-0027",
            "title": "Admin Runtime Health page remains a large frontend aggregation component",
            "severity": "advisory",
            "item_type": "advisory",
            "status": "open",
            "source_sections": [
              "Policy Enforcement",
              "Carry Forward"
            ],
            "reason_to_track": "Large page components are more likely to accumulate data orchestration, template method mappings, and Runtime-specific presentation coupling unless future UI chunks keep moving semantic view models into services, facades, or focused child components.",
            "next_action": "When the next substantial Admin Runtime Health UI change occurs, extract the touched semantic section into a focused computed view model, facade, or child component instead of adding more page-local orchestration.",
            "revisit_trigger": "Future Admin Runtime Health, Runtime Action Center, workflow artifact, service-status, socket diagnostics, or operator message UI work touches the page component or adds new semantic sections."
          },
          {
            "id": "cfd-0028",
            "title": "Backend and Runtime architecture advisory findings need targeted boundary cleanup",
            "severity": "advisory",
            "item_type": "advisory",
            "status": "open",
            "source_sections": [
              "Policy Enforcement",
              "Carry Forward"
            ],
            "reason_to_track": "Without a tracked follow-up, future backend/Runtime work can continue adding orchestration to large services or leaking raw IO/env/shell access through request/projection paths even though the standard now forbids new violations.",
            "next_action": "Treat the backend architecture report as the review entry point for the next touched backend/Runtime area. Fix narrow findings immediately when local and safe; otherwise split the touched hotspot into typed adapters, projection helpers, or Runtime modules under a focused chunk with tests.",
            "revisit_trigger": "Future Admin Runtime Health backend, Runtime API transport, Runtime CLI, Runtime Health snapshot, Runtime supervisor, Socket.IO diagnostics, service-status projection, or backend Runtime bridge work touches one of the reported files or adds new shell/env/tmp access."
          },
          {
            "id": "cfd-0029",
            "title": "Codex compaction must preserve autonomous workflow continuation",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Other"
            ],
            "reason_to_track": "Autonomous package execution should survive context compaction without changing the commanded workflow, otherwise the Action Panel can correctly show registered work while actual Codex execution waits for a new user nudge.",
            "next_action": "Add a Runtime/Codex resume guard that records an autonomous package continuation token in the existing work-registration model and verifies after compaction or Stop/Start that active autonomous chunks resume or are explicitly terminalized as blocked/stale. As part of that chunk, inspect work-registration workflows, schemas, role/activity states, hook adapter states, and Action Panel projections for unused, obsolete, or overly loose states left by previous designs; remove or tighten them where local and safe, and record exact remaining compatibility-only states if any must stay. Add explicit parent/return-role semantics for automatic wrapper sessions so Runtime Supervisor, validation, QA, and browser-proof work can be displayed without erasing the owning Developer/Orchestrator context. Prove that role cards do not disappear during wrapper start, completion, read-model refresh, and browser refetch. Keep deterministic capture for hosted Codex tool actions that bypass project-local hooks as a visibility diagnostic in Runtime Health, not as accepted work. Chunks 000287 and 000295 added that bounded diagnostic as visibility-only `hosted_codex_activity` plus normalized `unregistered_activity_diagnostic` display items; they do not satisfy work-registration requirements. A future enforcement chunk still needs an end-to-end Action Panel proof where a direct hosted file-inspection command, a patch/edit command, a validation wrapper, and a QA command all produce visible registered work or a clear registration violation without manual work registration. The proof must show work stays visible throughout a multi-tool orchestration sequence, not only for a short `PreToolUse` pulse. Include message-stream freshness proof so lagging health snapshots cannot regress operator/assistant notes after a newer note has been rendered. Keep close-gate validation as hard enforcement, and do not introduce a second work-registration store.",
            "revisit_trigger": "Future Codex hook, autonomous orchestration, work-session resume, context-compaction, hosted Codex tool/log parsing fallback, or Action Panel active-work visibility changes touch session continuation behavior."
          },
          {
            "id": "cfd-0031",
            "title": "Web console paste can duplicate command submission",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Other"
            ],
            "reason_to_track": "Duplicate command paste/submit can trigger repeated operator actions, create confusing Runtime work evidence, or increase risk around authority-sensitive commands if the console does not debounce or idempotently identify submissions.",
            "next_action": "Add a focused browser/input test that pastes and submits commands through the web console using clipboard, keyboard, and direct input events; verify exactly one command buffer update and one submission are produced. If duplication reproduces, fix paste/keydown/input composition handling with debouncing or submission idempotency at the UI boundary, and keep backend/Runtime command execution idempotency as a separate safety layer.",
            "revisit_trigger": "Future web console, operator command entry, terminal input, command submission, keyboard/paste handling, or Runtime Action Panel console work touches command input behavior."
          },
          {
            "id": "cfd-0032",
            "title": "Runtime-owned backlog activation path is missing",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Policy Enforcement"
            ],
            "reason_to_track": "This item is resolved for normal Runtime-owned Backlog -> Active activation and terminal active-chunk archive. It remains in the registry as regression guidance because lifecycle authority is sensitive and shell compatibility helpers must not return to normal workflow.",
            "next_action": "Reopen only if normal backlog activation or terminal active-chunk archive requires `activate-chunk.sh`, `complete-chunk.sh`, manual file movement, or another non-Runtime authority path. Remaining optional naming cleanup is to alias \"Ready for Human Review\" to a mode-aware \"Ready for Review\" concept where human/manual vs autonomous review is determined by policy.",
            "revisit_trigger": "Future chunk activation, backlog scheduler, autonomous package continuation, chunk planner output activation, lifecycle registry, ready/review state naming, autopilot mode policy, archive/commit completion, or shell lifecycle hard-guard work touches Draft/Backlog to Active or terminal archive semantics."
          },
          {
            "id": "cfd-0033",
            "title": "Service recovery policy should grow circuit-breaker and backoff semantics before broader auto-resurrection",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Other"
            ],
            "reason_to_track": "Without circuit-breaker/backoff semantics, expanded auto-resurrection can create restart loops, mask degraded dependencies, or produce noisy operator state transitions under persistent failure.",
            "next_action": "Before enabling broader automatic recovery, add a typed recovery state machine with explicit observed_failure, recovery_started, probe_half_open, recovered, recovery_failed, cooldown, and suppressed states; add bounded retry/backoff with jitter; expose expected downtime boundaries to the frontend when planned; and prove mocked frontend state-machine behavior before full-system restart/recovery browser proof.",
            "revisit_trigger": "Future service supervisor, auto-resurrection, service freshness, restart/recovery scheduler, or Action Panel service-state work expands recovery beyond the narrow local/dev one-shot proof."
          },
          {
            "id": "cfd-0034",
            "title": "Audit every Runtime and developer entrypoint for automatic work registration coverage",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Validation"
            ],
            "reason_to_track": "The Runtime Action Panel cannot be authoritative if work disappears whenever a caller bypasses a shell hook or uses a direct Node/API entrypoint. Work-registration enforcement must be owned by Runtime entrypoints and core functions, not by operator memory or hosted hook behavior alone.",
            "next_action": "Keep the Runtime-owned entrypoint coverage validator current as new Runtime CLI/API/shell surfaces are added; the current 000299 report has no remaining advisory entries. Add representative regression tests for remaining hosted-tool visibility bypasses, including hosted tool names such as `exec_command`, `write_stdin`, `apply_patch`, `multi_tool_use.parallel`, shell read commands such as `rg`, `sed`, `tail`, `head`, `find`, and direct Runtime module invocations. Move high-confidence work-producing entrypoints toward hard enforcement: execute with an existing work contract, auto/ad-hoc register through Runtime-owned wrappers, or reject execution. Keep single owning role plus foreground child as the supported model, now explicitly reported as `single_parent_foreground_child`, until a future chunk adds a canonical task-level or multi-active role execution model. The display projection can now show unsupported concurrent sessions as a model warning, but a future execution model must still distinguish parallel tasks from parallel roles, log both without flattening, avoid stale parent rollback, and include the chunk/backlog action detection case added to chunk 000295.",
            "revisit_trigger": "Future changes touch Runtime CLI commands, direct Node test files, `ai/commands/*` helpers, supervisor actions, validation/testing runners, lifecycle activation/closure, Codex hook configuration, or Runtime Health work-session projection."
          },
          {
            "id": "cfd-0035",
            "title": "Minimum downtime reload discipline across Runtime, backend, and frontend",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Policy Enforcement"
            ],
            "reason_to_track": "Operators need the Action Panel and dev surfaces available for as much of the work chunk as possible. Minimum downtime should not slow the work materially, but disruptive reloads should be batched, ordered, and announced as planned maintenance only when a fresh daemon/server is needed for validation, browser proof, generated schema/codegen, or runtime-dependent commands.",
            "next_action": "Add a minimum-downtime reload planner that batches source edits, defers Runtime/backend/frontend reloads until the latest safe freshness-gated boundary, then executes the smallest typed reload sequence with visible planned-restart state and post-reload freshness proof. The planner should prefer build-before-stop and only stop/restart services when the built artifact is ready and a test/browser proof actually needs it.",
            "revisit_trigger": "Future work touches Runtime build/reload, backend or frontend dev-server restart behavior, freshness-gated tests, browser proof orchestration, or validation scheduling."
          },
          {
            "id": "cfd-0036",
            "title": "Canonical command wrapper enforcement for hosted shell execution",
            "severity": "follow_up",
            "item_type": "follow_up",
            "status": "open",
            "source_sections": [
              "Carry Forward",
              "Policy Enforcement"
            ],
            "reason_to_track": "Documentation alone is insufficient if hosted tools can bypass Runtime contracts. The remaining hardening should make wrapper use canonical in AI repository instructions and validators, detect direct work-producing commands that bypass the wrapper, and eventually reject or recover them with explicit ad hoc registration according to the work-registration policy. Non-shell tools that cannot be routed through the command wrapper need an equivalent pre-tool work-contract guard or mandatory ad hoc recovery before their edits are accepted.",
            "next_action": "Add guard validation that classifies repository command execution as accepted only when it is executed through the Runtime command wrapper, a typed Runtime entrypoint with an equivalent work contract, or a non-shell tool guard that starts/heartbeats Runtime work before mutation. Update AI instructions to make the wrapper the default command path for work-producing commands, keep pure inspection low-risk commands advisory until the guard is proven, and add browser proof that bypassed command or file-edit activity appears as diagnostic-only or is recovered through ad hoc work.",
            "revisit_trigger": "Future work-producing shell commands, validation runners, testing wrappers, lifecycle tools, or hosted Codex hook/diagnostic changes are touched."
          }
        ],
        "pending_enforcement_items": [
          {
            "id": "cfd-0020",
            "title": "Assistant final chat summary enforcement remains policy-bound",
            "next_action": "Prefer rendering or mirroring the canonical Runtime summary for final chat responses; add platform/tooling enforcement if a future integration can validate or generate assistant final responses directly.",
            "revisit_trigger": "Future summary renderer, Codex/assistant integration, workflow-output validator, Telegram details, or final-response automation work can mechanically validate or generate assistant final chat output."
          }
        ],
        "cfd_0001_visible": true
      },
      "maintenance_guidance": {
        "timeline_archive_plan": "node ai/runtime/dist/cli.js timeline archive-plan --json",
        "timeline_archive_execute": "node ai/runtime/dist/cli.js timeline archive-execute --json",
        "mutation_controls_exposed": false
      },
      "runtime_health_read_model": {
        "schema_version": "runtime-health-read-model-diagnostics-v1",
        "source": "runtime-core",
        "read_model_path": "/workspace/.tmp/runtime-health/read-model.json",
        "mode": "refresh_write",
        "generated_at": "2026-05-23T11:52:10.523Z",
        "read_at": "2026-05-23T11:52:10.523Z",
        "age_seconds": 0,
        "stale_after_seconds": 25,
        "freshness_status": "fresh",
        "source_sequence": 62370,
        "surface_freshness": [
          {
            "surface": "runtime_work_session",
            "freshness_class": "owned_state_event",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 10,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "runtime_work_step",
            "freshness_class": "owned_state_event",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 10,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "role_activity",
            "freshness_class": "derived_runtime_projection",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 10,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "socket_diagnostics",
            "freshness_class": "functional_probe",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 10,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "runtime_services",
            "freshness_class": "functional_probe",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 25,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "dispatcher",
            "freshness_class": "derived_runtime_projection",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 25,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "scheduler",
            "freshness_class": "derived_runtime_projection",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 25,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "leases_operations",
            "freshness_class": "derived_runtime_projection",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 25,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "validation_status",
            "freshness_class": "derived_runtime_projection",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 25,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "audit_timeline",
            "freshness_class": "heavy_summary",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 60,
            "freshness_status": "fresh",
            "source_sequence": 62370
          },
          {
            "surface": "governance_carry_forward",
            "freshness_class": "heavy_summary",
            "generated_at": "2026-05-23T11:52:10.523Z",
            "stale_after_seconds": 60,
            "freshness_status": "fresh",
            "source_sequence": 62370
          }
        ],
        "policy": {
          "live_seconds": 10,
          "operational_seconds": 25,
          "heavy_seconds": 60,
          "overall_seconds": 25
        }
      },
      "runtime_health_warm_controller": {
        "schema_version": "runtime-health-warm-controller-status-v1",
        "source": "runtime-core",
        "status": "skipped_fresh",
        "updated_at": "2026-05-23T11:51:45.322Z",
        "reason": "Runtime Health read model is fresh, current, and not near live-surface staleness.",
        "mode": "daemon_cadence",
        "last_refresh_at": "2026-05-23T11:51:27.632Z",
        "next_action": "No action required.",
        "mutates_authority_state": false
      }
    }
  },
  "mutates_authority_state": false
}
