에이전트나 명령줄이 열려 있는 터미널 세션을 제어할 수 있습니다. 스레드 도구는 터미널 세션의 모델과 사고 수준을 전환하고 그 차례를 중단하며, 창의 자체 /model, 수준 선택기 또는 Esc와 정확히 동일하게 적용됩니다. 이전 엔진의 터미널은 계속 이를 거부합니다. 다른 세션이나 명령줄에서 전달된 메시지는 수신 터미널에 발신자 이름을 지정하는 한 줄 아래에 작성된 대로 표시됩니다. (#9660, #9662, #9664)
Added
/doctor가 이제 메모리 파일 자체를 확인합니다. 끊어진 링크, 잘못된 프론트매터, 중복된 노트, 메모리 폴더 외부의 파일, 읽을 수 없는 파일 및 과도하게 큰 시스템 섹션을 보고하며, /doctor --json은 비밀 같은 텍스트가 마스킹된 동일한 결과를 반환합니다. 백그라운드 메모리 정리는 발견한 것을 수정합니다. (#9652, #9654)
비밀 같은 텍스트는 메모리에 남지 않습니다. 토큰, API 키 또는 PEM 블록을 포함하는 메모리 커밋은 거부되고, 차례에 주입된 메모리 텍스트는 마스킹됩니다. (#9653, #9655)
Fixed
중간에 중단된 메모리 유지 관리 실행이 더 이상 이후 실행을 차단하지 않습니다. Reflection, Dream, Facts 실행이 이제 각 결과의 영수증을 유지하며, /doctor는 이를 표시합니다. 프로세스가 중단된 실행은 파일을 유지하고 이유를 기록한 채 격리되므로 이후 실행이 진행됩니다. 실행이 감독자의 중단 전에 이미 커밋한 결과는 손실되지 않고 유지됩니다. (#9689, #9691)
메모리가 더 이상 모든 프롬프트를 느리게 하지 않습니다. 이 세션이 메모리를 저장했는지 확인하는 검사는 신원의 전체 기록을 읽었으며 초가 걸릴 수 있거나 메모리 압박 상태에서 원본 오류로 타임아웃되었습니다. 이제 제한되며, 실패는 조용해지고, 메모리 저장소는 백그라운드에서 압축됩니다. (#9667, #9671)
모든 차례의 메모리 파일 목록이 작게 유지됩니다. 비시스템 메모리 이름의 목록은 장수명 말뭉치에서 약 158 KB(대략 39K 토큰)로 측정되었으며, 이제 바이트 예산 내에서 디렉토리당 최신 이름을 표시하고 제외된 개수를 나타냅니다. (#9687, #9688)
브라우저 스킬이 릴리스 바이너리에서 작동합니다. 5.1.11 이후로 바이너리는 번들 omowright 런타임 없이 스킬을 설치했으므로 바이너리 설치에서 로드하면 항상 실패했습니다. (#9661, #9665)
GPT-6 Astra가 이미 통과한 검사의 반복을 중단합니다. 자식의 실행이 이미 명령이 통과함을 증명했을 때, Astra는 다시 실행하는 대신 그 결과를 재사용하며, 그 울트라워크 지침이 더 짧습니다. @ashmoonori-afk에게 감사합니다. (#9642, #9649)
omo.dev가 배포 전체에서 스타일 페이지를 계속 렌더링합니다. 이전 빌드에서 제공된 페이지는 스타일시트 없이 로드될 수 있었으며, 배포는 이제 이전 빌드의 정적 자산을 전달합니다. (#9617, #9623)
코드 모드 답변이 항상 올바른 실행에 도달합니다. 실행 중인 코드 모드 작업에 그 핸들을 통해 답변하거나 취소하면 더 이상 다른 최신 실행에 도달할 수 없습니다. (#9562, #9695)
Changed
omo가 senpi 2026.10.10-5에서 실행됩니다. 답변이 여전히 스트리밍 중인 동안 긴 대화를 다시 스크롤할 수 있습니다. 터미널이 더 이상 모든 업데이트에서 맨 위로 점프하지 않습니다 (senpi#2836). 앱이 세션이 다른 곳에서 여전히 열려 있는 스레드를 다시 열 때, 스레드의 현재 권한 모드가 적용되므로 전체 액세스에서 물어보기로 전환된 스레드가 다시 승인을 요청합니다 (senpi#2823). 코드 모드에서 해결되지 않는 것을 기다리는 JavaScript 셀을 중지하면 워커와 그 전역이 유지됩니다 (senpi#2788). 라이브 eval 행은 셀의 요약으로 한 줄로 시작하고 (senpi#2802), 셀은 require를 호출하고 커널이 정의하는 이름을 숨길 수 있으며 (senpi#2792, senpi#2793), 독립 에이전트는 오프라인 페이지를 쓰는 show_html_page 도구를 얻습니다. 전체 목록: senpi 2026.10.10-5.
omo가 senpi 2026.10.10-4에서 실행됩니다. 입력 상자가 더 이상 TUI 뒤의 터미널에 뭔가 쓸 때 화면 밖으로 밀려나지 않습니다 (senpi#2815). 이전 설치로 인해 남겨진 기본 확장 shim(예: npm에서 bun으로 또는 독립 바이너리로 전환 후)은 더 이상 Cannot find module로 모든 시작을 중지하지 않습니다 (senpi#2765). 동일한 세션을 다시 바인드하는 두 프로세스는 더 이상 ENOENT로 실패하지 않습니다 (senpi#2828). 코드 모드에서 중지된 분리 셀은 여전히 실행 중인 것으로 읽지 않고 출력을 표시하며, 격리된 셀은 QuickJS를 런타임으로 지정합니다 (senpi#2811). 전체 목록: senpi 2026.10.10-4.
OmO의 테스트 스위트가 더 작고 엄격해졌습니다. 7개 저장소에 걸친 정리(47개 병합된 PR)는 실제 회귀를 감지할 수 없는 61개 테스트 파일과 393개 테스트 사례, 약 8,100개 순 줄, 그리고 370줄의 죽은 제품 코드를 제거했습니다. 또한 각각을 의도적으로 깨뜨려 증명한 47개 테스트를 수리하여 이제 보호하는 코드가 깨질 때 실패하고, 이전에 보호된 것이 지금 보호되지 않습니다. CI에서 실행되지 않았던 스위트는 이제 Codex 플러그인 컴포넌트 스위트 및 146개 웹 엔드-투-엔드 테스트를 포함하여 실행됩니다. (#9285, #9336)
- f9ce976 Merge pull request #9705 from code-yeongyu/docs/5.1.22-notes
- eb002c5 docs(changelog): release notes for 5.1.22
- 5987e12 Merge pull request #9691 from code-yeongyu/feat/memory-run-receipts
- 363745b Merge commit '181c9c095223d6086a123a184845429dc11c90e2' into feat/memory-run-receipts
- 181c9c0 Merge pull request #9664 from code-yeongyu/feat/delivery-sender-label
- 7c1cbf6 Merge commit '54fa6211bd' into feat/delivery-sender-label
- 54fa621 Merge pull request #9662 from code-yeongyu/feat/thread-tui-controls
- 3f160d0 Merge remote-tracking branch 'origin/dev' into feat/delivery-sender-label
- 6dddae2 Merge remote-tracking branch 'origin/dev' into feat/thread-tui-controls
- 26b07b8 fix(memory): pin the tip-recovery gate and harden its exit record
- b90f61c Merge pull request #9695 from code-yeongyu/codemode/9562-eval-handle-epochs
- 8f1adf8 Merge remote-tracking branch 'origin/dev' into feat/memory-run-receipts
- cbd7dd2 Merge pull request #9694 from code-yeongyu/codemode/9675-smoke-split
- 9a741b9 test(omo-native): split the packaged eval smoke by responsibility and fix its ordering comment
- ad94df0 fix(memory): recover only a cleanly exited child's tip and never quarantine a finished run
- 4c4ac0d test(memory): /doctor --json carries receipts, quarantined runs and the projection row together
- 8d05f1e Merge remote-tracking branch 'origin/dev' into feat/memory-run-receipts
- d55d034 Merge pull request #9688 from code-yeongyu/feat/memory-projection-cap
- 71be5ee docs(memory): document receipts, quarantine and crash recovery
- 14aa3fd feat(memory): show maintenance receipts and quarantined runs in /doctor
- efbadb5 fix(memory): an over-budget projection falls back to its true smallest listing
- fa5ecc3 feat(memory): recover a dead supervisor's valid tip and prove crash recovery at every kill point
- 9a8b91c fix(memory): a byte budget never renders a longer file list than no budget
- e29b398 feat(memory): quarantine runs reconciliation cannot recover
- 8a3022f fix(memory): make the projection's commit times best-effort and exact
- 4e5051c feat(memory): write receipts for every maintenance outcome and backfill lost ones
- 1bfe8a1 build(omo-codex): regenerate the Codex installer bundle on linux/amd64
- 407b6fc feat(memory): add an append-only receipts ledger and kill-point helper
- 37e6b12 Merge pull request #9677 from code-yeongyu/codemode/row36-sandbox-runtime-identity
- c505e8f feat(memory): add projection limits to settings, the prompt and /doctor
- 16c0b0f feat(memory): bound the external projection by recency, count and bytes
- 68aacac feat(memory): expose last-commit times per path for a revision
- 22a1c9f Merge pull request #9654 from code-yeongyu/feat/memory-doctor-audit
- 0badda7 Merge origin/dev into feat/memory-doctor-audit
- e8b5068 Merge pull request #9680 from code-yeongyu/fix/9481-completion-wait
- 961ed01 Merge origin/dev into feat/memory-doctor-audit
- 9c168a4 Merge pull request #9655 from code-yeongyu/feat/memory-secret-boundary
- 9df3fac Merge origin/dev into feat/memory-secret-boundary
- 6e0fc21 Merge pull request #9649 from code-yeongyu/fix/astra-ultrawork-variant-sections
- 10cbc3c Merge pull request #9670 from code-yeongyu/codemode/row22-sandbox-smoke
- ad56713 fix(memory): stop the structural audit reporting links and files that are fine
- c071c8f Merge origin/dev into feat/memory-secret-boundary
- d5a0275 Merge pull request #9642 from ashmoonori-afk/fix/astra-verification-evidence
- a1074ea Merge pull request #9674 from drakeo338/claude/9673-fix
- 11cd2db Merge pull request #9665 from code-yeongyu/fix/9661-omowright-binary-runtime
- 864813f Merge branch 'dev' into fix/astra-verification-evidence
- 8ee3f37 fix(test): ignore shards created before the test process started (#9673)
- 9de94ff Merge origin/dev into feat/memory-secret-boundary
- af6be9f Merge the latest memory secret boundary into feat/memory-doctor-audit
- 49b5bbf fix(omo-native): require the omowright page bundle too, so a partial browser runtime fails the payload gate (#9661)
- a7447b5 Merge pull request #9671 from code-yeongyu/fix/memory-nudge-bounded-git
- d7d5437 Merge origin/dev into feat/memory-secret-boundary
- 3309c81 Merge pull request #9623 from code-yeongyu/fix/web-css-deploy-skew
- 2c4602a fix(memory): close the hook, PEM-label and leak gaps found in review
- b76e8ab Merge remote-tracking branch 'origin/dev' into bw-9665
- 9967d84 Merge branch 'dev' into fix/astra-verification-evidence
- 0ced9fa fix(memory): maintenance reads the repo through the resilient fs boundary (#9667)
- 8bf8e6c test(memory): a session whose id prefixes another session's does not read that session's save (#9667)
- 4d0afa0 Merge remote-tracking branch 'origin/dev' into fix/memory-nudge-bounded-git
- c1d3479 chore(web): sync held CSS branch with release stamp
- 3f87c88 Merge pull request #9672 from code-yeongyu/release/v5.1.21-source-state
- 6dc31f5 fix(memory): a session exit no longer disables maintenance for later sessions on a shared host; move maintenance out of repo.ts (#9667)
- 6cf3faa Merge latest memory secret boundary and dev updates
- 11e815a fix(memory): one maintenance runner per identity under a lock, cancelled on session exit (#9667)
- 6f41c60 chore(web): sync held CSS branch with dev changelog
- 484fea9 Merge origin/dev into feat/memory-secret-boundary
- 10dfe11 Merge remote-tracking branch 'origin/dev' into feat/delivery-sender-label
- 25b5194 Merge remote-tracking branch 'origin/dev' into feat/thread-tui-controls
- 9b4b62f chore(web): merge current dev into CSS retention branch
- ce7f78f fix(thread): a thread_send names its sender session
- 16c6094 test(memory): align pre-existing memory tests with secret screening
- 82bc60a fix(memory): bounded nudge check, quiet notice failures, and background packing of the memory repo (#9667)
- 6987c6d build(memory): integrate redactor updates and regenerate Linux bundles
- 0bd7b2e fix(omo-native): stage the browser skill's omowright runtime into the binary payload
- accc7b2 docs(memory): document secret screening
- 18e38a5 feat(memory): refuse secret-like content in the memory pre-commit hook
- 9a7dbc8 feat(memory): fail reflection, dream and facts runs that would commit secret-like content
- c065cf0 test(memory): preserve dream fixture blobs across Git EOL policies
- 687bc8b feat(thread): tell the receiving session who sent a delivery
- d9b50af feat(thread): switch a terminal session's model and level and interrupt its turn
- 7000d8c Merge remote-tracking branch 'origin/dev' into fix/web-css-deploy-skew
- 39f04d3 feat(memory): refuse memory commits that carry secret-like content
- 1938bf0 fix(memory): audit through the resilient filesystem boundary
- 4fc502c test(memory): name audit regressions by observable scenarios
- 62a5430 feat(memory): redact secret-like text at every memory injection point
- beba7a3 docs(memory): document the doctor audit
- 1593018 feat(memory): hand dream the structural audit and a repair phase
- 9e9f298 feat(memory): report structural audit codes in /doctor and add --json
- a3a1a30 Merge remote-tracking branch 'origin/feat/memory-secret-boundary' into feat/memory-doctor-audit
- 0b4dcd5 feat(memory): screen secret-like text through an evasion-resistant scanner
- bb13f59 feat(memory): add a structural corpus audit with stable diagnostic codes
- 8169e67 feat(task): add evidence reuse policies for Astra DAG receivers
- 2096e78 feat(model-core): identify Astra models explicitly
- ca45302 fix(web): retain live assets under a shared deployment lock
- c65a987 fix(web): bound stale HTML lifetime and identify deployments
- 51a8d09 fix(web): carry static assets through cached document lifetimes
- 1c90e32 test(web): detect stale stylesheet references across builds
2명의 커뮤니티 기여자에게 감사합니다:
- @ashmoonori-afk:
- feat(model-core): identify Astra models explicitly
- feat(task): add evidence reuse policies for Astra DAG receivers
- @drakeo338:
- fix(test): ignore shards created before the test process started (#9673)
bun add -g omo-ai