fix(devtools): follow the queue runner's rename to agentctl-run - #4684
Conversation
The host now exports AGENTCTL_* variables and ships the runner as agentctl-run; every runner check failed with exit 125 because the slot looked only for sinnixd-queue-run. Reads accept both prefixes, newest first, and the slot resolves either runner name. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DNGJ3awfNrsLaMdHgQZvid
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Team Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 76a84cbde2
ℹ️ 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".
| QUEUE_RUNNERS: Final = ("agentctl-run", "sinnixd-queue-run") | ||
| QUEUE_RUNNER: Final = QUEUE_RUNNERS[0] |
There was a problem hiding this comment.
Update the missing-runner test for both executable names
With the hermetic PATH in test_missing_scoped_queue_runner_refuses_before_queueing, the monkeypatch hides only QUEUE_RUNNER (agentctl-run) and no legacy runner exists, so this branch raises a diagnostic naming agentctl-run; the unchanged assertion still matches sinnixd-queue-run, making tests/unit/devtools/test_pytest_slot.py fail on every run. Update that test to account for QUEUE_RUNNERS and the new diagnostic.
Useful? React with 👍 / 👎.
| """ | ||
| env = os.environ if environment is None else environment | ||
| job_id = env.get("SINNIXD_JOB_ID", "") | ||
| job_id = runtime_env(env, "JOB_ID") or "" |
There was a problem hiding this comment.
Propagate the prefix migration into the Node proof guards
When dev_loop_proof or live_provider_proof is started by the new runner with only AGENTCTL_JOB_ID, AGENTCTL_PROJECT_ID, and AGENTCTL_OPERATION, this function now accepts the context, but both services copy that same environment into their Node subprocesses and browser-extension/scripts/{dev_loop_shared_chrome_proof,live_provider_proof}.mjs still require the SINNIXD_* names. Both declared operations therefore exit before exercising their proofs under the environment this commit is intended to support; update the Node guards or provide compatible aliases to the child.
Useful? React with 👍 / 👎.
| for prefix in RUNTIME_ENV_PREFIXES: | ||
| value = env.get(prefix + suffix) | ||
| if value is not None: | ||
| return value |
There was a problem hiding this comment.
Clear the higher-priority prefix in legacy environment tests
When the corpus runs through the declared verify_affected or verify_all AgentCTL operations, pytest inherits real AGENTCTL_OPERATION, AGENTCTL_JOB_ID, and AGENTCTL_CORRELATION_ID values. Tests such as test_declared_operation_requires_the_fixed_route and the AgentCTL receipt tests only set or clear their SINNIXD_* counterparts, so this precedence rule ignores the test values: the former returns None instead of verify_quick, while the receipt assertions observe the runner's IDs instead of job-join/job-17. Update those tests or an autouse fixture to isolate both namespaces so the declared verification operations can pass.
Useful? React with 👍 / 👎.
…rsor probe (#4695) ## Summary Four tests encoded behaviour changed by merged PRs: the queue runner's name in the slot refusal (#4684), the descriptor's `verify` exec without a width override (#4682), and the cursor-store stub's signature after the read-only spool probe (#4683). The descriptor's `verify_all` entry still pinned `POLYLOGUE_PYTEST_WORKERS=2`; it now follows the same constant as the affected tier. ## Verification `devtools test tests/unit/devtools/test_verify.py tests/unit/devtools/test_dev_loop_service.py tests/unit/devtools/test_pytest_slot.py tests/unit/daemon/test_daemon_cli.py::test_spool_pending_check_ignores_terminal_cursor_states` green (result line in the pre-push run). From the 2026-09-05 corpus on 754553b (85 failed / 20,522 passed). 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01DNGJ3awfNrsLaMdHgQZvid Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Summary
The host's NixOS switch on 2026-09-05 13:17 renamed the queue runner to
agentctl-runand its exported variables toAGENTCTL_*. Every runner check since fails with exit 125 (sinnixd-queue-runis not on PATH). Reads now accept both prefixes, newest first, and the pytest slot resolves either runner name.Verification
devtools verify --quick: all gates ok.test_runtime_env_prefers_the_agentctl_prefix_and_falls_back(red without the fallback).agentctl-run.Supersedes the closed #4680 (which no longer merged cleanly).
🤖 Generated with Claude Code
https://claude.ai/code/session_01DNGJ3awfNrsLaMdHgQZvid