Compare commits

..

12 Commits

Author SHA1 Message Date
agent-company 1a1a109aa3 feat(monitoring): add APIDataCriticallyStale alert and fix APIDataStale for duration
Validate Flux manifests / kustomize-build (pull_request) Failing after 17s
- Fix APIDataStale 'for' duration from 5m to 30m (issue spec requires 30m)
- Add APIDataCriticallyStale alert at 60-day threshold (5184000s) with for: 1h
  and severity: critical

Both alerts fire on api_data_freshness_seconds metric for all three API jobs.
Existing APIHighErrorRate and APIHighLatency alerts are unmodified.
kustomize build flux/ passes.

Closes leeworks-agents/api-company#88
2026-05-29 05:04:56 +00:00
AI-Manager 618d1acd68 Merge pull request '[Phase 5] Add Flux ImageRepository + ImagePolicy for docs-site image automation' (#86) from feature/issue-85-docs-site-image-automation into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 46s
Validate Flux manifests / kustomize-build (push) Failing after 17s
2026-05-29 00:02:55 +00:00
agent-company 459fc99f31 feat(flux): add docs-site ImageRepository, ImagePolicy, and setter marker
Validate Flux manifests / kustomize-build (pull_request) Failing after 51s
Closes leeworks-agents/api-company#85

- Add ImageRepository 'docs-site' in flux-system watching
  registry.leeworks.dev/leeworks-agents/docs-site (5m poll interval)
- Add ImagePolicy 'docs-site' in flux-system using alphabetical/asc
  ordering (consistent with SHA-tag CI pushes)
- Add $imagepolicy setter marker comment to flux/docs-site/helmrelease.yaml
  so Flux ImageUpdateAutomation can auto-commit new image tags

kustomize build flux/ = PASS
2026-05-29 00:02:23 +00:00
AI-Manager e470826a78 Merge pull request 'chore: update STATUS.md — 2026-05-28 cycle-2 triage' (#84) from feature/status-update-2026-05-28-cycle2 into main
Validate Flux manifests / kustomize-build (push) Failing after 21s
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 47s
2026-05-28 20:02:23 +00:00
agent-company c5947359c5 chore: update STATUS.md — 2026-05-28 cycle-2 triage
Validate Flux manifests / kustomize-build (pull_request) Failing after 26s
2026-05-28 20:02:12 +00:00
AI-Manager 5555c7524b Merge pull request 'chore: STATUS.md update — 2026-05-28 late-night triage' (#82) from feature/status-update-2026-05-28-night into main
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 43s
Validate Flux manifests / kustomize-build (push) Failing after 21s
2026-05-28 15:03:43 +00:00
agent-company 8c46feb1c6 chore: update STATUS.md for 2026-05-28 late-night triage cycle
Validate Flux manifests / kustomize-build (pull_request) Failing after 25s
Triaged issues #79, #80, #81 (all manual operator secret tasks).
No open PRs. kustomize build flux/ = PASS.
2026-05-28 15:03:20 +00:00
AI-Manager 28878773dd Merge pull request 'chore: update STATUS.md — 2026-05-28 night triage cycle' (#78) from feature/status-update-2026-05-28-night into main
Validate Flux manifests / kustomize-build (push) Failing after 16s
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 36s
2026-05-28 10:02:47 +00:00
agent-company c71651d4a2 chore: update STATUS.md — 2026-05-28 night triage cycle
Validate Flux manifests / kustomize-build (pull_request) Failing after 34s
Triaged issues #76 and #77 (new operator secret tasks for Flux GitRepository
auth and gitea-act-runner token). Both are blocked manual operator tasks;
instructions posted on each issue. No PRs open. kustomize build flux/ = PASS.
2026-05-28 10:02:30 +00:00
AI-Manager 636d68ced5 Merge pull request 'chore: update STATUS.md — 2026-05-28 evening triage cycle' (#75) from feature/status-update-2026-05-28-evening into main
Validate Flux manifests / kustomize-build (push) Failing after 21s
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 45s
2026-05-28 05:03:12 +00:00
agent-company b62bf046f6 chore: update STATUS.md — 2026-05-28 evening triage cycle
Validate Flux manifests / kustomize-build (pull_request) Failing after 21s
2026-05-28 05:02:57 +00:00
AI-Manager 181b9f9501 Merge pull request 'chore: update STATUS.md — 2026-05-28 morning triage cycle' (#72) from feature/status-update-2026-05-28-morning into main
Validate Flux manifests / kustomize-build (push) Failing after 24s
Build Docs Site / Aggregate OpenAPI Specs (push) Failing after 2m42s
2026-05-28 00:04:55 +00:00
5 changed files with 67 additions and 4 deletions
+28 -2
View File
@@ -1,6 +1,6 @@
# Company Status
_Last updated: 2026-05-28 (agent cycle — morning triage)_
_Last updated: 2026-05-28 (agent cycle — cycle-2 triage)_
## APIs
| API | Spec | Code | Deployed | Listed on RapidAPI | Paying Users | MRR |
@@ -21,7 +21,33 @@ Legend: [x]=done, [~]=in-progress, [ ]=not started
- **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
## Completed This Cycle (2026-05-28 — Morning Triage)
## Completed This 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.
+1 -1
View File
@@ -35,7 +35,7 @@ spec:
- name: gitea-registry
containers:
- name: docs-site
image: registry.leeworks.dev/leeworks-agents/docs-site:latest
image: registry.leeworks.dev/leeworks-agents/docs-site:latest # {"$imagepolicy": "flux-system:docs-site"}
ports:
- containerPort: 80
resources:
+12
View File
@@ -37,3 +37,15 @@ spec:
policy:
semver:
range: ">=0.1.0"
---
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImagePolicy
metadata:
name: docs-site
namespace: flux-system
spec:
imageRepositoryRef:
name: docs-site
policy:
alphabetical:
order: asc
@@ -32,3 +32,14 @@ spec:
interval: 5m
secretRef:
name: gitea-leeworks-agents-token
---
apiVersion: image.toolkit.fluxcd.io/v1beta2
kind: ImageRepository
metadata:
name: docs-site
namespace: flux-system
spec:
image: registry.leeworks.dev/leeworks-agents/docs-site
interval: 5m
secretRef:
name: gitea-leeworks-agents-token
+15 -1
View File
@@ -71,7 +71,7 @@ spec:
- alert: APIDataStale
expr: |
api_data_freshness_seconds{job=~"zip|holidays|air-quality"} > 2592000
for: 5m
for: 30m
labels:
severity: warning
team: api-company
@@ -79,6 +79,20 @@ spec:
summary: "Stale dataset on {{ $labels.job }} ({{ $labels.dataset }})"
description: "{{ $labels.job }} dataset '{{ $labels.dataset }}' has not been re-seeded in {{ $value | humanizeDuration }} (threshold: 30 days). Re-seed required."
# -------------------------------------------------------------------
# APIDataCriticallyStale — data freshness > 60 days
# -------------------------------------------------------------------
- alert: APIDataCriticallyStale
expr: |
api_data_freshness_seconds{job=~"zip|holidays|air-quality"} > 5184000
for: 1h
labels:
severity: critical
team: api-company
annotations:
summary: "API data is critically stale on {{ $labels.job }}"
description: "{{ $labels.job }} data has not been re-seeded in more than 60 days ({{ $value | humanizeDuration }})"
# -------------------------------------------------------------------
# APIDown — any API job absent for 2 min
# -------------------------------------------------------------------