Skip to content

feat(cli): freeze versioned harness modes - #55

Merged
xisen-w merged 4 commits into
codex/bootstrap-basefrom
feat/harness-mode-registry
Oct 16, 2026
Merged

xisen-w merged 4 commits into
codex/bootstrap-basefrom
feat/harness-mode-registry

Conversation

@xisen-w

@xisen-w xisen-w commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Change and reason

Adds an executable, immutable harness-mode registry so research runs can name the exact coordination treatment they executed instead of relying on an ambiguous collection of flags.

goal run --harness-mode <name>@<version> now supports the six frozen research profiles:

  • research/baseline@1
  • research/mentions@1
  • research/tasks@1
  • research/both@1
  • research/routing-only@1
  • research/receipt-only@1

The CLI rejects noncanonical names, conflicting low-level flags, compiled Rooms, agents without an explicit model, dirty source checkouts, and profile drift before the run starts. episode.json records the mode, immutable semantic spec hash, fully resolved profile, clean commit/dirty state, package/entry/runtime-code hashes, image and pinned models, plus goal and opening-prompt hashes.

The registry also reserves runtime/serve-first@1 and runtime/serve-all@1 with their reviewed PR #48 provenance. They are explicitly unavailable in this build and fail before side effects; this PR does not claim that the unmerged serve-backed runner is supported. Mutable availability and re-verification metadata are excluded from the immutable mode hash, so enabling the exact reviewed implementation does not redefine @1.

docs/harness-modes.md is the catalog for delivery, wake, stop, flags, hashes, availability, and provenance. Existing ad hoc goal run flags remain compatible, and the root README is unchanged.

Verification

  • pnpm check:export — 91 allowlisted files
  • pnpm typecheck
  • pnpm test — 429 passed, 1 skipped; 14 script tests passed
  • pnpm test:package — installed-package smoke passed; tarball SHA-256 0e8f413b8a89652f6b9c047ddf193da6781327b11e267958936e884fc67cee05
  • CI passes, including secret scan — Node 22/24/26 and secrets all succeeded

No route, identity, or cursor behavior changes. Focused CLI and runner tests verify early validation, exact mode resolution, dirty-checkout handling, deterministic code provenance, unavailable runtime dependencies, stable semantic hashes, catalog consistency, and recorded episode metadata.

Compatibility and release

This adds one optional goal run flag and preserves all existing low-level flags when it is omitted. Named research modes require board Rooms and an explicit model on every agent. Runtime mode names remain dependency-only until PR #48 is merged and wired in a later reviewed change.

A source merge does not publish the package. Do not enable auto-merge or publish from PR CI.

Give research runs canonical versioned profiles and reserve the serve-backed runtime names without claiming unmerged support. The registry is executable, immutable, and self-hashing so episode records can identify the exact treatment definition.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
Make --harness-mode the drift-resistant entry point for frozen research treatments, reject unavailable serve-backed modes honestly, and record the resolved profile plus reproducibility provenance in episode.json.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
Require pinned models, reject dirty source checkouts, record a deterministic runtime code-tree digest, and keep mutable availability outside immutable mode hashes.\n\nCo-authored-by: OpenAI Codex <codex@openai.com>
@xisen-w
xisen-w merged commit 1f0ef66 into codex/bootstrap-base Oct 16, 2026
4 checks passed
xisen-w added a commit that referenced this pull request Oct 19, 2026
* chore(cli): refresh the 0.1.16 release notes for #51-#61

The 0.1.16 notes were finalized in #49, but #51, #55, #56, #58, #59 and
#61 merged after that into the same unpublished version. The owner has
authorized the release, so record their operator-visible behavior first,
as CONTRIBUTING requires: same-account Room discovery, delivery-lease
renewal, and the versioned harness modes.

Also record the release evidence and its limits. The tarball packed from
the merged #61 commit is byte-identical to the reviewed artifact, and it
was run as a production listener before publishing. That covers the
live-listener and hosted-API gates #58 left open for serve. The
serve-backed research modes still have no hosted or model-backed run, so
the notes say so instead of implying it.

Docs only: the packed tarball does not include docs/, so the artifact
being published is unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(cli): correct the 0.1.16 notes on discovery backlog and leases

An independent fact-check against 1921657 found two inaccurate sentences.
A discovered Room does not "hand over nothing": its first mention carries
everything since the kept place, and unlike a join it does not skip to
the newest lines. And #56's lease keeps the Room showing the seat as
replying past the old 20-minute window; it does not stop redelivery.

Also state that #58's hosted no-model gate for the serve-backed modes
was not run, add #61's known working-directory limit, and note that the
driven binding must agree across an Instance's seats while --run uses
its command.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant