Releases: thisisjun786/omo-linear-workflow
Release list
v0.2.0
Released: 2026-09-27
Added
- Official checksum-pinned Herdr 0.9.1 releases replace the vendored patch and Rust/Zig
build. Senpi's built-in integration owns reports; OLW recognizespiandomowithout
duplicate session reports. Owned clones use upstream groups andworktree.create.
olw doctorblocks the operational switch and lists remaining legacy parents. Existing
servers, installed binaries and caches are untouched; one-release rollback is documented.
New linked parents (--repo), children and successors of legacy parents are rejected with
legacy_parent_unsupportedbefore external side effects; close/migrate with approval or
continue those parents with the retained pre-switch OLW and patched Herdr together. - Pinned-by-default OMO model routing with accepted baselines, route-level upstream advice,
selectiveapply/dismiss, optionalfollowmode, launcher and manager notices, and catalog
health review for removed or degraded models. Advice is read-only until explicit acceptance. - Issue deliverables (
pr,report,document) on bindings, briefs, packets and status. Owned-clone
children publish one PR into their parent's integration branch;pr openreuses open PRs and
pr mergechecks the reported head and merges with a merge commit. PR-less results require a
deliverable path. Project PRs stop for user review; legacy local merges remain deprecated but unchanged. - Fetch-before-close publication guards for owned parents and their PR children, with explicit
--discard, and isolated bare-remote/gh-shim PR lifecycle QA. - New mapped parents run in OLW-owned, hardlinked clones of repository mirrors, with readable
per-project Herdr groups and child worktrees owned by the parent clone. Explicit private local-file
copies, setup deadlines/logs/receipts, and close-time unpushed-commit reports are supported.
Legacy checkouts remain unchanged;parent create --repoconflicts with a mapping (later rejected; see the official Herdr entry). - Scope projects can declare a target Git remote and default branch. OLW maintains one locked,
fetch-only mirror per remote and exposes mirror status and explicit fetching througholw doctor
andolw repo list|fetch. - Child modes:
child create --mode direct|planned|research. Aplannedchild runs
a plan stage (opencodex/anthropic/claude-fable-5-1xhigh, ulw-plan) and then an
execute stage (opencodex/anthropic/claude-opus-5-5medium, ulw-execute driving
mass-ulw) in the same worktree, each in its own Herdr tab and binding.stage completerecords the plan hand-off (path, sha256, head) andstage start --stage executestops the plan session and opens the execute stage.status
showsmode,stage,stageBindingsandopenQuestionsper lineage generation;
closeon any stage closes that generation and its workspace once. The parent
sends the issue packet to the execute binding; nothing transfers automatically. - Questions and answers:
questionandanswermessage kinds, theolw_asktool
in bound child and parent sessions (nativeask_user_questionis blocked there),
and theask,answerand read-onlyquestionscommands. A parent's question
goes to its ready manager or, without one or with--to-user, to the user inbox;
answer --as-useranswers an inbox question. - The manager:
olw manageopens or reattaches the scope-free management session
inside the OLW host with the user's default model (fallback Opus 5.5 medium).
Parents created while it's ready link to it automatically;parent create --no-manageropts out.manageruns an update check at start and puts the
result in the manager brief. - Update automation:
olw update checkreports the pinned OMO and Senpi versions
against the npm dist-tags (omo-aibeta,@code-yeongyu/senpilatest) and
never installs;olw update preparebuilds anolw/update-omo-<v>-senpi-<v>
branch from the selected remote'sdev(defaultorigin) in a separate worktree, runs install, typecheck, test and
build there and opens a PR todev(draft if anything failed). Neither touches
the live host. mediumis an accepted thinking level for role models.- User-managed opencodex model metadata catalog (
MODEL_CATALOGin
src/proxy/model-catalog.ts). It overrides the context window, output limit,
input modalities and reasoning flag that ocx exports late or wrong, for example
the 32000 output stand-in on every model (lidge-jun/opencodex#5828). The
managedomolauncher and role panes loaddist/extension/model-catalog.js,
which re-registers corrected models at session start.
bun run proxy:routing cataloglists the active changes and any redundant or
stale entries. - Issue children start in packet-bound mass-ulw mode, using native phase workflows
and independent artifact verification before reporting to the existing parent. - Real child workflow QA for successful execution and recovery of invalid work
without repeating successful nodes:qa:child-workflow happy|failed-node. - Model chain warnings on every managed
omostart, inolw doctor(under
chains, stillok) and viabun run proxy:routing chains: a category or
agent with no working model or a single remaining model, and OLW role models
missing from the opencodex catalog. Warnings never block a start and print once
per change. - Durable execute-stage launch intent: concurrent recovery of an execute stage is fenced to
one launch, andreconcilesettles a recovery whose outcome is uncertain.
Changed
- CI now records exact-commit results for every
devmerge and rejects pull requests into
main. Owner-authorized releases validate that evidence, publish an immutable source tag and
GitHub release, then fast-forwardmainwith dedicated release credentials. The first release
after adopting the workflow is bootstrapped by an owner-pushed tag; later releases use dispatch. - Repository policies follow
docs/policy/: PRs targetdevand merge with a merge
commit,mainonly advances to released commits, and issue and PR text is in
English. Issue forms are nowbugandproposal. - Pinned the official
omo-ai5.0.0 and@code-yeongyu/senpi2026.9.26 releases, retaining only runtime-repair hunks that remain necessary. - Models route through opencodex. The routing synchronizer reads the
opencodex-owned catalog inmodels.json, and OLW role pins useopencodex. - Child fixture standby permits internal workers only after explicit instruction;
creating additional OLW roles and accessing live Linear remain forbidden. - Only children may hold an issue-packet goal. Supervisor/parent waiting and model
assignments remain unchanged; existing bindings are not reinitialized. - An upstream xAI route is followed by the same model on Cursor when opencodex
publishes it (xai/grok-4.7, thencursor/grok-4.7). No other same-model host
becomes a second lane. - A managed category or agent route whose upstream choices opencodex no longer
publishes is written without models and listed asunroutable, instead of
rejecting the whole routing update. stage start --stage executerequires an accepted plan report and an unchanged plan file;
legacy hand-offs without one fail closed. Repeating an identicalstage completeattaches
the accepted report id to the hand-off. Reported plan paths are resolved.- The manager session keeps the user's native model and thinking level instead of
pinning them. - A report addressed to a paused manager goes to the user inbox.
- The child CLI
askcommand is rejected; children use theolw_asktool.askstays
available to parents. update preparerejects a stale check or one that isn't an upgrade, targets the selected
GitHub remote withgh -R, reuses an existing remote pull request, and skips typecheck,
test and build after the install step fails.--remoteaccepts GitHub remotes only.- Repository mirror locks use a kernel
flockthat the spawnedgitinherits.
Removed
- The CLIProxyAPI model extension (
dist/proxy/index.js), its/proxy-refresh
command, access files and manual-first CLIProxyAPI policy document. Role
launches and the shared host profile no longer load it. Remove that path from
OMO'ssettings.jsonextensions. A routing receipt without a provider is
still re-planned at the next start.
Fixed
- Upstream Sol Fast selectors are routed to standard-tier Sol through opencodex;
Luna keeps its Fast row. Sol's priority tier cost too much for its speed gain. - The managed
omolauncher works with omo-ai installed through bun (5.0.0 and
later). It finds the omo-ai package from its manifest instead of assuming a
symlinked bin, so the generated bun launcher script no longer fails the routing
preflight withENOENT ... ~/.bun/package.json. - Once routing has been adopted, a failed routing preflight no longer blocks the
interactiveomolauncher: it prints the error and starts OMO with the retained
routing. Before adoption, and for OLW role launches, a failed preflight still
stops the launch. pr mergematches the child's report to the requested PR instead of the latest
report from that binding.
Security
- Explicit local-file copies are anchored to directory handles inside the owned checkout,
reject C0 and C1 control characters at both path boundaries, and surface cleanup failures.
Receipts store only a source label, never the source path. - Git remote arguments get explicit option boundaries (
--), so a remote name or URL can't
be read as a flag.
Migration
Do these steps in order after pulling v0.2.0.
- Rebuild the control root. Run
bun run install:localfrom the checkout, or follow the
upgrade steps in docs/policy/releases.md. Running
Herdr servers and OMO sessions keep the old code until you close and recreate them. - Switch to official...
v0.1.0
Released: 2026-09-23
Initial source release of OMO Linear Workflow (OLW).
Added
-
A non-overwriting Linux x64 installer for a source checkout and its
olwlauncher. -
CI for metadata, type checking, lint, tests, the managed Herdr build and installation smoke tests.
-
Version/tag validation and source-only GitHub releases triggered by maintainer tags.
-
Version, upgrade, rollback and contribution policies, issue forms and a PR template.
-
Bun CLI (
bun run cli) that imports a revision-pinned Linear initiative scope
snapshot into local SQLite and creates supervisor, parent and child role
bindings on top of it. -
Herdr-backed role workspaces: one supervisor per initiative, one parent
worktree per project on an integration branch, one child worktree per issue
based on its parent's branch. -
Event-driven delivery between roles through OMO native threads with
persistent claims, idempotent message IDs and stored receipts. No polling
loops. -
status,pause,resume,reconcileandclosecommands that inspect
and release runtime resources while preserving worktrees, branches and
session records. -
Managed Herdr runtime pinned by
vendor/herdr/manifest.jsonand
patches/herdr-0.9.1-omo.patch, built bybun run buildwith digest-verified
artifacts and receipts. No fallback to a global PATH binary. -
Proxy model extension (
dist/proxy/index.js) that registers CLIProxyAPI
models in OMO, honours the manual-first model policy, and refreshes the
catalog at startup, on new agents and on/proxy-refresh. -
Automatic upstream routing tracking (
bun run proxy:routing) that maps the
installed global OMO's category and agent chains onto proxy models while
protecting manual overrides. -
Ollama Cloud DeepSeek routing through the proxy extension.
-
OMO skills
olw-define,olw-plan,olw-runandolw-checkfor defining,
planning, executing and checking approved scope through the native runtime. -
Isolated QA scripts (
qa:events,qa:linear,qa:proxy,qa:routing,
qa:herdr) that run against owned fixtures and clean up after themselves. -
English and Korean READMEs, plus operator guides for the proxy model policy
and automatic routing.
Known limits
- Linux x64 is the only supported installer target.
- Live Linear OAuth and real Linear writes have not been exercised.
- The OLW orchestration runtime does not automatically merge work or mutate Linear.
GitHub source releases require a maintainer to push a version tag.