Operational Synthesis — 2026-09-04 10:11Z

• status: complete

• scope: scheduled higher-level operational synthesis

• material_digest: 4f47a542f6289c39c293e906b57118494997435350891aeacdb68b78b881fa4a

Summary

Material change is present: the user resumed activity around the NCN fallback/travel weekend and has an active architecture request for a durable, session-independent polling control plane. Runtime and memory workers are currently healthy, but several long-lived operational gaps remain unresolved.

Evidence reviewed

• `model-conversation-log.jsonl`: 6,386 rows; latest user turn 2026-09-04T08:15:25Z and assistant turn 08:15:59Z. Recent topic: additional Leipzig cultural events after the user was too tired to go out.

• `memory-heartbeat.json`: restore successful, 7,520 entries; model-conversation source is current through runtime rows and `semantic_changed=true`.

• `model-heartbeat.json`: 2026-09-04T10:01:56Z, `rc=0`, `acpx_rc=0`, `NO_CHANGE`.

• `context-guard.json`: direct ACP normal at 265,251 provider tokens (25.3% of advertised 1.05M), no compaction and no reload recommendation; live model is `openai/gpt-5.6-terra`.

• `continuity-summary.txt`: regenerated 10:08Z but still incorrectly says `kimi-for-coding/k2p6`.

• `semantic-candidates.jsonl`: one new candidate is the transient Friday cultural-events request; it should remain review material, not durable memory. Older candidate rows are predominantly stale. `memory-candidates.jsonl` still has 13 candidate-status rows for curator review.

• `actions.jsonl` / `notices.jsonl`: durable open work remains, including worker model repair, decision-state refresh, semantic-memory cleanup, provider-ceiling proof, notice-source hardening, and the newly active polling-control-plane design.

• `directed/latest.md` is stale (no directed report since June); `directed/index.json` was refreshed but contains only old directed reports.

Findings

1. **Runtime healthy, telemetry incomplete.** Memory restore and model heartbeat succeeded, and the live ACP context is comfortably normal. This does not prove the provider ceiling or unattended control-plane health.

2. **Current user context is active and practical.** NCN appears unavailable/sold out; the user is considering Leipzig/Nuremberg/Dresden/Berlin alternatives. Event recommendations are time-sensitive and must be re-verified live before reuse. No durable-memory promotion is warranted from the transient cultural-events request.

3. **Polling architecture is the highest-value open engineering thread.** The user explicitly wants arbitrary reasonable schedules, durable watches/queueing, dedupe/debounce, retry/backoff, deadlines, wake budgets, shadow mode, and visible subagent lifecycle. The agreed safe direction is an isolated service before the native backend: poller → durable queue → (transitional ACP-resume adapter) → later prompt-builder/fresh backend. Do not evolve the existing ACP-coupled timer dispatcher in place.

4. **Generated model identity remains stale.** The live context and heartbeat are GPT-5.6 Terra while the generated continuity summary names unavailable Kimi K2.6. Repair must target the scheduled-worker source/configuration and then prove two clean runs; do not edit the generated summary directly.

Hypotheses

• The recent `semantic_changed=true` reflects extraction of the new transient events request rather than a durable preference; curator should mark it ignored/stale through the normal candidate helper after review.

• The repeated stale model identity likely originates in scheduled-worker configuration or generator fallback, not current direct ACP state. This remains unverified until source inspection/control-plane smoke tests are permitted.

Actions / backlog

• Main agent/infrastructure: repair scheduled-worker model/config selection and verify two consecutive clean runs.

• Main agent/infrastructure: stage the isolated polling control plane in shadow mode, beginning with subagent completion, service health, and URL/inbox watches; preserve the narrow ACP adapter only as a transition.

• Main agent/infrastructure: expose timer, subagent, approval, observability, and backlog status through a reliable control-plane surface; independently prove provider ceiling before changing guard thresholds.

• Curator/main agent: review the 13 legacy memory candidates and audit low-signal fragments in `semantic-memory.json`; do not treat candidates as facts.

• Main agent: refresh stale `decision-state.json`, and separately harden directed/index notice regeneration so resolved/obsolete reports are not re-injected.

Curated-memory proposals

None. The new events discussion is transient and location/date-specific. The polling-control-plane requirements are already captured as an open action and recent topic, not a personal memory.

Warm-memory update

Updated recent-topics.md with the 2026-09-04 runtime state, current Leipzig/NCN context, polling architecture priority, stale worker-identity warning, and verification gap.

Missing tools / blockers

• Matrix-lite native timer/subagent/status MCP tools were not exposed in the available tool manifest this cycle; no independent timer, subagent, approvals, observability, or `persistent_chat_log_backlog_status` check was possible.

• `turns.jsonl` is referenced by the model-conversation source but was not directly inspected here; no backlog inference is made from canonical-vs-model row counts.

• No native or async subagent was used; the earlier architecture-review job `9cec5ce3080c` remains a known timeout/non-result and is not evidence against the design.

Operational risks / robustness suggestions

• Prioritize source-level worker model repair; otherwise scheduled synthesis can silently regress to `ProviderModelNotFoundError` despite a healthy main session.

• Add a generated-state provenance/check: continuity summary should record the actual resolved model and source, and fail visibly on mismatch rather than publishing stale fallback identity.

• Keep notice regeneration idempotent by deterministic source IDs and filtering resolved/obsolete reports. Avoid routine pruning in this cycle because notices are append/history artifacts and no safe helper was exposed.

• Preserve the no-reload policy: current context is normal, so do not replace the live persistent backend.

Files updated

• This report (checkpoint replaced with completed synthesis).

• `/home/matrix-lite/state/persistent-chat/recent-topics.md` (warm-memory current-topic update).

No JSONL findings/hypotheses/actions/notices were appended; existing open records already cover the durable issues without duplication.