feat(lucebox): agent-client launchers + harness adapter package (stacked on tuning)#6
feat(lucebox): agent-client launchers + harness adapter package (stacked on tuning)#6easel wants to merge 1 commit into
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 42fa765f41
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| return _client_command | ||
|
|
||
|
|
||
| for _verb, _module_name, _label in _CLIENT_VERBS: |
There was a problem hiding this comment.
Wire client verbs through the host wrapper
When these new verbs are invoked as advertised through lucebox.sh (for example lucebox claude) while the service is running, the wrapper still treats them as unknown commands: _lucebox_prefer_exec only whitelists config/smoke/models/check/profile/print-run/print-serve-argv/autotune, and the wrapper also does not propagate CLIENT_WORK_DIR or per-client *_BIN overrides. That routes the launchers into a fresh container with no configured agent binary path, so harness.clients._common.find_bin fails with FileNotFoundError instead of starting the client.
Useful? React with 👍 / 👎.
| parser = build_base_parser("harness-opencode") | ||
| parser.add_argument("--max-ctx", type=int, default=32768) | ||
| parser.add_argument("--max-tokens", type=int, default=4096) |
There was a problem hiding this comment.
Expose the advertised project-dir escape hatch
In the interactive harness-opencode path, write_config refuses to overwrite an existing opencode.json and tells the user to pass --project-dir, but main() never defines that option or forwards a project_dir value to launch. In any project that already has an OpenCode config, the CLI exits 2 with no way to choose a fresh directory even though the launch function supports that escape hatch.
Useful? React with 👍 / 👎.
39087d8 to
9f63eea
Compare
42fa765 to
bf10ef4
Compare
9f63eea to
a9a1f30
Compare
bf10ef4 to
6340361
Compare
Stacked on the tuning PR (which is stacked on core Luce-Org#335). Restores the last deferred cluster: the agent-client launch surface. - harness/ becomes an installable package again (bench.py + the six client adapters: claude_code, codex, hermes, openclaw, opencode, pi, plus _common and run_lucebench.sh) and rejoins the uv workspace. - cli.py: the claude/codex/opencode/hermes/pi/openclaw verbs, registered from one factory, plus _detect_server_url / _exec_client (which reuse profile._server_base_urls from the tuning PR — hence this stacks on it). - CI runs the harness pytest suite alongside lucebox again. recommend_preset stays in download.py (core's relocation), so the models sub-app is unaffected. lucebox + harness 156 passed, wrapper 55 passed, ruff + mypy + shellcheck clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
6340361 to
a0f0a88
Compare
Stacked on the tuning PR (#5), which is stacked on Luce-Org#335. Base is `feat/lucebox-tuning`, so this PR's diff is only the agent-client cluster. Review/merge last.
Summary
Restores the final deferred cluster: the agent-client launch surface.
`recommend_preset` stays in `download.py` (core's relocation), so the models sub-app is unaffected.
Tests
lucebox + harness 156 passed, wrapper 55 passed, ruff + mypy + shellcheck clean.
🤖 Generated with Claude Code