Changed
You can see the agent's plan and its progress without asking, and weaker models no longer stop halfway through it. (senpi#2121, #8847) The OmO Native engine moves to senpi 2026.9.24-3. The first work request of a session now opens with a phased todo list, and every todo update names your original request, the task in progress, and the next one. When the plan is created, a phase closes, or the work finishes, the agent writes a short report of what you asked for, what you need to know now, what it is doing, and what comes next. The final message uses that report and says plainly what is done and what is not. If a turn ends with todo items still open and no question for you, the agent gets one reminder to finish them. Models that refuse a forced first tool call with thinking on now continue normally instead of failing the first turn. The first-turn plan and the turn-end reminder can be turned off with the todo.firstTurnPlan and todo.turnEndBackstop settings.
Moving from the OpenCode edition to OmO Native now carries your setup over in one run. (#8815, #8816, #8817, #8799, #8803) omo setup reads what your OpenCode install already knows and brings it across after one confirmation: API keys for every provider omo can serve (an OpenCode zai-coding-plan key lands on zai), custom OpenAI- or Anthropic-compatible providers from opencode.jsonc with their models and keys, MCP servers, global skills, your default model, and the model you gave each category or agent. It prints a single summary first. OAuth logins it cannot copy are listed with the /login <provider> command that restores them, and anything it will not bring over says why: an MCP server that runs command substitution, a skill folder with no SKILL.md, OpenCode's small_model, the build and plan primary agents, or an agent name omo does not have. Running it again changes nothing that is already there.
A migrated user sees which task categories their providers serve before the first delegation fails. (#8857) omo doctor prints the categories your connected providers can run and, for each one they cannot, the providers to connect or the categories.<name>.model pin that fixes it; omo setup shows the same for the providers it is about to import. A Z.AI-only key serves 1 of 10 builtin categories, an Anthropic-only login 7 of 10. The list comes from the same resolver the task tool gates spawns with, so what doctor says matches what a delegation would do.
The native installer finishes the move instead of leaving you a to-do. (#8823, #8793) bunx oh-my-openagent@beta install --platform=native removes a stale global omo left by the old package (and the Codex Light wrapper in ~/.local/bin), installs omo-ai, checks that omo on your PATH is really omo-ai, and then offers to run omo setup for you. It removes only the conflicting command, never the package. The command the nudge, the /native dialog and the installer hint show now follows your plugin's channel: @beta on a beta, the bare name on a stable release.
omo update updates. (#8821) It used to print a package-manager command and exit. It now runs that command with the package manager that installed omo, streams its output, and reports omo <before> -> <after>. omo update --dry-run still only prints it.
omo doctor knows what the OpenCode edition left behind. (#8818) It warns when another omo sits ahead of omo-ai on your PATH or the old oh-my-openagent / oh-my-opencode package is still installed globally, each with the command that fixes it, and notes when OpenCode still loads the plugin so you can keep or remove it on purpose.
Geeky · Normal runs GPT-5.6 Sol at medium. (#8807) The geeky-normal model profile now applies GPT-5.6 Sol (medium) from your ChatGPT subscription, the OpenAI API, Copilot or OpenCode, in that order, instead of GPT-6 Sol Fast then GPT-6 Sol. It no longer falls back to a GPT-6 model: when none of those providers serves GPT-5.6 Sol, the session keeps its model and prints the unavailable notice. Geeky · Heavy, the Daily lanes and the Recommended default are unchanged.
ulw-research stops asking which format when the destination already says so, and proves its report before handing it over. (#8611) A research run used to stop before the first wave and wait for you to pick a format, even when you had already said "post it in the thread" or pointed at last month's report. It now derives the format from the request and where the result is going, asks at most three questions only about what is still missing (the recommended default first, a free-text "describe the format" answer, and "don't care"), and starts collecting without waiting. A preference you state outright, or the same choice made on two runs, is remembered, so the next request offers it first. When you point at a document, its colors, fonts, breakpoints, section skeleton and citation style are copied into the report's design spec mechanically instead of retyped. Before anyone looks at the pages, a deterministic check reads the rendered report for broken Korean line wrapping, colors outside the palette, emoji, em dashes, over-long headings, numbers with no source or lineage tag, charts without a captioned figure or axis labels, serif Korean fonts, uncited sections, a missing sources or how-this-was-made section, broken images, and layout overflow. Repairs stop after three attempts, two attempts without improvement, a repeated defect set, or fifteen minutes, and the report ships with the remaining defects listed, unless one of them means the content itself is incomplete. Every promised format is tracked until it is delivered, skipped or impossible in that session with a reason, and the closing briefing (sources, domains, minutes, deliverables, gates, remaining defects) is printed from that record rather than recalled.
The /resume picker opens large session directories in under 2 seconds. (senpi#2087) The OmO Native engine moves to senpi 2026.9.24-2. A session directory with over a thousand sessions now opens in 0.6 to 2.0 s cold instead of 15 to 29 s: senpi writes a .session-summaries.index alongside your sessions directory and reads it in one sequential pass on the next launch. Per-keystroke filtering falls from 75 to 235 ms to 0.6 to 27 ms: search text is cached once per session row at list time, and fuzzy matching and path resolution both run once per list instead of once per keystroke.
Fixed
There is now a "Migrating from OpenCode" guide. (#8822) docs/guide/migrating-from-opencode.md walks a user of the OpenCode edition through the move in one place: how to tell the legacy package still owns omo, the installer line and what it repairs, what omo setup carries over, what needs /login, what it refuses or leaves behind and why, an OpenCode-habit to omo-command table, keeping the OpenCode plugin alongside, and the update and uninstall order. The installation guide, the READMEs, the /native dialog's "Open the guide" and the installer's post-install hint link to it.
The Agent-Model Matching guide describes the models OmO Native actually runs. (#8805) The guide now opens by saying most people can skip it, since OmO Native picks the main model from the providers you connect and every category and curated agent resolves its own chain. Its recommended section names the six models of the Recommended ladder (Claude Opus 5.5, Claude Fable 5.1, Kimi K3, GPT-6 Astra, GPT-6 Sol, GLM 5.3) instead of GPT-5.6 Sol; the preset table lists every preset Senpi picks, including the gpt-6-astra preset the whole GPT-6 family runs on; the category table shows the chatgpt-subscription defaults of ultrabrain, deep-low and deep-high; and it documents the category availability gates, the categories behind the ulw reviewers, and that the interactive TUI ignores model_profile. The overview and installation guides stop recommending GPT-5.6 Sol and stop naming the retired Capable and Deep work profiles.
Setting up the browser extension no longer installs it into a Chrome you do not use. (#8784) The browser skill used to register the BrowserSkill extension into every Chromium browser that had ever left a profile on disk, and asked you to restart Chrome first. It now picks the one browser you actually work in - your default browser when you are using it, otherwise the only browser you are using - and installs only there, naming that browser in the one step you have to do. Arc, Dia, Vivaldi, Opera, Comet and Naver Whale are recognised alongside Chrome, Edge, Brave and Chromium. When it cannot tell (your default is Safari or Firefox, or you use several browsers), it installs nothing and the agent asks you which one to use, then remembers the answer.
The OpenCode plugin's "Restart to apply" now loads the new version. (#8801) OpenCode keeps every npm plugin in a cache sandbox and reused it without checking the tag again, so an install on @latest or @beta stayed on the first version it ever downloaded, however often you restarted. The plugin now clears a sandbox that lags its tag, so the restart the update toast asks for picks up the release.
Re-running the installer leaves one TUI plugin entry. (#8798) A tui.json written by an older installer kept its oh-my-openagent@latest entry next to the new one, and the TUI loaded the plugin twice. The installer now replaces its own entries.
GLM model profiles use a zai key you imported. (#8824) Recommended and Daily · Normal looked for OpenCode's provider id, which the OmO Native engine does not register, so an imported zai key never selected GLM 5.3. The GLM rungs now name the engine's zai and zai-coding-cn providers.
omo -p and --mode json keep stderr clean. (#8819) The model-profile selection and the other component diagnostics no longer print as objects on stderr; set OMO_DEBUG=1 to see them.
An unconfigured recall category is one notice, not a repeating failure. (#8820, #8811) When none of your connected providers serves the Kibitzer recall category, the session shows one warning that names the category, the providers it needs, and both fixes (/login <provider>, or pinning a model for the category in omo.json) instead of Kibitzer gate failed ... after 3 consecutive failures. A task category with no usable model names the same fixes.
Tips and onboarding tell you the command you actually have. (#8794) The tips and onboarding skills now say omo --list-tips and omo --onboard on OmO Native instead of senpi, which is not on your PATH there.
An existing [codex] codegraph setting no longer breaks the installer. (#8166) The retired key is now dropped during config migration instead of failing validation before ~/.omo/omo.jsonc is written.
A memory commit made during a session no longer rewrites that session's system prompt. (#8470) The memory block is compiled once per session; a later commit reaches the model as one line of the existing memory notice, so the cached prompt stays intact.
- 05dcba6 Merge pull request #8863 from code-yeongyu/release/v5.0.0-beta.90-source-state
- fa536cb Merge pull request #8859 from code-yeongyu/docs/8857-category-coverage-note
- 569b3bc docs(changelog): note the category-coverage report in setup and doctor (#8857)
- 5d58e20 Merge pull request #8858 from code-yeongyu/feat/8857-category-coverage
- 6385f8b fix(omo-native): let the engine's anthropic-subscription check decide category coverage
- 0e5d8d2 Merge remote-tracking branch 'origin/feat/8857-category-coverage' into feat/8857-category-coverage
- 8e21c67 test(omo-native): require the category-coverage runtime in the packed omo-ai payload
- 86c2fd9 Merge remote-tracking branch 'origin/dev' into feat/8857-category-coverage
- ae4d7c9 docs(changelog): record task-category coverage in omo doctor and omo setup (#8858)
- 1c39f32 feat(omo-native): omo doctor and omo setup report which task categories the connected providers serve
- 02509f3 Merge pull request #8856 from effortprogrammer/docs/8822-migrating-from-opencode
- 0bc2cc7 docs(changes): reference PR #8856 and match the corrected migration guide
- 93dc2a2 docs(guide): scope the legacy omo command to late 4.x and list every provider refusal
- d5739c1 docs(guide): correct the /logout, /share and /export rows of the habit table
- 7762d4b docs(guide): remove the legacy package with the manager that installed it
- 2226dad docs(guide): say that omo's first session moves a 4.19.x plugin's config file
- 97ce9e0 docs(changelog): add the Migrating from OpenCode guide to Unreleased (#8822)
- 0730bc6 test(audit): file the migration guide's omo command strings under docs
- 9f09c40 Merge remote-tracking branch 'origin/dev' into docs/8822-migrating-from-opencode
- 987e5fa docs(changelog): record the Migrating from OpenCode guide (#8822)
- b6641a8 fix(cli): point the OmO Native guide link at the migration page
- 90f8f4e docs(guide): add Migrating from OpenCode and link it from the install guide and READMEs
- 3bb07a4 Merge pull request #8855 from effortprogrammer/docs/changelog-opencode-migration-cluster
- b3a42d1 Merge pull request #8854 from effortprogrammer/chore/changes-md-stray-diff3-markers
- 1c05d6d docs(changelog): release notes for the OpenCode to OmO Native migration work
- cf337a2 chore(changes): drop 24 stray diff3 base markers from changes.md
- c501c05 Merge pull request #8851 from effortprogrammer/feat/8817-setup-migration-summary
- 52d98f9 test(omo-native): assert the refused-server and skipped-provider plan fields
- 63bc41d fix(omo-native): keep a key the credential stage wrote in the same setup run
- 69bbfae test(omo-native): categorize the setup-summary fixture's omo path in the command-string audit
- 203e8a7 Merge remote-tracking branch 'origin/dev' into feat/8817-setup-migration-summary
- 1972edd docs(changelog): record the one-summary, one-consent omo setup (#8851)
- 1a6765b docs(omo-native): describe the one-summary, one-consent omo setup
- 9fed552 feat(omo-native): omo setup prints one migration summary and asks one consent for the whole plan
- 2a9210a Merge pull request #8846 from effortprogrammer/feat/8816-setup-model-choices
- c9b2d8a Merge remote-tracking branch 'origin/dev' into HEAD
- c49cafe test(omo-native): categorize the model-choices fixture's omo path in the command-string audit
- f0b61ba Merge pull request #8849 from code-yeongyu/feat/8847-handoff-output-discipline
- e1cf736 Merge remote-tracking branch 'origin/dev' into HEAD
- 48a59c3 refactor(prompts): drop the Grok 4 Sisyphus restate ban that fought the handoff Ask field
- 7804afa refactor(prompts): drop the GLM restate ban and give Grok 4 Sisyphus the handoff block
- 8edb5eb refactor(skills): report at handoffs with the Ask/wanted/For you/Now/Next block instead of state-change-only output
- 859edbe Merge pull request #8848 from effortprogrammer/fix/windows-path-semantics-migration
- 5e80210 fix(omo-native): carry a model on an opencode OAuth provider to the provider setup says to /login to
- 3d631bc fix(cli): resolve a POSIX PATH with POSIX rules on any host
- 836d4ab fix(omo-native): keep the permissions of a config file the model-choice stage edits
- 96f1a1e test(omo-native): make the model-choice dry-run and non-object-path tests fail for their regressions
- c94ca31 Merge remote-tracking branch 'origin/dev' into feat/8816-setup-model-choices
- db0b11c docs(changelog): record the omo setup model-choice import (#8846)
- 1e6ee7c docs(omo-native): describe the model-choice import in omo setup
- e67740e feat(omo-native): omo setup carries OpenCode model choices into settings.json and the [native] block
- 2ab89ab Merge pull request #8811 from effortprogrammer/fix/kibitzer-category-unavailable-notice
- 0363cfe Merge remote-tracking branch 'origin/dev' into HEAD
- 1de1f4a Merge pull request #8836 from effortprogrammer/feat/8815-setup-custom-providers
- 4085572 Merge remote-tracking branch 'origin/dev' into HEAD
- 9710425 Merge pull request #8827 from effortprogrammer/fix/8824-chain-provider-ids-match-engine
- 9884e43 Merge remote-tracking branch 'origin/dev' into HEAD
- 26565c5 Merge remote-tracking branch 'origin/dev' into feat/8816-setup-model-choices
- 354f3c6 Merge remote-tracking branch 'origin/dev' into HEAD
- 01a12a5 Merge pull request #8831 from effortprogrammer/fix/8818-doctor-migration-aware
- a4ee0e9 Merge remote-tracking branch 'origin/dev' into HEAD
- a1cdf23 Merge remote-tracking branch 'origin/dev' into HEAD
- 59a5e4a Merge remote-tracking branch 'origin/dev' into HEAD
- 2a04ce6 Merge pull request #8826 from code-yeongyu/fix/8819-component-info-logs-debug-gated
- 7c1ede5 Merge remote-tracking branch 'origin/dev' into HEAD
- d20e9a0 Merge remote-tracking branch 'origin/dev' into HEAD
- f9843a8 Merge pull request #8830 from effortprogrammer/feat/8821-omo-update-executes
- 67d108b Merge remote-tracking branch 'origin/dev' into HEAD
- 67336e3 Merge remote-tracking branch 'origin/dev' into HEAD
- 07452ed Merge pull request #8828 from effortprogrammer/feat/8823-native-install-offers-setup
- 04437f8 Merge remote-tracking branch 'origin/dev' into HEAD
- 18afe2c Merge remote-tracking branch 'origin/dev' into HEAD
- f686e7c fix(omo-native): write custom providers through a symlinked models.json
- 6cc2c1b fix(omo-native): keep the pre-setup auth.json backup when two stages write it in one millisecond
- 7f8223a Merge remote-tracking branch 'origin/dev' into HEAD
- 0123f5f Merge remote-tracking branch 'origin/dev' into HEAD
- 61e5aa3 test(cli): categorize the setup-offer fixtures' sandbox omo path in the command-string audit
- dc185c0 fix(omo-native): refuse a custom provider baseURL holding ${NAME}
- bb702bb fix(omo-native): send a custom provider's cross-protocol model to the url opencode uses
- 0e3d03b fix(omo-native): type runSelfUpdate options so the package typecheck passes
- ed0fb06 Merge pull request #8833 from code-yeongyu/fix/8470-pin-memory-projection
- 38412b0 Merge remote-tracking branch 'origin/dev' into HEAD
- 4664305 Merge remote-tracking branch 'origin/dev' into HEAD
- 2d0df42 Merge remote-tracking branch 'origin/dev' into HEAD
- 5f5eece Merge remote-tracking branch 'origin/dev' into HEAD
- 4c0abc3 Merge remote-tracking branch 'origin/dev' into HEAD
- ba0d923 fix(memory): pin the session's memory projection and deliver later changes as a notice
- 82d857a Merge remote-tracking branch 'origin/dev' into fix/8818-doctor-migration-aware
- 711b422 test(omo-native): categorize the doctor-migration command-audit hits
- 6a9913d Merge remote-tracking branch 'origin/dev' into feat/8815-setup-custom-providers
- b2b002c docs(omo-native): describe the opencode custom provider import
- 09d9898 feat(omo-native): omo setup carries opencode custom providers into models.json and auth.json
- 5302aff test(omo-native): pin the doctor migration rules no test exercised
- 4c89f98 fix(omo-native): keep omo doctor's migration scan off FIFOs and non-command omo entries
- faa9fff Merge remote-tracking branch 'origin/dev' into HEAD
- 92d85e6 Merge remote-tracking branch 'origin/dev' into HEAD
- 07e9ea6 Merge remote-tracking branch 'origin/dev' into HEAD
- 6c82001 Merge remote-tracking branch 'origin/dev' into HEAD
- 3870327 Merge remote-tracking branch 'origin/dev' into fix/8818-doctor-migration-aware
- 774b631 refactor(omo-native): read OpenCode config through the shared jsonc and config-source helpers
- 928b678 Merge remote-tracking branch 'origin/dev' into HEAD
- 26ae18d Merge remote-tracking branch 'origin/dev' into HEAD
- 0eac474 Merge remote-tracking branch 'origin/dev' into HEAD
- cb91bed test(install-native): pin that an unverified outcome is never offered even with a binary path
- 7701daf fix(install-native): decide verified from verification.ok, binPath typed only on success
- 164834a Merge remote-tracking branch 'origin/dev' into fix/8818-doctor-migration-aware
- 30558eb docs(changes): record migration-aware omo doctor (#8831)
- c772234 feat(omo-native): report OpenCode-edition migration leftovers in omo doctor
- 7e3b97a docs(changes): tag the omo update execute entries with #8830
- f81eb2c merge origin/dev into feat/8821-omo-update-executes
- 91f936b feat(omo-native): run omo update through the detected package manager
- 090ee53 Merge pull request #8803 from effortprogrammer/feat/omo-setup-import-opencode-mcp-skills
- de4ab12 docs(changes): record the native install setup offer and channel tag (#8828)
- e2ad4ff Merge remote-tracking branch 'origin/dev' into feat/8823-native-install-offers-setup
- c258c5e feat(install-native): offer to run omo setup after a verified native install
- bf8e961 feat(install-native): advertise the installer tag of the running plugin's channel
- 210f57f docs(changes): record #8827 on the native GLM chain entries
- 0f31292 test(omo-native): read engine-loaded server config through optional chaining
- 7b63c91 Merge remote-tracking branch 'origin/dev' into review/pr-8803
- cb5ea32 Merge pull request #8694 from LilMGenius/fix/retire-codegraph-config
- 6ebbd65 fix(config): strip retired codegraph from every harness block, report each path once
- 3c01633 fix(config): remove retired codegraph keys during migration
- 665eafa Merge pull request #8801 from effortprogrammer/fix/opencode-plugin-sandbox-refresh
- f5dafa9 fix(omo-native): say where the skill no-overwrite guarantee actually lives
- 2f195de docs(omo-native): describe the opencode asset import as fixed in review
- 08f7086 Merge remote-tracking branch 'origin/dev' into review/pr-8801
- 8d09214 fix(omo-native): keep an opencode skill from shadowing the omo plugin's bundled skill of the same name
- a1fd246 Merge pull request #8793 from effortprogrammer/fix/native-install-legacy-omo-bin
- 5ec4fd1 Merge pull request #8812 from code-yeongyu/fix/external-projection-flat-list
- 6fd6a5c fix(omo-native): leave an mcp.json with a non-object mcpServers untouched instead of spreading it
- 1e5b564 Merge remote-tracking branch 'origin/dev' into review/pr-8793
- 17a94c3 Merge pull request #8799 from effortprogrammer/fix/omo-setup-credential-import
- cac7883 fix(omo-native): tell the user how to carry over an mcp server setup refused
- 38c1d1b fix(omo-native): report and skip an opencode skill dir the engine would not load
- 78c1be4 test(auto-update): pin numeric prerelease ordering across digit counts
- d831f7d fix(omo-native): carry an opencode remote server's pre-registered oauth client into the engine config
- 2fdfd4f fix(omo-native): carry an opencode local mcp server's cwd into the engine config
- cb43562 docs(auto-update): describe the last-process-out sandbox refresh
- bec10a4 fix(auto-update): report a plugin sandbox refresh that did not complete
- f36ef86 fix(omo-native): refuse an opencode mcp server that relies on a {file:} or non-variable {env:} placeholder
- 57ea3f9 Merge remote-tracking branch 'origin/dev' into review/pr-8799
- 0175e99 fix(omo-native): layer OPENCODE_CONFIG_DIR and ~/.opencode on the opencode global dir instead of replacing it
- 8783254 docs(changes): record the #8793 review fixes in its entry
- c9819bb Merge pull request #8794 from effortprogrammer/fix/skills-list-tips-brand-command
- ea5fa84 fix(auto-update): keep a plugin sandbox another OpenCode process still runs from
- 44f2224 fix(omo-native): merge every opencode global config file instead of reading only the first
- f552cbe fix(cli): do not point at omo setup when omo on PATH is not omo-ai
- adfee33 fix(auto-update): apply the sandbox refresh from the thread that emits exit
- ed34f16 docs(changes): point the Kibitzer category-unavailable entries at #8811
- 7299898 fix(cli): warn that npm uninstall of the old package also removes omo-ai's omo
- 993a414 Merge remote-tracking branch 'origin/dev' into fix/kibitzer-category-unavailable-notice
- e4efca8 Merge remote-tracking branch 'origin/dev' into review/pr-8794
- ece3909 fix(memory-core): list external projection as one comma line per directory
- 60cfa1a Merge pull request #8798 from effortprogrammer/fix/installer-tui-json-stale-plugin-entry
- 67744f8 fix(auto-update): detach a stale plugin sandbox atomically before deleting it
- dc79fea fix(cli): scan only global bin dirs for the legacy omo, never relative or project PATH entries
- 19619a2 fix(omo-native): refuse an opencode mcp server whose value starts with ! as the engine does
- 25872ad docs(changelog): tag the omo setup import entries with #8799 and log the review fixes
- 60eb644 fix(cli): only treat a launcher shim as legacy when it launches an installed legacy package
- bf58290 test(omo-native): read the anthropic-subscription login id from the engine
- 7f42707 fix(omo-native): stop asking for an OAuth sign-in the user already completed
- 3d21019 docs(install): keep bun add -g omo-ai@beta as the lead and pin the installer to @beta
- dfefe93 fix(cli): pin the advertised native installer to oh-my-openagent@beta
- f8d4c29 fix(omo-native): escape imported opencode keys so the engine reads them literally
- 0361c55 Merge remote-tracking branch 'origin/dev' into review/pr-8798
- 4398e48 Merge remote-tracking branch 'origin/dev' into review/pr-8794
- 5ad1b1c fix(omo-native): parse an opencode config saved with a UTF-8 byte order mark
- d37e79a fix(omo-native): keep a comma inside an opencode.jsonc string when stripping trailing commas
- 1f107ed Merge pull request #8806 from code-yeongyu/docs/8805-agent-model-matching-refresh
- adcb6e5 fix(cli): warn when tui.json registers the plugin twice
- 28a13af fix(cli): read tuple server plugin entries when writing tui.json
- 49070b7 docs(changelog): skills brand-command for --list-tips (#8794)
- 96d8248 fix(changelog): restore the dated log and prepend the #8793 entry
- b90473a docs: keep the legacy GPT-5 preset out of the model-matching guide text
- cdbb9a2 docs: follow the OmO Native routing tables in the agent-model-matching guide
- b8bb522 Merge remote-tracking branch 'fork/fix/omo-setup-credential-import' into feat/omo-setup-import-opencode-mcp-skills
- da3ba4f fix(omo-native): print the credential sign-in guidance once
- 28e5007 fix(cli): native install also retires the Codex Light omo wrapper
- 49ca328 Merge remote-tracking branch 'origin/dev' into fix/opencode-plugin-sandbox-refresh
- dbe880e Merge fork/fix/omo-setup-credential-import (#8799) into feat/omo-setup-import-opencode-mcp-skills
- 9690a9d Merge remote-tracking branch 'origin/dev' into feat/omo-setup-import-opencode-mcp-skills
- 04bf0fc feat(omo-native): omo setup imports opencode MCP servers and global skills
- 707364a Merge remote-tracking branch 'origin/dev' into fix/skills-list-tips-brand-command
- 8de617d Merge remote-tracking branch 'origin/dev' into fix/omo-setup-credential-import
- 3f7567c Merge remote-tracking branch 'origin/dev' into fix/installer-tui-json-stale-plugin-entry
- 82e7893 Merge remote-tracking branch 'origin/dev' into fix/native-install-legacy-omo-bin
- 4c4f836 fix(auto-update): make "Restart to apply" actually load the new version
- 936fc05 docs(changes): record the Kibitzer category-unavailable PR number
- 1aec10c fix(omo-native): omo setup imports every OpenCode key an omo provider can serve
- 4461a4c fix(cli): replace stale tui.json plugin entries instead of appending
- 530692b Merge pull request #8797 from code-yeongyu/fix/web-og-cold-isolate-20260924
- 1149699 fix(web): keep OG figures on a cold Worker isolate
- 524ffbd docs(changes): reference PR #8793 in the native-install entry
- f375b59 fix(cli): clear the legacy global omo bin during the native install
- c73fc22 Merge pull request #8791 from code-yeongyu/feat/8611-ulw-research-deliverable-contract
- 2152449 Merge pull request #8792 from code-yeongyu/fix/web-npm-bulk-downloads-20260924
- 5344986 fix(web): fetch npm downloads with bulk point queries
- 0280edb fix(ulw-research): treat a spill inside a scrolling parent as a scroll container, not an overflow
- 65878e2 docs(changelog): ulw-research deliverable contract (#8611)
- 4f31419 test(skills): pin ulw-research edition parity by shipped-copy equality
- ae8e8de feat(shared-skills): rewire ulw-research delivery on the lane interview, gates, manifest, and repair loop
- 60b7b6f fix(ulw-research): exit 2 when format-extract cannot read its reference
- af42d34 docs(ulw-research): add the deliverable-phase contract (lanes, interview, memory episodes, gates, manifest, repair)
- 61eada8 feat(ulw-research): record repair outcomes and run totals in the outcome manifest
- 594e85a feat(ulw-research): add the report-tools CLI dispatcher
- da659dc feat(ulw-research): add deterministic static report gates
- 8f010d6 feat(ulw-research): extract design-spec drafts from a pointed-at document
- 92f52b1 feat(ulw-research): add layout gates over the browser probe output
- 6b8a5ce fix(ulw-research): read the palette under Korean token headings
- 4a86efb feat(ulw-research): add CLI support for report-tools (flags, exit codes, atomic JSON)
- 474199e docs(ulw-research): add the report-gates defect glossary
- aa602cf feat(ulw-research): emit the in-page layout probe used by the layout gates
- c6f101f feat(ulw-research): add the bounded repair tracker with plateau and oscillation stops
- f0ef53f feat(ulw-research): add CSS scanning and design-spec palette parsing
- 5b00e4d feat(ulw-research): add a dependency-free HTML tokenizer with selector paths
- 3081521 feat(ulw-research): add the run outcome manifest and closing-briefing builder
- d21be9b feat(ulw-research): freeze deliverable-contract codes, enums, and manifest validators
- d70cf1d Merge pull request #8790 from code-yeongyu/feat/web-og-downloads-20260924
- 429b89b feat(web): show npm downloads next to OG stars
- 64ca0a7 Merge pull request #8788 from code-yeongyu/fix/web-og-star-topleft-20260924
- 8454660 fix(web): move OG star count to top-left and enlarge it
- a92d9a7 Merge pull request #8786 from code-yeongyu/fix/browser-skill-real-browser-8784
- 0bf068b fix(browser): keep the personal browser name out of shipped skill copy
- 9e083d2 fix(browser): install BrowserSkill only into the browser the user actually uses
- d925ea4 chore(deps): pin omowright 293ca50 (onboard the browser the user actually uses)
Thank you to 2 community contributors:
- @effortprogrammer:
- fix(cli): clear the legacy global omo bin during the native install
- docs(changes): reference PR #8793 in the native-install entry
- fix(cli): replace stale tui.json plugin entries instead of appending
- fix(omo-native): omo setup imports every OpenCode key an omo provider can serve
- docs(changes): record the Kibitzer category-unavailable PR number
- fix(auto-update): make "Restart to apply" actually load the new version
- Merge remote-tracking branch 'origin/dev' into fix/native-install-legacy-omo-bin
- Merge remote-tracking branch 'origin/dev' into fix/installer-tui-json-stale-plugin-entry
- Merge remote-tracking branch 'origin/dev' into fix/omo-setup-credential-import
- Merge remote-tracking branch 'origin/dev' into fix/skills-list-tips-brand-command
- feat(omo-native): omo setup imports opencode MCP servers and global skills
- Merge remote-tracking branch 'origin/dev' into feat/omo-setup-import-opencode-mcp-skills
- Merge fork/fix/omo-setup-credential-import (#8799) into feat/omo-setup-import-opencode-mcp-skills
- Merge remote-tracking branch 'origin/dev' into fix/opencode-plugin-sandbox-refresh
- fix(cli): native install also retires the Codex Light omo wrapper
- fix(omo-native): print the credential sign-in guidance once
- Merge remote-tracking branch 'fork/fix/omo-setup-credential-import' into feat/omo-setup-import-opencode-mcp-skills
- Merge remote-tracking branch 'origin/dev' into fix/kibitzer-category-unavailable-notice
- docs(changes): point the Kibitzer category-unavailable entries at #8811
- @LilMGenius:
- fix(config): remove retired codegraph keys during migration
npm i -g omo-ai@beta