Addresses operator reports (Stop never finishes, constant curator polling, stale-cached page mistaken for a failed deploy) and the explicit ask to put the agent through CI.
Prompt stop:_running flips before any lock (state can't lag), and _process has a stop/shrink checkpoint after decode that releases the job and bails before the expensive detect+embed.
Lazy curator polling: the queue snapshot is fetched only while a browser is watching (a /status hit within a grace window) on a 5s cadence — not a constant background loop. The work loop's lease/submit is curator's only other visitor.
Build marker:VERSION is embedded in the page + reported on /status; the UI shows a reload banner when they differ, so a cached page can't be mistaken for a failed deploy (complements no-store).
Agent in CI: the lint lane now ruff checks agent/ and compileall-parses it. Fixed the agent's pre-existing UP037/B905 so it passes. Full CI green on dev incl. integration.
Addresses operator reports (Stop never finishes, constant curator polling, stale-cached page mistaken for a failed deploy) and the explicit ask to put the agent through CI.
- **Prompt stop:** `_running` flips before any lock (state can't lag), and `_process` has a stop/shrink checkpoint after decode that releases the job and bails before the expensive detect+embed.
- **Lazy curator polling:** the queue snapshot is fetched only while a browser is watching (a `/status` hit within a grace window) on a 5s cadence — not a constant background loop. The work loop's lease/submit is curator's only other visitor.
- **Build marker:** `VERSION` is embedded in the page + reported on `/status`; the UI shows a reload banner when they differ, so a cached page can't be mistaken for a failed deploy (complements no-store).
- **Agent in CI:** the lint lane now `ruff check`s `agent/` and compileall-parses it. Fixed the agent's pre-existing UP037/B905 so it passes. Full CI green on dev incl. integration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Addresses operator reports: Stop never finishes, the agent polls curator
constantly, and stale-cached pages get mistaken for a failed deploy.
- Stop is prompt: flip _running BEFORE any lock so /status + worker loops see
"stopped" immediately, and add a stop/shrink checkpoint in _process (after
decode, before the expensive detect+embed) that releases the job and bails —
so a Stop doesn't wait out heavy GPU work.
- Lazy curator polling: the queue snapshot is fetched only while a browser is
actually watching (a /status hit within UI_IDLE_GRACE) and on a 5s cadence,
not a constant background loop. The work loop's own lease/submit is curator's
only visitor otherwise — nothing polls just to poll.
- Build marker: VERSION is embedded in the page and reported on /status; the UI
shows a "reload" banner when they differ, so a browser-cached page can't be
mistaken for "the new image didn't deploy" (complements the no-store header).
CI: the lint lane now also `ruff check`s agent/ and compileall-parses it, so the
GPU agent is linted + syntax-checked before its image builds (build.yml only
`docker build`s it). Fixed the agent's pre-existing UP037/B905 so it passes.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ttrj5P7upUTueSfoJcxEqa
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Addresses operator reports (Stop never finishes, constant curator polling, stale-cached page mistaken for a failed deploy) and the explicit ask to put the agent through CI.
_runningflips before any lock (state can't lag), and_processhas a stop/shrink checkpoint after decode that releases the job and bails before the expensive detect+embed./statushit within a grace window) on a 5s cadence — not a constant background loop. The work loop's lease/submit is curator's only other visitor.VERSIONis embedded in the page + reported on/status; the UI shows a reload banner when they differ, so a cached page can't be mistaken for a failed deploy (complements no-store).ruff checksagent/and compileall-parses it. Fixed the agent's pre-existing UP037/B905 so it passes. Full CI green on dev incl. integration.🤖 Generated with Claude Code