The omo-senpi typecheck gives the same result wherever the checkout sits. It used to pick up @types/node from folders above the checkout, so a stray older copy there failed the typecheck while CI passed on the same commit. omo-senpi now declares its own @types/node and bun-types and reads type packages only from its own node_modules. (#10320, #10332)
Memory items sync without losing concurrent edits, even from a stale device. The sync item model captures a device's edits against the exact snapshot it saw, so a stale capture merges as a concurrent edit instead of silently dropping work or throwing; two captures from one device on one baseline lose nothing, multiline and quoted frontmatter values render as valid YAML on every replica, and path keys that would split one file into several (empty segments, trailing slashes, backslashes, drive letters) are rejected instead of canonicalized. Nothing syncs to a server yet. (#10203)
A categories entry named after an agent now gets a warning instead of being silently ignored. A task(subagent_type: "plan-consultant") spawn reads only agents."plan-consultant", so a model chain put under categories."plan-consultant" never reached it and the spawn ran the builtin chain, while omo doctor still counted that category as usable. Whenever a categories.<name> key equals a builtin agent or an agent in your agents config, and that agent does not already set its own models, the startup notice and omo doctor now say that key is not read for that spawn and show the corrected snippet with your own chain, for example "agents": { "plan-consultant": { "models": [...] } }; agents.<name>.models stays the one way to set an agent's models. Resolution is unchanged. Thanks to @Bearmancer for the report. (#10323, #10326)
A steering message to a background task is never recorded as both failed and delivered. When a steer timed out and its retry was still in flight while a later run of the parent reconciled the task's unconfirmed inputs, that run marked the message failed and the retry then delivered it, so the task's log said both. Reconciliation now leaves an input whose retry is in flight to that retry, which records the one real outcome (#10165).
Memory reflection no longer dies in the sandbox when its session directory does not exist yet. The Linux sandbox now creates each writable directory it binds (mode 0700) right before bwrap binds it, and every reflection launch first backfills the identity's runtime directories, so an identity created before runtime/reflection-sessions existed reflects normally instead of failing with "Can't find source path". An off or unavailable sandbox still creates nothing. Thanks to @leeseunguk and @AceRothstein71 (#7236). (#7012, #8004)
A missing reflection directory no longer gets "turn the sandbox off" advice. When memory reflection fails because a sandbox bind directory does not exist yet, the notice now names that directory and how to create it, instead of blaming user namespaces and suggesting memory.reflection.sandbox: "off". A real user-namespace refusal still gets the host fix first, with turning the sandbox off only as a last resort. (#10317, #10319)
Opening and closing an OmO session without a message no longer leaves an empty session in /resume. The memory component's hidden session binding is now written as startup bookkeeping, so senpi removes a session that never had a conversation. (#10168, #10308)
A task shard host now exits once its children are done instead of staying alive for days. When a task child's session parked or closed on its shard, the child's own connection to that shard stayed open, so the shard kept counting the connections and its idle exit never fired; one shard served zero sessions for two days with 18 connections back to itself. Those connections now close when the session ends, and a refused close no longer strands its client (#10062, #10066).
Computer use can hold keys or a mouse button for a set time and always lets go. holdKeys(keys, { duration }) and holdMouse(x, y, { duration }) hold for up to 100 seconds and release everything they pressed, in reverse order, even when the run is cancelled or the emergency stop fires. (#9651, #10030)
A child task keeps reporting the model it is actually running. A set_model or model cycle applied to a child by any client, and a fallback that later reverts, now update the child's record as they happen: task_output, /tasks, the desktop task snapshot and the completion notice show the live model, and a switch omo did not make is marked (switched by operator). The persisted record keeps effective_model.source within the values earlier builds parse (the live switch detail moves into a nested block those builds ignore), so a downgrade or an older omo sharing the task store still loads these records. (#10020, #10097)
OMO_DISABLE_TELEMETRY=1 turns OmO Native telemetry fully off, and an opted-out session leaves nothing behind for a later one to send. Every opt-out (OMO_DISABLE_TELEMETRY, DO_NOT_TRACK, the PostHog switches and the config flag) now goes through one consent check, taken when the session starts and again before anything is written or hashed: an opted-out session derives no session hash, creates no salt or notice marker, and writes no summary file. Events now carry a time-ordered random event_id, are keyed by a hash of the install id instead of the machine (the old machine hash rides along until 2026-12-14 so earlier rows still join), and mark CI runs with a plain ci flag. Turning telemetry off while a session is running now stops that session's events within a few seconds, including the raw per-turn row a sampled session kept sending (#10328). QA drivers that start the real runtime opt out of telemetry through one shared helper. (#10226)
Fixed: OmO Native versions v5.0.0-beta.6 through v5.1.34 kept sending usage events for the rest of a session after telemetry was turned off while that session was running (#10328). These events are personless and carry a session hash; the ones confirmed in that report are turn_completed, feature_used and computer_use_activation, other usage events may have been sent the same way, and like every OmO Native event they never contain prompt or response text, file paths, or file contents. Turning telemetry off before a session started, or through one of the opt-out environment variables, was never affected. Since v5.1.35 consent is checked when events are sent (a check is reused for at most 5 seconds), and events already queued are dropped once the opt-out is read. Those events can't be told apart from consented ones, so erasure is per install: send a private request through this repository's private vulnerability reporting form, titled "Telemetry erasure request", with your install id (the file omo-senpi/omo-native/install-id under the agent home), and an operator erases that install's events. Put the id only in that private report, never in a public issue or comment. Events from older versions that are keyed only by the machine hash are erased along with your install's events only where our records pair that hash with your install id and no other install. A history shared by several machines or installs (the same hostname hash) is not erased that way: name it in the private request, and it is erased only if the request proves the events are yours. (#10226)
Sessions load about 33 KB less code at startup, because the memory palace and /people now load on first use. The /palace viewer generator and the /people roster, record and --ask runtime moved out of the entry bundle into their own file, which is loaded the first time either command runs, the same way /doctor and /memfs already work. Both commands print and notify exactly what they did before. If that file is missing or broken, the command now says so and tells you to reinstall omo and start a new session, instead of failing silently. (#10300)
The memory sync device keyring refuses a few more malformed inputs instead of failing late. A keyring record can no longer carry the snapshot tag as its type, deeply nested JSON (over 64 levels) is refused with a typed error instead of a stack overflow, the wrap associated data goes through the one RFC 8785 serializer and refuses a non-integer epoch, and a low-order X25519 point is refused with the normal "does not open" error. Follow-up to the review of #10194 (#10274).
Background task reattachment now recovers the real result instead of starting duplicate work. A parent that reloads or loses its host connection checks whether the child is still running before reading its transcript. Finished turns are adopted once, interrupted turns continue once, and a turn stopped by its deadline stays interrupted until an explicit task_send. (#10012, #10013, #10078).
The ulw-research report checker no longer counts an invisible image as the report's visual. An image or chart with any zero dimension, such as width="600" height="0" or an inline height: 0, no longer satisfies the rule that every final report carries a visual; one with no declared size still counts, since the browser sizes it. (#10266, #10268)
Computer use no longer asks to confirm foreground control in full access mode. A full-access session grants it directly and shows a note with the reason; other modes still ask, headless runs still never grant, and the grant still ends with the turn, on release or on the stop chord. Reported by Q. (#10022, #10024)
omo update no longer offers to overwrite a binary your package manager installed. When the compiled omo is owned by pacman, dpkg, rpm, Homebrew or Nix, omo update used to print a curl … && mv replace command that either failed on a root-owned path or left the package manager tracking a file it no longer installed. It now exits non-zero and names the package and the manager's own upgrade command (for example brew upgrade omo). The ownership probe fails open: a missing tool or an unowned path keeps the old behavior. Thanks to @cynkai. (#9585, #9629)
Memory reflection notices name the failing run's log by its real path. The parked notice, the reflection-failing health alert and /memory doctor told you to inspect runtime/reflection-sessions/<runId>/child-stderr.log, a relative path with a literal <runId> under a directory runs are not kept in. They now name the newest failing run's absolute child-stderr.log (home shortened to ~), and when that run was already pruned they say so and point at the stderr tail kept in the failure detail. Thanks to @cynkai. (#9497, #9505)
- 738f101 Merge pull request #10364 from code-yeongyu/fix/scanner-path-separators
- 001c18a Merge pull request #10349 from code-yeongyu/docs/changelog-10268-pr-link
- 09a9d25 docs(changelog): one erasure rule for a shared hostname-hash history
- b993c0f docs(telemetry): state that a shared hostname-hash history needs a private request
- 4da9884 docs(telemetry): refuse shared-hostname legacy erasure; note other usage events may have been sent
- 5dbf3fa Merge remote-tracking branch 'origin/dev' into docs/changelog-10268-pr-link
- 8500a75 docs(telemetry): one exact disclosure for #10328 (versions, events, send-time consent, per-install erasure)
- 780ebac Merge pull request #10326 from code-yeongyu/fix/10323-category-shadows-agent-warning
- 6d43fa2 docs(changelog): match the telemetry disclosure to the published per-machine erasure offer
- 626240a docs(changelog): name the erasure channel for the #10328 telemetry fix
- 2a911f3 docs(changelog): link PR #10268 from its [Unreleased] paragraph
- b2d735d Merge remote-tracking branch 'origin/dev' into fix/10323-category-shadows-agent-warning
- 75ac608 Merge pull request #10226 from code-yeongyu/feat/telemetry-collector-w1
- 854f5e0 Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- 263923a fix(telemetry): keep events left by a failed drop flush unsent and report it under its own diagnostic
- 2e411ff Merge remote-tracking branch 'origin/dev' into fix/10323-category-shadows-agent-warning
- eb3d072 Merge pull request #10308 from code-yeongyu/fix/10168-memory-binding-startup-bookkeeping
- abb4752 Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- 8f80ecf Merge remote-tracking branch 'origin/dev' into fix/10168-memory-binding-startup-bookkeeping
- df54c71 Merge pull request #10319 from code-yeongyu/fix/10317-bwrap-remediation-classification
- e1cd209 docs(telemetry): route per-machine erasure through private vulnerability reporting and state when queued events stop
- 3d0d1d3 Merge remote-tracking branch 'origin/dev' into fix/10317-bwrap-remediation-classification
- 6afe66e Merge pull request #8004 from leeseunguk/fix/reflection-bwrap-missing-directories
- ad1e251 test(qa): reject QA envs that turn a telemetry opt-out back off
- fe23c44 fix(telemetry): drop events already queued when consent is withdrawn mid-session
- 35d6608 Merge remote-tracking branch 'origin/dev' into pr-8004
- 4b471ae Merge pull request #10294 from code-yeongyu/fix/changelog-gate-own-pr-link
- 254828d Merge remote-tracking branch 'origin/dev' into pr-8004
- 1b16d6b Merge remote-tracking branch 'origin/dev' into fix/changelog-gate-own-pr-link
- beff38a Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- dd0c404 Merge remote-tracking branch 'origin/dev' into fix/changelog-gate-own-pr-link
- 89053c1 Merge remote-tracking branch 'origin/dev' into fix/10168-memory-binding-startup-bookkeeping
- 98d816a Merge remote-tracking branch 'origin/dev' into fix/10317-bwrap-remediation-classification
- 4db6586 Merge remote-tracking branch 'origin/dev' into fix/10323-category-shadows-agent-warning
- c10fed9 docs(telemetry): disclose the mid-session opt-out leak fixed for #10328 and offer per-machine erasure
- ae8253e Merge remote-tracking branch 'origin/dev' into pr-8004
- fb20171 Merge pull request #10203 from code-yeongyu/memsync/crdt-item-model
- 30f88e0 Merge remote-tracking branch 'origin/dev' into fix/10168-memory-binding-startup-bookkeeping
- 2fc00dc Merge remote-tracking branch 'origin/dev' into fix/changelog-gate-own-pr-link
- 14966ed Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- 8e5d7ce Merge remote-tracking branch 'origin/dev' into pr-8004
- 39a9931 docs(changelog): link PR #10326
- 4e9a6d5 Merge remote-tracking branch 'origin/dev' into fix/10317-bwrap-remediation-classification
- ef028cd merge(dev): origin/dev into crdt-item-model (CHANGELOG: dev Unreleased + the #10203 entry, linking #10203)
- fa17331 Merge pull request #10165 from code-yeongyu/fix/10129-stale-retry-race
- 0f29ee9 docs(changelog): note the reflection sandbox directory fix (#8004)
- b6b8621 Merge origin/dev into fix/reflection-bwrap-missing-directories
- 71aded3 docs(changelog): note the reflection sandbox advice fix (#10319)
- 9a49877 Merge remote-tracking branch 'origin/dev' into fix/changelog-gate-own-pr-link
- 653c02c Merge remote-tracking branch 'origin/dev' into fix/10168-memory-binding-startup-bookkeeping
- beca6d7 Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- 7265770 Merge pull request #10066 from code-yeongyu/fix/omo-task-host-client-close
- ece9784 Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- bc38f9b Merge pull request #10299 from code-yeongyu/fix/10296-deterministic-fallback-session
- 2864dca Merge remote-tracking branch 'origin/dev' into fix/10296-deterministic-fallback-session
- 5fff17f Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- bdc3e2f Merge pull request #10030 from code-yeongyu/feat/cu-b10-bounded-holds
- 0684cdd docs(changelog): note the in-flight retry fix (#10165)
- 95ad45f Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- e70798c Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 6337fd4 Merge remote-tracking branch 'origin/dev' into fix/10296-deterministic-fallback-session
- f04c1ea Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 50f1eea Merge pull request #10097 from code-yeongyu/fix/f12-effective-model
- 312c11e docs(changelog): note the empty-session fix (#10308)
- 648113b Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- 5f4d874 merge(dev): origin/dev into crdt-item-model (CHANGELOG: dev Unreleased + the #10203 entry, linking #10203)
- e1a3d2c Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- 94f6c37 Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- d832e0d Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 2c3ad9e Merge remote-tracking branch 'origin/dev' into fix/10296-deterministic-fallback-session
- 3245ff7 fix(memory-core): second-device writes keep untouched bytes, one BOM, the dominant line ending (#10203 r6)
- 50b28bc Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 0acca22 docs(changelog): note the lazy memory palace sidecar
- 58363dc Merge pull request #9505 from cynkai/fix/9497-reflection-stderr-absolute-path
- d58391c fix(memory-core): a leading UTF-8 BOM is kept on write and ignored on capture (#10203 r6)
- 2e8f01f Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- e1114ab Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 4ddcbf6 fix(memory-core): renderForDisk writes every line in the file's own line-ending style (#10203 r6)
- e0a0e45 docs(changelog): link #10030 in its Unreleased entry
- a853156 Merge remote-tracking branch 'origin/dev' into HEAD
- 00a721d Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 77e1acf test(changelog-gate): make the heading-entry row exercise the own-link check
- 36c5b12 Merge pull request #10274 from code-yeongyu/memsync/device-keyring-lows
- 1b12816 fix(changelog-gate): check an entry written directly under a heading (#10294 review)
- 1e615b3 Merge remote-tracking branch 'origin/dev' into memsync/device-keyring-lows
- 4bdfb15 Merge pull request #10078 from code-yeongyu/rpc-seam/5-reconcile-host-turn
- f0b0f76 Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- ca96b38 Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- c294131 Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 385b62c Merge pull request #9629 from cynkai/fix/9585-compiled-update-package-owner
- aa6d401 Merge remote-tracking branch 'origin/dev' into rpc-seam/5-reconcile-host-turn
- b905bf7 Merge pull request #10268 from code-yeongyu/fix/10266-visual-zero-dimension
- 43914ad Merge remote-tracking branch 'origin/dev' into HEAD
- f7c087a Merge remote-tracking branch 'origin/dev' into fix/10266-visual-zero-dimension
- 1cd6fc3 Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- 09b1130 Merge pull request #10024 from code-yeongyu/fix/computer-use-full-access-autogrant
- 7116cdc Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- 815a4b2 Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 8fe90e5 Merge remote-tracking branch 'origin/dev' into fix/10266-visual-zero-dimension
- eaa4f8c Merge remote-tracking branch 'origin/dev' into memsync/device-keyring-lows
- 2f5b210 docs(changelog): keep only this PR's Unreleased entry and link the PR (#10078)
- 5b99aeb Merge remote-tracking branch 'origin/dev' into HEAD
- ffc1210 docs(changelog): link #10024 in its Unreleased entry
- faaf863 Merge remote-tracking branch 'origin/dev' into HEAD
- 70560f0 fix(memory-core): a CRLF frontmatter's last line keeps its CR out of the value (#10203 r6)
- efe923e fix(changelog-gate): require each added Unreleased paragraph to link its own PR
- 8882026 Merge pull request #10290 from code-yeongyu/test/help-logout-closed-accounts
- c1700dc Merge remote-tracking branch 'origin/dev' into rpc-seam/5-reconcile-host-turn
- 1b0ee39 test(computer-use): fire the between-presses stop off the worker and advance past a hold's full deadline after the #10207 merge
- ea00e98 fix(memory-core): renderForDisk splices exact pair spans and inlines touched aliases (#10203 r6 delta)
- 033901e Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 22bd0cb Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- f241ab0 Merge pull request #10288 from code-yeongyu/release/v5.1.34-source-state
- f641ca4 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 0bde9bc fix(memory-core): node-based frontmatter emit, type-keeping conversions, renderForDisk (#10203 r6)
- ec3828a fix(memory-core): one-line canonical sources for multiline register values (#10203 r6)
- 9d21d0f Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- a912655 test(telemetry): inject exactly one extra capture call in the consent-gate audit's negative case
- 1a6e919 Merge remote-tracking branch 'origin/dev' into fix/10266-visual-zero-dimension
- e15e59e test(memory-core): split field-kind capture rows out of the replay suite (#10203 r6)
- 66f6b06 fix(memory-core): typed frontmatter kinds and a kind-dispatched drift delta (#10203 r6)
- a3b75a2 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 354571d test(cli): cover omo help logout while accounts are closed
- 96e14cf docs(changelog): note the device keyring review follow-ups
- 3ee47c4 fix(memory): close the #10194 review LOWs (snapshot tag on records, depth cap, one JCS path, zero DH)
- 2f03895 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 005a420 fix(ulw-research): a visual with any zero dimension does not count as rendered
- c76053c fix(computer-use): decide Full access from the permission system's resolved preset (#10022, #2465)
- 06aa9e8 Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 2eff596 test(computer-use): drive the full-access integration test through the resolved preset, including settings-only Full access (#2465)
- f891ede fix(memory-core): typed-field drift merge, machine-bound device peer (#10203 r5)
- 7c98e97 test(computer-use): full access follows the permission system's resolved preset, not the raw flag (#10022, #2465)
- 1c1e01b fix(memory-core): capture idempotency keyed on the edit identity, device-only entry point (#10203 r4)
- 1907cc5 docs(changelog): note the single telemetry consent gate and OMO_DISABLE_TELEMETRY (#10226)
- 3bf5fff test(qa): opt every runtime-booting QA driver out of telemetry through one shared helper (#10226 M1)
- 52b3b68 fix(telemetry): route every opted-out write and session hash through the one consent gate (#10226 H1, L1)
- e0e4cb1 fix(memory-core): publish the device peer id atomically with link(2)
- b36219a fix(memory-core): device peer file goes through the resilient fs boundary
- 13c0573 Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 2ec91cf fix(memory-core): idempotent capture under one stable peer per device (#10203 r3)
- 694ca79 Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- 42fcc52 Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- a0b16d6 Merge origin/dev into rpc-seam/5-reconcile-host-turn: host-turn reconcile on top of #10129's input delivery
- b870ec1 docs(changelog): note package-manager-owned binaries in omo update
- 0bfb722 docs(changelog): note absolute child-stderr.log path in reflection notices
- 712067e Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- b9aeb27 fix(memory): name the failing run's absolute child-stderr.log in reflection notices
- b986a1e test(audit): count the package-owner test's /usr/bin/omo mentions
- 4794c36 fix(native): refuse omo update on a package-manager-owned binary
- 0c174ec Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- ffe1ab9 docs(changelog): memory item-model sync correctness (#10203)
- e6b028b merge(dev): origin/dev into crdt-item-model (post-freeze merge before READY)
- 0bff4f8 fix(memory): stale register replay dedupe and bare-unit join comparison
- e707bbc fix(memory): register join re-capture fixed point; take Loro types from the loader
- 19000dd Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- e860ac2 merge(memsync): loro-runtime into crdt-item-model (picks up windowsHide typecheck fix)
- ddc9544 Merge remote-tracking branch 'origin/dev' into fix/10129-stale-retry-race
- 612acda Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- b4c028d Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- a91d15f Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- aae7b8d test(memory): peer-order-independent kind-rule and set-order assertions
- 7928c60 fix(memory): never drop a stale capture; render frontmatter through yaml; reject ambiguous keys
- 3f61fd7 test(memory): failing tests for review r1 — stale same-peer capture loss, YAML round-trip, key normalization
- 9ddf434 Merge remote-tracking branch 'origin/dev' into feat/telemetry-collector-w1
- 397bcba fix(desktop): surface a cancelled hold's release failure through the service (#10030)
- 47de6fc Merge remote-tracking branch 'origin/dev' into rpc-seam/5-reconcile-host-turn
- f372ec8 build(memory): yaml is a runtime dependency of the sync item model
- 2a6306c fix(memory): key the history cache on oplog size; quoted string render in re-typing test
- 110ed3c fix(memory): read loro JSON op shape (Root name object, Map content)
- b1b1053 fix(memory): slash-free fm container names; recreate captures at the current frontier
- d364491 feat(memory): item document model, capture, render, tombstones and kind rule
- a4f402e test(memory): correct Cherokee fold direction in vectors
- 92531d3 test(memory): pin fold vectors with explicit code points
- 6062336 feat(memory): vendored Unicode 16.0 case folding and item key normalization
- 268ec83 test(memory): failing tests for the sync item CRDT model (todo 4)
- ae42ed2 feat(telemetry): sha256(install_id) as distinct_id, machine_hash until 2026-12-15 (schema v4)
- 9a3eb91 fix(telemetry): honor OMO_DISABLE_TELEMETRY, DNT in QA sandboxes, ci attribution
- aa5a884 feat(telemetry-core): uuidv7 event_id on every event, mirrored to posthog uuid
- ffec0f5 Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- c639f50 build: regenerate bundles on Linux
- aac1d1f Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- a508986 Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 8aa57e2 build: regenerate bundles on Linux after merging dev
- 2741cfe Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 1ef04ba build: regenerate bundles on Linux
- 5b2c16f build: regenerate bundles on Linux after merging dev
- cde24c4 Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- 363966d build: regenerate bundles on Linux after merging dev
- 7248b60 Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- b55da2a build: regenerate bundles on Linux after merging dev
- 0f90aca Merge remote-tracking branch 'origin/dev' into rpcmac2/10097
- 54f5626 build: regenerate bundles on Linux after merging dev
- d2326b4 Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- c05d977 Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- 6f3d123 Merge remote-tracking branch 'origin/dev' into rpcmac2/10097
- 7141980 Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 5be01c3 build: regenerate bundles on Linux after merging dev
- 3d06096 build: regenerate bundles on Linux after merging dev
- 4f803ee build: regenerate bundles on Linux after merging dev
- e730e67 Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- 7e63fea Merge remote-tracking branch 'origin/dev' into rpcmac2/10097
- 0e4cf26 Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- af2f7c3 Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 8acf454 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 74645b6 Merge remote-tracking branch 'origin/dev' into rpcmac2/10097
- 8226374 Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- dab93fd Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- 4263f49 docs(changelog): drop the 5.1.33 entry the dev merge duplicated (#10066)
- c59faca Merge remote-tracking branch 'origin/dev' into rpcmac2/10097
- ffeb38c Merge remote-tracking branch 'origin/dev' into rpcmac2/10078
- 7debd7a Merge remote-tracking branch 'origin/dev' into rpcmac2/10066
- ac63d8f Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 5d91f09 Merge remote-tracking branch 'origin/dev' into rpc-seam/5-reconcile-host-turn
- fd6486b Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- f3d76f9 Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- 03c7d2a Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- 3f5083f Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- ac6d671 Merge remote-tracking branch 'origin/dev' into fix/f12-effective-model
- de3d2dc Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- 643d4f8 Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- 1bbdf9c Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- a82b108 Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- 2937ae7 Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- ef04af3 Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- aebe8c7 Merge remote-tracking branch 'origin/dev' into rpc-seam/5-reconcile-host-turn
- 60890c8 Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- 6af5e73 Merge remote-tracking branch 'origin/dev' into fix/omo-task-host-client-close
- 56d8046 Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 1a4ae52 fix(desktop): name the in-flight entry type for clippy
- cdc48f9 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 655c28d fix(desktop): cancel only in-flight holds at EOF and session.close
- c9195c1 fix(desktop): surface hold release failures after cancel, give hold cancels a longer grace
- 4369336 test(computer): cover EOF cancellation before connection drain
- 672dd31 test(computer): require cancellation after release acknowledgement
- cb93869 test(computer): pin the submitted long-hold budget
- 0784ee3 test(computer): scope hold e2e claims to observable routing
- f3bfd6e test(computer): require focus restoration after holds
- 0d62e0d test(computer): synchronize interruption with hold parking
- f34e7dc test(computer): cover panic and interruption between presses
- 6b3b74f fix(computer): reject hold duration at parameter parsing
- b790519 fix(computer): await hold release before cancellation replies
- 010e900 fix(desktop): keep menu_guard Windows-only after the dev merge
- 2ba8265 fix(computer): budget holds for their full duration
- fb5a7a1 fix(computer): cancel live holds before shutdown
- 6144050 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- f57033b fix(computer-use): auto-grant only with a visible note, and word it before the grant
- c9c7819 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- ae49f83 Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- 35c49a7 Merge remote-tracking branch 'origin/dev' into fix/computer-use-full-access-autogrant
- 4baedbc Merge remote-tracking branch 'origin/dev' into feat/cu-b10-bounded-holds
- abb260a docs(changelog): note bounded key and mouse holds in [Unreleased]
- e267bfa fix(computer-use): count full access only from the session's own preset flag
- 7d9c257 fix(computer-use): read full access on hosts without extension flags
- 3537436 fix(computer-use): grant foreground control without a confirm in full access
Thank you to 1 community contributor:
- @cynkai:
- fix(native): refuse omo update on a package-manager-owned binary
- fix(memory): name the failing run's absolute child-stderr.log in reflection notices
- docs(changelog): note absolute child-stderr.log path in reflection notices
- docs(changelog): note package-manager-owned binaries in omo update
bun add -g omo-aiengine: senpi 2026.10.16