Skip to content

feat: isolate automatic uploads in a dedicated worker - #70

Merged
austinjiann merged 1 commit into
mainfrom
codex/upload-worker-service
Oct 19, 2026
Merged

austinjiann merged 1 commit into
mainfrom
codex/upload-worker-service

Conversation

@austinjiann

@austinjiann austinjiann commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

A general supervisor processes every eligible directory, including older manual runs. A worker dedicated to new dashboard uploads needs its own scope so starting it cannot unexpectedly resume those runs or inherit a source-specific paid exception.

Add orchestrator.supervisor --uploads-only --watch. It discovers automatic uploads after startup, preserves pause/terminal controls, skips malformed and symlinked manifests, and rechecks scope before starting an agent. Startup rejects WANDER_STAGE_AUTHORIZATION instead of transferring an existing clip's exception to other uploads.

Worker heartbeat version 2 records the processing mode. Upload checks and per-run progress match that capability: an automatic-only worker cannot make a manual request look serviceable. The updated reader preserves support for unrestricted version-one workers; old API readers ignore version-two records. Update API and worker together.

Validation includes an upload submitted through the real API after supervisor startup, a real RunSession with an inert harness, and malformed-neighbor cases that still allow a healthy run to finish. These tests make no provider calls. A local empty-queue rehearsal against the existing runs root exited successfully with all 39 run/state/journal/control files unchanged. Read-only worker preflight found credential configuration and Modal volume access available; account quotas and reconstruction quality remain unverified.

This PR prepares worker isolation and startup; it does not enable ongoing paid processing, change spending limits, reset existing attempts, or change reconstruction quality gates. The existing bottle worker remains scoped to its run.

Validation: all four CI jobs passed on c30c94f, including 1,461 Python tests. The final local focused suite passed 174 tests; Ruff, formatting, and diff checks passed. An independent review found malformed-manifest isolation and manual-run compatibility issues; both were fixed and rechecked with no remaining findings.

The owned local API now uses the prepared credentials and this revision. Direct API and admin proxy checks return HTTP 200; credential-presence checks pass and the general upload worker is accurately reported as unavailable until enabled. No paid provider calls were made.

@austinjiann
austinjiann merged commit 1aefd9e into main Oct 19, 2026
4 checks passed
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