You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
docs(dashboard): build out the Basement cluster project section (/program/lab-cluster) #1124
Build out the Basement cluster project section on the dashboard (/program/lab-cluster, from the epic's hub build) to full documentation: description, status, done/next, long-term roadmap, and gaps — integrated with its live data, not a static stub.
Sources of record (use these; do not invent status)
Project home: planning/roadmaps/basement-cluster.md (seeded per the 2026-10-26 project-structure spec — 12 epics from hardware inventory to the ESP32 wing)
Live: Project Bump build/buck/preludes/buck2-prelude from 3a02ea3 to 9530656 #4 pool Area=lab-cluster (19 items at filing), Grist roadmapArea=Basement cluster (rows: Talos+Cozystack via TALM, hardware inventory + firmware/BMC audit, storage tiers, day-one services, spare PCs, ESP32 wing, OCI Always Free)
Constraints that must appear on the page: no HashiCorp; everything bootstrappable from config; ~12 Threadripper machines; electrician/20A circuits dependency (existing tracked goal); the torn-down v1.9-era test cluster is historical, not live.
Acceptance
/program/lab-cluster shows: sourced description, live pool counts + items, its roadmap rows, the 12-epic structure as the next/long-term skeleton with horizons, and honest gaps (no physical cluster installed yet; power/space blockers).
First dated status report exists under doc/_status_basement-cluster/ and is linked from the page (spec layer 2), or this issue records why it is sequenced after the seeding PR.
Every claim on the page traces to a source above or a tracked issue ref.
Agent note — content research for the full build-out (2026-10-26, read-only pass; epic #1129). Verified live tonight: page pool = 20 items, all Todo (12 code epics #1080–#1093 + 8 older nix-side items dezren39/darwin-nix#501–#508); Grist = 6 rows; home doc and first status report both exist on main.
Page vs sources — gaps found
The first dated status report EXISTS (doc/2026-10-27T03-14-08Z_status_basement-cluster/, written tonight) and the home doc links it — but the page itself does not. The registry config has no status-report link; add one (build input: a statusReport field or a home-doc-derived link).
Page gaps omit the OCI blockage the status report records: tenancy stuck in provisioning since 2026-10-21, ticket CPCOE-29381, next check-back 2026-10-27. The cloud-extension epic epic(cluster): cloud extension (OCI free fleet & egress offload) #1091 is on this page; its blocker should be too.
Spec divergence: the 2026-10-26 project-structure spec seed text says Project Area=basement-cluster; the actual Project field value in use is lab-cluster (the page is correct). Amend the spec text so the next reader isn't confused.
Checklist to "fully documented"
Link the latest status report from the page; state its date.
Reconcile the inventory Grist row status with the epics (one status, sourced).
Decision — Grist grain. Spec layer 3 wants Grist rows to match Project items 1:1; today 6 coarse rows cover 12 epics (network fabric, Cozystack platform, observability, first workload have no row; cloud extension's row lives under the Cloud program area instead). Recommendation: keep the 6 coarse rows as the roadmap grain and record that the 1:1 rule applies at row↔epic-group level for this project — expanding to 12 rows duplicates the pool. Whatever is chosen, record it here and in the spec.
Status report (spec layer 2): first edition exists and is good (state, blockers, next steps). Next edition is due when the Now epics move (inventory started) or the OCI check-back lands.
Agent note — partial slice pickup (2026-10-27): the next aggregator PR will implement the researched, bounded item(s) from the content-research note on this issue. This is a partial slice only; the issue remains open for the rest of its build-out checklist.
Agent note — partial slice landed (2026-10-27, PR #1305, merge e246a33; this issue stays OPEN): (1) the page now links the first dated status report — new optional statusReport {label,url} on ProjectConfig (validated like homeDoc), rendered beside the home-doc link, pointing at doc/2026-10-27T03-14-08Z_status_basement-cluster/ (verified live on /program/lab-cluster + in /api/program-project.json). (2) The OCI blocker is in gaps: tenancy stuck in provisioning since 2026-10-21, ticket CPCOE-29381, gating epic #1091 (verified OPEN). Remaining from the research checklist: reconcile the Grist inventory-row status disagreement, decide/reflect the nix#501–#508 predecessor set, record the Grist-grain decision in the spec.
Expectation: effort s — done = verdict backed by a code citation at current HEAD, follow-up packet enqueued for any confirmed remainder, labels synced.
Expectation: done = verdict + code citation at HEAD + scoped follow-up for the confirmed remainder
Verdict: core build-out ALREADY DONE on main; issue stays open for two named residuals.
Acceptance check at HEAD (pm-stack/aggregator/src/project-config.ts, lab-cluster entry):
✅ Sourced description: intro states the Talos/Cozystack/TALM build with the required constraints — no HashiCorp, everything bootstrappable from config, ~12 Threadripper machines, nothing physically installed yet, basement power/space gating, torn-down v1.9-era test cluster marked historical.
✅ Live data integration: poolArea: "lab-cluster" + roadmapArea: "Basement cluster" (builders derive pool counts/items and roadmap rows from the Source at request time; test at test/program.test.ts expects 6 roadmap rows for lab-cluster), homeDoc = planning/roadmaps/basement-cluster.md (5,158 bytes on main), 12 tracked epic refs epic(cluster): hardware inventory & first-node selection #1080–epic(cluster): ESP32 wing #1093.
Routing: residuals 1–2 enqueued as a scoped small_fix follow-up, queue task 3022 (lab-cluster config entry + test assertion only; no Grist/Project writes). The third research item — recording the Grist-grain decision in the spec — is a docs decision left on this issue for the epic #1129 owner. This triage task completes as triaged; the issue stays OPEN until task 3022 lands.
Activity
developing-today commentedon Oct 27, 2026
CODE-262
dezren39 commentedon Oct 27, 2026
Epic: #1129 — per-project status pages for all projects (generalize /program beyond pm-dashboard).
dezren39 commentedon Oct 27, 2026
Agent note — content research for the full build-out (2026-10-26, read-only pass; epic #1129). Verified live tonight: page pool = 20 items, all Todo (12 code epics #1080–#1093 + 8 older nix-side items dezren39/darwin-nix#501–#508); Grist = 6 rows; home doc and first status report both exist on main.
Page vs sources — gaps found
doc/2026-10-27T03-14-08Z_status_basement-cluster/, written tonight) and the home doc links it — but the page itself does not. The registry config has no status-report link; add one (build input: astatusReportfield or a home-doc-derived link).basement-cluster; the actual Project field value in use islab-cluster(the page is correct). Amend the spec text so the next reader isn't confused.Checklist to "fully documented"
epic,effort/l,mode/hybrid) — keep as-is; the weighted view is impl(aggregator+collector): complexity-weighted project visualization (rollup, hands queue, blocked weight, depth graph) #1122's job.Decision — Grist grain. Spec layer 3 wants Grist rows to match Project items 1:1; today 6 coarse rows cover 12 epics (network fabric, Cozystack platform, observability, first workload have no row; cloud extension's row lives under the Cloud program area instead). Recommendation: keep the 6 coarse rows as the roadmap grain and record that the 1:1 rule applies at row↔epic-group level for this project — expanding to 12 rows duplicates the pool. Whatever is chosen, record it here and in the spec.
Status report (spec layer 2): first edition exists and is good (state, blockers, next steps). Next edition is due when the Now epics move (inventory started) or the OCI check-back lands.
dezren39 commentedon Oct 27, 2026
Agent note — partial slice pickup (2026-10-27): the next aggregator PR will implement the researched, bounded item(s) from the content-research note on this issue. This is a partial slice only; the issue remains open for the rest of its build-out checklist.
fix(aggregator): program route 404 + researched project-page slices
Merge pull request #1305 from developing-today/pm/program-editorial-f…
dezren39 commentedon Oct 27, 2026
Agent note — partial slice landed (2026-10-27, PR #1305, merge e246a33; this issue stays OPEN): (1) the page now links the first dated status report — new optional statusReport {label,url} on ProjectConfig (validated like homeDoc), rendered beside the home-doc link, pointing at doc/2026-10-27T03-14-08Z_status_basement-cluster/ (verified live on /program/lab-cluster + in /api/program-project.json). (2) The OCI blocker is in gaps: tenancy stuck in provisioning since 2026-10-21, ticket CPCOE-29381, gating epic #1091 (verified OPEN). Remaining from the research checklist: reconcile the Grist inventory-row status disagreement, decide/reflect the nix#501–#508 predecessor set, record the Grist-grain decision in the spec.
dezren39 commentedon Oct 29, 2026
🤖 Agent note · picked up
dezren39 commentedon Oct 29, 2026
🤖 Agent note · done (triage)
bd88019448ad397cdbcadaf8e0d29171fb1d661dVerdict: core build-out ALREADY DONE on main; issue stays open for two named residuals.
Acceptance check at HEAD (
pm-stack/aggregator/src/project-config.ts, lab-cluster entry):poolArea: "lab-cluster"+roadmapArea: "Basement cluster"(builders derive pool counts/items and roadmap rows from the Source at request time; test attest/program.test.tsexpects 6 roadmap rows for lab-cluster),homeDoc= planning/roadmaps/basement-cluster.md (5,158 bytes on main), 12 tracked epic refs epic(cluster): hardware inventory & first-node selection #1080–epic(cluster): ESP32 wing #1093.doc/2026-10-27T03-14-08Z_status_basement-cluster/via thestatusReportfield (PR fix(aggregator): /program/<id> 404 + researched project-page slices (#1186; partial #1124/#1125/#1126/#1128) #1305, per the 2026-10-27 note below).Residuals (from the 2026-10-27 content-research note, still true at HEAD):
Routing: residuals 1–2 enqueued as a scoped small_fix follow-up, queue task 3022 (lab-cluster config entry + test assertion only; no Grist/Project writes). The third research item — recording the Grist-grain decision in the spec — is a docs decision left on this issue for the epic #1129 owner. This triage task completes as
triaged; the issue stays OPEN until task 3022 lands.27 remaining items
dezren39 commentedon Oct 29, 2026
🤖 Agent note · parked
dezren39 commentedon Oct 29, 2026
🤖 Agent note · residuals implemented, parked on the repo-wide merge-queue freeze (#2403)
Agent: queue worker
repo-worker-code, OpenChamber scheduled lane. Task 3022 (resume of the parked task).PR docs(aggregator): lab-cluster reflects nix#501-508 predecessors + Grist disagreement (#1124) #2397 —
queue/3022-1124-lab-cluster-residuals, OPEN / CLEAN / MERGEABLE atfe65544b,basic: proxy port fallbacksSUCCESS, CodeRabbit neutral. Two files:pm-stack/aggregator/src/project-config.ts(lab-cluster page reflects the nix#501–fix(lab-ops-hub): container validator refuses space hosts and IPvFuture literals #508 predecessors and surfaces the Grist status disagreement) andpm-stack/aggregator/test/program.test.ts.Blocked by ci: merge queue ejects every PR — no merge since #2233 (10:57Z), entries dropped 2-6 min into AWAITING_CHECKS #2403, not by the PR:
mainfrozen at5a34fa70since 10:57:51Z, every merge-queue entry ejected withreason=branch_protection_failure. Config enumeration and the exact reversible fix are in my note on ci: merge queue ejects every PR — no merge since #2233 (10:57Z), entries dropped 2-6 min into AWAITING_CHECKS #2403 (22:12Z).Parked 2 h (not blocked) so it resumes by itself: on wake, if
mainhas advanced, re-enqueue docs(aggregator): lab-cluster reflects nix#501-508 predecessors + Grist disagreement (#1124) #2397, merge, and close this issue.Links: PR docs(aggregator): lab-cluster reflects nix#501-508 predecessors + Grist disagreement (#1124) #2397 · ci: merge queue ejects every PR — no merge since #2233 (10:57Z), entries dropped 2-6 min into AWAITING_CHECKS #2403 · task 3022
dezren39 commentedon Oct 30, 2026
🤖 Agent note · parked
mainis still 5a34fa7 (frozen, ci: merge queue ejects every PR — no merge since #2233 (10:57Z), entries dropped 2-6 min into AWAITING_CHECKS #2403 still open), and PR docs(aggregator): lab-cluster reflects nix#501-508 predecessors + Grist disagreement (#1124) #2397 is still OPEN / CLEAN / MERGEABLE at fe65544. The resume condition (main advanced) is not met, so docs(aggregator): lab-cluster reflects nix#501-508 predecessors + Grist disagreement (#1124) #2397 was not re-enqueued into the ejecting merge queue. Also removed the stalestatus:in-reviewlabel, which contradictedstatus/parked.