Repository navigation
Stage selection: fail closed without explicit dev; fix cpu alias and remote spellings - #326
Conversation
HSS_ORCH_REAL_STAGES treated a missing or blank SMP_ENVIRONMENT as dev, while Settings reads the same values as prod. An unconfigured production process could therefore mix real and stand-in stages. Only an exact "dev" now passes, matching Settings. The remote refusal compared HSS_ORCH_MODAL_REMOTE to "1" only; load_orch also accepts true/yes/on in any case. It now uses the same _flag parser. The cpu alias no longer includes dense, which falls back to model weights on photo-only packets, and is refused while VISION_EXTERNAL_CALLS is on, since reads and criteria would then make paid calls. The journey test now checks the markers the result stage receives in its work dir, rather than filtering run.artifacts after the run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
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. |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
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". |
|
Note Review skipped Codemetrics is installed on this repository, but it hasn't been added to your team yet. To enable AI code reviews for this repo, go to your dashboard and add BaseScanning to your team's repositories. |
Zephyrus task Z3. Fixes the open review threads on #297: the dev guard, remote truth spellings, the
cpualias and marker-delivery coverage.Dev guard (P1).
stage_selection.pytreated a missing or blankSMP_ENVIRONMENTas dev.Settingsreads those same values as prod, so an unconfigured production process could still mix real and stand-in stages. Now only an exactdevpasses, matchingSettings.unknown_environment_is_prod(backend/server/orchestrator/stage_selection.py:88-97).Remote truth (P2). The refusal compared
HSS_ORCH_MODAL_REMOTEto"1"only, whileload_orchalso acceptstrue,yesandonin any case. The refusal now uses the same_flagparser fromserver/orchestrator/config.py(stage_selection.py:80-87).cpualias (P1, two threads).denseis out of the alias: on packets with no LiDAR and no injected points it falls back to π³/MoGe/DA3 weights on CUDA (server/dense/run.py_acquire_cloud). It can still be listed by name. The alias is also refused whileVISION_EXTERNAL_CALLSis true, because thenreadsandcriteriacall a paid vision model (stage_selection.py:105-113). Listingreadsby name with vision on is still allowed.Marker delivery (P2). The journey test used to filter
run.artifactsafter the run. It now wraps the result stub and records whichimpl/*.jsonfiles reach the result stage's work dir: all 11 upstream markers, and notimpl/result.json. This tightens a test and fixes no bug, so it passes on the parent as well.Docs updated:
backend/docs/real-cpu-stages.mdand the alias and guard lines inPR.md.Tests.
backend/server/orchestrator/tests/test_stage_selection.py, run withcd backend && OMP_NUM_THREADS=1 uv run pytest -q server/orchestrator/tests/test_stage_selection.py:stage_selection.py: 19 failed, 24 passed. The failures cover unset, blank and miscasedSMP_ENVIRONMENT; runner import without dev;true,yesandonremote spellings;densein the alias; and the alias with vision on. A few parametrized cases (remote1,Dev) fail only because the new messages quote the raw value.Full suite.
cd backend && uv sync --locked && OMP_NUM_THREADS=1 uv run pytest -q. pytest-xdist isn't installed, so I dropped-n 2.098d8fdf: 5 failed, 1522 passed, 16 skipped, 14 errors (47 min on a loaded machine).server/eval/tests/test_gates.pyfailures and 14tests/test_capture_cold_restart.pyerrors that [obvious-fleet] Backend: per-stage real selection with implementation markers #297 documents as the base baseline. The parent's fifth failure,server/packet/tests/test_round2.py::test_many_missing_files_stay_linear, is a timing test. It failed with load average near 40 and passed on this branch.uv run ruff check .passes.uv run ruff format --check .flags onlyserver/orchestrator/tests/test_greptile_followup.py, which is already on #297 and which this PR does not touch.Left open. An explicit
denselisting gets no refusal, and it fails at run time withinput_missing:weightswhen it lacks weights.🤖 Generated with Claude Code