Releases: hapo-nghialuu/hod
Release list
hod 0.1.13 — opt-in adaptive coordinator
Adds an opt-in adaptive coordination layer. The default hod workflow is completely unchanged unless you explicitly ask for an adaptive coordinator or coordinator-plus-advisor setup.
What is it?
A request-driven routing system that picks the smallest workflow that fits:
DIRECT— fast path for questions, explanations, and read-only inspection. No worker, no plan, no advisor, no checkpoint.SINGLE— one task packet for a clear, reversible, single-owner change.ORCHESTRATE— working plan, explicit ownership, and ordered coordination for multi-writer, multi-phase, or large-blast-radius work.
CONSULT and ASK_USER are overlays, not additional modes. Every repository change still gets a mechanical E0 evidence receipt before acceptance. Tripwires hold before re-routing — they never auto-revert, open new writers, or expand permissions. Advisors (user-chosen from Fable, GPT-5.6 Sol, or Opus) receive self-contained decision packets and return assessments only, never authority.
Six reasoning principles are embedded as observable output rubrics: floor check, concrete simulation, adversarial self-review, constraint loop, multi-hypothesis diagnosis, and calibrated delivery.
What it is not
This is not a new CLI command. bin/hod only changes one line — the version number. No new subcommands, settings profiles, lock files, ledger helpers, or stale-lock recovery code.
One additional fix
features.multi_agent=false is now documented as version-sensitive on interactive Codex: the gap was confirmed on 0.146.1 and observed as resolved on 0.147.0. Probe the exact installed binary before relying on the flag.
Full protocol: references/coordinator-advisor.md
Upgrade: hod update
hod 0.1.12 — the impl promise now matches what is enforced
Reading the two role profiles side by side turned up a promise wider than its enforcement.
The impl role read "May edit code and commit; must not publish (push/merge) or spawn agents" — but nothing backs that second half. settings-impl.json denies four git commands and has no Agent entry; the Codex flag set carries network_access and writable_roots but omits features.multi_agent=false, a flag that would not hold in an interactive worker anyway.
The gap is symmetric — both CLIs are equally open at this role — so parity between them is unaffected. What was wrong is that the written promise claimed more than either side delivers, and a promise the controller cannot rely on is worse than a gap it knows about.
The promise now ends at publication. The Honest gaps entry states plainly that no-spawn at the impl role rests on prompt wording for both CLIs, and that the controller must check the commit, the absence of publication, and the absence of child-agent work.
Docs only — no behaviour change. Upgrade with hod update.
hod 0.1.11 — what the Codex flags actually guarantee
Live validation against interactive Codex workers — started the way you actually start them, through herdr agent start --kind codex — contradicted two claims that 0.1.10 documented as boundaries. Both are corrected.
features.multi_agent=false is not a hard block in interactive mode. It removes spawn_agent under codex exec, but an interactive worker on 0.146.1 started with -s read-only -c features.multi_agent=false still reports the tool. Two workers reported two different names, so never match on the name.
Severity is low, and the docs now say so plainly: a child inherits the same read-only sandbox and cannot write — confirmed by a blocked write leaving the tree clean. What is lost is observability, since delegation would not show up in the Herdr sidebar. Verify by evidence, not by pane presence.
Project-level .codex/config.toml is ignored by interactive workers. In the same directory, sandbox_mode = "read-only" blocks writes under codex exec but an interactive worker with no CLI flags shows an approval dialog instead of blocking — and still exposes spawn_agent despite multi_agent = false in the file. Flags after Herdr's -- remain the only effective path. Committing a config file to a repository creates no boundary.
The controller row is now marked documented-only: it rests on socket evidence alone, with no full worker run behind it.
What still holds, unchanged: read-only blocks writes at the OS layer, .git stays protected until listed in writable_roots, and the impl flag set edits and commits cleanly.
Docs and version only — no behaviour change. Upgrade with hod update.
hod 0.1.10 — Codex workers get real role boundaries
Herdr workers running Claude Code get their role boundaries from settings.<role>.json profiles. Workers running Codex had nothing equivalent — a reviewer or impl started with --kind codex was bounded by wording alone.
The principle: a role is defined by the promise the controller may trust, not by the mechanism. Each CLI enforces that promise with its strongest layer — Claude with tool deny rules, Codex with its OS sandbox — and the new references/role-boundaries.md maps all three roles to both CLIs, naming the honest gaps on each side instead of pretending parity.
reviewer -s read-only -c features.multi_agent=false # fresh session
controller -s workspace-write --ask-for-approval never \
-c sandbox_workspace_write.network_access=true \
-c features.multi_agent=false
impl -s workspace-write --ask-for-approval never \
-c sandbox_workspace_write.network_access=true \
-c 'sandbox_workspace_write.writable_roots=["<abs-repo>/.git"]'
hod settings list now prints these beside the Claude profiles.
Every claim was verified empirically on codex-cli 0.145.0/0.146.0 (macOS), including two findings worth knowing:
.gitis protected insideworkspace-write— commits fail until the repo's.gitis listed inwritable_roots. The impl flags above handle it.- The sandbox network rule also covers Herdr's own Unix socket, so a Codex controller cannot be sandbox-locked and still drive Herdr. Its no-edit promise is wording-level — symmetric with Claude's controller, which leaves
Bashopen.
Upgrade: hod update
Tests: 105 hod, green on macOS and Linux.
v0.1.0 — official release
hod — Herdr Orchestrator Driver, first official release.
Install
curl -fsSL https://raw.githubusercontent.com/hapo-nghialuu/hod/main/install.sh | HOD_REF=v0.1.0 sh
hod statusIncluded
Skill — the orchestration contract for Claude Code / Codex / Grok controllers through Herdr: strict coordinator-only mode (controller plans and delegates; never codes, builds, tests, or reviews by hand), direct-user delegation semantics, evidence-based verification with per-run sentinels, one-file-one-writer ownership, open-question harvesting into every final report, hierarchical portfolio mode, and continue-vs-fresh session rules (reviewers are always fresh sessions).
hod CLI — install (global or per-project, no sibling layout required), status, doctor (reports branch vs tag-pinned checkout mode), update (fast-forwards branches; moves pinned checkouts to the newest tag), settings (role permission profiles enforced by the Claude Code harness — controller/impl/reviewer), uninstall.
Docs — bilingual README (English · Tiếng Việt) with hand-built flow diagrams, four-level quickstart, usage recipes, portfolio guide.
Quality — 77 behavioral tests (55 hod, 22 linker), CI on Ubuntu + macOS, validated against Herdr 0.7.5.
Note: this tag supersedes an earlier v0.1.0 draft cut one day prior which lacked the pinned-update fix. Tags are immutable from this release onward.