Highlights
Engine: senpi 2026.9.8 - fixes the Anthropic OAuth login loop reported on Discord: /login anthropic and /claude-account add no longer dead-end on a browser page reading "Authentication failed - State mismatch." when another OmO/senpi process on the same machine still holds the OAuth callback port 53692. The login now binds an ephemeral loopback port in that case and carries it through the auth URL and the token exchange, a callback that belongs to another session explains itself and tells you how to continue, and an abandoned login times out after 10 minutes and releases its port (senpi#1502, senpi#1503). Pin bump: #7984. Full senpi notes: v2026.9.8.
Memorian nudges got sharper. Recollections now fire on the live prompt and steer an accepted nudge mid-run (#7945), each notice opens with a per-record recollection opener under a single "Aha!" title (#7943, #7959), memories already visible in the transcript are excluded from recall (#7948), factual-negation and decision-commentary hints are rejected before they reach you (#7953, #7949), and accepted nudges are capped per session (#7950). The filler-hint gate was reverted in favour of guidance in the nudge tool description (#7956, #7957, #7960).
Fixed
- Tasks / DAG: spawned task records persist
child_session_id(#7978); never-started DAG nodes are re-admitted as a new attempt on reconcile (#7939); a vanished DAG state directory no longer exits the session (#7962); RPC process trees are awaited on termination (#7965);omo.task.updatedsnapshot pushes are coalesced so RPC queues stop overflowing in bursts (#7941); delegated children inherit the parent's fast mode through the-fastcatalog sibling (#7938). - Memory: a bind superseded by session replacement is treated as a skip instead of an error (#7955); reflection completion swallows a stale extension ctx (#7951); the dream idle tick retires on a stale extension ctx (#7942, thanks @stevenahhh); ghost active memory reservations self-heal on reconcile (#7947); dead-launcher reflection reservations shadowed by retired runs are reclaimed (#7944).
- Packaging: the bundled agent toolkit runs under Bun mode from the packaged binary (#7936); the tracked generated extension bundles are un-ignored (#7964).
Changed
- Ultrawork: eval work is routed by dependency and every cell is compared with the state it was meant to produce (#7981, senpi#1500).
- Teams: task records expose team membership (#7969); the thread tool family is registered (#7456).
- LazyCodex: the final gate is softened and subagent plan takeover is stopped (#7976).
- Website: the landing hero carries the desktop workflow graph (#7966), the DAG stylesheet ships and the desktop workflow view is legible (#7968), agents are described by role (#7970), and the social image is dynamic with live stars and larger typography (#7954, #7967).
- CI: Windows test timeouts raised for git/fs-heavy tests (#7937); the thread live-surface test builds its path expectations with
node:path, so the Windows senpi-compatibility leg is green again (#7982).
Pull requests
#7981 #7978 #7976 #7969 #7970 #7968 #7967 #7942 #7966 #7965 #7951 #7955 #7964 #7937 #7962 #7960 #7959 #7957 #7956 #7947 #7954 #7939 #7944 #7950 #7953 #7948 #7949 #7945 #7943 #7941 #7938 #7456 #7936 #7982 #7984
Commits
- 4b84102 Merge pull request #7985 from code-yeongyu/release/v5.0.0-beta.49-source-state
- 73248cc Merge pull request #7982 from code-yeongyu/fix/live-surface-test-windows-paths
- 665abcc Merge pull request #7981 from code-yeongyu/feat/ulw-observe-then-act
- 771b83c Merge pull request #7978 from code-yeongyu/fix/persist-child-session-id
- a3691b5 Merge pull request #7976 from code-yeongyu/lcx/gate-softening
- 6819505 fix(ulw-loop): satisfy strict index-signature access in quality-gate test; repair evidence link
- 9f4d596 style(omo-codex): format ulw-execute-continuation cli test for biome
- 097be4c docs(omo-codex): PR B ship evidence (codex-qa install/app-server proofs)
- 8dde4e8 docs(omo-codex): close out PR B QA evidence (breaker RED/GREEN, remote cleanup receipts, installer probe)
- 3451c0a test(omo-codex): update Codex overlay inverse for the shared-skill drift check
- 95f7e93 fix(ulw-loop): bundle the component CLI so dist/cli.js stays self-contained
- eeeb328 test(ulw-loop): expect lazycodex to accept codeReview-free final gates
- 8bd0c35 Merge pull request #7969 from code-yeongyu/feat/team-member-task-linkage
- adb9284 chore(omo-codex): regenerate tracked plugin skill after codex overlay change
- 20c73b8 fix(ulw-loop): wrap spawn-admission hook manifest, evaluate breaker first, align legacy artifacts
- ca92f17 test(ulw-loop): cover accepted quality-gate input forms in error text
- 3f6d447 fix(ulw-loop): validate codeReview acceptors via surface table on lazycodex
- 40a5364 Merge remote-tracking branch 'origin/dev' into feat/team-member-task-linkage
- 602f721 Merge pull request #7970 from code-yeongyu/feat/web-redesign-phosphor-20260908
- 64623f7 fix(web): give the DAG camera toolbar 44px hit targets
- 249a630 refactor(web): describe agents by role instead of internal names on the public site
- 7f80716 feat(ulw-loop): add subagent admission circuit breaker and align lazycodex gate artifacts
- 61acee0 fix(omo-codex): make Codex final verification self-review by default and warn on empty spawn fields
- b08bcbe fix(omo-codex): relax ulw-execute final gate and stop injecting root plans into subagents
- 0889c24 feat(prompts-core): trigger ultrawork verification gate only on explicit review demands
- 1999be1 fix(ulw-loop): explain accepted quality-gate input forms in errors and help
- a94df20 feat(ulw-loop): soften lazycodex quality gate to optional codeReview and self-review acceptors
- dfe5289 Merge pull request #7968 from code-yeongyu/feat/web-redesign-phosphor-20260908
- ebccbc3 fix(web): ship the DAG stylesheet and make the desktop workflow view legible
- 988f02d Merge pull request #7967 from code-yeongyu/feat/web-redesign-phosphor-20260908
- e22e8d6 style(web): format social image component
- 6ee1c74 fix(web): enlarge star count on social image
- 4a45e97 fix(web): improve OmO social image typography
- efec42a Merge pull request #7942 from stevenahhh/fix/dream-idle-stale-ctx
- 8878a30 Merge pull request #7966 from code-yeongyu/feat/web-redesign-phosphor-20260908
- e07fe0c Merge remote-tracking branch 'origin/dev' into fix/dream-idle-stale-ctx
- 5769d9f Merge pull request #7965 from code-yeongyu/fix/rpc-terminate-tree
- ae50dba feat(web): port desktop workflow graph into landing hero
- bacec4c Merge remote-tracking branch 'origin/dev' into fix/rpc-terminate-tree
- 4e90bf0 Merge pull request #7951 from code-yeongyu/fix/7946-reflection-stale-ctx
- d9a9bd1 Merge remote-tracking branch 'origin/dev' into fix/7946-reflection-stale-ctx
- 50786ac Merge pull request #7955 from code-yeongyu/fix/memory-bind-stale-ctx
- 936d255 Merge remote-tracking branch 'origin/dev' into fix/memory-bind-stale-ctx
- 493b6fa Merge pull request #7937 from code-yeongyu/fix/windows-ci-timeout-7709
- b717f0b Merge pull request #7962 from code-yeongyu/fix/dag-runs-dir-enoent
- 7a67160 Merge pull request #7960 from code-yeongyu/fix/aha-filler-test-removal
- f7b4b43 Merge pull request #7959 from code-yeongyu/feat/aha-unify
- bbc2fcc feat(web): re-skin docs shell and manifesto and close the mobile overflow debt
- 14e5b20 feat(web): rebuild the landing page to the Phosphor Ledger contract
- be0b3a9 Merge pull request #7957 from code-yeongyu/revert/memorian-filler-hint
- 2f07008 Revert "Merge pull request #7956 from code-yeongyu/fix/memorian-filler-hint"
- 7c1c66c Merge pull request #7956 from code-yeongyu/fix/memorian-filler-hint
- 4cc218d docs(web): clarify animatable properties and the decorative-only faint text token
- 1b2d857 fix(web): serve a minimal social image when the branded render fails
- 064f9dd feat(web): add the 3D agent-graph hero scene with poster fallback and chunk budget
- c9b3249 feat(web): add the Phosphor Ledger token layer, primitives, nav and footer
- 9c91bf4 fix(memory): reject filler nudge hints before they reach the recollection notice
- 6595aa6 Merge pull request #7947 from code-yeongyu/fix/memory-ghost-active-self-heal
- 11d5155 Merge pull request #7954 from code-yeongyu/feat/web-redesign-og-20260908
- cdec4d8 docs(web): rewrite DESIGN.md as the Phosphor Ledger redesign contract
- 383d179 feat(web): render the Open Graph image dynamically with live stars and the GitHub description
- 9b52eac fix(web): correct landing copy, model labels, and edition list
- 102717b docs: fix stale claims in READMEs and guides against current code
- a27dc31 Merge pull request #7939 from code-yeongyu/fix/7902-dag-readmit-never-started
- fa9a322 Merge pull request #7944 from code-yeongyu/fix/7912-reflection-reclaim
- fac35d8 fix(memory): anchor stranded temporary matching to the full suffix
- b5f6647 fix(memory): read abandoned generation timestamps by artifact schema
- 405a45d test(memory): preserve durable completions with temporary-like run ids
- 963c193 test(memory): cover retired abandoned reservation generations
- 22cdd13 fix(memory): bound pending reflection snapshots with oldest-first eviction
- 63102ce test(memory): cover persisted pending limits and legacy promotion
- 0759323 fix(memory): clean reservation temporaries while holding the scheduler lock
- 5f77ec8 docs(memory): document generation-aware reclaim and temporary retention
- 4fe4ba9 test(memory): exercise pending byte and conversation limits behaviorally
- d96b164 test(memory): pin reservation temporary cleanup under the scheduler lock
- f8ef47b fix(memory): clean failed artifact writes and sweep stranded run temporaries
- d69e674 fix(memory): reclaim dead launchers shadowed by retired reflection runs
- 662cea3 test(memory): exercise temporary cleanup through startup and publication
- e98aba3 test(memory): correct retired-generation fixture timestamps and imports
- 5002598 test(memory): pin the aggregate cap on pending reservation snapshot merges
- 2f89d28 test(memory): pin run artifact temporary cleanup and the stranded-temp sweep
- 11b558f test(memory): pin dead-launcher reclaim when a retired run dir shadows the reservation
- 90bab7c Merge pull request #7950 from code-yeongyu/feat/memorian-nudge-cooldown
- c6f9ef5 Merge pull request #7953 from code-yeongyu/fix/memorian-factual-negation
- cc3800c docs(readme): hype up the mass-ulw caption under the DAG image
- 32d20eb docs(readme): frame sponsors as sustaining a personal side project
- 60a71b3 fix(memory): narrow factual negation filtering
- 8b764c6 Merge pull request #7948 from code-yeongyu/feat/memorian-transcript-filter
- eb10220 docs(readme): state OpenGateway policy as no-logging of inference raw content
- b290ed0 docs(readme): unify caption style and add OpenGateway privacy note
- 7e2c90c docs(readme): restore omo-herdr-dag image inside OmO Beta block
- 97f8504 ci(cla): allowlist YeongYU account
- 3b562c5 docs(readme): nest mass-ulw caption inside OmO Beta block
- 4660153 docs(readme): add omo-herdr-dag showcase under OmO Beta block
- dc84776 docs(readme): fix sponsor section rendering
- 7914304 docs(readme): add sponsor thank-you note under Sponsors title in all languages
- 6e64761 docs(readme): add OpenGateway sponsor table with logo across all languages
- b55ded0 Merge pull request #7949 from code-yeongyu/feat/memorian-hint-meta-validation
- ce7bcb8 fix(memory-core): reject decision-commentary memorian hints
- 2f2f03e Merge pull request #7945 from code-yeongyu/feat/memorian-same-turn-steer-ko
- ffc8292 feat(memory-core): render the recall hint header in Korean for Korean hints
- fccfb7a test(memory-core): cover Korean recall hint header
- 7c78c14 Merge pull request #7943 from code-yeongyu/feat/memorian-recall-openers
- 85d0cb7 fix(memory): retire dream idle tick on stale extension ctx
- 81f1e7d Merge pull request #7941 from code-yeongyu/fix/task-updated-coalesce
- f906270 Merge pull request #7938 from code-yeongyu/fix/task-fast-mode-inherit-6795
- 7855da5 Merge pull request #7456 from code-yeongyu/feat/thread-tools-registration
- 22a79fa fix(task): delegated children inherit the parent's fast mode via the -fast catalog sibling
- e5c39d3 ci(windows): raise test timeouts for git/fs-heavy tests
- 31721f1 Merge pull request #7936 from code-yeongyu/fix/ulw-loop-toolkit-bun-be-bun
Thank you to 3 community contributors:
- @sisyphus-dev-ai:
- fix(task): delegated children inherit the parent's fast mode via the -fast catalog sibling
- test(memory-core): cover Korean recall hint header
- feat(memory-core): render the recall hint header in Korean for Korean hints
- fix(memory-core): reject decision-commentary memorian hints
- test(memory): pin dead-launcher reclaim when a retired run dir shadows the reservation
- test(memory): pin run artifact temporary cleanup and the stranded-temp sweep
- test(memory): pin the aggregate cap on pending reservation snapshot merges
- test(memory): correct retired-generation fixture timestamps and imports
- test(memory): exercise temporary cleanup through startup and publication
- fix(memory): reclaim dead launchers shadowed by retired reflection runs
- fix(memory): clean failed artifact writes and sweep stranded run temporaries
- test(memory): pin reservation temporary cleanup under the scheduler lock
- test(memory): exercise pending byte and conversation limits behaviorally
- docs(memory): document generation-aware reclaim and temporary retention
- fix(memory): clean reservation temporaries while holding the scheduler lock
- test(memory): cover persisted pending limits and legacy promotion
- fix(memory): bound pending reflection snapshots with oldest-first eviction
- test(memory): cover retired abandoned reservation generations
- test(memory): preserve durable completions with temporary-like run ids
- fix(memory): read abandoned generation timestamps by artifact schema
- fix(memory): anchor stranded temporary matching to the full suffix
- docs: fix stale claims in READMEs and guides against current code
- fix(web): correct landing copy, model labels, and edition list
- feat(web): render the Open Graph image dynamically with live stars and the GitHub description
- docs(web): rewrite DESIGN.md as the Phosphor Ledger redesign contract
- fix(memory): reject filler nudge hints before they reach the recollection notice
- feat(web): add the Phosphor Ledger token layer, primitives, nav and footer
- feat(web): add the 3D agent-graph hero scene with poster fallback and chunk budget
- fix(web): serve a minimal social image when the branded render fails
- docs(web): clarify animatable properties and the decorative-only faint text token
- Revert "Merge pull request #7956 from code-yeongyu/fix/memorian-filler-hint"
- feat(web): rebuild the landing page to the Phosphor Ledger contract
- feat(web): re-skin docs shell and manifesto and close the mobile overflow debt
- Merge remote-tracking branch 'origin/dev' into fix/memory-bind-stale-ctx
- Merge remote-tracking branch 'origin/dev' into fix/7946-reflection-stale-ctx
- Merge remote-tracking branch 'origin/dev' into fix/rpc-terminate-tree
- feat(web): port desktop workflow graph into landing hero
- Merge remote-tracking branch 'origin/dev' into fix/dream-idle-stale-ctx
- fix(web): improve OmO social image typography
- fix(web): enlarge star count on social image
- style(web): format social image component
- fix(web): ship the DAG stylesheet and make the desktop workflow view legible
- feat(ulw-loop): soften lazycodex quality gate to optional codeReview and self-review acceptors
- fix(ulw-loop): explain accepted quality-gate input forms in errors and help
- feat(prompts-core): trigger ultrawork verification gate only on explicit review demands
- fix(omo-codex): relax ulw-execute final gate and stop injecting root plans into subagents
- fix(omo-codex): make Codex final verification self-review by default and warn on empty spawn fields
- feat(ulw-loop): add subagent admission circuit breaker and align lazycodex gate artifacts
- refactor(web): describe agents by role instead of internal names on the public site
- fix(web): give the DAG camera toolbar 44px hit targets
- Merge remote-tracking branch 'origin/dev' into feat/team-member-task-linkage
- fix(ulw-loop): validate codeReview acceptors via surface table on lazycodex
- test(ulw-loop): cover accepted quality-gate input forms in error text
- fix(ulw-loop): wrap spawn-admission hook manifest, evaluate breaker first, align legacy artifacts
- chore(omo-codex): regenerate tracked plugin skill after codex overlay change
- test(ulw-loop): expect lazycodex to accept codeReview-free final gates
- fix(ulw-loop): bundle the component CLI so dist/cli.js stays self-contained
- test(omo-codex): update Codex overlay inverse for the shared-skill drift check
- docs(omo-codex): close out PR B QA evidence (breaker RED/GREEN, remote cleanup receipts, installer probe)
- docs(omo-codex): PR B ship evidence (codex-qa install/app-server proofs)
- style(omo-codex): format ulw-execute-continuation cli test for biome
- fix(ulw-loop): satisfy strict index-signature access in quality-gate test; repair evidence link
- Merge pull request #7985 from code-yeongyu/release/v5.0.0-beta.49-source-state
- @stevenahhh:
- fix(memory): retire dream idle tick on stale extension ctx
- @YeongYU:
- fix(memory): narrow factual negation filtering