dispatcher: Windows bootstrap one-job policy, transport fallback, ready-wait knobs; volume probes documented #10

Merged
founder merged 1 commit from claude/w6-windows-bootstrap-policy into main 2026-08-19 06:50:23 +00:00
Owner

Windows lane hygiene: uniform one-job "no task" handling (exit 75 → guest destroyed in seconds, not ~10 min), bounded by FORGEJO_RUNNER_ONE_JOB_WAIT_TIMEOUT (per-target ExtraEnv), WinRM→ssh-tunnel fallback, README with the measured Windows cache-volume probes (no request shape mounts anything on nsc 0.0.557 / Compute v1beta — consistent with main's "never attach cache volumes on Windows"). Tests: policy (fake transports), e2e fragments, opt-in live probe. go vet + go test ./... green (-race x3).

Companion key.store PR: common.nix sets the wait timeout on the windows targets + docs; then a pin bump + forge deploy (restarts the dispatcher — do it while no Windows job is in flight).

🤖 Generated with Claude Code

Windows lane hygiene: uniform one-job "no task" handling (exit 75 → guest destroyed in seconds, not ~10 min), bounded by `FORGEJO_RUNNER_ONE_JOB_WAIT_TIMEOUT` (per-target ExtraEnv), WinRM→ssh-tunnel fallback, README with the measured Windows cache-volume probes (no request shape mounts anything on nsc 0.0.557 / Compute v1beta — consistent with main's "never attach cache volumes on Windows"). Tests: policy (fake transports), e2e fragments, opt-in live probe. `go vet` + `go test ./...` green (-race x3). Companion key.store PR: common.nix sets the wait timeout on the windows targets + docs; then a pin bump + forge deploy (restarts the dispatcher — do it while no Windows job is in flight). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
dispatcher: Windows bootstrap one-job policy, transport fallback, ready-wait knobs; volume probes documented
Some checks failed
Build Container / Image (amd64) (pull_request) Waiting to run
Build Container / Image (arm64) (pull_request) Waiting to run
Build Container / Publish Manifest (pull_request) Blocked by required conditions
Build Go / Go Test (namespace-profile-linux-large) (pull_request) Waiting to run
Build Go / Go Test (namespace-profile-macos-large) (pull_request) Waiting to run
Build Go / Nix Build (pull_request) Waiting to run
Build Container / Image (amd64) (push) Has been cancelled
Build Container / Image (arm64) (push) Has been cancelled
Build Container / Publish Manifest (push) Has been cancelled
Build Go / Go Test (namespace-profile-linux-large) (push) Has been cancelled
Build Go / Go Test (namespace-profile-macos-large) (push) Has been cancelled
Build Go / Nix Build (push) Has been cancelled
85ba1bc0b2
Namespace Windows lane hygiene (KSE-0186 D5 follow-up):
- the guest bootstrap treats forgejo-runner's "no task received" (v12.10.2
  exit 2) and "could not fetch task" (v12.7.x) uniformly, bounded by
  FORGEJO_RUNNER_ONE_JOB_WAIT_TIMEOUT (ExtraEnv per target), and reports
  the outcome (exit 75 = no task) so the dispatcher destroys idle guests in
  seconds instead of ~10 min; a failing job no longer trips the "one-job
  failed" throw (forgejo-runner one-job returns nil either way).
- WinRM bootstrap failure falls back to the ssh tunnel transport briefly
  (measured: all 11 launches since 08-17 07:15 used transport=ssh-tunnel
  after 0 s; the "did not answer on winrm" warnings were the old first-try
  path).
- README documents the live volume probes with nsc 0.0.557 / Compute
  v1beta: no Windows cache-volume request shape mounts anything (CLI
  --volume can't express drive letters; API CACHE volumes accepted but the
  instance never leaves PENDING; experimental persistent_volumes RUNNING
  but no disk in the guest) — matches main's "never attach cache volumes
  on Windows" (bcaad3c3).
- tests: bootstrap policy (fake transports), e2e fragments under real
  PowerShell semantics, opt-in live volume probe.

go vet/build/test green (internal/nsc under -race x3); go.mod/go.sum
unchanged.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
founder deleted branch claude/w6-windows-bootstrap-policy 2026-08-19 06:50:23 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
key-store/forgejo-nsc!10
No description provided.