Features
- feat: OMP (oh-my-pi) is the 11th supported agent (ADR-0026, #1332)
- feat: ADR-0023 omp row, PRD and TECH-SPEC 11 agents, 01-contracts and 12-plugins name OMP, intake reads OMP (OMP M8)
- feat: docs/install/omp.md with OMP's own verbs, omp in NATIVE_HOSTS, 11 agents in install docs and README (OMP M8)
- feat: ci.yml OMP 18.20.0 from its own install script on 3 OS, omp --version gate, OMP e2e cases step (OMP M7c)
- feat: omp row decodes the Pi payload with agent omp, rows say omp (OMP M7a)
- feat: ctx_upgrade on OMP prints omp plugin upgrade, writes no host config, one plugin root per package (OMP M6b)
- feat: doctor names OMP, reads the OMP plugin store, prints OMP verbs and host-limit info (OMP M6a)
- feat: setup merges and uninstall drops context-mode in OMP disabledServers when OMP imports it (OMP M5)
- feat: issue forms, intake, CI step name and windows-hosts list omp as the 11th agent (OMP M4b)
- feat: package.json omp key and omp/index.js wrapper (OMP M4b)
- feat: omp is the 11th AgentId with a Pi-shaped table row (OMP M4a)
- feat: all 9 ctx_* tools register with loadMode essential (OMP M3)
- feat: OMP reads contextMode.excludeTools from api.pi.settings per call (OMP M2c)
- feat: turn once per prompt, OMP registers tools at load (OMP M2b)
- feat: shared Pi factory takes the agent id from its entry, env never selects OMP (OMP M2a)
- feat: array systemPrompt keeps every OMP block, payload last, once (OMP M1)
Fixes
- fix(ci): the OMP fire block runs in its own test file so the VS Code setup check keeps its 10 s MCP timer (D-OMP-CI-3, #1332)
- fix(ci): OMP CI on main, windows-hosts installs OMP; GP3 omp driver uses stdin (D-OMP-CI-2, #1332)
- fix(ci): windows-hosts job installs OMP with its own script; GP3 omp driver reads steps on stdin (D-OMP-CI-2)
- fix: safeFetch sends user-agent and accept on every request, a refused fetch names the host (#1380)
- fix: readme-stats writes the README counts line from stats.json (D-README-COUNTS-1)
- fix: readme-stats job rebases before its push, so README counts update daily (D-README-STATS-PUSH-1)
- fix: gemini doctor checks an installed extension from disk when the list fails (#1378)
- fix: doctor names the gemini list error for an installed extension (#1378)
- fix: doctor names a missing pinned codex hook or server path (#1376)
- fix: setup uses the codex plugin route when it runs from the plugin cache (#1376)
- fix: runProcess reads the pipes once more before an exit-drain cut (D-R59-D5-DRAIN-1)
- fix: a tools: mcp__* or mcp entry grants that server's ctx tools, so the subagent gets case A (#1374)
- fix: copilot-cli and vscode hook command starts with bare node on Windows so pwsh -Command parses it (#1375)
- fix(e2e): hook runner builds the child env from an allowlist, not the runner's process.env (D-E2E-HOST-ENV-1)
- fix(sandbox): a PATH candidate stat cannot read is skipped, lookup failures are named, D11 names a language it cannot resolve (#1373)
Performance
- perf: doctor reads the omp plugin list once (OMP P5)
Who gets this
One version on both channels: the release commit on main (GitHub) and npm.
| Agent | Channel | Update with |
|---|---|---|
| Claude Code | GitHub | claude plugin update context-mode@context-mode
|
| Codex | GitHub, npm for the one-time hook trust step | codex plugin marketplace upgrade context-mode
|
| Gemini CLI | GitHub | gemini extensions update context-mode
|
| Qwen Code | GitHub | qwen extensions update context-mode
|
| Copilot CLI | npm | context-mode upgrade
|
| VS Code (Copilot) | npm | context-mode upgrade
|
| Kiro | npm | context-mode upgrade
|
| ZCode | GitHub | zcode plugins update context-mode@context-mode
|
| Pi | npm | pi update --extensions
|
| OpenCode | npm | opencode plugin update
|
| OMP | npm | omp plugin upgrade context-mode
|