Commit Graph

  • 2d5c77e21d Merge pull request '[E01-S01-T05] ADR: Kysely containment' (#411) from feature/192 into main main kpcto 2026-08-31 01:11:59 +00:00
  • 893707604d Merge pull request '[E01-S01-T06] ADR: React SSR' (#412) from feature/193 into main kpcto 2026-08-31 01:11:44 +00:00
  • c1020353a0 Merge pull request '[E01-S01-T07] ADR: React/Vite admin' (#413) from feature/194 into main kpcto 2026-08-31 01:11:33 +00:00
  • edbf8cb7ea docs(adr): record React/Vite admin decision as ADR-008 implementer 2026-08-31 00:56:54 +00:00
  • 693976c289 docs(adr): record Kysely containment decision as ADR-006 implementer 2026-08-31 00:55:38 +00:00
  • b6c3fd9a28 docs(adr): record React SSR for public rendering decision as ADR-007 implementer 2026-08-31 00:51:22 +00:00
  • b1a1c9bc86 Merge pull request '[E01-S01-T02] ADR: Node/TypeScript' (#407) from feature/189 into main kpcto 2026-08-31 00:51:05 +00:00
  • 2a229bbf3f Merge pull request '[E01-S01-T03] ADR: Fastify' (#410) from feature/190 into main kpcto 2026-08-31 00:43:50 +00:00
  • b8f0abdb0d docs(adr): record Fastify 5 HTTP runtime decision as ADR-004 implementer 2026-08-31 00:34:08 +00:00
  • 768f009ee9 Merge pull request '[E01-S01-T04] ADR: PostgreSQL' (#408) from feature/191 into main kpcto 2026-08-31 00:34:00 +00:00
  • dbd42d394d docs(adr): record PostgreSQL 18 sole canonical DB decision as ADR-005 bot-implementer 2026-08-31 00:26:41 +00:00
  • ee0c094398 docs(adr): record TypeScript 6.0.3 language decision as ADR-003 implementer 2026-08-31 00:26:35 +00:00
  • 1fba3d9f95 docs(adr): record Node.js 24 LTS runtime decision as ADR-002 implementer 2026-08-31 00:26:34 +00:00
  • 372bf1f648 Merge pull request '[E01-S01-T01] ADR: Modular monolith' (#406) from feature/188 into main kpcto 2026-08-31 00:20:50 +00:00
  • 41bd4d78aa docs(adr): record modular monolith decision as ADR-001 bot-implementer 2026-08-31 00:12:48 +00:00
  • aaa7489566 Merge pull request '[E00-S05-T01] Implement CI quality baseline (required PR stages)' (#405) from feature/187 into main kpcto 2026-08-31 00:07:02 +00:00
  • 10ea1ef3db test: lock in the action SHA pins and workflow-level permissions with the ci-stages suite (E00-S05-T01) implementer 2026-08-30 06:29:43 +00:00
  • d0c3b6a83d ci: pin third-party actions to full commit SHAs and declare minimal workflow permissions (E00-S05-T01) implementer 2026-08-30 06:29:43 +00:00
  • 13b1548df8 ci: build the config and database-postgres packages before the architecture suites (E00-S05-T01) implementer 2026-08-30 06:22:26 +00:00
  • f3cd70e45d docs: document the lint command and the CI quality baseline stages (E00-S05-T01) implementer 2026-08-30 06:12:25 +00:00
  • 89fe0b52e6 ci: run the required PR quality stages in order (E00-S05-T01) implementer 2026-08-30 06:12:25 +00:00
  • d9b493498e test: lock in the CI quality baseline stage order with the ci-stages suite (E00-S05-T01) implementer 2026-08-30 06:12:25 +00:00
  • e6d28f94f0 feat: add dependency-free formatting/lint policy suite and root lint script (E00-S05-T01) implementer 2026-08-30 06:12:25 +00:00
  • dce6cac05b [E00-S04-T05] .env.example contains placeholders only (#404) bot-implementer 2026-08-30 05:47:42 +00:00
  • 1e0f628651 Merge pull request '[E00-S04-T04] No module reads process.env except configuration adapter' (#403) from feature/185 into main kpcto 2026-08-30 05:02:48 +00:00
  • ffda249617 docs: document HOST validation and bind control (E00-S04-T04) implementer 2026-08-30 04:42:06 +00:00
  • 408f33e4e9 test: lock in HOST validation and bind-interface control (E00-S04-T04) implementer 2026-08-30 04:42:03 +00:00
  • 345ceccfad feat: HOST validated at the adapter boundary and controls the actual bind interface (E00-S04-T04) implementer 2026-08-30 04:41:53 +00:00
  • 73a1ae88cd chore: drop unused mkdirSync import in the env-adapter suite (E00-S04-T04) implementer 2026-08-30 04:18:11 +00:00
  • b9345e205c docs: document the environment adapter in the non-container guide (E00-S04-T04) implementer 2026-08-30 04:17:22 +00:00
  • 3214807c9d test: update suites locked to the old direct process.env wiring for the adapter (E00-S04-T04) implementer 2026-08-30 04:17:22 +00:00
  • 20173a8241 test: lock in the env adapter as the single owner of process.env with static scan, mutation and deterministic probes (E00-S04-T04) implementer 2026-08-30 04:17:22 +00:00
  • 1214a33adb feat: server loads all settings through the config environment adapter (E00-S04-T04) implementer 2026-08-30 04:17:19 +00:00
  • 7aeeeaaa97 feat: environment adapter is the single owner of process.env reads (E00-S04-T04) implementer 2026-08-30 04:17:19 +00:00
  • 072f5c5785 Merge pull request '[E00-S04-T03] Secrets automatically redact from logs' (#402) from feature/184 into main kpcto 2026-08-30 04:00:42 +00:00
  • ae900589c3 docs: document the redacted resolved-configuration log in the non-container guide (E00-S04-T03) implementer 2026-08-30 03:52:55 +00:00
  • 60bd097b70 test: lock in secret redaction from logs with static, mutation and deterministic probes (E00-S04-T03) implementer 2026-08-30 03:52:55 +00:00
  • 6458013306 feat: secrets redact from logs via config redaction layer and server redacting logger (E00-S04-T03) implementer 2026-08-30 03:52:52 +00:00
  • ebb9d4f421 Merge pull request '[E00-S04-T02] Missing required setting gives field-specific startup error' (#397) from feature/183 into main kpcto 2026-08-30 03:32:23 +00:00
  • 873264004a docs: document the required EPPP_SESSION_SECRET and the startup error in the non-container guide (E00-S04-T02) implementer 2026-08-30 03:00:47 +00:00
  • 1a9fd592d9 test: lock in the field-specific startup error with static, mutation and deterministic probes (E00-S04-T02) implementer 2026-08-30 03:00:45 +00:00
  • 0ce790fca3 feat: missing required setting fails startup with a field-specific error (E00-S04-T02) implementer 2026-08-30 03:00:40 +00:00
  • ecc945ce65 Merge pull request '[E00-S04-T01] TypeBox/Ajv schema' (#396) from feature/182 into main kpcto 2026-08-30 02:42:55 +00:00
  • 5eff1580ac docs: document the config package in the non-container guide (E00-S04-T01) implementer 2026-08-30 02:29:52 +00:00
  • ce0d3c0d44 test: lock in the config schema with static, mutation and deterministic probes (E00-S04-T01) implementer 2026-08-30 02:29:52 +00:00
  • bcea489391 feat: add TypeBox/Ajv config schema package to the workspace (E00-S04-T01) implementer 2026-08-30 02:29:52 +00:00
  • 6a65d4c789 Merge pull request '[E00-S03-T06] App does not report ready before migrations complete' (#395) from feature/181 into main kpcto 2026-08-30 02:09:49 +00:00
  • 5b0bded4b4 docs: document the readiness gate in the non-container guide (E00-S03-T06) implementer 2026-08-30 01:56:22 +00:00
  • c20110be15 test: lock in the app readiness gate with static, deterministic and real-stack probes (E00-S03-T06) implementer 2026-08-30 01:56:22 +00:00
  • ebdee5daa5 feat: app reports ready only after the startup migration run (E00-S03-T06) implementer 2026-08-30 01:56:19 +00:00
  • e8cafa090b Merge pull request '[E00-S03-T05] Migration failure produces structured diagnostic' (#394) from feature/180 into main kpcto 2026-08-30 01:31:48 +00:00
  • bb3a68648a fix: inject the ledger into MigrationRunner (type-only import) so probes load the committed module under type stripping implementer 2026-08-30 01:24:14 +00:00
  • 52190d082c test: lock in the migration failure diagnostic (E00-S03-T05) implementer 2026-08-30 01:17:23 +00:00
  • f6d407394d feat: add migration runner with structured failure diagnostic (E00-S03-T05) implementer 2026-08-30 01:17:23 +00:00
  • 4f169ace4e Merge pull request '[E00-S03-T04] Advisory lock prevents concurrent migration runners' (#393) from feature/179 into main kpcto 2026-08-30 01:00:39 +00:00
  • cb1b161ce9 fix: destroy the connection on unlock failure so a still-locked session is never reused (E00-S03-T04) implementer 2026-08-30 00:49:56 +00:00
  • dac3679e33 fix: memoize in-flight acquire so concurrent acquire() is re-entrant-safe (E00-S03-T04) implementer 2026-08-30 00:29:20 +00:00
  • a2b98439e9 test: lock in the migration advisory lock with static + real-stack probes (E00-S03-T04) implementer 2026-08-30 00:13:46 +00:00
  • 3f80063303 feat: add migration advisory lock to database-postgres (E00-S03-T04) implementer 2026-08-30 00:08:57 +00:00
  • 4552ca175e Merge pull request '[E00-S03-T03] Migration ledger created' (#392) from feature/178 into main kpcto 2026-08-29 23:37:16 +00:00
  • e52b19b1e7 test: lock in the migration ledger with static + real-stack probes (E00-S03-T03) implementer 2026-08-29 23:20:00 +00:00
  • 7f6450410e feat: add migration ledger to database-postgres (E00-S03-T03) implementer 2026-08-29 23:19:56 +00:00
  • 33ac04e795 Merge pull request '[E00-S03-T02] pg/Kysely imports isolated to database-postgres' (#391) from feature/177 into main kpcto 2026-08-29 23:04:53 +00:00
  • 09b7a40d00 fix: pin database-postgres driver to the golden tuple (pg 8.22.0, Kysely 0.29.4) implementer 2026-08-29 11:27:29 +00:00
  • 97c5306768 test: lock in pg/Kysely import isolation to database-postgres (E00-S03-T02) implementer 2026-08-29 11:14:15 +00:00
  • 5c202ba21e feat: add database-postgres driver boundary package (E00-S03-T02) implementer 2026-08-29 11:14:14 +00:00
  • 797a1b8dc2 Merge pull request '[E00-S03-T01] PostgreSQL 18.6 container' (#390) from feature/176 into main kpcto 2026-08-29 11:04:31 +00:00
  • a78ffea4c5 test: lock in the PostgreSQL 18.6 container criteria (E00-S03-T01) implementer 2026-08-29 10:45:00 +00:00
  • 4cd68c9193 feat: pin the database container to PostgreSQL 18.6 (E00-S03-T01) implementer 2026-08-29 10:45:00 +00:00
  • 38c17f0e7a Merge pull request '[E00-S02-T08] Secrets are not embedded in image' (#389) from feature/175 into main kpcto 2026-08-29 10:40:36 +00:00
  • 719fb4380b test: plant nested marker files in the layer-scan probe (E00-S02-T08) implementer 2026-08-29 01:53:57 +00:00
  • f00c13d57a fix: make .dockerignore exclusions apply at any depth (E00-S02-T08) implementer 2026-08-29 01:49:07 +00:00
  • b3ad55efe8 test: lock in no-secrets-in-image criteria (E00-S02-T08) implementer 2026-08-29 01:28:26 +00:00
  • 0938da8a73 feat: keep secrets out of the app image (E00-S02-T08) implementer 2026-08-29 01:28:26 +00:00
  • 25d7dc836b Merge pull request '[E00-S02-T07] amd64 and arm64 are build targets' (#388) from feature/174 into main kpcto 2026-08-29 01:20:02 +00:00
  • f663fd23eb test: lock in amd64/arm64 build target criteria (E00-S02-T07) bot-implementer 2026-08-29 01:13:30 +00:00
  • 5bbcfa9b6d feat: make amd64 and arm64 image build targets (E00-S02-T07) bot-implementer 2026-08-29 01:13:30 +00:00
  • 8a01b195f3 Merge pull request '[E00-S02-T06] App root filesystem read-only except mounts/tmpfs' (#387) from feature/173 into main kpcto 2026-08-29 01:00:33 +00:00
  • 41428b083e test: lock in read-only rootfs criteria (E00-S02-T06) implementer 2026-08-29 00:53:40 +00:00
  • 7ce3ba53cf feat: make the app root filesystem read-only (E00-S02-T06) implementer 2026-08-29 00:53:40 +00:00
  • 7cf7994fa8 Merge pull request '[E00-S02-T05] App runs non-root' (#386) from feature/172 into main kpcto 2026-08-29 00:48:28 +00:00
  • 6e8ba388a6 test: lock in non-root execution criteria (E00-S02-T05) implementer 2026-08-29 00:41:16 +00:00
  • a4cf365098 feat: run the app image as a non-root user (E00-S02-T05) implementer 2026-08-29 00:41:10 +00:00
  • a634168d9c Merge pull request '[E00-S02-T04] DB volume persists across restart/recreate' (#385) from feature/171 into main kpcto 2026-08-29 00:35:07 +00:00
  • b51af02d06 test: lock in DB volume persistence criteria (E00-S02-T04) implementer 2026-08-29 00:32:15 +00:00
  • 3dd80f91fe feat: persist the database volume across restart/recreate (E00-S02-T04) implementer 2026-08-29 00:32:15 +00:00
  • 6a295556ed Merge pull request '[E00-S02-T03] App health endpoint succeeds' (#384) from feature/170 into main kpcto 2026-08-29 00:27:16 +00:00
  • dfb7b0e952 fix: handle quoted scoped keys in frozen-install probe (E00-S02-T03) implementer 2026-08-29 00:23:27 +00:00
  • f7257f9258 test: lock in app health endpoint criteria (E00-S02-T03) implementer 2026-08-29 00:21:34 +00:00
  • 9c049ce6b5 feat: app health endpoint succeeds (E00-S02-T03) implementer 2026-08-29 00:21:34 +00:00
  • 9937268d64 Merge pull request '[E00-S02-T02] PostgreSQL health gates app start' (#383) from feature/169 into main kpcto 2026-08-29 00:07:31 +00:00
  • 59a102bee3 feat: PostgreSQL health gates app start (E00-S02-T02) implementer 2026-08-28 23:59:45 +00:00
  • 9e2ac55400 Merge pull request '[E00-S02-T01] docker compose up -d starts DB + app' (#382) from feature/168 into main kpcto 2026-08-28 23:55:18 +00:00
  • 3bbea68e6c fix: align app/db image bases with documented stack (E00-S02-T01) implementer 2026-08-28 23:45:18 +00:00
  • 3be575818d feat: docker compose up -d starts DB + app (E00-S02-T01) implementer 2026-08-28 23:35:05 +00:00
  • 2b293e2927 Merge pull request '[E00-S01-T14] No core package imports a concrete extension' (#381) from feature/167 into main kpcto 2026-08-28 23:26:41 +00:00
  • 27851fcaeb test: lock in no core package imports a concrete extension (E00-S01-T14) implementer 2026-08-28 23:24:02 +00:00
  • 3c287d0a41 Merge pull request '[E00-S01-T13] Clean clone installs with frozen lockfile' (#380) from feature/166 into main kpcto 2026-08-28 23:15:14 +00:00
  • ca9e0ffaf6 test: lock in clean-clone frozen lockfile install (E00-S01-T13) implementer 2026-08-28 23:10:26 +00:00
  • c8693fe0b7 Merge pull request '[E00-S01-T12] Root commands exist for build/test/typecheck' (#379) from feature/165 into main kpcto 2026-08-28 23:01:50 +00:00