diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 61659d9..205b5f5 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -55,9 +55,9 @@ These rules govern every task. Any deviation must be discussed and documented as | 1.6 | [Per-device in-memory state](./phase-1-throughput/06-device-state.md) | 🟩 | `68d3da3` | | 1.7 | [Position writer (batched upsert)](./phase-1-throughput/07-position-writer.md) | 🟩 | `68d3da3` | | 1.8 | [Main wiring & ACK semantics](./phase-1-throughput/08-main-wiring.md) | 🟩 | `68d3da3` | -| 1.9 | [Observability (Prometheus metrics + /healthz + /readyz)](./phase-1-throughput/09-observability.md) | 🟩 | *(pending commit SHA)* | -| 1.10 | [Integration test (testcontainers Redis + Postgres)](./phase-1-throughput/10-integration-test.md) | 🟩 | *(pending commit SHA)* | -| 1.11 | [Dockerfile & Gitea workflow](./phase-1-throughput/11-dockerfile-and-ci.md) | 🟩 | *(pending commit SHA)* | +| 1.9 | [Observability (Prometheus metrics + /healthz + /readyz)](./phase-1-throughput/09-observability.md) | 🟩 | `9791620` | +| 1.10 | [Integration test (testcontainers Redis + Postgres)](./phase-1-throughput/10-integration-test.md) | 🟩 | `9791620` | +| 1.11 | [Dockerfile & Gitea workflow](./phase-1-throughput/11-dockerfile-and-ci.md) | 🟩 | `9791620` | ### Phase 2 — Domain logic diff --git a/.planning/phase-1-throughput/09-observability.md b/.planning/phase-1-throughput/09-observability.md index 81c498e..453c70e 100644 --- a/.planning/phase-1-throughput/09-observability.md +++ b/.planning/phase-1-throughput/09-observability.md @@ -79,4 +79,4 @@ No Express. Roughly 30 lines. Match `tcp-ingestion`'s style. ## Done -Real prom-client implementation replacing the trace-log shim. All 10 Phase 1 metrics registered; `/healthz`, `/readyz` (cached SELECT 1 Postgres health check, 5 s TTL), `/metrics` endpoints live. Consumer lag sampled every 10 s via `XINFO GROUPS`. `createPostgresHealthCheck` and `createConsumerLagSampler` exported for graceful-shutdown wiring. 22 new unit tests in `test/metrics.test.ts`. *(pending commit SHA)* +Real prom-client implementation replacing the trace-log shim. All 10 Phase 1 metrics registered; `/healthz`, `/readyz` (cached SELECT 1 Postgres health check, 5 s TTL), `/metrics` endpoints live. Consumer lag sampled every 10 s via `XINFO GROUPS`. `createPostgresHealthCheck` and `createConsumerLagSampler` exported for graceful-shutdown wiring. 22 new unit tests in `test/metrics.test.ts`. Landed in `9791620`. diff --git a/.planning/phase-1-throughput/10-integration-test.md b/.planning/phase-1-throughput/10-integration-test.md index d6d3481..947483b 100644 --- a/.planning/phase-1-throughput/10-integration-test.md +++ b/.planning/phase-1-throughput/10-integration-test.md @@ -55,4 +55,4 @@ This validates the core ACK semantics: if a write fails, the record stays pendin ## Done -`test/pipeline.integration.test.ts`: four scenarios (happy path with bigint+Buffer, idempotency, malformed payload stays pending, writer failure → retry after Postgres restart). Uses `timescale/timescaledb:latest-pg16`; skip-on-no-Docker pattern verified (exits 0 without Docker). `pnpm test:integration` runs 4 tests green with Docker, 4 skips without. *(pending commit SHA)* +`test/pipeline.integration.test.ts`: four scenarios (happy path with bigint+Buffer, idempotency, malformed payload stays pending, writer failure → retry after Postgres restart). Uses `timescale/timescaledb:latest-pg16`; skip-on-no-Docker pattern verified (exits 0 without Docker). `pnpm test:integration` runs 4 tests green with Docker, 4 skips without. Landed in `9791620`. diff --git a/.planning/phase-1-throughput/11-dockerfile-and-ci.md b/.planning/phase-1-throughput/11-dockerfile-and-ci.md index 49ead27..da641a4 100644 --- a/.planning/phase-1-throughput/11-dockerfile-and-ci.md +++ b/.planning/phase-1-throughput/11-dockerfile-and-ci.md @@ -83,4 +83,4 @@ Plus a Postgres service (TimescaleDB image) added to the stack — the stack cur ## Done -`Dockerfile` (multi-stage, `EXPOSE 9090` only, `HEALTHCHECK` on `/readyz`), `.gitea/workflows/build.yml` (mirrors tcp-ingestion; Portainer webhook uncommented), `compose.dev.yaml` (Redis + TimescaleDB + processor-dev), `README.md` fleshed out. *(pending commit SHA)* +`Dockerfile` (multi-stage, `EXPOSE 9090` only, `HEALTHCHECK` on `/readyz`), `.gitea/workflows/build.yml` (mirrors tcp-ingestion; Portainer webhook uncommented), `compose.dev.yaml` (Redis + TimescaleDB + processor-dev), `README.md` fleshed out. Landed in `9791620`.