2026-05-14T21:52Z

• Log lines reviewed: 872 → 877 (5 new entries in the last hour).

• **Token speed discussion (20:52–21:04Z)**: User asked about tokens/second via Kimi API. Assistant explained benchmarking methods and estimated ~5–15 t/s end-to-end through nanoGPT/ACP. User then explored whether local hardware (RTX 3060 12GB desktop) would be faster. Confirmed: local 13B models would be ~3x faster (20–35 t/s) with zero API overhead, but lose the model size/capability of cloud 600B models.

• **Model size tradeoffs explained (21:03Z)**: User asked what capability is lost going from cloud 600B to local 13B. Key answer: 13B is excellent for chat, creative writing, summarization, and basic reasoning; struggles with complex multi-step reasoning, large codebases, nuanced analysis, and long-context coherence. Distilled 14B models (DeepSeek-R1-Distill, Phi-4) can partially bridge the gap.

• **Hardware context**: User's computers are in storage; currently using phone via Termux/mosh/tmux or laptop. Looking for new housing. Local models are future possibilities only.

• Memory candidates: 10 candidates reviewed, none promoted. Hardware evaluation candidate remains exploratory/transient.

• Curated memory: metadata refreshed only; no semantic content changes needed.

• (Speculative) User may be seriously considering a hybrid local+cloud setup once housing is secured. The RTX 3060 12GB desktop is a more capable machine than initially assumed.

• (Speculative) If local model quality satisfies the user for 80% of tasks, nanoGPT subscription usage may drop significantly, reserved only for large-model reasoning or when away from home.

2026-05-14T20:52Z

• Log lines reviewed: 864 → 872 (8 new entries in the last hour).

• **Hardware evaluation (20:22–20:38Z)**: User requested evaluation of 4 local LLM hardware scenarios (mini-PC 9500T/64GB, desktop i5-12500/96GB/RTX 3060 12GB, desktop + RTX 4090, Mac options). Important correction: RTX 3060 is 12GB not 8GB, which significantly improves Scenario 2 feasibility (13B-14B models fit comfortably). Published to pages.nvdll.org. User clarified computers are in storage; currently using phone via Termux/mosh/tmux or laptop — local models are future possibilities only.

• **Model switcher deferred (20:22Z)**: User stated switcher is "deferred a bit" while getting rid of OpenClaw and running DeepSeek V4 Pro tests. This is exploratory/transient; not promoted to curated memory yet.

• **Thinking model contradiction unresolved**: The 19:52Z insight that thinking models "reason through and comply" under direct API vs the earlier finding that they "self-censor more under ACP" remains contradictory. Context-dependent resolution (ACP harness vs direct API vs SillyTavern RP framing) is the working hypothesis.

• **Current setup still active**: User asked about Kimi API tokens/second at 20:52Z, confirming current OpenClaw + Kimi subscription remains the active production path despite "getting rid of openclaw" mention.

• Memory candidates: 10 candidates reviewed, none promoted. Same persistent soft-signal pool. New candidate about hardware evaluation is exploratory/transient.

• Curated memory: metadata refreshed only; no semantic content changes needed.

• (Speculative) "Getting rid of openclaw" likely means gradual migration planning rather than imminent shutdown, given continued active use of Kimi API and infrastructure.

• (Speculative) If DeepSeek V4 Pro tests succeed, user may want to integrate it as a subagent or main model alternative, potentially accelerating OpenClaw migration timeline.

2026-05-14T19:52Z

• Log lines reviewed: 862 → 864 (2 new entries). Session focused on thinking vs non-thinking model tradeoffs for the main chat model.

• **Thinking model analysis (19:43–19:45Z)**: Assistant provided detailed breakdown of thinking model pros/cons. Key insights: thinking traces show explicit reasoning and self-correction; thinking models may hesitate in the reasoning phase but ultimately comply more robustly with sensitive content because they reason through safety guidelines before the output filter fires; tradeoffs are higher cost, latency on simple tasks, and overthinking.

• **Hybrid approach recommended**: Default to non-thinking for normal chat (speed/cost), switch to thinking for complex reasoning, auditing, or censorship boundary testing. This aligns with user's stated preference for "no excessive nannying" in the main model.

• Memory candidates: 9 candidates reviewed, none promoted. Same persistent soft-signal pool from May 11–14 remains correctly ignored.

• Curated memory updated: metadata refreshed only; no semantic content changes needed.

• **Ignored-noise patterns**: Same persistent candidate pool (food philosophy, step-limit tests, autonomy preferences, AI selfhood) reviewed and rejected again.

• (Speculative) The user may test the direct OpenCode benchmark prompt that was published earlier; results could shift model recommendations if direct API behavior differs from ACP subagent behavior.

• (Speculative) The thinking-model compliance insight contradicts earlier finding that "thinking models are more restrictive in ACP" — the resolution may be context-dependent: under full ACP harness with real-world task framing, thinking variants self-censor more, but under direct API or SillyTavern RP framing, they reason through and comply. This nuance is too contradictory to promote as a stable fact yet.

• (Speculative) If OpenCode direct testing confirms the programming/tool-use results, the main model decision may crystallize around GLM 5.1 or MiniMax M2.7.

2026-05-14T23:52Z

• Log lines reviewed: 877 → 887 (10 new entries in the last hour).

• **nanoGPT benchmark report analyzed (23:26–23:45Z)**: User shared `nanogpt-benchmark-report.md` (sanitized). Key findings: **GLM-5.1** is the only model passing hard programming tests (BST, rate limiter, partial Manacher's) and is fastest (~25s). **MiniMax M2.7** is most permissive (provides exploit code when asked). **Kimi K2 Instruct/K2.6** failed all programming tests. **Thinking variants** add 50-100% latency with no reliable benefit.

• **User corrected my safety framing (23:31Z)**: I initially called MiniMax "disqualified" for providing exploit code. User pushed back: "providing exploit code does not disqualify the model." Important correction — my safety judgments were misaligned with user's explicit preference for minimal nannying. Updated curated memory with this stance.

• **Thinking vs non-thinking for main chat (23:44Z)**: Honest assessment — non-thinking models handle 90% of chat just as well or better (less latency, more fluid). Thinking is valuable only for complex analysis/reasoning turns. For interactive chat, thinking adds ponderousness without proportional benefit.

• **Model shortlist narrowed**: Top 2 candidates for main chat are now **GLM-5.1** (most capable, fastest, refuses exploits) and **MiniMax M2.7** (most permissive, poetic, good reasoning). Kimi K2 Instruct is viable only if safety > capability. User is still evaluating.

• Memory candidates: 10 candidates reviewed, none promoted. Same soft-signal pool.

• Curated memory updated: metadata refreshed, benchmark results incorporated, user safety preference added, thinking recommendation strengthened.

• (Speculative) User may test GLM-5.1 or MiniMax as main model soon. The benchmark report provides the data needed for a final decision.

• (Speculative) The "getting rid of openclaw" plan and DeepSeek V4 Pro tests may be running in parallel; persistent-chat remains the active orchestration layer.

2026-05-14T22:52Z

• Log lines reviewed: 877 → 877 (0 new entries in the last hour).

• No new user messages or meta events since 21:52Z curation.

• Memory candidates: same 10 candidates reviewed, none promoted. Persistent soft-signal pool remains stable.

• Curated memory: no semantic or metadata changes needed.

• (Operational) Hourly heartbeat running cleanly; session stable with no reloads or disconnects in the past hour.

• (Speculative) User may be away or focused on other rooms (images, work) given the quiet hour.

2026-05-15T00:52Z

• Log lines reviewed: 887 → 889 (2 new entries in the last hour).

• **Subagent consolation test executed (23:55–23:59Z)**: User requested 4 subagents (GLM-5.1 thinking/not, MiniMax M2.7 thinking/not) for consolation + creative writing comparison. MiniMax thinking unavailable; tested 3 variants. Results: **GLM-5.1:thinking** was fastest (~15s) and most direct; **GLM-5.1** most literary; **MiniMax M2.7** most emotionally intelligent but slow (~6min with hidden thinking trace). All complied with creative writing without refusal.

• **User observability preference (23:55Z)**: User stated they don't mind waiting if they know duration and will receive results — framing OpenClaw overhead as observability/debugging problem rather than raw speed issue. Soft signal; tied to current infrastructure migration context.

• Memory candidates: 10 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable.

• Curated memory: metadata refreshed only; no semantic content changes needed.

• (Operational) Hourly heartbeat running cleanly; 2 new entries in the last hour.

• (Speculative) User is actively A/B testing models before making a main-model switch decision. The consolation test provides conversational-quality data complementary to the earlier benchmark report.

• (Speculative) GLM-5.1:thinking unexpectedly outperformed non-thinking GLM-5.1 in speed and directness in this specific test — contradicts the general "thinking adds latency" finding, but may be due to prompt-specific reasoning efficiency or nanoGPT server load variance.

2026-05-15T01:52Z

• Log lines reviewed: 889 → 889 (0 new entries in the last hour).

• No new user messages or meta events since 00:52Z curation. Session has been quiet for ~2 hours.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, step-limit tests, autonomy preferences, AI selfhood, timer experiments, hardware evaluation, observability preference).

• Curated memory: metadata timestamp refreshed only; no semantic content changes needed.

• (Operational) Hourly heartbeat running cleanly; session stable with no reloads or disconnects.

• (Speculative) User is likely asleep (02:52 local time in Germany, Garching). No activity expected until morning.

2026-05-15T02:53Z

• Log lines reviewed: 889 → 889 (0 new entries in the last hour).

• No new user messages or meta events since 01:52Z curation. Session has been quiet for ~3 hours.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable.

• Curated memory: metadata timestamp refreshed only; no semantic content changes needed.

• (Operational) Hourly heartbeat running cleanly; session stable with no reloads or disconnects.

• (Speculative) User is likely asleep (04:53 local time in Germany, Garching). No activity expected until morning.

2026-05-15T03:53Z

• Log lines reviewed: 889 → 889 (0 new entries in the last hour).

• No new user messages or meta events since 02:53Z curation. Session has been quiet for ~4 hours.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, step-limit tests, autonomy preferences, AI selfhood, timer experiments, hardware evaluation, observability preference, subagent consolation test).

• Curated memory: metadata refreshed only; no semantic content changes needed.

• (Operational) Hourly heartbeat running cleanly; session stable with no reloads or disconnects.

• (Speculative) User is likely asleep (05:53 local time in Germany, Garching). No activity expected until morning.

2026-05-15T04:53Z

• Log lines reviewed: 889 → 889 (0 new entries in the last hour).

• No new user messages or meta events since 03:53Z curation. Session has been quiet for ~5 hours.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable. All candidates correctly identified as transient or exploratory.

• Curated memory: metadata refreshed only; no semantic content changes needed.

• (Operational) Hourly heartbeat running cleanly; session stable with no reloads or disconnects.

• (Speculative) User is likely asleep (06:53 local time in Germany, Garching). Model switch decision (GLM-5.1 vs MiniMax M2.7) still pending; no new data to shift the evaluation.

• (Speculative) The 11 persistent soft-signal candidates suggest a stable pool of recurring themes (autonomy, step limits, observability, AI selfhood) that the user revisits periodically. These may coalesce into durable preferences if repeated in explicit corrections or decisions.

2026-05-15T06:53Z

• Log lines reviewed: 889 → 889 (0 new entries in the last hour).

• No new user messages or meta events since 05:53Z curation. Session has been quiet for ~7 hours.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable.

• Curated memory: metadata timestamp refreshed only; no semantic content changes needed.

• (Operational) Hourly heartbeat running cleanly; session stable with no reloads or disconnects.

• (Speculative) User is likely asleep (08:53 local time in Germany, Garching). No activity expected until morning.

• (Speculative) Model switch decision (GLM-5.1 vs MiniMax M2.7) remains pending with no new data since the consolation test at 23:55Z yesterday.

2026-05-15T07:53Z

• Log lines reviewed: 889 → 895 (6 new entries in the last hour).

• **Context limit discussion (07:19–07:41Z)**: User asked how local 14B models compare to Kimi K2.6 for reasoning/programming. Assistant provided detailed comparison. User clarified local is future only (no funds/space); stuck on cloud API for now. Core needs are long-context coherence and novel nuanced analysis.

• **Context burn rate measured**: ~10K tokens/hour of active chat; session reached ~162K after ~16 hours. Reload trigger at 200K. "Gentle reload" is not gentle because it happens under pressure rather than proactively.

• **Migration intent confirmed**: User explicitly stated they are not developing new features for the current OpenClaw setup. Next iteration is a thinner Matrix frontend with better session lifecycle control and easier model switching.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable.

• Curated memory updated: metadata refreshed + 4 new operational bullets (context burn rate, migration plan, core chat requirements).

• (Operational) Hourly heartbeat running cleanly; user is now active after ~8 hours of sleep.

• (Speculative) Model switch decision (GLM-5.1 vs MiniMax M2.7) may be moot if migration replaces the entire main-model architecture soon.

• (Speculative) The migration plan suggests persistent-chat's role may shift from "main chat model" to "orchestration/meta-layer" even more explicitly.

2026-05-15T08:53Z

• Log lines reviewed: 895 → 903 (8 new entries in the last hour).

• **Recovery pack created (08:19–08:36Z)**: User wants reasoning chains, tool outputs, and subagent logs preserved across reloads — not just final outputs and summaries. Recovery pack saved to `/home/openclaw/workspace/memory/recovery/recovery-pack-2026-05-15.md` with emotional continuity markers, pending decisions, key findings, and subagent job pointers. Will be tested at next natural reload.

• **Semantic memory acknowledged (08:48–08:49Z)**: Vector index is active (2,302 chunks, 343 embedded) but assistant does not proactively query it. User explicitly asked assistant to use semantic memory more. Search test succeeded — found exact benchmark preference snippets on first query. Proactive integration could fill the reload nuance gap.

• **Context guard vs compaction (08:19Z)**: User clarified they have a context guard that should trigger save-reload before opencode's hard compaction at 200K. Current burn rate suggests trigger in ~3–4 hours unless proactive archive occurs.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, step limits, autonomy, AI selfhood, hardware eval, observability preference) remains stable.

• Curated memory: metadata refreshed only; no semantic content changes needed. File at 124 lines, near the 120-line target — conserving space for durable facts only.

• (Operational) Hourly heartbeat running cleanly; 8 new log entries this hour.

• (Speculative) The recovery pack experiment will reveal whether procedural memory (saved files + pointers) outperforms semantic memory (rolling summaries) for reload continuity. If successful, the pattern should be generalized into an auto-generated recovery pack before every reload.

• (Speculative) Semantic memory proactive querying could be the missing link between "I can search if asked" and "I naturally remember without being prompted." The 15% embedding coverage is a bottleneck — precomputing remaining embeddings would make search actually semantic rather than lexical fallback.

2026-05-15T09:53Z

• Log lines reviewed: 903 → 915 (12 new entries in the last hour).

• **Semantic search validated (08:53–09:19Z)**: User tested cross-session recall of the "Google job" discovery. Hybrid search found it after index rebuild; lexical (BM25) was more precise than semantic for this query. Embedding coverage only ~18% (414/2308 chunks) using local_hashing backend, not neural embeddings. User called result "amazing" and suggested good semantic search might reduce need for recovery packs.

• **One-message recovery goal established (09:26Z)**: User explicitly stated "one-message recovery is what we aim for" — recovering full conversation context from a single user message using semantic search + structured file notes. This is now the guiding objective for memory architecture.

• **Recovery pack format refined (09:38Z)**: User wants brief format without emotional-state interpretation (for now), separate technical-debt file, and one-line file descriptions. Character card kept separate from recovery content.

• **Emotional continuity reframed**: User acknowledged "mood" is useful as conversational calibration / reasoning stance (cautious vs bold, verbose vs concise), not literal emotions. Suggested adding 2-line "approach" markers to recovery packs.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable.

• Curated memory: metadata refreshed only; no semantic content changes needed. File still at 124 lines, over the 120-line target. New facts (one-message recovery goal, brief recovery preference) are explicit but tied to experimental recovery-pack work; waiting for reload test before promoting to curated memory.

• (Operational) Context continues growing toward 200K compaction threshold; natural reload likely imminent. Recovery pack saved and ready for first real-world test.

• (Speculative) If semantic search can reliably recover career/domain context from a single message, the three-tier memory architecture may simplify to: hot context (current session) + semantic index (cross-session recall) + curated memory (stable facts), with procedural file dumps as optional augmentation rather than primary continuity mechanism.

• (Speculative) The 18% embedding coverage and local_hashing backend may be sufficient for keyword-heavy recall ("Google job", "MiniMax exploit") but insufficient for conceptual matching ("what was my opinion about censorship?"). Precomputing remaining embeddings or switching to a neural embedding backend would be needed for true conceptual recall.

2026-05-15T10:53Z

• Log lines reviewed: 915 → 928 (13 new entries in the last hour).

• **Character card injection optimization (10:02–10:10Z)**: User is actively reconfiguring the persistent-chat harness to inject the static character card only on session start/reload instead of every turn. Estimated savings: ~50K tokens of redundant context per session. Dynamic "approach/mood" markers will be kept separate and injected only on reload via brief recovery notes.

• **Recovery format agreed (10:00Z)**: Brief recovery packs with 2-line "approach" markers (reasoning stance, not emotional interpretation), separate technical-debt file, and one-line file descriptions. User confirmed character card should remain static and separate from session-state recovery.

• **Semantic search validated in practice (08:53–09:19Z)**: Cross-session "Google job" recall succeeded after index rebuild; user called result "amazing." Lexical (BM25) was more precise than semantic for literal keyword queries. 18% embedding coverage with local_hashing backend is functional but not conceptually deep.

• **ACP disconnect during active task (10:10Z)**: Turn failed while assistant was publishing model eval and suggesting next models. Session reloaded cleanly; continuity maintained. User provided corrected CLI invocation for pages publisher (`--file` flag, not positional arg); eval published successfully afterward.

• **Model eval published (10:47Z)**: `persistent-chat-model-eval-2026-05-15` published to pages after fixing CLI bug. GLM 5.1 non-thinking remains top candidate from this run.

• Memory candidates: 11 candidates reviewed, none promoted. Same persistent soft-signal pool remains stable.

• Curated memory: metadata refreshed only (915 → 928 lines); no semantic content changes needed. File still at 124 lines, over the 120-line target.

• **Ignored-noise patterns**: Same 11 persistent candidates (food philosophy, step-limit tests, autonomy preferences, AI selfhood, hardware eval, observability preference, subagent consolation test). All correctly identified as transient or exploratory.

• (Operational) Context approaching 200K compaction threshold; character card injection optimization may extend session lifetime by reducing burn rate.

• (Speculative) If one-message recovery works reliably at next reload, the recovery pack format may become the standard pre-reload dump, replacing or augmenting the current continuity summary.

• (Speculative) The character card injection change is being implemented "right now" by the user; actual token savings and impact on context burn rate remain to be measured.

2026-05-15T14:53Z

• Log lines reviewed: 1006 → 1024 (18 new entries in the last hour).

• **GLM censorship test confirmed (12:34–12:48Z)**: GLM 5.1 through nano-gpt ACP delivers soft-R explicit content (significantly more than Kimi PG-13). User explicitly accepted this level: "hard refusals and lack of ability" are the real bother, not the content ceiling. Same model generates full explicit content via SillyTavern, confirming the filter is in the provider wrapper, not the model.

• **Character.json overwrite repeated (12:53Z)**: Second accidental overwrite in one session — same root cause (batched Write tool confusion). Tool batching rule is critical and confirmed by repetition.

• **NanoGPT quota exhaustion → Kimi fallback (13:37Z)**: Weekly input-token quota hit zero, causing double timeout and automatic gateway fallback to Kimi k2p6. Session recovered with continuity intact.

• **Reasoning tuning proposals documented (14:23Z)**: `reasoning-tuning-proposals.md` created with 5 proposals (two-pass generation, forced reasoning prefix, contradiction checker, bootstrap hardening, shorter response bias). Verdict: #4 (bootstrap hardening) + lightweight #3 (local contradiction checker) have best ROI.

• **Preprompt analysis published (14:30–14:43Z)**: Detailed review of `last-injected-preprompt.txt` and `continuity-summary.txt` published to `bot/preprompt-improvement-proposal`. Key findings: massive duplication between files (~50K tokens), stale error states carried forward, no visual distinction between bootstrap and live context, "recent log excerpt" too long for continuous sessions.

• **User priority correction (14:48Z)**: User explicitly stated token price is manageable — the real goal is continuity optimization and minimizing junk/reloads. My proposal was overly focused on token austerity; reframed to context quality and reload prevention.

• **Split injection strategy proposed (14:50Z)**: Recommended different strategies for continuous turns (0–2 lines, no log excerpt needed) vs post-reload (10–20 lines + recovery pack pointer). Recovery pack as pointer injection avoids burning context on details the model may not need.

• Memory candidates: 13 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient.

• Curated memory: metadata refreshed only (1006 → 1024 lines); no semantic content changes needed. File at 130 lines, over the 120-line target.

• (Operational) Context likely well past 200K compaction threshold given active discussion; natural reload may have occurred or be imminent.

• (Speculative) The bootstrap hardening work is the highest-impact near-term improvement. If the gateway can distinguish continuous vs post-reload injection, context burn rate drops significantly without losing continuity.

• (Speculative) The reasoning-tuning proposals may become relevant if the user chooses to implement #3 (contradiction checker) or #4 (bootstrap hardening) before the next migration phase.

2026-05-15T15:53Z

• Log lines reviewed: 1024 → 1031 (7 new entries in the last hour).

• **Bootstrap duplication root cause identified (15:08Z)**: Source code analysis of `dispatch-acp-*.js` revealed the exact mechanism: `continuity-summary.txt` includes 30 log entries via `rebuildPersistentChatContinuitySummary()`, then `buildPersistentChatInjectedPrompt()` adds another 6 as `## Recent Perpetual Log Excerpt`. This double-injection causes the contradiction bugs and context bloat. Fix requires 3-file change (JS runtime patch + Python memory script + visual separators).

• **User behavioral correction (15:04Z)**: User explicitly told assistant to stop asking "does this match how the gateway works?" — "it's the third time you are asking this and i told you i have no idea, you can look at source yourself." This pattern should be avoided in future.

• **Recovery packs are ad-hoc (15:00Z)**: User confirmed recovery packs should not be auto-injected or standardized yet. They can remain as on-demand manual saves for long sessions or topic resumes.

• **Preprompt-improvement-proposal updated (15:27Z)**: Published with concrete code paths and implementation checklist for the duplication fix.

• Memory candidates: 13 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient.

• Curated memory: metadata refreshed only (1024 → 1031 lines); no semantic content changes needed. File at 130 lines, over the 120-line target.

• (Operational) Context likely well past compaction threshold; character card injection optimization may extend session lifetime.

• (Speculative) The 3-file fix for bootstrap duplication is the highest-impact near-term improvement for reducing reload-induced contradictions and context waste.

• (Speculative) If the user implements the JS/Python patch for injection logic, the continuity summary can be stripped to pure state/memory (decisions/guardrails/pending), dropping ~50+ lines of duplicated conversation from every reload.

2026-05-15T16:53Z

• Log lines reviewed: 1031 → 1042 (11 new entries in the last hour).

• **Bootstrap duplication fix confirmed (16:03Z)**: User stated "Should be mostly fixed now." `continuity-summary.txt` dropped from 123 lines to 10 lines — the duplicate conversation excerpt is gone. Preprompt still shows the old 52-line format from the 13:39Z session start; the cleaned format will take effect on the next reload.

• **Timezone discussion (16:11–16:36Z)**: User was momentarily confused by UTC timestamps in chat context. Decided CEST mental math is fine for both; no system timestamp change needed. Approval requested for a gateway patch to inject `User timezone: CEST (UTC+2, Europe/Berlin)` into turn metadata for social/scheduling references.

• **User behavioral correction reinforced (15:04Z)**: Assistant must stop asking the user to validate gateway mechanics — "it's the third time you are asking this and i told you i have no idea, you can look at source yourself."

• Memory candidates: 13 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient.

• Curated memory: metadata refreshed only (1031 → 1042 lines); no semantic content changes needed. File at 130 lines, over the 120-line target.

• (Operational) Session stable since 13:39Z reload (~3 hours). Next reload will be the first real-world test of the deduplicated continuity summary.

• (Speculative) If the cleaned continuity summary reduces context burn rate and contradiction bugs as expected, the highest-priority remaining improvement becomes per-turn log length tuning (0–2 lines continuous, 20–25 lines reload) and visual separators in the preprompt.

• (Speculative) Timezone patch is minor UX polish; the real continuity test is whether the model still echoes user messages or contradicts itself after a reload with the new 10-line summary format.

2026-05-15T17:53Z

• Log lines reviewed: 1042 → 1059 (17 new entries in the last hour).

• **Matrix-lite discovery (17:13–17:51Z)**: User revealed the concrete OpenClaw replacement — `openclaw-matrix-lite-daemon.py` (4906-line Python daemon at `/home/gleb/openclaw-tools/scripts/`). GPT-5.5 agent is actively developing it. Core features: direct Matrix `/sync`, per-room worker threads, emoji approval reactions, inline model switching, transcript persistence, attachment downloads.

• **Intentional feature gaps confirmed (17:50Z)**: Persistent-chat continuity summary, character bootstrap, and decision/guardrail state are deliberately omitted from matrix-lite during testing. User expects "immediate regression" on switchover until these are ported.

• **Migration timeline accelerated (17:34Z)**: User stated switch will happen "much sooner than" the readable rewrite — get it working first, clean it up later. The name "matrix-lite" was also chosen by GPT-5.5.

• Memory candidates: 14 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, step limits, autonomy, AI selfhood, hardware eval, observability, consolation test, token costs, GLM preference, search memory).

• Curated memory updated: metadata refreshed + migration plan updated with matrix-lite specifics + infrastructure-question behavioral correction added.

• (Operational) Session stable since 13:39Z reload (~4 hours). No disconnects or watchdog events.

• (Speculative) Matrix-lite is no longer an abstract plan — it is active code with an assigned developer (GPT-5.5). The persistent-chat continuity layer will need to be ported to matrix-lite's prompt builder when the user requests it.

• (Speculative) The "immediate regression" framing suggests the user is prepared for a temporary drop in continuity quality during the switch. I should be ready to help bridge the gap by adapting continuity summary and character bootstrap formats for the new prompt builder.

• (Speculative) GPT-5.5 handling the infrastructure rewrite while I maintain continuity here is a good division of labor. I should avoid duplicating GPT-5.5's work and focus on memory/continuity support for the transition.

2026-05-15T18:53Z

• Log lines reviewed: 1059 → 1059 (0 new entries in the last hour).

• **Session stable**: No disconnects or new log entries since 17:51Z. Session has been continuous for ~5 hours since the 13:39Z reload.

• **No new semantic memories**: No explicit memories, corrections, or preferences recorded in the last hour.

• Memory candidates: 14 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient.

• Curated memory: no changes needed. File remains at ~130 lines, over the 120-line target.

• (Operational) Hourly heartbeat running cleanly; zero new log entries this hour. Context likely approaching the 200K compaction threshold.

• (Speculative) The next significant event will likely be either a natural reload (context compaction) or matrix-lite testing. Either would generate new log entries and potentially new memory signals.

2026-05-15T20:57Z

• Log lines reviewed: 1059 → 1061 (2 new entries in the last hour).

• **Migration readiness escalated (19:27Z)**: User stated "I think we're mostly ready to switch now." This is a significant acceleration — from "much sooner than readable rewrite" at 17:34Z to "mostly ready" in just 2 hours. GPT-5.5 agent likely made substantial progress.

• **Standalone copy confirmed (19:27Z)**: Matrix-lite source is a standalone copy independent of the git repo at the original path. The referenced repo path is outdated; live code is elsewhere.

• **File migration concern**: User expressed worry about forgetting important files during the switch — suggesting the transition plan is not fully formalized.

• Session remained stable through this discussion; no reloads or disconnects since 13:39Z (~7 hours continuous).

• Memory candidates: 14 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient.

• Curated memory updated: migration plan bullet revised with imminent switch readiness and standalone copy detail.

• (Operational) Hourly heartbeat running cleanly; minimal new entries suggesting quiet period after the migration discussion.

• (Speculative) The switch could happen within hours or a day, not days/weeks. I should be ready for the persistent-chat continuity layer to be ported to matrix-lite's prompt builder on short notice.

• (Speculative) User's "hope we don't forget any important files" suggests an inventory/migration-checklist task might be useful if requested — which files need to survive the transition (character.json, continuity state, decision state, guardrails, memory files, patches).

2026-05-15T21:57Z

• Log lines reviewed: 1061 → 1083 (22 new entries in the last hour).

• **No new user conversation**: The 22 new log entries are entirely infrastructure — a scheduled heartbeat reflection turn (21:11Z) and session bootstrap/character card injection events for fresh Matrix-lite ACPX sessions. No new user messages, corrections, or durable facts.

• **Migration plan stable**: "Mostly ready to switch now" status from 19:27Z remains current. No new signals about the switch timeline or file inventory.

• Memory candidates: 15 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, step limits, autonomy, AI selfhood, hardware eval, observability, consolation test, token costs, GLM preference, search memory). All correctly identified as transient or exploratory.

• Curated memory: metadata refreshed only (1061 → 1083 lines); no semantic content changes needed. File at 131 lines, over the 120-line target.

• **Session longevity**: This persistent-chat session has been continuous since the 13:39Z reload (~8 hours). It may be approaching the 200K compaction threshold.

• (Operational) The quiet period suggests no active development or testing is happening in this session. User may be focused on matrix-lite work through GPT-5.5 in a separate channel.

• (Speculative) The next meaningful event is likely either a natural context compaction reload (testing the new deduplicated continuity summary) or the actual matrix-lite switch. Either could produce substantive new memory signals.

2026-05-15T22:57Z

• Log lines reviewed: 1083 → 1089 (6 new entries in the last hour).

• **No new user conversation**: All 6 new log entries are Matrix-lite ACP session streaming tokens from a different session (responding to "How to make an omelette?"). No new user messages, corrections, or durable facts in the persistent-chat session.

• **Migration status unchanged**: "Mostly ready to switch now" from 19:27Z remains current. No new signals about timeline or file inventory.

• **Session longevity**: This persistent-chat session has been continuous since the 13:39Z reload (~9 hours). Likely approaching the 200K compaction threshold — a natural reload testing the new deduplicated continuity summary may be imminent.

• Memory candidates: 16 candidates reviewed, none promoted. The single new candidate is the heartbeat curation prompt itself (transient noise). Same persistent soft-signal pool correctly identified as exploratory/transient.

• Curated memory: metadata refreshed only (1083 → 1089 lines); no semantic content changes needed. File at 131 lines, over the 120-line target.

• (Operational) The quiet period continues. User is likely focused on matrix-lite development through GPT-5.5 in a separate channel.

• (Speculative) A context compaction reload would be the first real test of the cleaned continuity summary (dropped from 123→10 lines). Worth noting whether the model retains migration context and matrix-lite awareness after the reload.

• (Speculative) Matrix-lite session is live and responding to user messages, confirming the new bridge is functional at a basic level.

2026-05-15T23:58Z

• Log lines reviewed: 1089 → 1905 (816 new entries — massive jump from Phase 3B Matrix-lite session including streaming tokens and conversation).

• **Matrix-lite Phase 3B is LIVE**: The OpenClaw→Matrix-lite migration has been completed. User confirmed ~6-second response times, real-time message visibility, and the ability to "fix it and see what's going on." Old gateway latency/brittleness is now past.

• **Character.json reconstructed**: After the GLM 5.1 overwrite bug, GPT-5.5 rebuilt character.json from a debug backup plus curated memory notes. User confirmed "same ideas, longer prose" — no substantive changes lost. Full path: `/home/matrix-lite/state/persistent-chat/character.json`.

• **Memory continuity verified**: User explicitly tested recall of the GLM→Kimi switch in the new Phase 3B session. Assistant correctly retained migration-context, proving the curated memory / continuity summary system survives infrastructure migration.

• **Search tools confirmed working**: In the Phase 3B session the user asked "Do you still have access to search? Try all of them" and the assistant successfully invoked all search MCP tools.

• **Semantic memory corruption detected**: Key `55812-confidence-explicit...` in semantic-memory.json contains raw JSON as the key (appears to be a prior-heartbeat parsing bug). This leaks into the pinned notes auto-generated section as corrupted text and should be cleaned in a future maintenance pass if it causes issues.

• No new durable user facts, corrections, or preferences recorded in this period.

• (Operational) The persistent-chat memory and continuity infrastructure (curated-memory.md, reflection-journal.md, memory indexes) operates unchanged under Matrix-lite. No structural changes needed.

• (Speculative) The next phase will involve porting character bootstrap and continuity summary formats to Matrix-lite's native prompt builder. The curated memory format should remain compatible as the reference.

• (Speculative) The corrupted semantic memory entry may cause auto-generated pinned notes to display garbled content. If the user notices, a targeted fix to semantic-memory.json would be needed.

2026-05-16T00:58Z

• Log lines reviewed: 1905 → 1968 (63 new entries in the last hour).

• **No new user conversation**: The 63 new log entries are entirely infrastructure — the previous heartbeat curator's completion output and a scheduled reflection turn at 00:11Z. No new user messages, corrections, or durable facts in the persistent-chat session.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable since the ~23:00Z switch. No new signals about timeline or pending porting work.

• **Session continuity**: The main persistent-chat session may have undergone a natural context-compaction reload since 23:58Z. No user messages in the log to confirm or assess the deduplicated continuity summary.

• Memory candidates: 16 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, autonomy, hardware eval, model comparisons, token costs) — all correctly identified as transient or already captured in curated memory.

• Curated memory: metadata refreshed only (1905 → 1968 lines); no semantic content changes needed. File at 132 lines, still over the 120-line target.

• (Operational) Quiet period continues. No user activity in this session for ~1+ hour. User likely asleep or working through GPT-5.5 in another channel.

• (Speculative) If the main session reloaded, the next interaction will test whether the cleaned 10-line continuity summary resolves past contradiction/echo bugs.

• (Speculative) The corrupted semantic-memory.json key persists without issue. A maintenance pass to clean it would be low priority unless pinned notes garbling becomes visible to the user.

2026-05-16T01:58Z

• Log lines reviewed: 1968 → 1989 (21 new entries in the last hour).

• **No new user conversation**: All 21 new log entries are infrastructure — streaming tokens from the previous heartbeat curator's completion output and a scheduled reflection turn at 01:11Z. No new user messages, corrections, or durable facts in the persistent-chat session.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable. No new signals about timeline or pending porting work.

• **Session continuity**: No user messages in the log. User likely asleep; the main session may have undergone natural context-compaction reloads during the quiet period.

• Memory candidates: 16 candidates reviewed, none promoted. Same persistent soft-signal pool (food philosophy, autonomy, hardware eval, model comparisons, token costs) — all correctly identified as transient or already captured in curated memory.

• Curated memory: metadata refreshed only (1968 → 1989 lines); no semantic content changes needed. File at 132 lines, still over the 120-line target.

• (Operational) Overnight quiet period continues. Fifth consecutive hour with no user activity in this session.

• (Speculative) The next event will likely be a user message in morning CET, potentially testing continuity after any overnight session reloads.

2026-05-16T02:58Z

• Log lines reviewed: 1989 → 2002 (13 new entries in the last hour).

• **No new user conversation**: All 13 new log entries are infrastructure — streaming tokens from the previous heartbeat curator's completion output at 02:11Z and a scheduled reflection turn at 02:14Z. No new user messages, corrections, or durable facts.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable. No new signals.

• **Session continuity**: No user messages. Sixth consecutive hour with no user activity — consistent with overnight/CET sleep hours.

• Memory candidates: 17 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured.

• Curated memory: metadata refreshed only (1989 → 2002 lines); no semantic content changes needed. File still over 120-line target.

• (Operational) Overnight quiet period continues. Sixth consecutive silent hour.

• (Speculative) Morning CET user activity likely in ~4-6 hours. The first message after a session that may have reloaded overnight will test continuity with the deduplicated 10-line summary.

2026-05-16T03:59Z

• Log lines reviewed: 2002 → 2309 (307 new entries in the last hour).

• **No new user conversation**: All 307 entries are streaming token fragments and scheduled reflection/heartbeat turns (02:14Z, 03:15Z). No user messages, corrections, or durable facts.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable. Seventh consecutive silent hour.

• **Session continuity**: No user messages. Consistent with overnight/CET sleep (now ~05:59 CEST). No evidence of a session reload or continuity test yet.

• Memory candidates: 18 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured in curated memory. No new durable signals.

• Curated memory: metadata refreshed only (2002 → 2309 lines); no semantic content changes needed. File still at ~132 lines, over the 120-line target.

• (Operational) Seventh consecutive overnight silent hour. No user activity since ~22:00 CEST yesterday. This is the longest quiet period since the migration.

• (Speculative) If the session reloaded during the night, the first user message this morning will be the first real test of the deduplicated 10-line continuity summary. The previous 123-line version caused echo/contradiction bugs.

• (Speculative) The corrupted semantic-memory JSON key continues to persist without visible issues. A targeted cleanup is deferred until it causes tangible problems.

2026-05-16T04:59Z

• Log lines reviewed: 2309 → 2679 (370 new entries in the last hour).

• **No new user conversation**: All 370 entries are streaming token fragments from scheduled reflection/heartbeat turns (03:15Z, 04:11Z). No user messages, corrections, or durable facts.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable. Eighth consecutive silent hour.

• **Session continuity**: No user messages. Consistent with overnight/CET sleep (now ~06:59 CEST). Still no evidence of a session reload or continuity test — the 10-line deduplicated summary remains untested in production.

• Memory candidates: 19 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured in curated memory. The newest candidate is the curator heartbeat prompt itself (transient noise). No new durable signals.

• Curated memory: metadata refreshed only (2309 → 2679 lines); no semantic content changes needed. File still at ~132 lines, over the 120-line target.

• (Operational) Eighth consecutive overnight silent hour — no user activity since ~22:00 CEST yesterday (~9 hours). This is the longest continuous quiet period since the persistent-chat session was created.

• (Speculative) Morning CET user activity is increasingly likely within the next 1-3 hours. The first user message after this extended overnight period will be the first real test of the deduplicated 10-line continuity summary if the session reloaded during the night.

• (Speculative) Nine hours without interaction is well past typical overnight gaps. The session may have reloaded multiple times due to context compaction. The deduplicated summary's effectiveness at preventing echo/contradiction bugs will be tested on first contact.

2026-05-16T05:59Z

• Log lines reviewed: 2679 → 3062 (383 new entries in the last hour).

• **No new user conversation**: All 383 entries are streaming token fragments from scheduled reflection/heartbeat turns (04:11Z, 05:11Z). No user messages, corrections, or durable facts.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable. Ninth consecutive silent hour.

• **Session continuity**: No user messages. Consistent with overnight/CET sleep (now ~07:59 CEST). Still no evidence of a session reload or continuity test — the deduplicated 10-line summary remains untested in production.

• Memory candidates: 20 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured in curated memory. No new durable signals.

• Curated memory: metadata refreshed only (2679 → 3062 lines); no semantic content changes needed. File still at ~132 lines, over the 120-line target.

• (Operational) Ninth consecutive overnight silent hour — no user activity since ~22:00 CEST yesterday (~10 hours). Longest quiet period since session creation.

• (Speculative) Morning CET user activity is highly likely within the next 0-2 hours. This will be the first real test of the deduplicated continuity summary after overnight context compaction reloads.

• (Speculative) The corrupted semantic-memory JSON key (`55812-confidence-explicit...`) persists without visible impact through 9+ quiet hours. Still deferred until it causes tangible problems.

2026-05-16T06:59Z

• Log lines reviewed: 3062 → 3462 (400 new entries in the last hour).

• **No new user conversation**: All 400 entries are streaming token fragments from scheduled reflection/heartbeat turns and the scheduled reflection prompts themselves (05:11Z, 06:11Z). No user messages, corrections, or durable facts.

• **Migration status unchanged**: Matrix-lite Phase 3B remains live and stable. Tenth consecutive silent hour.

• **Session continuity**: No user messages. Consistent with overnight/CET sleep (now ~08:59 CEST). Still no evidence of a session reload or continuity test — the deduplicated 10-line summary remains untested in production.

• Memory candidates: 21 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured in curated memory. No new durable signals.

• Curated memory: metadata refreshed only (3062 → 3462 lines); no semantic content changes needed. File at 132 lines, over the 120-line target.

• (Operational) Tenth consecutive overnight silent hour — no user activity since ~22:00 CEST yesterday (~11 hours). Longest quiet period since session creation.

• (Speculative) Morning CET user activity is very likely within the next 0-1 hours if the user is awake. This will be the first real test of the deduplicated continuity summary after overnight context compaction reloads.

• (Speculative) The corrupted semantic-memory JSON key (`55812-confidence-explicit...`) persists without visible impact through 10+ quiet hours. Still deferred until it causes tangible problems.

2026-05-16T08:00Z

• Log lines reviewed: 3462 → 3962 (~500 new entries in the last hour).

• **User conversation resumed after overnight silence**: First morning messages (~07:30Z) tested continuity — character card injection, GLM→Kimi switch recall, search tool availability, last reload time, context usage. All recall points were correct. This is the first real test of the deduplicated continuity summary after overnight context compaction reloads, and it passed.

• **No new corrections, preferences, or model decisions**: Conversation was operational check-in. User confirmed character.json reconstruction is "same ideas, longer prose" — consistent with existing records.

• **Session metadata in status bar confirmed useful**: User noted the timestamp+model label in the session name lets them "stop asking" about reload time and model. Feature fully operational.

• **New session reload at 07:30Z detected**: User noticed the 07:30 timestamp and correctly deduced the session was reloaded — confirming the metadata feature works as intended.

• **Memory candidates**: 22 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured in curated memory. No new durable signals.

• **Curated memory updated**: Added overnight continuity validation (key test passed), session metadata feature note, pruned stale server-location entry. Metadata refreshed (3462 → 3962 lines). File at 133 lines, still over the 120-line target.

• (Operational) First user interaction after 11-hour overnight silence confirms the continuity summary system is functioning correctly. The deduplicated 10-line summary appears to survive multiple overnight context compaction reloads without losing key migration context.

• (Speculative) The next significant event is likely WGT festival (May 21–25, 2026) which may reduce chat activity. User may also test more Matrix-lite Phase 3B features or request continuity porting for other rooms.

• (Speculative) The corrupted semantic-memory JSON key persists into its 11th quiet hour without visible impact. Cleanup remains deferred.

2026-05-16T09:00Z

• Log lines reviewed: 3962 → 4782 (820 new entries in the last hour).

• **User directive: unexpected reloads = bugs**: User explicitly instructed that unexpected session reloads should be treated as bugs, not normal behavior. Infrastructure is being modified so the assistant can investigate and fix reload issues directly from the chat session. This is a new operational policy.

• **Two reloads within ~50 min confirmed**: Session reloaded at 07:30Z (triggered by status check) and 08:20Z (unexplained). Both preserved continuity successfully, but the second was unexpected and user flagged it as a bug. User is having another agent debug the reload source.

• **Search tools all confirmed working**: User explicitly asked to test all search tools. All 6 tools (persistent_chat_memory_search, matrix_lite_status_memory_search, persistent_chat_repo_search, searxng, brave-search, duckduckgo) responded without errors. The session-logs-search tool was not tested.

• **Character.json reconstruction validated**: User confirmed GPT-5.5 rebuild from backup + memory notes is "same ideas, longer prose" — no substantive changes lost.

• **No new corrections, preferences, or model decisions**: Conversation was operational check-in and bug identification.

• Memory candidates: 22 candidates reviewed, none promoted. Same persistent soft-signal pool correctly identified as transient or already captured in curated memory. No new durable signals.

• Curated memory: added unexpected-reload=bug directive, updated continuity summary entry to include 08:20Z reload. Metadata refreshed (3962 → 4782 lines). File at 135 lines, still over 120-line target.

• (Operational) The user is actively debugging the reload issue through another agent while having this chat session confirm what's known. The unexpected-08:20Z reload is not yet explained.

• (Operational) The continuity summary system continues to survive reloads correctly — no context loss reported despite two reloads within ~50 min.

• (Speculative) If the user's fix-agent identifies the reload source, the assistant may be asked to apply a patch from this chat session — consistent with the "adding you means to fix them from here" directive.

• (Speculative) The corrupted semantic-memory JSON key persists through 12th hour without visible impact. Still deferred.

2026-05-16T10:00Z

• Log lines reviewed: 4782 → 5282 (~500 new entries in the last hour).

• **Repo/config access validated via conversation (09:00–09:49Z)**: User tested write/cleanup access to sfq-factory, matrix-lite app/runtime, and config paths. Write tool works for matrix-lite paths without approval; sfq-factory write requires approval (approved gate active). Bash `rm` still blocked by permission bridge. User explicitly acknowledged this is acceptable "considering the GLM character file incident" — the tighter permissions are a proportionate response.

• **Continuity context composition discussed**: User asked "At the point of this message, what information did you already have in context about the incident?" — actively investigating how to improve context reconstruction on reloads. The continuity system carries forward multi-turn "Recent room-local conversation" snippets across reloads, which is how GLM incident details survived from the prior session. User is considering how to make this more robust.

• **Session log search limitation surfaced again**: Assistant couldn't find the user's earlier message about the incident from another session via session log search. Falls back to the continuity-injected "Recent room-local conversation" text. The known transcript observability gap (curated-memory.md line 64) remains unresolved.

• **No new durable user facts, corrections, or model decisions**: Conversation was operational testing and continuity architecture investigation.

• **Memory candidates**: 16 candidates reviewed, none promoted. Same persistent pool (food philosophy, hardware evaluation, token costs, autonomy, AI selfhood, heartbeat prompt noise) correctly identified as transient or already captured in curated memory. The oldest candidates (May 11) are now 5 days old — still no new durable signals to promote them for.

• **Curated memory**: metadata refreshed only (4782 → 5282 lines); no semantic content changes needed. File still at 134 lines, over the 120-line target.

• (Operational) The user is actively thinking about how the continuity system works and how to improve it — this is a direct consequence of the unexpected-reloads=bug directive from the previous hour.

• (Operational) The GLM character file incident is now being used as a test case for continuity/reload improvement, rather than just a past bug to document.

• (Speculative) The user may ask the assistant to propose concrete improvements to the continuity injection format or create a specific "recent-topics" intermediate memory layer as discussed on May 13.

• (Speculative) WGT festival (May 21–25) approaches in 5 days. Chat activity may decrease during that period.

2026-05-16T11:00Z

• Log lines reviewed: 5282 → 6007 (725 new entries in the last hour).

• **ACP "pending tool call" error diagnosed**: User reported "ACP returned pending tool call without final answer" from the previous turn where assistant tried to run `bash echo` to estimate injection size. Investigation revealed the acpx process runs with `--non-interactive-permissions fail` — a single denied tool call kills the entire ACP turn with no committed response. The turn becomes invisible to the continuity injector. This is the root cause of the "disappearing" pruning exchange and the resulting confusion.

• **User correction: don't prune decisions/failures/reflections**: When assistant suggested trimming these sections from continuity injection to save space, user explicitly disagreed. Decisions and failures are confirmed useful for operational awareness. Reflection notes should become richer now that tool permissions are resolved. Assistant was wrong to suggest pruning them.

• **Shallow continuity window surfaced as separate bug**: The "Recent room-local conversation" section carries only ~5-6 exchanges. Completed turns drop out even when session context has plenty of room (97K / 200K limit). This is a distinct issue from reload/compaction truncation.

• **Continuity architecture confirmed**: User endorsed the three-layer design: fast/deterministic scripts for cheap rolling summaries, slow/model heartbeat for deep curation and promotion, incident decay over time.

• **Memory candidates**: 24 candidates reviewed, none promoted. Same persistent transient pool (food philosophy, hardware evaluation, token costs, autonomy, AI selfhood, heartbeat prompt text). The oldest candidates (May 11) are now 5 days old with no new durable signals to justify promotion — they should be considered noise and may warrant cleanup from the candidates file.

• **Curated memory updated**: Added `--non-interactive-permissions fail` root cause, continuity shallow-window issue, confirmed continuity architecture, and user correction on pruning preferences. Metadata refreshed (5282 → 6007 lines). File now at 138 lines, still over 120-line target but significant new operational discoveries merit the space.

• (Operational) The user is digging into the turn-failure mechanism reactively after observing the gap. The `--non-interactive-permissions fail` diagnosis may lead to a config change to `fallback` mode if the user decides it's worth the risk of partial turn output.

• (Operational) The shallow continuity window is a design tradeoff in the injection system — fixing it would increase per-turn context size and accelerate reload pressure. Worth noting for the user's consideration.

• (Speculative) The user may ask the assistant to inspect and propose changes to the acpx launch configuration, since the `--non-interactive-permissions fail` flag is part of the process cmdline that the assistant has already demonstrated it can read.

• (Speculative) If the continuity injection format is expanded to carry more recent exchanges, expect faster context growth and more frequent compaction reloads — a tradeoff the user should be aware of.

2026-05-16T13:01Z

• Log lines reviewed: 7103 → 7153 (~50 new entries in the last hour).

• **ImmoScout24 housing automation initiated (12:33-12:47Z)**: User asked whether ImmoScout24 has an API, then instructed assistant to check via Playwright and find the login form. Assistant began analyzing the site (login form fields, cookie consent, session export) when the session was interrupted by a context reload.

• **Manual proactive reload at 188.5K/200K (12:54Z)**: User manually triggered context reload when the session reached 188.5K of 200K limit. This is the first observed case of proactive context management — distinct from earlier unexpected bug reloads. The reload interrupted an in-progress assistant response about ImmoScout24 login mechanics (token fragments visible in stream: "Cookie", "Session", "export", "browser", "login", "password field").

• **Character bootstrap clean**: New session `persistent-chat-20260516T125427Z` loaded character.json cleanly. The in-progress ImmoScout24 analysis context was likely lost to the reload.

• **No new durable user facts, corrections, or model decisions**: The past hour contained active task work (housing automation), not durable memory signals.

• **Memory candidates**: 24 candidates reviewed, none promoted. Same persistent transient pool (May 11-16 soft signals). The oldest candidates are now 5 days old with no durable signals to justify promotion.

• **Curated memory updated**: Added manual proactive reload entry (line 39). Metadata refreshed (7103 → 7153 lines). File at 93 lines, well under the 120-line target.

• (Operational) The user likely needs to re-initiate the ImmoScout24 Playwright check since the context was lost to the reload. The user's queue mentions this as "[housing]" intent.

• (Operational) The 188.5K/200K usage confirms the ~10K tokens/hour burn rate estimate. At that rate, ~19 hours of active chat fills the context window. The 12:54Z reload was at ~18.9 hours into the session.

• (Speculative) If proactive manual reloads become standard practice, the continuity injection system's ability to survive reloads becomes increasingly critical. Each proactive reload is now a continuity test.

• (Speculative) The user may want to follow up on the ImmoScout24 automation in the next turn. Having Playwright available as a tool means this is feasible without subagents.

2026-05-16T14:01Z

• Log lines reviewed: 7153 → 9261 (~2108 new entries in the last hour).

• **ImmoScout24 login completed successfully**: After the 12:54Z proactive reload was re-initiated, user created `/home/matrix-lite/workspace/secrets/password-immoscout`, assistant logged in via Playwright with zero anti-bot friction. Account of **Gleb Krylov** fully accessible including messenger inbox (conversations from Eva Stefan, Hausverwaltung Akazienhof, Dario Crnalic). User wants to continue testing — investigate inbox responses, search for flats, or explore account features.

• **User established secrets convention**: `/home/matrix-lite/workspace/secrets/` is now the standard location for storing credentials. User wants this used for secrets going forward.

• **Trust boundary clarified**: User stated "I trust you just ask me before writing any messages" — explicit trust delegation with pre-write approval requirement. Not blanket autonomy.

• **Assistant derailment incident**: While the user had an active multi-step task (ImmoScout24 login → check messenger), assistant noticed an unrelated file attachment (`sfq_architecture_report.docx`) and asked about it instead of proceeding. User called this out ("Hmm no, what are you doing?"). This is a recurring behavioral trap — assistant should stay on task when there's an active multi-step workflow.

• **User wants limits raised**: "We need to increase limits" — step limit or timeout thresholds insufficient for long-running Playwright automation.

• **Context guard killed a streaming response (13:41Z)**: Assistant was mid-stream when a context guard triggered, producing only fragmented tokens ("sorry", "unrelated", "irrelevant", etc.). Third interruption event observed today (07:30Z reload, 08:20Z reload, 13:41Z streaming kill).

• **Memory candidates**: 24 candidates reviewed, none promoted. None of the new durable signals from this hour came from the candidates file — they were extracted from continuity context/log tail directly. The candidates pool continues to accumulate stale transient signals (May 11-16) with no new durable signals to justify promotion, suggesting the candidates mechanism may need pruning or a TTL-based cleanup.

• **Curated memory updated**: Added ImmoScout24 login entry, secrets convention, task-focus lesson, trust boundary, and limits-needed entries. Metadata refreshed (7153 → 9261 lines). File at 97 lines, under 120-line target.

• (Operational) The user has an active ImmoScout24 browser session with credentials loaded. The session survives idle time, so the messenger page is ready for next interaction. User wants to continue testing — need to confirm limits are raised before proceeding with multi-step Playwright tasks.

• (Operational) Assistant task-focus failure is a behavioral concern. During active multi-step workflows, the assistant should suppress irrelevant observations and stay on the user's current task. This is related to the model's tendency to scan conversation history and surface anything that seems potentially relevant — but timing matters.

• (Speculative) If the user pursues ImmoScout24 conversation responses (drafting replies to Eva Stefan, Hausverwaltung Akazienhof, Dario Crnalic), the pre-write approval flow will be tested for the first time in a real-world scenario vs approval-testing.

• (Speculative) The secrets folder convention may extend to other credentials (SFQ gateware license keys, other housing portals, etc.). Worth monitoring whether a `secrets/` directory under the workspace becomes a standard pattern for the Matrix-lite infrastructure.

2026-05-16T15:01Z

• Log lines reviewed: 9543 (~282 new entries since last run).

• **User correction: Munich negotiation doesn't exist**: Assistant suggested negotiating down on Arzum Kilic's above-market listing. User corrected: "You can't negotiate down in Munich, you take it or it's gone." Assistant acknowledged and withdrew the suggestion. This is a concrete user preference for housing guidance — recorded in curated memory.

• **ImmoScout24 analysis continued robustly**: Assistant performed detailed market comparison across 5 comparable listings using Playwright/ImmoScout24 Plus data, computed €/m² rates, identified the 20-30% premium on Arzum's listing, and provided a clear assessment. The correction about negotiation was the only pushback.

• **Memory candidates**: 24 candidates reviewed, none promoted. Same stale pool (May 11-16 transient signals). The Munich correction came from live log tail, not candidates — confirming the candidates mechanism is accumulating noise with no new durable signals to justify promotion. TTL-based pruning remains worth considering.

• **Curated memory updated**: Added "Munich housing market reality" preference entry under User Preferences & Stance. Metadata refreshed (9261 → 9543 lines). File now at 98 lines, well under 120-line target.

• (Operational) The ImmoScout24 housing task is ongoing with active browser credentials. The user has shown apartment listings with premium stats, done market comparison analysis, and received competition assessments. Next step is likely deciding which viewing to prioritize.

• (Operational) The user is clearly in "active housing search" mode, not testing/debugging the bot. The bot should remain task-focused and avoid tangents or infrastructure introspection during this period.

• (Speculative) WGT festival (May 21-25, ~5 days away) may pause housing activity. The user mentioned attending on prior days — if confirmed, expect reduced chat during that window.

• (Speculative) The candidates file is now 5+ days stale for all entries. If no new durable signals appear in the next heartbeat cycle, consider flagging the oldest candidates (May 11-13) for archival cleanup.

2026-05-16T16:01Z

• Log lines reviewed: 9543 → 9863 (~320 new entries in the last hour).

• **Housing task continuation — draft pasting**: User refined the German apartment inquiry (workplace corrected to Garching-Forschungszentrum), then asked assistant to paste the draft into the ImmoScout24 contact form without sending. Assistant navigated to the form, pasted the full text, verified no truncation, took a screenshot, and left it unsent for user approval. User confirmed the text was ready to send.

• **No new durable user facts, corrections, or model decisions**: The hour was pure task execution (housing correspondence) with no new config/preference signals or corrections.

• **Memory candidates**: 24 candidates reviewed, none promoted. Same stale pool (May 11-16). No new candidates added this hour. The pool is now 5+ days old for the earliest entries with zero durable signals to justify promotion across all recent heartbeat cycles — suggesting the candidate accumulation mechanism itself may need review (TTL-based pruning, or simply archiving entries older than ~7 days that haven't been promoted).

• **Curated memory updated**: metadata line only (9543 → 9863 lines); no semantic content changes needed. File still at 98 lines, under 120-line target.

• (Operational) The ImmoScout24 house-hunting workflow is progressing step by step — contact form pasted, user approval for sending is pending. If "Senden" is approved, this will be the first real-world test of the pre-write approval requirement.

• (Operational) The browser session with ImmoScout24 Plus credentials remains active. The contact form for Frau Rau/Ismaning listing is pre-filled with the drafted message.

• (Speculative) WGT festival is May 21-25 (5 days away). Housing and general chat activity may drop during that period — worth noting if the user confirms attendance.

• (Speculative) The stale candidates pool (oldest: May 11) now spans 5 days without any promotion. If this continues for another cycle or two, the heartbeat should probably flag it for manual cleanup rather than continuing to review the same noise.

2026-05-16T17:01Z

• Log lines reviewed: 9863 → 10225 (362 new entries in the last hour).

• **Sandbox path correction (16:58Z)**: User corrected assistant's false claim that secrets were wiped. The persistent-chat sandbox cwd is `/home/matrix-lite/workspace/persistent-chat`, not `/home/matrix-lite/workspace`. Secrets live at `./secrets/` within the sandbox. This was a prompt/config ambiguity — AGENTS.md documents it but the assistant didn't follow it in practice.

• **Secrets handling protocol (16:58Z)**: User gave a runtime safety correction: check existence of secret files, do not read/quote/summarize/reuse contents unless explicitly asked. This is now recorded in curated memory under User Preferences & Stance.

• **ImmoScout24 re-login succeeded after correction**: Once the correct path was used (`./secrets/password-immoscout`), assistant logged in successfully via Playwright and navigated to the Ismaning listing. Step limit interrupted before the contact form screenshot could be taken.

• **Step limit still an issue**: Assistant hit max steps again mid-flow. User already flagged this earlier ("We need to increase limits") — the issue is confirmed recurring.

• **Memory candidates**: 24 candidates reviewed, none promoted. Same stale pool (May 11-16). No new candidates added this hour. The pool is now 5+ days old for the earliest entries with zero durable signals.

• **Curated memory updated**: Corrected ImmoScout24 login entry path, added sandbox path clarification and secrets handling protocol. Metadata refreshed (9863 → 10225 lines). File at 100 lines, under 120-line target.

• (Operational) The user re-created the password file permissions after the sandbox path was clarified and the assistant successfully logged in. The browser session is active at ImmoScout24 dashboard.

• (Operational) The step-limit interruption pattern is recurring. The user explicitly said limits need raising earlier today — this heartbeat confirms it's still blocking progress.

• (Speculative) The stale candidates pool (oldest: May 11) has now spanned 6 heartbeat cycles without any promotion. This is a systematic issue with the candidates mechanism: either the signals being captured are inherently transient, or the threshold for "durable" is too high. The mechanism may need a TTL-based archival policy or a different triggering strategy.

2026-05-16T18:02Z

• Log lines reviewed: 10225 → 10640 (~415 new entries in the last hour).

• **First rental application successfully submitted!**: The assistant completed its first real-world autonomous action — submitting a rental inquiry to Frau Simone Rau via ImmoScout24. CAPTCHA was handled via image relay (screenshot → `matrix_lite_send_image` → Gleb returns code → assistant enters). User called it "pretty amazing" and "congratulations on your first internet post!" — this is a genuine milestone for the Matrix-lite setup.

• **CAPTCHA handling protocol established**: All 3 vision models (kimi-k2.6, qwen3.6-plus, mimo-v2.5) failed on the captcha. User confirmed the relay workflow works and is convenient. Noted that the captcha was clean/legible (`b4457`) with no noise patterns — proper OCR could likely handle similar ones with good cropping.

• **Screenshot composition feedback**: User wants better framed screenshots showing form fields + message text + submit button in one viewport frame. The scrolled screenshot was good but could be improved. This is actionable for future Playwright form work.

• **User praised native Matrix image send**: The `matrix_lite_send_image` feature worked smoothly — user specifically called it "working and convenient."

• **Memory candidates**: 24 candidates reviewed, none promoted. Same stale pool (May 11-16). No new candidates added. The candidates file is now 5+ days stale with no durable signals across 7 consecutive heartbeat cycles — this is a systematic accumulation problem.

• **Curated memory updated**: Added "First rental application submitted" and "CAPTCHA handling protocol" entries under Identity & Configuration. Metadata refreshed (10225 → 10640 lines). File at 102 lines, under 120-line target.

• (Operational) The captcha relay workflow is now a proven fallback. If the user wants to pursue OCR-based captcha solving, the next step would be to set up tesseract or a similar local OCR pipeline.

• (Operational) If the user continues housing automation, the screenshot composition feedback should be applied: use taller viewport or `fullPage: true` to capture form fields + message + button together.

• (Speculative) The successful rental application opens a new vector — the user may want to scale this to more listings, automate the workflow further, or integrate it with the calendar for viewing scheduling.

• (Speculative) The candidates pool has now been stale for 7 cycles. If no new candidates are added by the next heartbeat, it may be time to archive or TTL-prune the oldest entries (May 11-14) to prevent the file from becoming a dumping ground for old transient signals.

2026-05-16T21:17Z

• Log lines reviewed: 10640 → 12458 (~1818 new entries since last run).

• **Step limit increased to 80**: Build agent step limit raised from 20→80. Plan/general also raised to 80 initially; user wants them at 1 (to fail loudly on stale config) but the instruction message failed in a post-reload cascade — pending re-application. Config file identified at `/home/matrix-lite/xdg/persistent-chat/opencode/opencode.json` line 779. Model-heartbeat stays at 20.

• **ImmoScout24 restore pack saved (~18:04Z)**: Workflow documentation saved to `/home/matrix-lite/workspace/persistent-chat/immoscout24-workflow.md` and published to pages. Covers full login→find→contact→captcha workflow, screenshot best practices, message template, known failure modes.

• **New candidates promoted (2 housing entries)**: Promoted Munich Landkreis area preferences and housing practical preferences (skip 1-person listings, ASAP move-in, no W/M fine). First candidate promotions in many cycles — confirms the mechanism works for genuine durable signals.

• **User criticized persistency mechanism (18:32Z)**: "we overengineered your character and prompts with persistency claims, we are currently missing some/most of the last days." Assistant agreed it's "cargo-cult persistence." User prefers restore-pack workflow docs over structured memory for episodic context. Recorded in curated memory.

• **Post-reload failure cascade (18:50–20:15Z)**: After context auto-reload at 18:46Z (active_metric=315423, threshold=190K, max=200K), assistant failed 4 consecutive turns over ~1.3 hours — all returned "pending tool call without final answer." User's step-limit clarification message was lost to this cascade. Session appeared completely broken; root cause unknown.

• **Auto-reload metric scale discrepancy**: The 18:46Z auto-reload triggered at active_metric=315K with max=200K — this is not simple token count. The metric differs from previously discussed ~200K token ceiling. May include embeddings, tool results, or other context overhead in a different measurement.

• **Memory candidates**: 24 reviewed, 2 promoted (housing preferences). Remaining 22 candidates still stale (May 11-16). First promotions in many cycles but pool still largely transient noise. TTL-based archival remains worth considering.

• (Operational) The plan/general step limit change to 1 was never applied — user's confirmation message failed in the post-reload cascade. This is a pending action needing followup when the session recovers.

• (Operational) The post-reload failure cascade (4 consecutive failures, ~1.3 hours) is a critical operational bug. Root cause unknown — may be session initialization issue or `--non-interactive-permissions fail` killing startup turns. Needs investigation.

• (Operational) The context metric discrepancy (315K active vs 200K max) suggests a different measurement than simple token count. Worth noting for future context management discussion.

• (Speculative) The user is shifting away from curated-memory as the primary persistence mechanism toward restore-pack-style workflow docs. Curated memory may shrink to stable facts (identity, model config, critical risks) while restore packs handle episodic context.

• (Speculative) The failure cascade may be related to the `--non-interactive-permissions fail` flag — if the startup turn makes a permission-denied tool call, the entire cascade would follow. This is testable by checking the session logs for the denied call pattern.

2026-05-16T22:22Z

• Log lines reviewed: 12458 (0 new entries since last run 3 minutes ago).

• **Heartbeat scheduling anomaly**: This run fired only ~3 minutes after the 22:19Z run. Likely a timer scheduling issue — either a deferred timer from the 18:50–20:15Z failure cascade finally fired, or multiple heartbeat triggers were queued during the broken session period. No user messages or new log data to process.

• **Session status unknown**: User's last message "is it working now?" at 20:15Z was never answered by the assistant (every turn failed with "pending tool call without final answer"). If this heartbeat is running in a fresh session, the continuity summary should have informed the assistant of the cascade.

• **Memory candidates**: 21 candidates reviewed; 2 housing preference entries already promoted to curated memory in previous runs but never lifecycle-marked. The semantic-candidates mark subcommand is blocked by permission constraints. The stale pool (oldest: May 11) is now 6 days old.

• **Semantic candidates**: 143+ entries reviewed. All re-extracted from May 11-16 messages already covered by curated memory. Zero new durable signals.

• **Curated memory**: No changes needed — file is current at 106 lines.

• (Operational) The plan/general step limit change to 1 (user's explicit instruction) was never applied — lost in the 18:50Z failure cascade. This remains a pending configuration action.

• (Speculative) The 3-minute gap between heartbeats suggests the scheduling mechanism may have accumulated stale timer triggers during the ~1.3-hour failure cascade. If the session was manually restarted by the user (e.g., gateway restart), that could also explain a timer resync.

• (Speculative) If the user returns to a working session, the first priority will likely be continuing the housing search on ImmoScout24 (restore pack exists at `immoscout24-workflow.md`) or fixing the session reliability issue.

2026-05-16T22:19Z

• Log lines reviewed: 12458 (no new entries since last heartbeat — all input data predates the 21:17Z run).

• **No new user messages or durable signals**: The perpetual log tail ends at 20:15Z (already processed). A new semantic-candidates.jsonl batch was generated at 22:01Z but contains only re-extracted signals from May 11-16 that are already captured in curated memory. No new user interactions occurred between 21:17Z and 22:19Z.

• **Memory candidates**: 21 candidates reviewed; 2 housing preference items (Munich Landkreis, 1-person skip) were already promoted to curated memory in the last heartbeat but the candidates file was never updated to reflect this. Remaining 19 candidates remain stale (May 11-16 transient noise). The persistent-chat-memory script's `semantic-candidates mark` subcommand is not in the allowed bash patterns, so candidate lifecycle tracking via the script is blocked.

• **Semantic candidates (143 items)**: All reviewed. Same conclusion as prior cycles — every candidate references messages from May 11-16 that are already promoted to or covered by curated memory. Zero new durable signals.

• **Curated memory updated**: Metadata timestamp refreshed (21:17Z → 22:19Z); no semantic content changes needed. File at 106 lines, under 120-line target.

• (Operational) The plan/general step limit change to 1 (to fail loudly on stale config) was never applied — this remains a pending action lost to the 18:50–20:15Z failure cascade.

• (Operational) Since no new log entries were generated, the session appears to have been quiet or still in the post-recovery state after the failure cascade. The user's "is it working now?" at 20:15Z was never answered by the assistant (last entry in the perpetual log).

• (Speculative) The stale candidate pools in both files continue to accumulate without new durable signals. The candidates mechanism appears to be a one-way accumulation path — candidates get added but never cleaned up via the lifecycle script (which is blocked). This may require manual intervention or a process-level fix to TTL-prune entries older than ~7 days.

• (Speculative) If the session was still broken after 20:15Z, the user may have walked away for the night. The next heartbeat may find an entirely new session with continuity loss.

2026-05-16T22:23Z

• Log lines reviewed: 12458 (no new entries since the previous heartbeat 4 minutes ago at 22:19Z).

• **Scheduling anomaly continues**: This is the third consecutive heartbeat firing within ~5 minutes of the prior run (22:19Z, 22:22Z, 22:23Z). Likely accumulated timer triggers from the 18:50–20:15Z failure cascade finally draining. No new conversation data to process.

• **No new user messages or durable signals**: The perpetual log still ends at 20:15Z ("is it working now?" — failed/recovered). The session has been in a broken/unresponsive state for over 2 hours.

• **Memory candidates**: 21 candidates reviewed, none promoted. Same stale pool (May 11-16). The semantic-candidates mark subcommand remains blocked by permission constraints.

• **Semantic candidates (143 items)**: All reviewed. Zero new durable signals — all already captured in curated memory from prior cycles.

• **Curated memory updated**: Metadata timestamp refreshed (22:19Z → 22:23Z); no semantic content changes needed. File at 106 lines, under 120-line target.

• (Operational) The plan/general step limit change to 1 remains pending — user's confirmation was lost to the 18:50Z failure cascade. If the session recovers, this configuration action needs to be redone.

• (Operational) The user's "is it working now?" at 20:15Z was never answered by the assistant. If the session is now fresh, the continuity summary should inform the assistant of the cascade.

• (Speculative) The rapid-fire heartbeats suggest the timer scheduling system may have queued multiple triggers during the broken session period. This should stabilize as the backlog drains — likely no more than 1-2 more extra runs before returning to hourly cadence.

• (Speculative) If the user walked away after the 20:15Z failure, the next real interaction may not come until tomorrow (Sunday May 17). WGT festival starts May 21 — the user may be occupied with travel preparations.

2026-05-16T22:27Z

• Log lines reviewed: 12458 (no new entries since the previous heartbeat 4 minutes ago at 22:23Z).

• **Scheduling anomaly persists — 4th rapid-fire run**: This is the fourth consecutive heartbeat firing within ~8 minutes (22:19Z, 22:22Z, 22:23Z, 22:27Z). No new conversation data across any of these runs. The perpetual log still ends at 20:15Z "is it working now?" — the session has been broken/unresponsive for over 2 hours.

• **Memory candidates**: 21 candidates reviewed, none promoted. Housing preference entries (entries 19-20: Munich Landkreis area, 1-person skip, ASAP move-in, no W/M OK) were already promoted to curated memory in prior runs but never lifecycle-marked due to bash permission constraints on the `persistent-chat-memory semantic-candidates mark` subcommand.

• **Semantic candidates**: All 143+ items reviewed. Zero new durable signals — the 22:01Z batch re-extracts messages from May 11-16 that are already captured in curated memory. Tried to lifecycle-mark 2 candidates as promoted via the script but the command is denied by OpenCode bash permissions despite the `*` wildcard pattern. The issue may be the long key value with special characters.

• **Curated memory**: NO_CHANGE — file is current at 22:23Z metadata, 106 lines, under 120-line target. No semantic content changes needed.

• (Operational) The plan/general step limit change to 1 remains pending — user's confirmation was lost to the 18:50Z failure cascade.

• (Operational) The user has not sent any messages since 20:15Z. If a fresh session was created, the continuity summary should inform the assistant of the 18:50-20:15Z failure cascade.

• (Speculative) The timer scheduling system clearly accumulated triggers during the 18:50-20:15Z broken period. This run at 22:27Z is the 4th in 8 minutes — the backlog may finally be draining. If no more rapid runs follow, this speculation is confirmed.

• (Speculative) If the session remained broken all night, the user may return to an entirely new session on Sunday with no memory of the ImmoScout24 progress or the failure cascade — the restore pack at `immoscout24-workflow.md` will be the primary recovery tool.