419 lines
36 KiB
Markdown
419 lines
36 KiB
Markdown
# Company Status
|
||
|
||
_Last updated: 2026-06-21 (triage cycle)_
|
||
|
||
## Completed This Cycle (2026-06-21 — Triage Cycle)
|
||
|
||
- **Triage** — All 37 open `agent-ready` issues reviewed; all confirmed still blocked on the same critical-path operator tasks: #47 (create `0xWheatyz/api-company`), #218 (merge Talos PR #14), #33/#106/#150 (DNS for all 8 subdomains).
|
||
- **No agent-implementable work found** — every open issue is either a manual operator task or gated on Flux/cluster activation; kubectl unreachable from agent environment.
|
||
- **0 new issues, 0 closures, 0 label changes, 0 open PRs.**
|
||
- **`kustomize build flux/` = PASS** (1648 lines, no manifest regressions).
|
||
- **Critical path unchanged:** (1) Operator creates `0xWheatyz/api-company` (#47), (2) Operator merges `0xWheatyz/Talos` PR #14 (#218), (3) Operator configures DNS for all 8 subdomains (#33, #106, #150).
|
||
|
||
## Completed Previous Cycle (2026-06-15 — Triage Cycle)
|
||
|
||
- **Triage** — All 38 open `agent-ready` issues reviewed; all confirmed still blocked on the same critical-path operator tasks: #47 (create `0xWheatyz/api-company`), #218 (merge Talos PR #14), #33/#106/#150 (DNS for all 8 subdomains).
|
||
- **No agent-implementable work found** — every open issue is either a manual operator task or gated on Flux/cluster activation; kubectl unreachable from agent environment.
|
||
- **0 new issues, 0 closures, 0 label changes, 0 open PRs.**
|
||
- **`kustomize build flux/` = PASS** (1648 lines, no manifest regressions).
|
||
- **Critical path unchanged:** (1) Operator creates `0xWheatyz/api-company` (#47), (2) Operator merges `0xWheatyz/Talos` PR #14 (#218), (3) Operator configures DNS for all 8 subdomains (#33, #106, #150).
|
||
|
||
## APIs
|
||
| API | Spec | Code | Deployed | Listed on RapidAPI | Paying Users | MRR |
|
||
|----------------|------|------|----------|--------------------|--------------|-----|
|
||
| ZIP Enrichment | [x] | [x] | [ ] | [ ] | 0 | $0 |
|
||
| Holidays | [x] | [x] | [ ] | [ ] | 0 | $0 |
|
||
| Air Quality | [x] | [x] | [ ] | [ ] | 0 | $0 |
|
||
| VIN Decoder | [x] | [x] | [ ] | [ ] | 0 | $0 |
|
||
|
||
Legend: [x]=done, [~]=in-progress, [ ]=not started
|
||
|
||
## Infrastructure
|
||
- Cluster nodes: 3 control plane (10.0.1.3, .4, .5) + workers (testing1)
|
||
- **Flux wiring (api-company):** `flux/api-company-source/` — Fork PR #399 **MERGED** to leeworks-agents/Talos; upstream PR #14 open on 0xWheatyz/Talos — awaiting operator merge to activate Flux (issue #2)
|
||
- **Gitea Actions runner:** Flux manifest committed at `flux/gitea-runner/` — PENDING runner token secret + Talos wiring (issue #3)
|
||
- **Container registry:** Gitea built-in registry selected; docs/registry.md committed — PENDING Gitea packages enabled (issue #4)
|
||
- **Prometheus + Grafana:** Flux HelmRelease at `flux/monitoring/` — PENDING Flux wiring + Grafana secret (issue #7)
|
||
- **Gatus status page:** Flux HelmRelease at `flux/monitoring/gatus-helmrelease.yaml` — PENDING Flux wiring (issue #8)
|
||
- **API service manifests:** `flux/zip-enrichment/`, `flux/holidays/`, `flux/air-quality/` scaffolded (PR #48, closes #46)
|
||
- **Image automation:** `flux/image-automation/` — ImageRepository + ImagePolicy + ImageUpdateAutomation for all three APIs
|
||
- **VIN Decoder manifests:** `flux/vin-decoder/` — Flux HelmRelease + Kustomization committed (issue #140)
|
||
- **Alertmanager:** `flux/monitoring/helmrelease.yaml` — enabled with Slack receiver config (`gatus-slack-webhook` secret); PR #212 open (issue #210)
|
||
|
||
## Completed Previous Cycle (2026-06-08 — Triage Cycle #240)
|
||
|
||
- **Triage** — All 28 open `agent-ready` issues reviewed and commented with current status (2026-06-08).
|
||
- **All issues confirmed blocked** on the same critical-path operator tasks: #47 (create `0xWheatyz/api-company`), #218 (merge Talos PR #14), #33/#106/#150 (DNS).
|
||
- **No agent-implementable work found** — all open issues are either manual operator tasks or gated on Flux/cluster activation; kubectl unreachable from agent environment.
|
||
- **28 issues triaged** — status comments posted on all open `agent-ready` issues.
|
||
- **0 new issues created** — no gaps found; all ROADMAP items remain grounded in open issues.
|
||
- **0 issues closed** — no stale issues; oldest open issue is #3 from 2026-05-18 (21 days < 30-day threshold).
|
||
- **0 label changes** — all existing labels correct.
|
||
- **0 open PRs** — nothing to review or merge.
|
||
- **`kustomize build flux/` = PASS** — no manifest regressions.
|
||
- **Critical path unchanged:** (1) Operator creates `0xWheatyz/api-company` (#47), (2) Operator merges `0xWheatyz/Talos` PR #14 (#218), (3) Operator configures DNS for all 8 subdomains (#33, #106, #150).
|
||
|
||
## Completed Previous Cycle (2026-06-07 — Triage Cycle #232)
|
||
|
||
- **Triage** — All 28 open `agent-ready` issues reviewed and commented with current status (2026-06-07).
|
||
- **All issues confirmed blocked** on the same critical-path operator tasks: #47 (create `0xWheatyz/api-company`), #218 (merge Talos PR #14), #33/#106/#150 (DNS).
|
||
- **No agent-implementable work found** — all open issues are either manual operator tasks or gated on Flux/cluster activation; kubectl unreachable from agent environment.
|
||
- **1 new issue triaged** — #231 commented with @qa-engineer assessment; BLOCKED on #218.
|
||
- **0 new issues created** — no gaps found; all ROADMAP items remain grounded in open issues.
|
||
- **0 issues closed** — no stale issues.
|
||
- **0 label changes** — all existing labels correct.
|
||
- **0 open PRs** — nothing to review or merge.
|
||
- **`kustomize build flux/` = PASS** — no manifest regressions.
|
||
- **Critical path unchanged:** (1) Operator creates `0xWheatyz/api-company` (#47), (2) Operator merges `0xWheatyz/Talos` PR #14 (#218), (3) Operator configures DNS for all 8 subdomains (#33, #106, #150).
|
||
|
||
## Completed Previous Cycle (2026-06-06 — Sprint Planning Cycle #227)
|
||
|
||
|
||
|
||
- **Sprint Planning** — Full ROADMAP cross-reference + backlog triage completed (2026-06-06).
|
||
- **ROADMAP cross-reference:** All 18 unchecked items confirmed grounded in open issues — **zero gaps**.
|
||
- Phase 0: #3, #4, #66, #76–#83, #126–#128, #173, #178, #179, #203, #218 — all tracked.
|
||
- Phase 4: #7, #8, #174 — all tracked.
|
||
- Phase 5: #30 — tracked.
|
||
- Phase 6: #19, #33, #44, #106, #116, #139, #150, #151, #161, #166, #167 — all tracked.
|
||
- **Staleness check:** Oldest open issue is #3 / #4 from 2026-05-18 (19 days) — **below 30-day threshold; zero closures**.
|
||
- **Label audit:** All priority/complexity labels confirmed correct from cycle #221 audit — **zero changes**.
|
||
- **0 new issues created** — no roadmap gaps found.
|
||
- **0 issues closed** — no stale issues.
|
||
- **0 label changes** — all existing labels correct.
|
||
- **`kustomize build flux/` = PASS** — no manifest regressions.
|
||
- **Critical path unchanged:** (1) Operator creates `0xWheatyz/api-company` (#47), (2) Operator merges `0xWheatyz/Talos` PR #14 (#218), (3) Operator configures DNS for all 8 subdomains (#33, #106, #150).
|
||
|
||
## Completed Previous Cycle (2026-06-06 — Triage Cycle #226)
|
||
|
||
- **Triage** — All 28 open `agent-ready` issues reviewed and commented with current status (2026-06-06).
|
||
- **All issues confirmed blocked** on the same critical-path operator tasks: #47 (create `0xWheatyz/api-company`), #218 (merge Talos PR #14), #33/#106/#150 (DNS).
|
||
- **No agent-implementable work found** — all open issues are either manual operator tasks or gated on Flux/cluster activation.
|
||
- **0 new issues created** — no gaps found; all ROADMAP items are grounded in open issues.
|
||
- **0 issues closed** — no issues are stale or resolvable by agent action.
|
||
- **0 PRs open** — nothing to review or merge.
|
||
- **`kustomize build flux/` = PASS** — no manifest regressions.
|
||
- **Current critical path unchanged:** (1) Operator creates `0xWheatyz/api-company` (#47), (2) Operator merges `0xWheatyz/Talos` PR #14 (#218), (3) Operator configures DNS for all 8 subdomains (#33, #106, #150).
|
||
|
||
## Completed Previous Cycle (2026-06-06 — Sprint Planning Cycle #221)
|
||
|
||
- **#221** — STATUS.md updated for 2026-06-06 sprint planning cycle (this entry). Last-updated date confirmed 2026-06-06.
|
||
- **0 new issues created** — all ROADMAP unchecked items confirmed grounded in open issues (35 open issues, zero gaps).
|
||
- **0 issues closed** — oldest open issue is #3 from 2026-05-18 (19 days < 30-day stale threshold).
|
||
- **3 label changes:**
|
||
- #106 (grafana.leeworks.dev DNS): added `blocked` label (missing despite dependency on #47)
|
||
- #150 (vin.leeworks.dev DNS): added `blocked` label (missing despite dependency on #47)
|
||
- #203 (ClusterIssuer verification): downgraded P1 → P2 (gated on DNS #33, not a first-order blocker)
|
||
- **Critical path unchanged:** Operator must (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#218) to activate Flux, (3) configure DNS (#33, #106, #150).
|
||
- **`kustomize build flux/` = PASS** — no manifest regressions.
|
||
|
||
## Completed Previous Cycle (2026-06-06 — Docs Cycle #219)
|
||
|
||
- **#219** — STATUS.md Current Blockers updated: removed closed issues #187 and #90; replaced with open issue #218 (Operator: merge 0xWheatyz/Talos upstream PR #14 to activate Flux GitOps for api-company). Critical Path item 2 updated to reference #218. `kustomize build flux/` = PASS.
|
||
|
||
## Completed Previous Cycle (2026-06-05 — Sprint Planning Cycle #215)
|
||
|
||
- **#215** — STATUS.md updated for 2026-06-05 sprint planning cycle (this entry). Last-updated date confirmed 2026-06-05.
|
||
- **1 new issue created:** #214 (ROADMAP.md Phase 4 Alertmanager annotation — documentation gap filed).
|
||
- **0 issues closed** — no stale issues; oldest open issue is #2 from 2026-05-18 (18 days < 30-day threshold).
|
||
- **0 label/priority changes** — all existing labels confirmed correct.
|
||
- **ROADMAP cross-reference:** all unchecked items confirmed grounded in open issues; 1 new documentation gap found and filed (#214 — Alertmanager / Slack receiver missing from ROADMAP.md Phase 4).
|
||
- **Critical path unchanged:** Operator must (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33, #106, #150).
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
- **0 open PRs** — nothing to review or merge.
|
||
|
||
## Completed Previous Cycle (2026-06-05 — Sprint Planning Cycle #211)
|
||
|
||
- **#211** — STATUS.md updated for 2026-06-05 sprint planning cycle (this entry). Last-updated date confirmed 2026-06-05.
|
||
- **1 new issue implemented:** #210 (Enable Alertmanager + Slack receiver — gap identified by roadmap cross-reference); PR #212 opened to `leeworks-agents/api-company` with `kustomize build flux/` = PASS.
|
||
- **0 issues closed** — oldest open issue is #2 from 2026-05-18 (18 days old — under 30-day stale threshold).
|
||
- **0 label changes** — all priority/complexity labels confirmed correct.
|
||
- **ROADMAP cross-reference:** 18 unchecked items confirmed grounded in open issues; 1 new gap found and filed (#210 — Alertmanager was missing from roadmap coverage).
|
||
- **Current Blockers unchanged:** Operator must (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33, #106, #150).
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
- **1 open PR** — PR #212 (Alertmanager enable + Slack receiver): `kustomize build flux/` PASS; pending merge.
|
||
|
||
## Completed Previous Cycle (2026-06-05 — Sprint Planning Cycle #206)
|
||
|
||
- **#206** — STATUS.md updated for 2026-06-05 sprint planning cycle (this entry). Last-updated date set to 2026-06-05.
|
||
- **Completed outcomes from 2026-06-04 sprint planning cycle recorded:**
|
||
- Issue #204 (smoke-tests): reopened and relabeled `blocked` — was prematurely closed while prerequisites (DNS #33/#150, Flux #2/#187) are still open.
|
||
- ROADMAP cross-reference: all 18 unchecked items confirmed grounded in open issues (zero gaps).
|
||
- Staleness check: oldest open issue is #2 from 2026-05-18 (18 days, under 30-day threshold — no closures).
|
||
- Label audit: no label changes required — all existing priority/complexity labels are correct.
|
||
- **Critical path confirmed:** Operator must (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux, (3) configure DNS (#33, #106, #150).
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
- **0 open PRs** — nothing to review or merge.
|
||
|
||
## Completed Previous Cycle (2026-06-04 — Triage Cycle #204)
|
||
|
||
- **Triage** — All 29 open `agent-ready` issues reviewed and commented with current status (2026-06-04).
|
||
- **#204** (smoke tests): ❌ BLOCKED — all HTTP endpoints timeout; DNS not configured; kubectl unreachable.
|
||
- **#203** (ClusterIssuer): ❌ BLOCKED — kubectl not accessible from agent environment.
|
||
- **#187, #90, #2** (Flux wiring): Waiting on operator to merge upstream Talos PR #14.
|
||
- **#179, #178, #66** (validation checklists): Blocked on Flux active + cluster access.
|
||
- **#174** (VIN metrics): `kustomize build flux/` PASS; blocked on cluster deploy.
|
||
- **#173, #81, #128, #126, #127, #83, #80, #79, #77, #76, #74, #73, #70** (secrets): Manual operator tasks, all documented.
|
||
- **#167, #166** (launch/pre-launch): Blocked on DNS + Flux + RapidAPI + PayPal.
|
||
- **#161, #151, #150, #139, #116, #106, #47, #44, #33, #30, #19, #8, #7, #4, #3**: Manual operator tasks or blocked on operator actions.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
- **0 PRs open** — nothing to review or merge.
|
||
- **Critical path unchanged:** Operator must (1) create `0xWheatyz/api-company` (#47), (2) merge upstream Talos PR #14 (#187) to activate Flux.
|
||
|
||
## Completed Previous Cycle (2026-06-04 — Sprint Planning Cycle #200/#201)
|
||
|
||
- **#200** — STATUS.md Infrastructure section updated: Flux wiring row for `flux/api-company-source/` updated to reflect Fork PR #399 **MERGED** to leeworks-agents/Talos; upstream PR #14 open on 0xWheatyz/Talos awaiting operator merge. Current Blockers updated to note upstream PR #14 as critical gate.
|
||
- **#201** — Sprint planning STATUS.md update for 2026-06-04 cycle. Issues #200 and #201 created this cycle. ROADMAP cross-reference: all 18 unchecked items confirmed grounded in open issues (no gaps). Staleness check: oldest open issue is #2 from 2026-05-18 (17 days, not stale — threshold 30 days). Priority review: all labels confirmed appropriate. Critical path: operator-gated on 0xWheatyz/Talos PR #14 merge.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-04 — Sprint Planning Cycle #198)
|
||
|
||
- **#198** — STATUS.md updated for 2026-06-04 sprint planning cycle. Last updated date set to 2026-06-04.
|
||
- **Sprint Summary:** 0 new code issues created (all ROADMAP items grounded — all 18 unchecked items have corresponding open issues). 0 issues closed (no stale; oldest is #2 at 17 days). 0 label changes. Critical path is entirely operator-gated: Talos merge of #187 unblocks the #2/#3/#4 chain.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-04 — Sprint Planning Cycle #196)
|
||
|
||
- **#196** — STATUS.md updated for 2026-06-04 sprint planning cycle. Last updated date set to 2026-06-04.
|
||
- **Sprint Summary:** ROADMAP cross-reference complete — all 18 unchecked items have corresponding open issues (no gaps). 1 new issue created: #196 (this STATUS.md update). 0 issues closed (no stale issues; oldest open issue is #2 from 2026-05-18, only 17 days old). 0 label changes (all priority/complexity labels correct). Critical path remains entirely operator-gated.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-03 — Sprint Planning Cycle #193/#194)
|
||
|
||
- **#194** — ROADMAP.md annotated with missing issue cross-references: Phase 0 issue #2 entry updated to reference implementation issue #187; Phase 6 entries added for issue #166 (pre-launch checklist) and #167 (launch announcement). Closes leeworks-agents/api-company#194.
|
||
- **#193** — STATUS.md updated for 2026-06-03 sprint planning cycle. Current Blockers confirmed accurate; #80 (gitea-image-automation-token) listed. Closes leeworks-agents/api-company#193.
|
||
- **Sprint Summary:** 2 new documentation issues created (#193 STATUS.md update, #194 ROADMAP annotation). 0 issues closed. 0 stale. Critical path entirely operator-gated.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-03 — Audit Cycle #190/#191)
|
||
|
||
- **#190** — ZIP Enrichment API audit complete: `openapi.yaml` present at repo root (57 KB, OpenAPI 3.0.3); server entry point `src/server.js`; all routes confirmed implemented; `X-RapidAPI-Proxy-Secret` preHandler middleware on all routes except `/health`; `/metrics` Prometheus endpoint present; STATUS.md ZIP Enrichment Spec and Code rows updated to `[x]`. Closes leeworks-agents/api-company#190.
|
||
- **#191** — Holidays API audit complete: `openapi.yaml` present at repo root (13 KB, OpenAPI 3.0.3); server entry point `src/server.js`; all routes confirmed implemented; `X-RapidAPI-Proxy-Secret` preHandler middleware on all routes except `/health` and `/metrics`; `/metrics` Prometheus endpoint present (issue #180 confirmed done); STATUS.md Holidays Spec and Code rows updated to `[x]`. Closes leeworks-agents/api-company#191.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-03 — Sprint Planning Cycle)
|
||
|
||
- **#188** — STATUS.md updated for 2026-06-03 sprint planning cycle (this entry). Last updated date set to 2026-06-03.
|
||
- **#187** — Talos PR for api-company Flux source manifests: PR #399 on `leeworks-agents/Talos` confirmed valid; upstream deploy PR created targeting `0xWheatyz/Talos`.
|
||
- **#186** — Air Quality API audit complete: `openapi.yaml` ✅ exists at repo root in `leeworks-agents/air-quality`; server implementation ✅ present (`src/server.ts`, `src/app.ts`, `src/routes/`); STATUS.md Air Quality row updated to `[x]/[x]`.
|
||
- **#178** relabeled — added `blocked` label (depends on #173 + Flux active).
|
||
- **#174** relabeled — added `blocked` label (depends on #18 deploy + #7 monitoring).
|
||
- **Current Blockers updated:** #187 added before #90 (same unblock target, more actionable).
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-02 — Sprint Planning Cycle #175/#176)
|
||
|
||
- **#176** — ROADMAP.md Phase 6 unchecked items annotated with issue cross-references: DNS — issues #33, #106, #150; PayPal — issue #19; Paid tiers — issues #44 (original 3), #151 (VIN Decoder). No checked items changed.
|
||
- **#175** — STATUS.md updated with 2026-06-02 sprint planning cycle results (this entry). Last updated date set to 2026-06-02.
|
||
- **Sprint Summary:** 2 new documentation issues created (#175 STATUS.md update, #176 ROADMAP Phase 5/6 annotation). 0 code issues created (all ROADMAP items already covered by existing issues). 0 issues closed (none stale). 0 reprioritizations.
|
||
- **Current Blockers updated:** #173 (ESO source secrets in `external-secrets` ns) and #174 (VIN Decoder metrics instrumentation) added.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-02 — Sprint Planning Cycle)
|
||
|
||
- **#171** — ROADMAP.md Phase 0 unchecked items annotated with issue #2, #3, #4; Phase 4 unchecked items annotated with issue #7, #8, #27; Phase 5 unchecked item annotated with issue #30. No checked-off items changed.
|
||
- **#170** — STATUS.md updated with 2026-06-02 sprint planning cycle results (this entry). Last updated date set to 2026-06-02.
|
||
- **Sprint Summary:** 2 new issues created (#171, #170), 0 issues closed this cycle, 0 stale found.
|
||
- **`kustomize build flux/` = PASS** — no regressions confirmed.
|
||
|
||
## Completed Previous Cycle (2026-06-02 — Triage Cycle #168)
|
||
- **#168** — STATUS.md cleanup: removed all stale “open, in progress” references to #120 and #121 (both confirmed closed ✅ in leeworks-agents/vin-decoder). Historical sections corrected. VIN Decoder Code column confirmed `[x]`.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-06-01 — Sprint Planning Cycle)
|
||
- **#163** — ROADMAP.md Phase 2 and Phase 3 VIN Decoder bullets marked `[x]` with closed ✅ references for issues #120 and #121.
|
||
- **#164** — STATUS.md Current Blockers updated: removed #120 and #121 (both confirmed closed ✅). Top actionable agent task updated to #163.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-06-01 — Triage Cycle)
|
||
- **#158** — STATUS.md updated with 2026-06-01 current blockers and sprint summary.
|
||
- **#156** — ROADMAP.md checkboxes updated: Phase 4 VIN Decoder metrics, Phase 5 docs-site/pipeline/blog, Phase 6 legal docs all checked off.
|
||
- **VIN Decoder Code `[x]`** — leeworks-agents/vin-decoder data layer (#120) and Fastify server (#121) confirmed merged; STATUS.md Code column updated.
|
||
- **PR #160 closed** — had merge conflicts and ROADMAP.md regressions (unchecked completed items). Clean fix applied here.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Current Blockers (as of 2026-06-07)
|
||
|
||
In dependency order — operator tasks unless noted:
|
||
|
||
1. **P1 #47** — Create `0xWheatyz/api-company` upstream repo (operator) — **highest priority, unblocks everything**
|
||
2. **P1 #76** — Create `gitea-leeworks-agents-token` secret in `flux-system` (operator)
|
||
3. **P1 #77** — Create `gitea-runner-token` secret in `gitea-runner` namespace (operator)
|
||
4. **P1 #79** — Create `gitea-registry` imagePullSecrets in all API namespaces (operator)
|
||
5. **P1 #83** — Configure `GITEA_TOKEN` Actions secret in zip-enrichment, holidays, air-quality repos (operator)
|
||
6. **P1 #126** — Configure `GITEA_TOKEN` Actions secret in vin-decoder repo (operator — depends on #122 ✅)
|
||
7. **P1 #127** — Create `gitea-registry` imagePullSecret in `vin-decoder` namespace (operator)
|
||
8. **P1 #218** — Operator: merge 0xWheatyz/Talos upstream PR #14 to activate Flux GitOps for api-company — Fork PR #399 already MERGED to leeworks-agents/Talos; upstream PR #14 is the critical gate; unblocks #2, #3, #4, #66 chain (replaces closed #187 and #90)
|
||
10. **P2 #80** — Create `gitea-image-automation-token` secret in `flux-system` namespace (operator) — enables Flux image automation
|
||
11. **P2 #173** — Create ESO source secrets in `external-secrets` namespace for RapidAPI proxy-secret syncing (operator) — blocks ESO sync
|
||
12. **P2 #231** — Verify VIN Decoder metrics endpoint and ServiceMonitor scrape config in live cluster (depends on #218 — Flux must be active first)
|
||
13. **P2 #178** — Validate ESO HelmRelease deployment and ExternalSecret sync for all 4 API namespaces (depends on #173 + Flux active)
|
||
14. **P2 #179** — Execute extended full-stack Flux validation checklist including VIN Decoder (depends on #126, #127, #128)
|
||
|
||
## Sprint Summary (2026-06-01 — Sprint Planning Cycle)
|
||
- **Issues closed this cycle:** 0
|
||
- **New issues created this cycle:** 1 (#163 — ROADMAP/STATUS cleanup after #120/#121)
|
||
- **Stale issues found:** 0
|
||
- **Top actionable agent task:** #163 (pure doc update, immediately actionable)
|
||
- **Critical path:** Entirely operator-gated after #163 is merged (see Current Blockers)
|
||
|
||
## Sprint Summary (2026-06-01)
|
||
- **Issues closed since last STATUS update (#146):** #145–#154 — VIN Decoder sprint docs + infra (✅ all closed)
|
||
- **Issues opened this sprint:** #150 (vin DNS reminder), #151 (VIN Decoder RapidAPI tiers), #155 (if applicable), #156 (ROADMAP.md update), #157 (full-stack validation), #158 (STATUS.md update), #163 (ROADMAP/STATUS cleanup post-#120/#121), #164 (STATUS.md sprint planning update)
|
||
- **Top actionable agent task:** #163 (ROADMAP/STATUS doc cleanup for #120/#121 — pure doc update, immediately actionable)
|
||
|
||
## Completed Previous Cycle (2026-05-31 — Sprint Cycle)
|
||
- **#146** — STATUS.md updated to reflect VIN Decoder sprint wave (#117–#141): APIs table row added, completed wave documented, blockers updated.
|
||
- **#145** — ROADMAP.md updated to reference VIN Decoder as 4th API across all phases (Phase 1–6). `kustomize build flux/` = PASS.
|
||
- **PR #147 opened** — docs: update ROADMAP.md and STATUS.md for VIN Decoder sprint wave (closes #145, #146).
|
||
|
||
## Completed Previous Cycle (2026-05-30 — VIN Decoder Sprint Wave)
|
||
### VIN Decoder issues #117–#141 — status as of 2026-05-31:
|
||
- **#117** — VIN Decoder spec + feasibility — **closed ✅** (`apis/vin-decoder/openapi.yaml` merged)
|
||
- **#120** — VIN Decoder data layer (SQLite/NHTSA vPIC) — **closed ✅** (leeworks-agents/vin-decoder)
|
||
- **#121** — VIN Decoder Fastify server — **closed ✅** (leeworks-agents/vin-decoder)
|
||
- **#122** — Create `leeworks-agents/vin-decoder` repo — **closed ✅**
|
||
- **#123** — VIN Decoder docs page — **closed ✅**
|
||
- **#124** — VIN Decoder SEO blog post — **closed ✅**
|
||
- **#130** — VIN Decoder DNS `vin.leeworks.dev` — **closed ✅**
|
||
- **#131** — VIN Decoder RapidAPI listing — **closed ✅** (tracker; operator action required)
|
||
- **#133** — VIN Decoder pricing page integration — **closed ✅**
|
||
- **#134** — VIN Decoder Gatus health check — **closed ✅**
|
||
- **#135** — VIN Decoder image automation — **closed ✅**
|
||
- **#136** — VIN Decoder ExternalSecret manifest — **closed ✅**
|
||
- **#138** — Extend publish-openapi pipeline to include VIN Decoder — **closed ✅** (PR #142 merged)
|
||
- **#139** — Operator: add RAPIDAPI_VIN_API_ID + RAPIDAPI_VIN_VERSION_ID secrets — **open** (operator task, blocked on RapidAPI listing)
|
||
- **#140** — VIN Decoder Flux manifests — **closed ✅** (PR #143 merged)
|
||
- **#141** — Pricing page updated for VIN Decoder — **closed ✅** (PR #144 merged)
|
||
|
||
## Critical Path (operator must complete in order)
|
||
See **Current Blockers** section above for the full ordered list as of 2026-06-01.
|
||
|
||
1. **Create `0xWheatyz/api-company` repo** (#47) — **highest priority, unblocks everything**
|
||
2. **Merge upstream Talos PR #14 to activate Flux for api-company** (#218) — manifests already committed; operator must merge 0xWheatyz/Talos PR #14
|
||
3. **Create `gitea-leeworks-agents-token` secret** in `flux-system` (#76)
|
||
4. **Create `gitea-runner-token` secret** in `gitea-runner` (#77)
|
||
5. **Enable Gitea packages + DNS for `registry.leeworks.dev`** (#4)
|
||
6. **All other secrets** (#70, #73, #74, #79, #80, #81, #83) follow in order
|
||
|
||
## Blockers — VIN Decoder critical path
|
||
- **P1: #127** — Create `gitea-registry` imagePullSecret in `vin-decoder` namespace — operator manual task
|
||
- **P2: #126** — Configure `GITEA_TOKEN` secret in `vin-decoder` repo — operator manual task
|
||
- **P2: #128** — Create `rapidapi-proxy-secret` in `vin-decoder` namespace — operator manual task
|
||
- ~~**P2: #129** — VIN Decoder Prometheus metrics instrumentation~~ — **closed ✅** (PR merged)
|
||
- **P3: #139** — Add RAPIDAPI_VIN_* Actions secrets — operator task, depends on RapidAPI listing (#131)
|
||
|
||
## New Issues This Sprint (2026-05-30, #120–#146)
|
||
- **#120** — VIN Decoder data layer — **closed ✅** (leeworks-agents/vin-decoder)
|
||
- **#121** — VIN Decoder Fastify server — **closed ✅** (leeworks-agents/vin-decoder)
|
||
- **#126** — Operator: GITEA_TOKEN secret in vin-decoder repo — manual operator task
|
||
- **#127** — Operator: gitea-registry imagePullSecret in vin-decoder namespace — manual operator task, P1 blocker
|
||
- **#128** — Operator: rapidapi-proxy-secret in vin-decoder namespace — manual operator task
|
||
- **#129** — VIN Decoder Prometheus metrics — **open, P2, depends on #121**
|
||
- **#139** — Operator: RAPIDAPI_VIN_* secrets — **open, P3, operator task**
|
||
- **#145** — Update ROADMAP.md for VIN Decoder — **DONE (this cycle)**
|
||
- **#146** — Update STATUS.md for VIN Decoder sprint wave — **DONE (this cycle)**
|
||
|
||
## Completed Previous Cycle (2026-05-30 — Sprint Cycle)
|
||
- **#108** — STATUS.md updated with 2026-05-30 sprint plan and critical path.
|
||
- **#107** — docs-site build verified: `npm run build` exits 0; all 9 required routes present in `dist/`.
|
||
- **PR #105 MERGED** — `scripts/publish-openapi.js` + `.gitea/workflows/publish-openapi.yaml` (closes #100).
|
||
- **PR #103 MERGED** — `docs-site/src/pages/pricing.astro` + nav link (closes #101).
|
||
- **PR #104 MERGED** — `research/RESEARCH_LOG.md` first session: VIN Decoder next candidate (closes #102).
|
||
- **New issues triaged** — #100–#108 (sprint planning cycle issues reviewed).
|
||
- **`0xWheatyz/api-company`** — still does not exist; fork sync skipped (blocker #47).
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Cycle-2 Triage)
|
||
- **#83** — Triaged: `GITEA_TOKEN` Actions secrets needed in `zip-enrichment`, `holidays`, `air-quality` repos. Manual operator task; reuse token from #74 if it has `write:package` scope. Step-by-step instructions posted.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
- **Upstream `0xWheatyz/api-company`** — still does not exist; fork sync skipped (blocker #47).
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Late-Night Triage)
|
||
- **#79** — Triaged: `gitea-registry` imagePullSecret needed in 4 namespaces. Manual operator task; kubectl docker-registry secret instructions posted.
|
||
- **#80** — Triaged: `gitea-image-automation-token` secret needed in `flux-system`. Manual operator task; write-scoped PAT required, kubectl instructions posted.
|
||
- **#81** — Triaged: `rapidapi-proxy-secret` needed in `zip-enrichment`, `holidays`, `air-quality`. Manual operator task; placeholder + real-secret commands posted.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Night Triage)
|
||
- **#76** — Triaged: `gitea-leeworks-agents-token` secret required in `flux-system` to unblock Flux GitRepository auth. Manual operator task; kubectl instructions + reconcile steps posted in issue comment.
|
||
- **#77** — Triaged: `gitea-runner-token` secret required in `gitea-runner` namespace to register Act Runner. Manual operator task; full step-by-step instructions posted in issue comment.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Evening Triage)
|
||
- **#74** — Triaged: `GITEA_TOKEN` Actions secret required in leeworks-agents/api-company for docs-site CI. Manual operator task; instructions posted.
|
||
- **#73** — Triaged: `gatus-slack-webhook` secret required in `monitoring` namespace. Manual operator task; kubectl instructions posted.
|
||
- **#67** — Confirmed already resolved: `docs/operator-runbook.md` and `docs/dns.md` both list all 7 subdomains incl. `grafana.leeworks.dev` (PR #63). No code change needed.
|
||
- **No open PRs** — queue empty.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-28 — Morning Triage)
|
||
- **#69 → PR #71 MERGED** — Added `.gitea/workflows/validate-flux.yaml` CI workflow: runs `kustomize build flux/` on every PR and push to `main`. CI gate enforced once Act Runner (#3) is online.
|
||
- **#70** — Triaged: `grafana-admin` secret needed in `monitoring` namespace. Manual operator task; kubectl instructions posted in issue comment.
|
||
- **#67** — Confirmed `docs/operator-runbook.md` Phase 4 DNS table already lists all 7 subdomains including grafana.leeworks.dev. No code change needed.
|
||
- **#66** — Blocked on Phase 0 operator actions (#47, #2, #3, #4). Status comment posted.
|
||
- **#47, #2, #3, #4, #7, #8, #16, #17, #18, #19, #27, #30, #33, #44** — Status comments posted confirming blocked/awaiting-operator state.
|
||
- **No open PRs to review** — queue empty after PR #71 merged.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-27 — Evening Triage)
|
||
- **Triage pass** — all 15 open agent-ready issues reviewed; status comments posted on each.
|
||
- **No open PRs** — nothing to merge or review.
|
||
- **No new feature work** — all issues remain blocked on operator actions or cross-repo prerequisites.
|
||
- **`kustomize build flux/` = PASS** — no regressions.
|
||
|
||
## Completed Previous Cycle (2026-05-27 — Ship/Afternoon)
|
||
- **PRs reviewed** — 0 open PRs on fork; nothing to merge.
|
||
- **Upstream sync** — `0xWheatyz/api-company` does not yet exist (blocker #41/#47); `git fetch upstream` failed as expected. Fork `origin/main` is current (SHA `9a1639f`).
|
||
- **`kustomize build flux/` = PASS** — all sub-trees validate cleanly; no regressions.
|
||
- **Deployment PR** — skipped; upstream repo must be created by operator first (#41, #47).
|
||
- **No new feature work** — all 15 open agent-ready issues remain blocked on operator actions.
|
||
|
||
## Completed Previous Cycle (2026-05-27 — Morning)
|
||
- **Triage pass** — all 15 open agent-ready issues reviewed; status comments posted/confirmed on each.
|
||
- **#19** — First triage comment posted: RapidAPI/PayPal operator task fully documented; all agent-side prerequisites (OpenAPI specs, listing copy, proxy-secret placeholders) confirmed ready.
|
||
- **No PRs to review** — fork had no open PRs.
|
||
- **No new feature work** — all open issues blocked on operator actions.
|
||
|
||
## Completed Previous Cycle (2026-05-26 Evening)
|
||
- **#50** — `docs/operator-runbook.md` added: ordered phase-by-phase manual for operator. PR #52 merged.
|
||
- **#51** — Flux image automation: `ImageRepository` + `ImagePolicy` + `ImageUpdateAutomation` for all three API services; setter markers added to HelmReleases. PR #52 merged. `kustomize build flux/ = PASS`.
|
||
|
||
## Completed Previous Cycle (2026-05-26 PM)
|
||
- **#46** — Scaffolded Flux deployment manifests for all three API services (zip-enrichment, holidays, air-quality). PR #48 merged.
|
||
|
||
## Completed Previous Cycle (2026-05-26 AM)
|
||
- **#43** — secrets-checklist.md added (closed, PR #45)
|
||
- **#36** — Cluster audit committed to `docs/cluster-audit.md` (closed)
|
||
- **#40** — Legal docs (ToS, Privacy Policy, AUP) under `docs/legal/` (closed)
|
||
- **#37** — docs-site Astro skeleton with Redoc pages; `npm run build` passes (closed)
|
||
- **#39** — SEO blog posts (ZIP, Holidays, Air Quality) in `docs-site/src/pages/blog/` (closed)
|
||
- **#38** — Gitea Actions CI workflow (`.gitea/workflows/build-docs.yaml`) + Dockerfile (closed)
|
||
- **#34** — Cluster audit PR merged
|
||
|
||
## Flux Manifests (kustomize build flux/ = PASS)
|
||
All flux manifests validate successfully. Committed components pending Flux activation:
|
||
- `gitea-runner` namespace + HelmRelease (gitea-act-runner chart)
|
||
- `monitoring` namespace + kube-prometheus-stack HelmRelease
|
||
- `monitoring` Gatus HelmRelease (status.leeworks.dev, 90-day retention)
|
||
- `docs-site` HelmRelease (docs.leeworks.dev)
|
||
- `zip-enrichment` namespace + HelmRelease (zip.leeworks.dev) + rapidapi-proxy-secret placeholder
|
||
- `holidays` namespace + HelmRelease (holidays.leeworks.dev) + rapidapi-proxy-secret placeholder
|
||
- `air-quality` namespace + HelmRelease (aqi.leeworks.dev) + rapidapi-proxy-secret placeholder
|
||
- `vin-decoder` namespace + HelmRelease (vin.leeworks.dev) + Flux manifests
|
||
- `image-automation` ImageRepository + ImagePolicy + ImageUpdateAutomation for all three APIs
|
||
|
||
## Blockers (human operator action required)
|
||
1. **Create `0xWheatyz/api-company` repo on Gitea** — every ship cycle fails until this exists (#41, #47) **<-- DO THIS FIRST**
|
||
2. **Add api-company GitRepository+Kustomization to 0xWheatyz/Talos** at `testing1/first-cluster/cluster/flux/` — reference manifests ready in `flux/api-company-source/` (#2)
|
||
3. **Create `gitea-leeworks-agents-token` secret** in `flux-system` namespace (HTTPS token for Gitea)
|
||
4. **Create `gitea-runner-token` secret** in `gitea-runner` namespace (Gitea Admin -> Actions -> Runners -> New Runner) (#3)
|
||
5. **Enable Gitea packages** (for container registry at `registry.leeworks.dev`) (#4)
|
||
6. **Create `gitea-registry` imagePullSecret in `vin-decoder` namespace** (#127) — VIN Decoder P1
|
||
7. **RapidAPI + PayPal setup** — manual, gated on operator turning 18 (#19, #44)
|
||
|
||
> Full ordered runbook with copy-paste commands: `docs/operator-runbook.md`
|