RAGE #41: specify typed durable Auto-Dig lifecycle #43
No reviewers
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
priority:P1
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/quasar!43
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "rage/41-autodig-lifecycle"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Implements the owning Quasar slice for #41 using RAGE/ADADR and TDD-first execution.
Reconciliation state
The lifecycle branch has been mechanically reconciled with current Quasar
mainthrough PR #47. GitHub compare showed disjoint changed path sets: current main changed CI/frontend E2E files while this lifecycle work changes control-plane/system/test files only. PR #47 ran the full Quasar CI against the combined merge candidate and completed GREEN before merge.Current exact lifecycle branch head:
e0e662be968568adbe0f9a22b00b417c92db9ad7.TDD evidence
a640874c4004a05045fcd2732fdb0009bedb5c0cproduced expected RED: the sevenautodig.*lifecycle commands were absent.autodig.worker.claim/heartbeat/complete/fail, proving stale workers cannot overwrite user pause/stop or a newer lease.activeruns could be stranded forever after worker death. The implementation uses a bounded worker lease and permits reclaim ofactiveonly after the persisted owning heartbeat/claim timestamp expires; live leases remain exclusive and old fencing tokens fail closed.Public lifecycle contract
autodig.statusautodig.run.getautodig.run.listautodig.run.startautodig.run.pauseautodig.run.resumeautodig.run.stopProperties:
runId;requestIdidempotency and conflict rejection;Worker-only lifecycle
Internal worker commands are separately fenced by
workerId+ freshleaseId:autodig.worker.claimautodig.worker.heartbeatautodig.worker.completeautodig.worker.failQuasar alone owns lease expiry, reclaim decisions and lifecycle state. A stale worker cannot overwrite a user pause/stop or newer claim.
Exact reconciliation verification
PR #47 CI #805 completed SUCCESS on the combined main+lifecycle candidate, covering:
quasar-webload;Runtime handoff
Paired worker PR
lost-rob0t/starintel-gpt-auto-dig#2294is currently0e97ac468766f768e6ed1121cde6e7dc41af203a; exact-head Auto-Dig lifecycle CI #25 and full site/UI validation #591 are GREEN. It remains draft because its repository-localAGENTS.mdrequires a localnimble buildFast && bin/validate-for-merge --sitegate before ready/merge, and that local dependency checkout cannot be executed in the current worker environment.No Bixby-specific protocol, browser automation, direct CouchDB/RabbitMQ authority, or fake gateway compatibility layer is introduced here.
Exact-head CI #740 diagnosis: this is not currently actionable as an #41 implementation regression. Current
mainSHA560208d0906cf564dd59050bca9a0f9341a3c55dis already red in CI #718 at the sameReal-stack desktop, mobile, mutation, and reload pathsstep, while #43 changes only Auto-Dig Common Lisp + ASDF test/system files and passes static/frontend/build, complete Lisp/control-plane tests, realquasar-webload, and development-stack smoke. Opened #44 for the baseline Playwright failure and draft #45 to retain HTML/trace diagnostics on failure without weakening/skipping the gate. Keep #43 draft and do not merge until baseline #44 is fixed and #43 receives a fully green exact-head run.RAGE/TDD continuation after #44/#46 cleared the stale Playwright baseline:
Fresh exact-head CI #785 on
91d723a88572d9671c898bd31b2da9dbaf0597f2exposed a different, branch-specific test-bootstrap defect before the lifecycle suite could run: ASDF failed withComponent #:CLACK not found, required by #<SYSTEM "clog">.Root cause is now pinned. #43 changed
quasar-teststo depend onquasar-webso the new Auto-Dig WebSocket authorization tests exercise the real service boundary, butscripts/test-lispandscripts/check-control-plane-deps.mjsstill modeled the oldquasar-control + quasar-starlangtest dependency graph. The static guard therefore false-greened a bootstrap that omitted CLOG/Clack/WebSocket dependencies.TDD correction on the same branch:
9a7f7afc82e6d404a80d0afd732ef14e26b92743preloads the exact externalquasar-webtest dependencies inscripts/test-lisp;562c3ea00a773b44198430f940b3ce43cc00e21cupdates the dependency guard so future test-graph drift is caught statically.No Auto-Dig production semantics were weakened or changed for this failure. Exact-head CI #789 is running on
562c3ea...; static/frontend/build and Lisp dependency installation are already green, and the Common Lisp suite is currently executing. Keep #43 draft until that entire run is green and the scheduled worker bridge acceptance described in this PR is satisfied.Exact-head verification update: CI #789 completed SUCCESS on current head
562c3ea00a773b44198430f940b3ce43cc00e21c. This confirms the full repository gate now passes after the test-graph/bootstrap corrections, including the Auto-Dig lifecycle/control-plane suites and the broader Quasar CI tail. I am keeping #43 draft because its stated runtime handoff gate is still real:lost-rob0t/starintel-gpt-auto-dig#2294has not yet integrated the concrete authenticatedquasar.control.v1transport + existing research executor. No lifecycle tests are being weakened and no Bixby shim is being substituted.RAGE/TDD continuation on crash recovery:
Found an owning-boundary defect after the previous green lifecycle slice:
autodig.worker.claimaccepted only queued runs, so a worker crash could strand a durable run inactiveforever. Added a canonical ASDF test first (control-plane/tests/autodig-worker-reclaim-tests.lisp) proving a live lease remains exclusive but an expired lease must be reclaimable with the same runId, a fresh fencing lease, and stale-worker rejection for the old lease. The RED head failed exactly withautodig.claim-conflicton replacement claim.Production realization now adds a bounded worker lease timeout and permits claim of
activeonly when the persisted heartbeat/claim timestamp is expired. First implementation head19e2a1f...still RED because persisted JSON timestamps were not reliablyintegerp; current headaea61e9602696a76f5d561e7f0873e501a7ab536accepts any real numeric persisted timestamp instead. Exact-head CI #799 is running. Do not merge until the complete repository gate is green.The paired Python consumer is being corrected separately so it offers active runs back to Quasar for the claim decision; it does not calculate lease age itself.