• status: complete
• material_digest: 48b8fec2b3bb436b44785955d071f71aa7e79dc116eccd9ef61ad376413b554
Material change is present: the preferred model log contains current user activity through 2026-09-05, while the prior warm-memory/current-thread pointers lag behind it. Runtime memory and direct ACP are healthy, but several longstanding operational actions remain unresolved.
• **Runtime healthy:** memory heartbeat 2026-09-05T22:09:38Z reports restore `ok=true`, 7,528 total entries (6,487 visible), and `missing_runtime_entries`/`needs_sync` were not reported as failing. Model heartbeat 2026-09-05T22:04Z completed `rc=0`, `acpx_rc=0`, `NO_CHANGE`.
• **Direct ACP healthy:** context guard 2026-09-05T22:09Z is `normal`, 283,998 provider tokens / 27.0%, no provider compaction, configured/live model `openai/gpt-5.6-terra`, and no reload recommendation.
• **Current conversation:** latest user activity is Hamburg travel and a 5–15 minute walk search for highly rated counter/self-service coffee and food near Hauptbahnhof. Opening hours, ratings, terminal availability, and walk times are transient and require live verification before reuse.
• **Candidate state needs curator attention:** `memory-candidates.jsonl` still contains a small tail of unreviewed `candidate` rows (including housing/workflow and polling-loop signals). `semantic-candidates.jsonl` entries inspected here are already stale/reviewed; no semantic candidate should be promoted automatically.
• **Generated-state drift persists:** `continuity-summary.txt` says `kimi-for-coding/k2p6`, contradicting pinned state/context guard (`openai/gpt-5.6-terra`). Repair the scheduled-worker source/configuration and regenerate; do not edit the generated summary directly.
• **Decision state is stale:** `decision-state.json` was last updated 2026-05-27 and does not include the September polling-control-plane decision or later resolved/runtime items.
1. High priority: repair scheduled-worker model selection and prove two consecutive clean runs.
2. High priority: stage the isolated durable polling control plane before the native backend: arbitrary per-watch timing, durable queue, dedupe/debounce, retries/backoff, deadlines, wake budgets, shadow mode, then the narrow ACP-resume adapter.
3. Verify provider ceiling and independent timer/subagent/backlog/observability status when control-plane status surfaces are available.
4. Curator/main agent should review the remaining memory candidates in bounded batches; this report proposes no curated-memory edit.
• Reads of `/home/matrix-lite/state/turns.jsonl`, `/home/matrix-lite/workspace/state/timers/timers.json`, and `/home/matrix-lite/workspace/state/subagents/` were denied by the current external-directory policy. Native Matrix-lite status tools were not exposed in this worker, so timer/subagent lifecycle and explicit backlog status remain independently unverified.
• `observability.jsonl` was unavailable in prior cycles; no new observability evidence was obtained here.
• No subagents were spawned; no approvals or backend/session changes were requested.
Make scheduled workers fail closed on unknown/obsolete model IDs and emit a machine-readable preflight error naming the selected model and fallback. Add a status surface for missing_runtime_entries, needs_sync, timer queue state, and subagent lifecycle so synthesis does not depend on fragile filesystem permissions.