Skip to content

fix(harness): launch Codex as an interactive worker - #165

Merged
atqamz merged 2 commits into
mainfrom
fix/codex-interactive-launch
Aug 5, 2026
Merged

fix(harness): launch Codex as an interactive worker#165
atqamz merged 2 commits into
mainfrom
fix/codex-interactive-launch

Conversation

@atqamz

@atqamz atqamz commented Aug 5, 2026

Copy link
Copy Markdown
Owner

Summary

  • Launch Codex interactively with the full brief prompt, unattended YOLO mode, and reliable hand send submission.
  • Propagate model and explicit reasoning effort while omitting auto.
  • Refuse the observed directory-trust prompt instead of accepting project-local config, hooks, and exec policies.
  • Record only the Codex detection and first-run behavior observed in real panes.

Validation

  • Strict TDD regression cycles
  • Real Codex CLI 0.146.0 launch, model, effort, prompt, residency, hand send, and herdr lifecycle
  • make lint, go build ./..., make test, make e2e, and make contract inside nix develop
  • No-mistakes review, test, document, lint, push, PR, and CI pipeline

SPECS.md remains unchanged for issue #163.

Closes #36

atqamz added 2 commits August 5, 2026 07:26
Disable paste-burst buffering so hand send submits reliably.
Recognize and refuse Codex directory trust instead of accepting
project-local config, hooks, and exec policies.
@atqamz atqamz self-assigned this Aug 5, 2026
@atqamz
atqamz merged commit e257e2f into main Aug 5, 2026
5 checks passed
@atqamz
atqamz deleted the fix/codex-interactive-launch branch August 5, 2026 01:04
atqamz added a commit that referenced this pull request Aug 5, 2026
PR #165 made Codex model and effort capable before this rebase.
Configuration tests follow the merged harness contract instead of the
provisional matrix.

Refs #161
atqamz added a commit that referenced this pull request Aug 5, 2026
* refactor(harness): keep one list of supported harnesses

* feat(cmd): own worker defaults with hand config

hand config reports the fleet's worker defaults and which of them are
still missing; hand config set validates one value and writes it
atomically, refusing a model or effort the configured harness takes no
launch flag for.

Model and effort are stored keyed by that harness (config/model.claude),
so switching harnesses re-asks instead of handing a worker an identifier
chosen for a different tool. An older home's unkeyed value is moved under
the harness it belonged to on init and update.

* feat(cmd): report unset worker defaults at session start

The bare command is the session hook, so it is where a supervising agent
learns the fleet is not configured yet. It now carries the same config
block hand config prints, and leads its help with one question per
missing value for the agent to put to the operator.

* feat(cmd): make hand init non-interactive

init now only bootstraps: it never reads stdin, asks nothing, and writes
no worker default, so it runs unchanged in a script, in CI, or with stdin
closed. What the fleet should dispatch is settled by the operator in the
first supervising session instead, because a value invented at bootstrap
time is indistinguishable from one the operator chose.

The --setup flag is gone rather than deprecated: nothing in the tool, the
tests or the session integration invoked it, and an unknown flag already
refuses with a usage document naming it.

* feat(agentsmd): tell the supervisor to ask the operator for worker defaults

The generated block now makes settling a missing worker default a step of
the workflow, and says who answers: the supervisor asks the operator in
conversation and persists the reply with hand config set. Answering its
own harness dialog would configure the fleet with the agent's guess.

* docs: install hand before initializing a fleet home

The quick start built the tool from a checkout, which is the maintainers'
setup rather than an install, and pointed at hand init --setup for
configuration. It now installs a release binary, initializes a home that
asks nothing, and explains the worker defaults the first session asks for.
Building a checkout moves to CONTRIBUTING.md.

* docs(specs): reconcile first-run contract

PR #165 made Codex model and effort capable before this rebase.
Configuration tests follow the merged harness contract instead of the
provisional matrix.

Refs #161

* no-mistakes(review): Migrate legacy worker defaults at command startup

* no-mistakes(document): Align Codex and init documentation
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.

verify herdr agent detection against real codex, pi and grok panes

1 participant