Skip to content

pi-live: operator model override + explicit parallel pin - #725

Open
clkao wants to merge 2 commits into
mainfrom
pi-live-model-parallel-overrides
Open

pi-live: operator model override + explicit parallel pin#725
clkao wants to merge 2 commits into
mainfrom
pi-live-model-parallel-overrides

Conversation

@clkao

@clkao clkao commented Aug 17, 2026

Copy link
Copy Markdown
Collaborator

What

Two pi-live lane control surfaces, both previously missing or implicit:

  1. Model override for common journeysSPACEDOCK_PI_LIVE_CHILD_MODEL (provider/model:thinking) was honored only by the front-door smoke fixture. The shared journey driver passed the auth decision's default (openai-codex/gpt-5.6-luna:max) to child pi, so the 17 common journeys could not be re-run against any other provider/model. Both paths now route through one piLiveChildModel helper. Unset, behavior is unchanged (CI derives the model from auth mode, as the workflow evidence test pins).

  2. Explicit -parallel pin — pi-live was the only common-journey lane omitting -parallel, inheriting GOMAXPROCS (4 on standard runners) implicitly while claude-live and codex-live pin -parallel 3. The lane now takes the live_parallel dispatch input (default "4", the current effective concurrency), exposed as SPACEDOCK_PI_LIVE_PARALLEL, validated as a positive integer in the step, and passed to go test after -failfast.

Pins

  • Workflow evidence test: new input default, job env binding, step flag, and a Pi parallel override lost mutation control.
  • Local guide (docs/runtime-live-ci.md): the pi common-suite command now carries the same -parallel "$PI_LIVE_PARALLEL" pin, keeping the contractlint run-shape reconciliation (timeout/parallel/failfast) green.

Evidence

  • Both go test ./... and go test ./... -race green on this branch (20 packages, 0 failures, incl. internal/cli 167s under race).
  • Harness fix exercised for real: the four CI-red journeys (GateGuardrail, RecordedGateLifecycle, DefaultHeadlessGateStop, KeepMovingPosture) plus RejectionFlow (CI timeout) all PASS locally on modal/Qwen/Qwen3.8-27B:xhigh, run from the stack tip with SPACEDOCK_PI_LIVE_CHILD_MODEL set — the exact configuration that failed at launch (No API key found for openai-codex) before this change.

spacedock-fo added 2 commits August 17, 2026 09:35
The shared journey driver passed the auth decision's default model
(openai-codex/gpt-5.6-luna:max) to child pi, ignoring the operator's
SPACEDOCK_PI_LIVE_CHILD_MODEL override, which was wired only into the
front-door smoke fixture. Operator-mirrored auth.json + models.json
already make custom providers resolve, so route both paths through one
piLiveChildModel helper. CI keeps its default: the workflow
runtime-live-e2e.yml never sets the override (pinned by
runtime_live_evidence_workflow_test).
The pi-live lane was the only common-journey lane omitting -parallel,
inheriting GOMAXPROCS (4 on standard runners) implicitly, while
claude-live and codex-live pin -parallel 3. Add the live_parallel
dispatch input (default 4, the current effective concurrency), expose it
as SPACEDOCK_PI_LIVE_PARALLEL, and pass it to go test after a
positive-integer guard.

Pins: the workflow evidence test now asserts the input default, the job
env binding, the step flag, and carries a mutation control for the flag
loss; the local guide's pi command carries the same pin so the
contractlint run-shape reconciliation (timeout/parallel/failfast) holds.
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