oh-my-hermes 2.0.1 · stable
Everything merged since 2.0.0 (2026-08-29), 118 pull requests. The grouped summary is in CHANGELOG.md; the full list is below.
Highlights
- GPT-6 Astra onboarded with an exact-model contract, both-lane routing, and a calibration block that was measured against the block it replaced and revised on the number; the six Astra ids inherit the contract and
omh coding model-contract-auditreconciles a host catalog against OMH coverage. - Request scoring gains an exhaustive-search signal; Claude Fable 5.1 / Mythos 5.1, GLM 5.3, and MiniMax recognized; token prices are a cited config document.
- Revision-bound verification plans, resumable fan-out, provider-pressure admission, and a completion-integrity gate on the coding side; native cost provenance and session-scoped todos in the HUD.
- Twenty-plus new
omh-*workflows (codebase-uml, refactor-plan, inference-serving, tech-debt-audit, decision records, omh-docs, GitHub issue intake, and more). - The unit-test suite is sharded with a serial quarantine and exact-once aggregation; the site version badge is parity-gated and moves with the other version surfaces.
- Fixes:
plugins.enableditems level with their key are read and written correctly; two CI flakes retired.
Install
curl -fsSL https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.sh | sh # macOS / Linux
irm https://raw.githubusercontent.com/rlaope/oh-my-hermes/main/install.ps1 | iex # Windows
omh setupHermes skill tap: hermes skills tap add rlaope/oh-my-hermes then hermes skills install rlaope/oh-my-hermes/skills/omh-routing --yes. Existing installs: omh update.
Release evidence
| Check | Status |
|---|---|
| Full unit suite + compileall on the bumped tree | passed inside the Cut Release run (33945214557) |
| CI on the tagged tree's parent (94928e8): sharded suite, generated-docs byte checks, dry-run install and stable-channel smokes, capability probe, release smoke plan, readiness checklist, installed-command smoke | green |
| Wheel built, verified immutable, attached | oh_my_hermes-2.0.1-py3-none-any.whl + omh-release-evidence-2.0.1.json (33945782041) |
| npm publish | step passed; registry propagation may lag a few minutes |
| Homebrew tap | rlaope/tap/omh formula at 2.0.1, wheel sha256 pinned |
| Workflow docs, roles, capability families, ULW inventory and site regions | byte-exact, checked in CI |
| Workflow-learning review queue | not applicable, no learning contract changed |
| Plugin bundle | omh setup unchanged in this release beyond the version surface |
| GitHub Pages | site copy changed only by the version badge |
Not observed in this release run (manual checks remain)
omh updateon a live machine from 2.0.0, andomh release hermes-smoke --liveagainst a real Hermes profile.- Every runtime claim above the plugin install is prompt-level or wrapper-observed evidence, per
docs/RELEASE.md; a routed model is not proof that a provider serves it.
What's Changed
- fix(routing): stop owner cues matching inside compound words and filenames by @sionic-khope in #1165
- fix(routing): widen greenfield project-bootstrap reach to file requests by @sionic-khope in #1166
- fix(routing): make the sole-owner delegation carve-out executor-neutral by @sionic-khope in #1167
- feat(setup): external-CLI handoff recognition — install guide, setup interview, merge-process contract by @sionic-khope in #1168
- feat(coding): single-run maestro dispatch and explicit-owner override by @sionic-khope in #1169
- feat(coding): per-run --model/--effort on omh coding run + truthful maestro copy by @sionic-khope in #1170
- feat(tui): Claude Code-style aligned token columns on subagent HUD rows by @sionic-khope in #1171
- feat(coding): live mid-run token telemetry for Maestro-lane HUD rows by @sionic-khope in #1178
- feat(benchmark): live cross-harness lane that executes what it submits by @sionic-khope in #1173
- feat(quality): bind evidence freshness to the git tree hash by @sionic-khope in #1174
- feat(loop): ordered stop ladder before a goal-loop tick advances by @sionic-khope in #1176
- feat(skills): add adversarial-consensus, the pre-plan attack workflow by @sionic-khope in #1177
- feat(fanout): cap dispatch recursion depth and per-run spawn ceiling by @sionic-khope in #1172
- feat(fanout): classify unit retries and gate them on replay safety by @sionic-khope in #1179
- feat(coding): operator category->model chains for the Maestro lane (category-maestro) by @sionic-khope in #1180
- feat(verification): escalate to thorough lane on sensitive path touches by @sionic-khope in #1181
- feat(design): scored visual verdict, default-prior awareness, and review prompts for the design lane by @sionic-khope in #1183
- feat(skills): add llm-app-dev, the LLM feature build-discipline workflow by @sionic-khope in #1182
- feat(setup): surface category-maestro through setup, model setup, and a guided interview by @sionic-khope in #1185
- feat(skills): add the backend, rust, and native-debugging domain pack by @sionic-khope in #1184
- feat(design): deterministic local design reference data behind omh design data by @sionic-khope in #1186
- fix(tests): deflake spawn-stagger test with an injected clock by @sionic-khope in #1187
- fix(routing): normalize Hangul trigger-token hold-backs before subtraction by @sionic-khope in #1188
- feat(benchmark): ternary live verdicts and baseline comparison by @sionic-khope in #1189
- feat(quality): completion-integrity gate that refuses fake completion by @sionic-khope in #1191
- fix(coding): name where catalogless profiles route categories in category-maestro show by @sionic-khope in #1192
- feat(routing): trigger language packs so any input language is addable by @sionic-khope in #1193
- docs: bring README, site, installation, and agent-install surfaces current with category-maestro by @sionic-khope in #1194
- fix(coding): spell out the sidecar's closed enums in the executor-facing prompt by @sionic-khope in #1195
- feat(security): named strict security posture via OMH_SECURITY by @sionic-khope in #1196
- feat(coding): resumable fanout via a terminal-state run journal by @sionic-khope in #1197
- feat(routing): vagueness gate on heavy-mode routing by @sionic-khope in #1198
- feat(quality): adversarial-regression rule before a guard deletion by @sionic-khope in #1200
- feat(quality): measured instruction-density gate for skill bodies by @sionic-khope in #1201
- feat(coding,workflows): negative-conclusive terminal statuses by @sionic-khope in #1202
- feat(coding): deterministic request-complexity scorer feeding a model recommendation by @sionic-khope in #1203
- feat(system): one truncation contract with spill-to-artifact back-references by @sionic-khope in #1199
- fix(plugin_bundle): honest-unknown elapsed time in run summary by @sionic-khope in #1204
- feat(skills): detect and suppress cross-surface duplicate content by @sionic-khope in #1205
- feat(loop): sticky-rule re-attachment with a bounded repeat policy by @sionic-khope in #1207
- feat(coding): preflight-block a doomed Hermes child spawn before it starts by @sionic-khope in #1206
- feat(security): approval-tier resolver centralizes confirm/refuse decisions by @sionic-khope in #1208
- feat(coding): prescribe capped structural search in the handoff contract by @sionic-khope in #1210
- feat(coding): symlink shared build artifacts into fanout unit worktrees by @sionic-khope in #1209
- feat(quality): denominator hygiene for every rate OMH reports about itself by @sionic-khope in #1212
- feat(learning): calibrate the routing corpus against recorded decisions by @sionic-khope in #1214
- feat(quality): budget the shared prompt for the smallest model in the fleet by @sionic-khope in #1215
- feat(coding): foveated history layout policy on the prompting contract by @sionic-khope in #1211
- feat(quality): classify prompt/schema overlap on the omh tool surface by @sionic-khope in #1213
- feat(coding): classify, repair, and interview dispatch failures by @sionic-khope in #1217
- feat(routing): GLM 5.3-generation calibration, chains, and speed-tier projection by @sionic-khope in #1216
- feat(skills): model-optimization — the model-onboarding process as an installable skill by @sionic-khope in #1218
- feat(skills): memory-sync interviews pick candidates, resume, and finish with an applied write by @sionic-khope in #1219
- fix(hud): scope the plan todo to the session that declared it by @sionic-khope in #1220
- feat(tui): selectable TUI themes with an arrow-key picker by @sionic-khope in #1221
- feat(skins):
omh theme repairfor a skin the manifest can no longer prove by @sionic-khope in #1222 - Point the language policy and the skill checklist at what the code does by @sionic-khope in #1229
- Split the web lookup lane out of the ulw-research engine by @sionic-khope in #1227
- ulw-research asks who the output is for, and writes the human a real briefing by @sionic-khope in #1228
- feat(skills): ai-slop-cleaner gains a slop taxonomy, fixed pass order, and detection-first inventory by @sionic-khope in #1239
- A sentence that reports a trigger is not asking for work by @sionic-khope in #1240
- feat(skills): code-review gains a spec-conformance axis and a named smell baseline by @sionic-khope in #1237
- feat(codegraph): omh codegraph uml + the codebase-uml skill — one readable picture of a repo by @sionic-khope in #1230
- feat(skills): frontend-refactor — previewed, behavior-locked, impact-ordered UI restructuring by @sionic-khope in #1238
- feat(skills): refactor-plan — phased, abortable execution shape for decided refactors by @sionic-khope in #1241
- feat(skills): inference-serving — decide, deploy, and measure LLM serving as one gated process by @sionic-khope in #1243
- docs(readme): add Discord community invite to the Be with us table by @sionic-khope in #1248
- feat(skills): instrumentation ladder — tiered observability audits, span vocabulary, harness budgets by @sionic-khope in #1246
- docs: skill upstream-sources registry for reconstruction provenance and update tracking by @sionic-khope in #1250
- feat(routing): onboard Claude Fable 5.1 and Mythos 5.1 across both lanes, with 5.1-aware Claude calibration by @sionic-khope in #1253
- feat(skills): tech-debt-audit — the severity-by-effort debt ledger with rerun reconciliation by @sionic-khope in #1254
- feat(skills): decision records — the ADR lifecycle wired into decide and decision-recall by @sionic-khope in #1256
- feat(setup): provider-entitlement interview reorders chains per machine and seeds the Maestro lane by @sionic-khope in #1260
- fix(skills): repoint the boundary-crossing refactor deference at refactor-plan by @sionic-khope in #1264
- docs(sources): candidate rows carry their issues, and agentic-eval points at its real upstream by @sionic-khope in #1265
- feat(surfaces): copy/export manifest for the current work artifacts by @sionic-khope in #1255
- feat(fanout): bound review dispatches per goal attempt by @sionic-khope in #1257
- fix(routing): canonicalize ULW names across every public route-hint surface by @sionic-khope in #1258
- feat(memory): bind project-memory review decisions to the candidate revision they read by @sionic-khope in #1259
- feat(skills): a11y rule IDs and the auto-fixable partition by @sionic-khope in #1266
- feat(skills): web vitals budgets — thresholds, attribution, and field-vs-lab by @sionic-khope in #1268
- test(routing): restore the registered canonical ULW seam by @sionic-khope in #1269
- feat(skills): self-evaluation loops — shapes, stop rules, and what a judge score is worth by @sionic-khope in #1270
- fix(hud): the activity row's measured block sits beside its identity, and tells the truth by @sionic-khope in #1271
- fix(cost): a zero renders only with the provenance that earns it by @sionic-khope in #1278
- fix(cost): an unpriceable unrecorded cost is unknown, not free by @sionic-khope in #1281
- feat(cost): token prices become a config document, not a source edit by @sionic-khope in #1284
- build(deps-dev): bump ruff from 0.16.4 to 0.16.5 by @dependabot[bot] in #1276
- feat(routing): refuse a dispatch that would inherit a provider which cannot serve it by @sionic-khope in #1286
- fix(hud): drop the context dash the header could never fill by @sionic-khope in #1287
- feat(skills): award-bar-score — the published award bar, measured instead of asserted by @sionic-khope in #1285
- feat(cost): every shipped rate cites its source, and a user-priced figure says so by @sionic-khope in #1289
- feat(hud): the subagent row's metric run reads in three tones and one order by @sionic-khope in #1298
- fix(loop): a dispatch outcome only tightens, and a legacy record still recovers by @sionic-khope in #1299
- fix(loop): an observed queue item says so, and an unresolved dispatch is reported by @sionic-khope in #1300
- Add adaptive provider-pressure admission to fanout dispatch by @frirenai in #1302
- feat(runtime): recover media, watch, release, and installer contracts by @sionic-khope in #1301
- test(media): stamp the primary-handoff fixture at test time by @sionic-khope in #1308
- feat(models): onboard GPT-6 Astra with an exact-model contract, version-aware calibration, and both-lane routing by @sionic-khope in #1307
- feat(routing): recognize the MiniMax model family by @sionic-khope in #1311
- feat(benchmarks): manifest-aware analysis for targeted family runs by @sionic-khope in #1312
- feat(todo): the plan todo belongs to the session that declared it by @sionic-khope in #1309
- Add source-first OMH Docs skill by @sionic-khope in #1316
- test(fanout): progress waits in the admission tests outlast a slow runner by @sionic-khope in #1317
- fix(hud): the row identity keeps its parentheses by @sionic-khope in #1318
- feat: deliver verified coding, cost, intake, and CI workflows by @sionic-khope in #1319
- fix(site): the landing page's hero badge carries the released version by @sionic-khope in #1320
- test(adapters): the non-timeout scenarios get the 5-second budget the crash-descendant test already uses by @sionic-khope in #1324
- fix(config): plugins.enabled items level with their key are read, and new items match the file's indent by @sionic-khope in #1323
- feat(coding): add observable orchestration contracts by @sionic-khope in #1328
- feat(models): measure the gpt-6-astra override against the block it replaced, and revise it on the number by @sionic-khope in #1331
- test(benchmark): the delegator wrapper names the two family-arm framework tests by @sionic-khope in #1334
- feat(routing): an exhaustive-search request reaches the standard tier on its own by @sionic-khope in #1336
- feat(models): inherit Astra contracts and audit catalog drift by @frirenai in #1337
- chore(release): the bump tool moves the site badge, and the 2.0.1 changelog entry by @sionic-khope in #1338
- docs(readme): drop the Friren callout screenshot by @sionic-khope in #1339
Full Changelog: v2.0.0...v2.0.1