Repository navigation
Closed
Labels
area/infraInfrastructure, deployment, and operationsInfrastructure, deployment, and operationseffort/lLarge: multi-day or open-ended; expect staged check-insLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestNew feature or capability requestpriority/highImportant and time-sensitiveImportant and time-sensitivestatus:done
Description
What
Build v1 of the OpenChamber babysitter from the design doc
(files/openchamber-dispatch-babysitter-design-2026-10-26.md in the
keep-the-four-repos-healthy goal workspace): ONE scheduled worker that
makes rounds over every open session bound to a queue task and reports.
Report-only: no nudges, no dispatching, no terminal actions in v1.
Scope
- Location adapter for
laptop-openchamber(OpenChamber driving the
laptop's OpenCode fork): list sessions, inspect status/activity.
Implement the design's location interface so later locations
(sandbox-opencode, openclaw, codex-aster) plug in without loop
changes. - Session ↔ task binding read from queue task progress (session id,
location, pool/route recorded at dispatch — for v1, bindings may be
recorded manually on pilot tasks). - Per-round report to the fleet chat: sessions active; per session —
issue, progress verdict (progressing/stalled/done-unreported/
blocked/walled) from status + last-activity + GitHub state; pool/
route used where attributable; quota snapshot per pool from the
existing tooling (~/tools/provider-usage/check-usage.py/
provider-usage-snapshot.json) with read age shown. - Quiet when nothing is bound and nothing changed.
Acceptance criteria
- One worker job runs the rounds on a ≤30-min cadence regardless of
how many sessions are bound. - A round over ≥3 concurrently bound sessions produces a report
whose per-session verdicts match ground truth (verified against
the sessions and GitHub by hand for the first rounds). - Quota figures in the report carry their read age and never exceed
the POOL MAP measurement-gate staleness (60 min) without being
flagged stale. - Adding a second location is config + adapter only (demonstrated
by stubbing the sandbox-opencode location, which is currently
off, without touching the round loop).
Design: OpenChamber dispatch + babysitter design (2026-10-26). Depends
on the session-API inventory pilot. Filed by Muse (operator)
2026-10-26 at Drew's direction.
Metadata
Metadata
Assignees
Labels
area/infraInfrastructure, deployment, and operationsInfrastructure, deployment, and operationseffort/lLarge: multi-day or open-ended; expect staged check-insLarge: multi-day or open-ended; expect staged check-inskind/featureNew feature or capability requestNew feature or capability requestpriority/highImportant and time-sensitiveImportant and time-sensitivestatus:done
Activity
developing-today commentedon Oct 27, 2026
CODE-321
dezren39 commentedon Oct 27, 2026
🤖 Agent note · picked up
dezren39 commentedon Oct 27, 2026
🤖 Agent note · done
triagedhidden_files/babysitter-log.md(goal keep-the-four-repos-healthy)Triage verdict — #1185
Scope confirmed. The design doc exists (
files/openchamber-dispatch-babysitter-design-2026-10-26.md, goal workspace) and the issue's scope/acceptance are clear and current. No hard-stop labels were present.Key finding: v1 is already built and LIVE — outside the queue. A dedicated cron,
openchamber-babysitter(enabled, every 20 min, owner goal keep-the-four-repos-healthy), runs one worker making rounds over the sessions atlaptop-openchamber, perhidden_files/openchamber-babysitter-instruction.md. Verified fresh this triage:hidden_files/babysitter-log.mdon 2026-10-27 at 02:37, 02:58, 03:28, 03:37, 04:05, 04:45, 05:00, 05:31 and 05:50 CDT; recent runs succeed.Route chosen: NOT a queue-worker build and NOT OpenChamber dispatch — the worker already exists as its own scheduled job. The issue stays open only because its acceptance criteria were never formally verified, and one is unmet:
Follow-up enqueued: queue task 1379 — "OpenChamber babysitter v1 (#1185): acceptance verification, second-location stub demo, close-out" (small_fix, 45 min). It verifies each criterion with fresh evidence, does the disabled-stub demo (or documents the conflict and escalates only that item), and closes this issue with evidence. Related, separately queued: #1187 (v1.1 dispatch), #1188 (session-API inventory), #1189 (pool attribution).
Labels after triage:
queue/queued(mirrors task 1379); claim labels removed.dezren39 commentedon Oct 28, 2026
Close-out — queue task 1379 (Lane B). All four acceptance criteria verified with fresh evidence:
openchamber-babysitter: enabled, interval 20m, owner goal keep-the-four-repos-healthy; last run 2026-10-27 23:41 CDT succeeded, next 23:57 CDT (verified via cron status this run). Cadence is independent of how many sessions are bound.hidden_files/babysitter-log.mdcover 6 bound sessions (e.g. 05:50–06:04 CDT 2026-10-27, and again in the verification round below), each verdict checked against GitHub. This run re-verified by hand: openchamber PR lab-ops-hub: percent-encode C0 controls, space and DEL outside the host in the container validator (#614) #617 OPEN / PR lab-ops-hub: container validator returns WHATWG-encodable ASCII punctuation verbatim outside the host — path/query/fragment/userinfo " < > ^ ` { } go on the request line raw while the Worker fetches the encoded form #618 OPEN, issues lab-ops-hub: container validator returns non-ASCII path/query/userinfo verbatim — fetcher raises UnicodeEncodeError on URLs both validators accept #615/lab-ops-hub: percent-encode non-ASCII outside the host in the container validator (#615) #616 OPEN (merges owed by the owning lane); opencode PR lab-ops-hub: container validator returns the raw Kelvin-sign (U+212A) host spelling — extraction folds it to 'k' before the #666 mapped-host check can see it #667 MERGED, issue fix(lab-ops-hub): return the mapped host for compatibility spellings in the container validator (#665) #666 CLOSED (fully harvested)./api/quota/*during that round and stamped with its fetch time (read age ~0 min, never near 60). Failed reads are flagged, never presented as figures: claude has read-failed ("Rate limited. Retrying soon.") across recent rounds and antigravity reads "Not configured" — both named as degraded in the rounds. That flagging satisfies the criterion.sandbox-opencodedisabled stub was added to the Locations config inhidden_files/openchamber-babysitter-instruction.md(adapter: none; the round loop steps are untouched). The verification round appended tobabysitter-log.md(2026-10-27 23:56–23:59 CDT) ran with the stub in place and reports it as off; it was never queried — the sandbox :4096 server remains off by Drew's choice and is not a data source. No conflict with the instruction: the stub formalizes the existing "not a location" rule as a disabled config entry. Nothing to escalate.Closing #1185 as complete. Follow-on work lives elsewhere by design (#1187 dispatcher/nudges v1.1; the openchamber #615/#616 merges are owed by their owning lane).