OmO Native stops waiting on a stalled turn-end subscriber after two seconds. Memory recovery remains retryable without treating the cancelled wait as a failed reflection run, and stall diagnostics identify the component and hook instead of only omo.js. Thanks to @floweredao for the report. (#11254, Part of #11249) (#11280)
Warm memory prompts avoid repeated git processes for HEAD and agreements. Committed agreement reads are cached by repository and full revision, and cache misses inspect only the ledger path. Standard file-backed HEADs resolve from stat-validated Git files, including packed refs and linked worktrees, with git fallback for unusual layouts. (#11216, part of #10707) (#11280)
Unchanged memory notices no longer yield a warm prompt to cold recall. Soul and agreement notices read their small atomic watermarks directly and skip lock acquisition only when valid state confirms nothing needs announcing or updating. Missing, malformed, or unreadable state is rechecked under the identity lock. Writers publish through unique, exclusively created temporary files, flush them before rename, and sync the directory where supported. (#11215, part of #10707) (#11280)
Memory notices survive a directory-sync failure after publication. Soul and agreement watermarks still flush before atomic rename and attempt directory sync, but a sync error after publication is logged without discarding that turn's announcement. Failed writes clean up their temporary files, repeated agreement ids use set comparison, and HEAD reads defer to git for worktree configuration. (#11234, part of #10707) (#11280)
Nested in-process tasks retain their original session tree. A child's own tasks now record the tree root and increasing depth, so nested delegation obeys max_depth instead of restarting at depth 1. The root session's own view now also covers its nested in-process descendants: the footer, /tasks, the default task_output list, and task_send and cancel. Process-mode descendants already appeared there. (#11226) (#11280)
Nested team members retain the original session tree. A child session leading a team now gives each member its own session as parent and the original tree root, with depth increasing from the lead. Persisted member ancestry is preserved when rebuilding a respawn. (#11229) (#11280)
The engine moves to senpi 2026.10.25-2: resuming a session interrupted mid-run no longer crashes, startup with many skills is fast again, long sessions keep their prompt cache when the context-budget reminder appears, and the per-request engine turn limit is off by default (#11240). With 748 skills, startup drops from 83.2 s to 1.4 s, fixing the slow start since 5.1.45 (#11245). In a long session that crossed the reminder at about 714k tokens of context, the request now writes 44k cache tokens instead of 758k. engineTurns.maxPerUserInput turns the turn limit back on; the 6-hour turn runtime cap still applies. Compaction finds a shorter safe tail when the summary would not fit. Kimi Code serves Kimi K3.1 Pro. A session that restarts or clears its queue no longer receives another session's queued messages twice. Claude subscription sessions run their SDK children in the session's project folder, so home-level Claude Code memory and settings no longer load into every session. MCP forms cancel instead of submitting empty answers when dismissed. Claude Code auto memory is never injected into Anthropic subscription sessions.
A ulw-research run cannot produce a reader-facing artifact against an undecided brief. The deliverable interview now also records a ## Fidelity block, and the new scripts/fidelity-policy.mjs registry turns it into the rules the CLI enforces: fact fill, fact verify, fact pairs, fact meaning-check, fact polish-apply and fact polish-diff refuse an unlocked brief with one fidelity_interview_incomplete defect and write nothing, each reading --brief (default $SESSION_DIR/brief.md), while collection keeps running; fact fill then refuses a derived row under derived numbers: none, evaluates the source floor live against each source's meta.json, binds a translation to its quote only under languages ... with translation beside, and omits a twice-failed sentence under fallback: omit. Off-table derived numbers or fallback values are usage errors instead of silently allowing; under any floor but standard a row with no source is refused; and the fill map records the brief's hash, so fact verify refuses an edition filled under a different brief (brief_changed) and re-checks every value against the current one. (#11166, closes #11009)
Fixed
-
Remove automatic
process_crashedtelemetry that used ordinary usage settings without separate crash consent. Starting a session no longer harvests operational crash records; manual/bugreports remain separate. (#11258) (#11280) -
75401cb Merge pull request #11166 from code-yeongyu/feat/11009-t19
-
40fe813 Merge pull request #11280 from code-yeongyu/batch/memsync-coord-13
-
91e090e chore(batch-13): canonical regen after the 5.1.47 release-state merge (pair a8428de970afabaa)
-
d8dd7c2 Merge remote-tracking branch 'origin/dev' into b13
-
08e9a95 Merge pull request #11282 from code-yeongyu/release/v5.1.47-source-state
-
68d4241 Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
3e6ad34 chore(batch-13): canonical regen on the merge result (pair 1c36c222100a40df)
-
eff0735 docs(changes): name the batch fragment after the batch PR (#11280)
-
95640d0 fix(ulw-research): fail closed on brief values, judge sourceless rows, and bind the brief into the fill map (Part of #11009)
-
c98c444 docs(changes): #11254's entry into the batch fragment
-
4924ad7 Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
8fc22fc docs(changes): fold car fragment #11258 into the batch fragment (fold-batch)
-
ea5778b docs(changes): batch #13 car entries as the batch fragment; CHANGELOG.md unchanged vs dev
-
fbf6544 fix(memory): isolate reconcile callers from observer cancellation
-
6a057cc fix(telemetry): stop sending automatic process_crashed without crash consent
-
7e3f4f1 chore(changelog): move the #11166 entry into a changes/unreleased fragment
-
18182ca Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
06e137a docs: link bounded-settle fix in changelog
-
ed7d503 fix(memory): bound and identify settled observers
-
40cc085 Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
fe2d042 chore(ulw-research): re-align #11166 to its base at feat/11009-t16
-
8e12c42 chore(ulw-research): align with the #11160 head record envelope and shared hashing (Part of #11009)
-
2107e56 chore(ulw-research): align with the #11160 head fidelity records and polish contract (Part of #11009)
-
b16f3d4 fix(memory): preserve published notices on sync errors
-
28928fd Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
af64398 Merge remote-tracking branch 'origin/dev' into fix/10732-nested-child-root
-
ab771ae chore(ulw-research): align with the #11160 head's text-only polish rule (Part of #11009)
-
e569cf2 fix(memory): guard optimistic watermark reads and publication
-
45575eb perf(memory): keep unchanged notices off async locks
-
5fa50c4 Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
ffc8381 Merge remote-tracking branch 'origin/dev' into perf/10707-memo-agreements-head
-
96ac1bb test(memory): harden HEAD and agreement regression fixtures
-
074620e docs(changelog): drop a stray merge marker (Part of #11009)
-
e5a9d65 refactor(ulw-research): import shared tables from their owners in the fidelity policy (Part of #11009)
-
1d67831 Merge remote-tracking branch origin/dev into feat/11009-t19
-
295a1f6 Merge remote-tracking branch 'origin/dev' into perf/10707-memo-agreements-head
-
3b179c4 test(memory): update recall budgets for filesystem HEAD
-
8bc2580 Merge remote-tracking branch 'origin/dev' into perf/10707-memo-agreements-head
-
013acb5 perf(memory): cache agreements and resolve HEAD without git
-
fd79cc2 Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
c0a01df fix(ulw-research): adapt t19 to dev's unit registry and the Codex proofread overlay
-
9f4eb48 Merge remote-tracking branch 'origin/dev' into feat/11009-t19
-
220b613 feat(ulw-research): add the fidelity interview and brief lock (Fixes #11009)
-
2e726ce Merge remote-tracking branch 'origin/feat/11009-t16' into feat/11009-t19
-
9533cfa Merge remote-tracking branch 'origin/feat/11009-t15' into feat/11009-t19
-
cf6cddb Merge remote-tracking branch 'origin/feat/11009-t14' into feat/11009-t19
-
3fc915f Merge remote-tracking branch 'origin/feat/11009-t13' into feat/11009-t19
-
c0386c1 Merge remote-tracking branch 'origin/feat/11009-t12' into feat/11009-t19
-
2f3f8dd Merge remote-tracking branch 'origin/feat/11009-t11' into feat/11009-t19
-
79a170c Merge remote-tracking branch 'origin/feat/11009-t10' into feat/11009-t19
-
165eb1c Merge remote-tracking branch 'origin/feat/11009-t9' into feat/11009-t19
-
47829fb Merge remote-tracking branch 'origin/feat/11009-t8' into feat/11009-t19
bun add -g omo-ai