2025-10-02 - 2026-10-02

Overview

50 Active Pull Requests
356 Active Issues
Excluding merges, 2 authors have pushed 29 commits to main and 137 commits to all branches. On main, 27 files have changed and there have been 605 additions and 1827 deletions.

50 Pull requests merged by 2 users

Merged #411 [E01-S01-T05] ADR: Kysely containment 2026-08-31 01:12:00 +00:00

Merged #412 [E01-S01-T06] ADR: React SSR 2026-08-31 01:11:45 +00:00

Merged #413 [E01-S01-T07] ADR: React/Vite admin 2026-08-31 01:11:36 +00:00

Merged #407 [E01-S01-T02] ADR: Node/TypeScript 2026-08-31 00:51:06 +00:00

Merged #410 [E01-S01-T03] ADR: Fastify 2026-08-31 00:43:51 +00:00

Merged #408 [E01-S01-T04] ADR: PostgreSQL 2026-08-31 00:34:01 +00:00

Merged #406 [E01-S01-T01] ADR: Modular monolith 2026-08-31 00:20:51 +00:00

Merged #405 [E00-S05-T01] Implement CI quality baseline (required PR stages) 2026-08-31 00:07:03 +00:00

Merged #404 [E00-S04-T05] .env.example contains placeholders only 2026-08-30 05:47:44 +00:00

Merged #403 [E00-S04-T04] No module reads process.env except configuration adapter 2026-08-30 05:02:49 +00:00

Merged #402 [E00-S04-T03] Secrets automatically redact from logs 2026-08-30 04:00:44 +00:00

Merged #397 [E00-S04-T02] Missing required setting gives field-specific startup error 2026-08-30 03:32:24 +00:00

Merged #396 [E00-S04-T01] TypeBox/Ajv schema 2026-08-30 02:42:56 +00:00

Merged #395 [E00-S03-T06] App does not report ready before migrations complete 2026-08-30 02:09:51 +00:00

Merged #394 [E00-S03-T05] Migration failure produces structured diagnostic 2026-08-30 01:31:49 +00:00

Merged #393 [E00-S03-T04] Advisory lock prevents concurrent migration runners 2026-08-30 01:00:40 +00:00

Merged #392 [E00-S03-T03] Migration ledger created 2026-08-29 23:37:17 +00:00

Merged #391 [E00-S03-T02] pg/Kysely imports isolated to database-postgres 2026-08-29 23:04:54 +00:00

Merged #390 [E00-S03-T01] PostgreSQL 18.6 container 2026-08-29 11:04:32 +00:00

Merged #389 [E00-S02-T08] Secrets are not embedded in image 2026-08-29 10:40:37 +00:00

Merged #388 [E00-S02-T07] amd64 and arm64 are build targets 2026-08-29 01:20:03 +00:00

Merged #387 [E00-S02-T06] App root filesystem read-only except mounts/tmpfs 2026-08-29 01:00:34 +00:00

Merged #386 [E00-S02-T05] App runs non-root 2026-08-29 00:48:29 +00:00

Merged #385 [E00-S02-T04] DB volume persists across restart/recreate 2026-08-29 00:35:08 +00:00

Merged #384 [E00-S02-T03] App health endpoint succeeds 2026-08-29 00:27:17 +00:00

Merged #383 [E00-S02-T02] PostgreSQL health gates app start 2026-08-29 00:07:32 +00:00

Merged #382 [E00-S02-T01] docker compose up -d starts DB + app 2026-08-28 23:55:20 +00:00

Merged #381 [E00-S01-T14] No core package imports a concrete extension 2026-08-28 23:26:42 +00:00

Merged #380 [E00-S01-T13] Clean clone installs with frozen lockfile 2026-08-28 23:15:16 +00:00

Merged #379 [E00-S01-T12] Root commands exist for build/test/typecheck 2026-08-28 23:01:51 +00:00

Merged #378 [E00-S01-T11] apps/packages/extensions separated 2026-08-28 22:50:39 +00:00

Merged #377 [E00-S01-T10] Strict base tsconfig committed 2026-08-28 22:36:30 +00:00

Merged #376 [E00-S01-T09] TypeScript 6.0.3 exact dependency 2026-08-28 21:41:39 +00:00

Merged #375 [E00-S01-T08] Node engine restricted to 24.x 2026-08-28 09:18:24 +00:00

Merged #374 [E00-S01-T07] Commit and lock in pnpm 11.23.0 workspace 2026-08-28 09:07:31 +00:00

Merged #373 [E00-S01-T06] Document local non-container developer path 2026-08-28 08:59:03 +00:00

Merged #372 [E00-S01-T05] Add root build/test scripts 2026-08-28 08:48:11 +00:00

Merged #371 [E00-S01-T04] Add dependency-boundary rule/test 2026-08-28 08:32:09 +00:00

Merged #370 [E00-S01-T03] Configure ESM package boundaries 2026-08-28 08:21:10 +00:00

Merged #369 [E00-S01-T02] Implement tsconfig.base.json 2026-08-28 08:08:10 +00:00

Merged #368 [E00-S01-T01] Create workspace/package manifests 2026-08-27 23:47:59 +00:00

Merged #20 [Story] Git-ignore local secrets and environment files 2026-08-26 21:37:39 +00:00

Merged #18 Update .gitea/workflows/ci.yml 2026-08-26 18:18:02 +00:00

Merged #17 Update .gitea/workflows/ci.yml 2026-08-26 18:02:21 +00:00

Merged #16 Update .gitea/workflows/ci.yml 2026-08-26 17:57:21 +00:00

Merged #15 [Story] Newsletter signup (serverless) 2026-08-26 11:44:11 +00:00

Merged #13 [Story] Update home page intro copy 2026-08-25 18:59:50 +00:00

Merged #11 [Story] Reading list page 2026-08-25 17:14:33 +00:00

Merged #9 [Story] Reading list page 2026-08-25 12:33:22 +00:00

Merged #7 feature/5 2026-08-25 11:17:56 +00:00

51 Issues closed from 3 users

Closed #193 [E01-S01-T06] ADR: React SSR 2026-08-31 01:11:45 +00:00

Closed #189 [E01-S01-T02] ADR: Node/TypeScript 2026-08-31 00:51:07 +00:00

Closed #401 Final Review Assessment for PR #397 2026-08-31 00:48:40 +00:00

Closed #399 PR Review 2026-08-31 00:48:39 +00:00

Closed #400 PR #397 Review for Issue #183 2026-08-31 00:48:39 +00:00

Closed #398 PR Review Comment 2026-08-31 00:48:39 +00:00

Closed #190 [E01-S01-T03] ADR: Fastify 2026-08-31 00:43:51 +00:00

Closed #191 [E01-S01-T04] ADR: PostgreSQL 2026-08-31 00:34:02 +00:00

Closed #409 [security] Review of PR #408 — in progress 2026-08-31 00:29:18 +00:00

Closed #188 [E01-S01-T01] ADR: Modular monolith 2026-08-31 00:20:52 +00:00

Closed #187 [E00-S05-T01] Implement CI quality baseline (required PR stages) 2026-08-31 00:07:17 +00:00

Closed #186 [E00-S04-T05] .env.example contains placeholders only 2026-08-30 05:49:01 +00:00

Closed #185 [E00-S04-T04] No module reads process.env except configuration adapter 2026-08-30 05:03:00 +00:00

Closed #184 [E00-S04-T03] Secrets automatically redact from logs 2026-08-30 04:00:54 +00:00

Closed #183 [E00-S04-T02] Missing required setting gives field-specific startup error 2026-08-30 03:32:34 +00:00

Closed #182 [E00-S04-T01] TypeBox/Ajv schema 2026-08-30 02:44:06 +00:00

Closed #181 [E00-S03-T06] App does not report ready before migrations complete 2026-08-30 02:12:02 +00:00

Closed #180 [E00-S03-T05] Migration failure produces structured diagnostic 2026-08-30 01:32:59 +00:00

Closed #179 [E00-S03-T04] Advisory lock prevents concurrent migration runners 2026-08-30 01:03:52 +00:00

Closed #178 [E00-S03-T03] Migration ledger created 2026-08-29 23:41:28 +00:00

Closed #177 [E00-S03-T02] pg/Kysely imports isolated to database-postgres 2026-08-29 23:05:02 +00:00

Closed #176 [E00-S03-T01] PostgreSQL 18.6 container 2026-08-29 11:04:39 +00:00

Closed #175 [E00-S02-T08] Secrets are not embedded in image 2026-08-29 10:40:48 +00:00

Closed #174 [E00-S02-T07] amd64 and arm64 are build targets 2026-08-29 01:20:10 +00:00

Closed #173 [E00-S02-T06] App root filesystem read-only except mounts/tmpfs 2026-08-29 01:03:47 +00:00

Closed #172 [E00-S02-T05] App runs non-root 2026-08-29 00:48:36 +00:00

Closed #171 [E00-S02-T04] DB volume persists across restart/recreate 2026-08-29 00:35:17 +00:00

Closed #170 [E00-S02-T03] App health endpoint succeeds 2026-08-29 00:27:24 +00:00

Closed #169 [E00-S02-T02] PostgreSQL health gates app start 2026-08-29 00:09:42 +00:00

Closed #168 [E00-S02-T01] docker compose up -d starts DB + app 2026-08-28 23:55:27 +00:00

Closed #167 [E00-S01-T14] No core package imports a concrete extension 2026-08-28 23:26:51 +00:00

Closed #166 [E00-S01-T13] Clean clone installs with frozen lockfile 2026-08-28 23:16:25 +00:00

Closed #165 [E00-S01-T12] Root commands exist for build/test/typecheck 2026-08-28 23:01:58 +00:00

Closed #164 [E00-S01-T11] apps/packages/extensions separated 2026-08-28 22:50:45 +00:00

Closed #163 [E00-S01-T10] Strict base tsconfig committed 2026-08-28 22:37:40 +00:00

Closed #162 [E00-S01-T09] TypeScript 6.0.3 exact dependency 2026-08-28 21:41:47 +00:00

Closed #161 [E00-S01-T08] Node engine restricted to 24.x 2026-08-28 09:19:32 +00:00

Closed #160 [E00-S01-T07] pnpm 11.23.0 workspace committed 2026-08-28 09:07:37 +00:00

Closed #159 [E00-S01-T06] Document local non-container developer path 2026-08-28 08:59:03 +00:00

Closed #158 [E00-S01-T05] Add root build/test scripts 2026-08-28 08:48:11 +00:00

Closed #157 [E00-S01-T04] Add dependency-boundary rule/test 2026-08-28 08:32:09 +00:00

Closed #156 [E00-S01-T03] Configure ESM package boundaries 2026-08-28 08:21:10 +00:00

Closed #155 [E00-S01-T02] Implement tsconfig.base.json 2026-08-28 08:08:10 +00:00

Closed #154 [E00-S01-T01] Create workspace/package manifests 2026-08-27 23:47:59 +00:00

Closed #19 [Story] Git-ignore local secrets and environment files 2026-08-26 21:37:40 +00:00

Closed #21 security-review-started: PR #20 (feature/19) 2026-08-26 21:20:19 +00:00

Closed #14 [Story] Newsletter signup (serverless) 2026-08-26 17:36:24 +00:00

Closed #12 Change content 2026-08-25 19:00:07 +00:00

Closed #10 [Story] Reading list page 2026-08-25 17:15:00 +00:00

Closed #8 [Story] Reading list page 2026-08-25 12:34:22 +00:00

Closed #5 [Story] Contact page 2026-08-25 11:18:36 +00:00

356 Issues created by 1 user

Opened #5 [Story] Contact page 2026-08-25 10:33:39 +00:00

Opened #8 [Story] Reading list page 2026-08-25 12:21:38 +00:00

Opened #10 [Story] Reading list page 2026-08-25 15:10:07 +00:00

Opened #12 Change content 2026-08-25 18:47:12 +00:00

Opened #14 [Story] Newsletter signup (serverless) 2026-08-25 19:10:47 +00:00

Opened #19 [Story] Git-ignore local secrets and environment files 2026-08-26 19:31:46 +00:00

Opened #21 security-review-started: PR #20 (feature/19) 2026-08-26 21:19:28 +00:00

Opened #23 [I-02] Extensibility Platform 2026-08-26 23:51:56 +00:00

Opened #22 [I-01] Publishing Core 2026-08-26 23:51:56 +00:00

Opened #25 [I-04] Visitor Personalisation 2026-08-26 23:51:57 +00:00

Opened #24 [I-03] Administration 2026-08-26 23:51:57 +00:00

Opened #26 [I-05] Operational Simplicity 2026-08-26 23:51:58 +00:00

Opened #27 [I-06] Extension Ecosystem 2026-08-26 23:51:58 +00:00

Opened #29 [E01] Architecture governance 2026-08-26 23:54:44 +00:00

Opened #28 [E00] Repository and runtime foundation 2026-08-26 23:54:44 +00:00

Opened #31 [E03] Site model 2026-08-26 23:54:45 +00:00

Opened #30 [E02] Minimal extension runtime 2026-08-26 23:54:45 +00:00

Opened #33 [E05] Administrator security 2026-08-26 23:54:46 +00:00

Opened #32 [E04] Blog content 2026-08-26 23:54:46 +00:00

Opened #34 [E06] Minimal authoring 2026-08-26 23:54:47 +00:00

Opened #35 [E07] Amber theme and public SSR 2026-08-26 23:54:47 +00:00

Opened #37 [E09] Home administration 2026-08-26 23:55:08 +00:00

Opened #36 [E08] Home composition 2026-08-26 23:55:08 +00:00

Opened #38 [E10] Site identity/navigation/footer 2026-08-26 23:55:09 +00:00

Opened #40 [E12] Schema-driven extension settings 2026-08-26 23:55:10 +00:00

Opened #39 [E11] Extension API v1 2026-08-26 23:55:10 +00:00

Opened #42 [E14] Disable/re-enable safety 2026-08-26 23:55:11 +00:00

Opened #41 [E13] Extension migrations 2026-08-26 23:55:11 +00:00

Opened #43 [E15] Theme runtime 2026-08-26 23:55:12 +00:00

Opened #44 [E16] Theme contract verification 2026-08-26 23:55:13 +00:00

Opened #46 [E18] Public theme selector 2026-08-26 23:57:45 +00:00

Opened #45 [E17] Generic visitor preferences 2026-08-26 23:57:45 +00:00

Opened #47 [E19] First-run setup 2026-08-26 23:57:46 +00:00

Opened #48 [E20] Backup/restore 2026-08-26 23:57:46 +00:00

Opened #49 [E21] Export/import 2026-08-26 23:57:47 +00:00

Opened #51 [E23] Accessibility 2026-08-26 23:57:48 +00:00

Opened #50 [E22] Upgrade safety 2026-08-26 23:57:48 +00:00

Opened #53 [E25] Performance 2026-08-26 23:57:49 +00:00

Opened #52 [E24] Security 2026-08-26 23:57:49 +00:00

Opened #55 [E29] Media pipeline 2026-08-26 23:57:50 +00:00

Opened #54 [E26] Failure-mode verification 2026-08-26 23:57:50 +00:00

Opened #56 [E30] Embeds 2026-08-26 23:57:51 +00:00

Opened #57 [E31] Native charts and diagrams 2026-08-26 23:57:52 +00:00

Opened #58 [E00-S01] Workspace bootstrap 2026-08-26 23:59:55 +00:00

Opened #60 [E00-S03] PostgreSQL adapter and migration runner 2026-08-26 23:59:56 +00:00

Opened #59 [E00-S02] Docker Compose baseline 2026-08-26 23:59:56 +00:00

Opened #62 [E00-S05] CI quality baseline 2026-08-26 23:59:57 +00:00

Opened #61 [E00-S04] Configuration service 2026-08-26 23:59:57 +00:00

Opened #63 [E01-S01] ADR baseline 2026-08-26 23:59:59 +00:00

Opened #64 [E02-S01] Extension manifest loader 2026-08-27 00:00:33 +00:00

Opened #66 [E02-S03] Minimum registries 2026-08-27 00:00:34 +00:00

Opened #65 [E02-S02] Extension registry 2026-08-27 00:00:34 +00:00

Opened #67 [E03-S01] Site configuration persistence 2026-08-27 00:00:35 +00:00

Opened #68 [E04-S01] core.post content-type contribution 2026-08-27 00:00:36 +00:00

Opened #69 [E04-S02] Content repository/application commands 2026-08-27 00:00:36 +00:00

Opened #70 [E04-S03] Immutable revisions 2026-08-27 00:00:37 +00:00

Opened #72 [E05-S01] Administrator bootstrap 2026-08-27 00:00:38 +00:00

Opened #71 [E04-S04] Initial blocks 2026-08-27 00:00:38 +00:00

Opened #73 [E05-S02] Opaque DB-backed session 2026-08-27 00:00:39 +00:00

Opened #75 [E06-S01] Admin application shell 2026-08-27 00:00:40 +00:00

Opened #74 [E05-S03] CSRF protection 2026-08-27 00:00:40 +00:00

Opened #76 [E06-S02] Draft editor 2026-08-27 00:00:41 +00:00

Opened #78 [E07-S01] Theme API v1 minimum 2026-08-27 00:00:42 +00:00

Opened #77 [E06-S03] Publish action 2026-08-27 00:00:42 +00:00

Opened #79 [E07-S02] Amber extension (was Node) 2026-08-27 00:00:43 +00:00

Opened #80 [E07-S03] Article SSR 2026-08-27 00:00:44 +00:00

Opened #81 [E08-S01] PageComposition persistence 2026-08-27 00:01:06 +00:00

Opened #82 [E08-S02] Section registry 2026-08-27 00:01:07 +00:00

Opened #83 [E08-S03] Site intro section 2026-08-27 00:01:07 +00:00

Opened #84 [E08-S04] Post list section 2026-08-27 00:01:08 +00:00

Opened #85 [E08-S05] Home SSR 2026-08-27 00:01:09 +00:00

Opened #86 [E09-S01] Section list/editor 2026-08-27 00:01:09 +00:00

Opened #88 [E09-S03] Enable/disable 2026-08-27 00:01:10 +00:00

Opened #87 [E09-S02] Reorder 2026-08-27 00:01:10 +00:00

Opened #89 [E09-S04] Generic section settings form 2026-08-27 00:01:11 +00:00

Opened #90 [E10-S01] Edit site identity 2026-08-27 00:01:12 +00:00

Opened #91 [E10-S02] Navigation CRUD 2026-08-27 00:01:12 +00:00

Opened #92 [E10-S03] Footer configuration 2026-08-27 00:01:13 +00:00

Opened #93 [E11-S01] Publish manifest contract 2026-08-27 00:02:35 +00:00

Opened #94 [E11-S02] Publish extension context 2026-08-27 00:02:36 +00:00

Opened #95 [E11-S03] Compatibility validator 2026-08-27 00:02:36 +00:00

Opened #96 [E11-S04] Persist extension state 2026-08-27 00:02:37 +00:00

Opened #98 [E12-S02] Generic settings admin renderer 2026-08-27 00:02:38 +00:00

Opened #97 [E12-S01] Persist settings by extension ID 2026-08-27 00:02:38 +00:00

Opened #99 [E12-S03] Server validation 2026-08-27 00:02:39 +00:00

Opened #100 [E13-S01] Register migrations 2026-08-27 00:02:40 +00:00

Opened #101 [E13-S02] Migration lock/transaction 2026-08-27 00:02:40 +00:00

Opened #102 [E13-S03] Error state 2026-08-27 00:02:41 +00:00

Opened #103 [E14-S01] Disable extension 2026-08-27 00:02:42 +00:00

Opened #104 [E14-S02] Missing block fallback 2026-08-27 00:02:42 +00:00

Opened #105 [E14-S03] Re-enable 2026-08-27 00:02:43 +00:00

Opened #106 [E15-S01] Complete ThemeRegistry 2026-08-27 00:02:56 +00:00

Opened #107 [E15-S02] Amber extraction audit (was Node) 2026-08-27 00:02:57 +00:00

Opened #108 [E15-S03] Theme settings 2026-08-27 00:02:57 +00:00

Opened #110 [E16-S02] Test Light theme 2026-08-27 00:02:58 +00:00

Opened #109 [E16-S01] Theme component gallery 2026-08-27 00:02:58 +00:00

Opened #111 [E16-S03] Theme failure scenarios 2026-08-27 00:02:59 +00:00

Opened #112 [E29-S01] Upload endpoint and validation 2026-08-27 00:03:23 +00:00

Opened #114 [E29-S03] core.image end to end 2026-08-27 00:03:24 +00:00

Opened #113 [E29-S02] Image processing job 2026-08-27 00:03:24 +00:00

Opened #115 [E29-S04] Video upload and core.video 2026-08-27 00:03:25 +00:00

Opened #116 [E30-S01] Hardened fetch service (core) 2026-08-27 00:03:25 +00:00

Opened #117 [E30-S02] Provider allowlist and admin page 2026-08-27 00:03:26 +00:00

Opened #118 [E30-S03] oEmbed resolution, snapshot cache, click-to-load island 2026-08-27 00:03:27 +00:00

Opened #119 [E30-S04] CSP frame-src generation from the provider table 2026-08-27 00:03:27 +00:00

Opened #121 [E31-S02] core.diagram Mermaid server-side rendering 2026-08-27 00:03:28 +00:00

Opened #120 [E31-S01] core.chart renderers (line, bar, area, scatter) 2026-08-27 00:03:28 +00:00

Opened #122 [E31-S03] Accessibility contract 2026-08-27 00:03:29 +00:00

Opened #124 [E17-S02] Preference service 2026-08-27 00:03:44 +00:00

Opened #123 [E17-S01] Anonymous preference identity 2026-08-27 00:03:44 +00:00

Opened #125 [E17-S03] Owner theme policy 2026-08-27 00:03:45 +00:00

Opened #126 [E18-S01] Client island 2026-08-27 00:03:45 +00:00

Opened #127 [E18-S02] Preference mutation endpoint 2026-08-27 00:03:46 +00:00

Opened #129 [E18-S04] Disable fallback 2026-08-27 00:03:47 +00:00

Opened #128 [E18-S03] SSR resolution 2026-08-27 00:03:47 +00:00

Opened #130 [E19-S01] Detect uninitialised installation 2026-08-27 00:04:09 +00:00

Opened #132 [E19-S03] Initial site wizard 2026-08-27 00:04:10 +00:00

Opened #131 [E19-S02] Create administrator 2026-08-27 00:04:10 +00:00

Opened #133 [E20-S01] Backup procedure/command 2026-08-27 00:04:11 +00:00

Opened #134 [E20-S02] Restore procedure 2026-08-27 00:04:11 +00:00

Opened #135 [E20-S03] Automated restore smoke 2026-08-27 00:04:12 +00:00

Opened #137 [E21-S02] Content/config export 2026-08-27 00:04:13 +00:00

Opened #136 [E21-S01] Export format v1 2026-08-27 00:04:13 +00:00

Opened #139 [E21-S04] Missing dependency report 2026-08-27 00:04:14 +00:00

Opened #138 [E21-S03] Import validation 2026-08-27 00:04:14 +00:00

Opened #140 [E22-S01] Release manifest 2026-08-27 00:04:15 +00:00

Opened #141 [E22-S02] Pre-upgrade check 2026-08-27 00:04:16 +00:00

Opened #142 [E22-S03] Migration recovery documentation 2026-08-27 00:04:16 +00:00

Opened #143 [E23-S01] Keyboard journey suite 2026-08-27 00:04:36 +00:00

Opened #146 [E23-S04] Extension accessibility checklist 2026-08-27 00:04:37 +00:00

Opened #145 [E23-S03] Focus/semantic audit 2026-08-27 00:04:37 +00:00

Opened #144 [E23-S02] Reduced motion 2026-08-27 00:04:37 +00:00

Opened #147 [E24-S01] Threat model 2026-08-27 00:04:38 +00:00

Opened #148 [E24-S02] Rate limits 2026-08-27 00:04:39 +00:00

Opened #150 [E24-S04] Dependency/security response process 2026-08-27 00:04:40 +00:00

Opened #149 [E24-S03] CSP/security headers 2026-08-27 00:04:40 +00:00

Opened #151 [E25-S01] Zero-JS public assertion 2026-08-27 00:04:41 +00:00

Opened #152 [E25-S02] Query-count regression 2026-08-27 00:04:41 +00:00

Opened #153 [E25-S03] Reference benchmark 2026-08-27 00:04:42 +00:00

Opened #154 [E00-S01-T01] Create workspace/package manifests 2026-08-27 00:06:28 +00:00

Opened #155 [E00-S01-T02] Implement tsconfig.base.json 2026-08-27 00:06:28 +00:00

Opened #157 [E00-S01-T04] Add dependency-boundary rule/test 2026-08-27 00:06:29 +00:00

Opened #156 [E00-S01-T03] Configure ESM package boundaries 2026-08-27 00:06:29 +00:00

Opened #158 [E00-S01-T05] Add root build/test scripts 2026-08-27 00:06:30 +00:00

Opened #159 [E00-S01-T06] Document local non-container developer path 2026-08-27 00:06:32 +00:00

Opened #160 [E00-S01-T07] pnpm 11.23.0 workspace committed 2026-08-27 00:06:34 +00:00

Opened #162 [E00-S01-T09] TypeScript 6.0.3 exact dependency 2026-08-27 00:06:35 +00:00

Opened #161 [E00-S01-T08] Node engine restricted to 24.x 2026-08-27 00:06:35 +00:00

Opened #163 [E00-S01-T10] Strict base tsconfig committed 2026-08-27 00:06:36 +00:00

Opened #164 [E00-S01-T11] apps/packages/extensions separated 2026-08-27 00:06:37 +00:00

Opened #165 [E00-S01-T12] Root commands exist for build/test/typecheck 2026-08-27 00:06:39 +00:00

Opened #166 [E00-S01-T13] Clean clone installs with frozen lockfile 2026-08-27 00:06:39 +00:00

Opened #167 [E00-S01-T14] No core package imports a concrete extension 2026-08-27 00:06:40 +00:00

Opened #168 [E00-S02-T01] docker compose up -d starts DB + app 2026-08-27 00:07:09 +00:00

Opened #169 [E00-S02-T02] PostgreSQL health gates app start 2026-08-27 00:07:10 +00:00

Opened #170 [E00-S02-T03] App health endpoint succeeds 2026-08-27 00:07:11 +00:00

Opened #171 [E00-S02-T04] DB volume persists across restart/recreate 2026-08-27 00:07:12 +00:00

Opened #172 [E00-S02-T05] App runs non-root 2026-08-27 00:07:13 +00:00

Opened #173 [E00-S02-T06] App root filesystem read-only except mounts/tmpfs 2026-08-27 00:07:14 +00:00

Opened #174 [E00-S02-T07] amd64 and arm64 are build targets 2026-08-27 00:07:15 +00:00

Opened #175 [E00-S02-T08] Secrets are not embedded in image 2026-08-27 00:07:17 +00:00

Opened #176 [E00-S03-T01] PostgreSQL 18.6 container 2026-08-27 00:07:18 +00:00

Opened #177 [E00-S03-T02] pg/Kysely imports isolated to database-postgres 2026-08-27 00:07:20 +00:00

Opened #178 [E00-S03-T03] Migration ledger created 2026-08-27 00:07:21 +00:00

Opened #179 [E00-S03-T04] Advisory lock prevents concurrent migration runners 2026-08-27 00:07:22 +00:00

Opened #180 [E00-S03-T05] Migration failure produces structured diagnostic 2026-08-27 00:07:23 +00:00

Opened #181 [E00-S03-T06] App does not report ready before migrations complete 2026-08-27 00:07:25 +00:00

Opened #182 [E00-S04-T01] TypeBox/Ajv schema 2026-08-27 00:08:42 +00:00

Opened #184 [E00-S04-T03] Secrets automatically redact from logs 2026-08-27 00:08:43 +00:00

Opened #183 [E00-S04-T02] Missing required setting gives field-specific startup error 2026-08-27 00:08:43 +00:00

Opened #185 [E00-S04-T04] No module reads process.env except configuration adapter 2026-08-27 00:08:44 +00:00

Opened #186 [E00-S04-T05] .env.example contains placeholders only 2026-08-27 00:08:46 +00:00

Opened #187 [E00-S05-T01] Implement CI quality baseline (required PR stages) 2026-08-27 00:08:47 +00:00

Opened #188 [E01-S01-T01] ADR: Modular monolith 2026-08-27 00:09:09 +00:00

Opened #190 [E01-S01-T03] ADR: Fastify 2026-08-27 00:09:10 +00:00

Opened #189 [E01-S01-T02] ADR: Node/TypeScript 2026-08-27 00:09:10 +00:00

Opened #191 [E01-S01-T04] ADR: PostgreSQL 2026-08-27 00:09:11 +00:00

Opened #192 [E01-S01-T05] ADR: Kysely containment 2026-08-27 00:09:13 +00:00

Opened #193 [E01-S01-T06] ADR: React SSR 2026-08-27 00:09:14 +00:00

Opened #194 [E01-S01-T07] ADR: React/Vite admin 2026-08-27 00:09:15 +00:00

Opened #196 [E01-S01-T09] ADR: Theme contract 2026-08-27 00:09:16 +00:00

Opened #195 [E01-S01-T08] ADR: Extension API ownership 2026-08-27 00:09:16 +00:00

Opened #197 [E01-S01-T10] ADR: Page composition 2026-08-27 00:09:17 +00:00

Opened #198 [E01-S01-T11] ADR: Visitor preferences 2026-08-27 00:09:18 +00:00

Opened #199 [E01-S01-T12] ADR: Build-time trusted extensions 2026-08-27 00:09:19 +00:00

Opened #200 [E01-S01-T13] ADR: Docker Compose 2026-08-27 00:09:21 +00:00

Opened #201 [E01-S01-T14] ADR: Version/support policy 2026-08-27 00:09:21 +00:00

Opened #203 [E02-S01-T02] Validates manifest JSON Schema 2026-08-27 00:10:04 +00:00

Opened #202 [E02-S01-T01] Discovers built-in manifests 2026-08-27 00:10:04 +00:00

Opened #204 [E02-S01-T03] Globally unique extension IDs 2026-08-27 00:10:05 +00:00

Opened #205 [E02-S01-T04] Unsupported Extension API rejected 2026-08-27 00:10:05 +00:00

Opened #206 [E02-S01-T05] Duplicate ID is deterministic startup/activation error 2026-08-27 00:10:06 +00:00

Opened #207 [E02-S01-T06] Diagnostic identifies package and constraint 2026-08-27 00:10:06 +00:00

Opened #208 [E02-S02-T01] Implement ExtensionRegistry API 2026-08-27 00:10:07 +00:00

Opened #209 [E02-S03-T01] Implement minimum registries 2026-08-27 00:10:08 +00:00

Opened #210 [E03-S01-T01] Values stored and runtime validated 2026-08-27 00:10:08 +00:00

Opened #212 [E03-S01-T03] Invalid canonical URL rejected 2026-08-27 00:10:09 +00:00

Opened #211 [E03-S01-T02] Public rendering reads service interface 2026-08-27 00:10:09 +00:00

Opened #213 [E03-S01-T04] Bootstrap defaults only in bootstrap/config code 2026-08-27 00:10:10 +00:00

Opened #215 [E04-S01-T02] Core persistence stores registered type without blog branch 2026-08-27 00:12:29 +00:00

Opened #216 [E04-S01-T03] Unknown/unregistered type cannot be created/published 2026-08-27 00:12:29 +00:00

Opened #214 [E04-S01-T01] core-blog registers core.post 2026-08-27 00:12:29 +00:00

Opened #217 [E04-S01-T04] Ownership by extension recorded 2026-08-27 00:12:30 +00:00

Opened #219 [E04-S02-T02] Slug uniqueness enforced at DB and application layers 2026-08-27 00:12:31 +00:00

Opened #218 [E04-S02-T01] Implement content commands 2026-08-27 00:12:31 +00:00

Opened #220 [E04-S02-T03] Public query never returns draft/deleted entry 2026-08-27 00:12:32 +00:00

Opened #221 [E04-S02-T04] Publish state transition validated 2026-08-27 00:12:33 +00:00

Opened #222 [E04-S02-T05] Timestamps UTC/TIMESTAMPTZ 2026-08-27 00:12:33 +00:00

Opened #223 [E04-S03-T01] Edit creates revision 2026-08-27 00:14:52 +00:00

Opened #225 [E04-S03-T03] Entry points to current revision 2026-08-27 00:14:53 +00:00

Opened #224 [E04-S03-T02] Revision number unique per content item 2026-08-27 00:14:53 +00:00

Opened #226 [E04-S03-T04] Transaction prevents orphan/inconsistent current revision 2026-08-27 00:14:54 +00:00

Opened #228 [E04-S04-T01] Invalid props rejected 2026-08-27 00:14:55 +00:00

Opened #227 [E04-S03-T05] Prior revision remains readable to admin service 2026-08-27 00:14:55 +00:00

Opened #229 [E04-S04-T02] Unknown block renders controlled fallback 2026-08-27 00:14:56 +00:00

Opened #230 [E04-S04-T03] HTML injection attempts remain text 2026-08-27 00:14:56 +00:00

Opened #231 [E04-S04-T04] Add core.markdown block (v1.1) 2026-08-27 00:14:57 +00:00

Opened #232 [E05-S01-T01] No universal/default password 2026-08-27 00:17:15 +00:00

Opened #233 [E05-S01-T02] Password hashed with Argon2id 2026-08-27 00:17:15 +00:00

Opened #235 [E05-S01-T04] Secret/password never appears in logs 2026-08-27 00:17:16 +00:00

Opened #234 [E05-S01-T03] Bootstrap per documented first-run path 2026-08-27 00:17:16 +00:00

Opened #236 [E05-S02-T01] >=256-bit random raw token 2026-08-27 00:17:17 +00:00

Opened #237 [E05-S02-T02] Only lookup hash stored 2026-08-27 00:17:18 +00:00

Opened #238 [E05-S02-T03] Secure/HttpOnly/SameSite attributes in production 2026-08-27 00:17:18 +00:00

Opened #239 [E05-S02-T04] Logout revokes server session 2026-08-27 00:17:19 +00:00

Opened #240 [E05-S02-T05] Expiration enforced server-side 2026-08-27 00:17:20 +00:00

Opened #241 [E05-S02-T06] Admin API returns 401 to anonymous caller 2026-08-27 00:17:20 +00:00

Opened #242 [E05-S03-T01] CSRF protection with test coverage 2026-08-27 00:17:36 +00:00

Opened #243 [E06-S01-T01] Admin application shell screens 2026-08-27 00:17:36 +00:00

Opened #244 [E06-S02-T01] Server is source of validation truth 2026-08-27 00:17:37 +00:00

Opened #245 [E06-S02-T02] Failed validation preserves editor state 2026-08-27 00:17:37 +00:00

Opened #246 [E06-S02-T03] Successful save can be re-opened 2026-08-27 00:17:38 +00:00

Opened #247 [E06-S03-T01] Invalid block prevents publish 2026-08-27 00:17:39 +00:00

Opened #249 [E06-S03-T03] Draft public URL returns 404 2026-08-27 00:17:40 +00:00

Opened #248 [E06-S03-T02] Duplicate slug returns conflict 2026-08-27 00:17:40 +00:00

Opened #250 [E06-S03-T04] Publish makes article visible atomically 2026-08-27 00:17:41 +00:00

Opened #251 [E07-S01-T01] Amber registers via ThemeDefinitionV1 2026-08-27 07:55:47 +00:00

Opened #252 [E07-S02-T01] Amber tokens live only in theme extension 2026-08-27 07:55:47 +00:00

Opened #253 [E07-S02-T02] Core renderer contains no Amber branch 2026-08-27 07:55:48 +00:00

Opened #254 [E07-S02-T03] Amber approximates source design language 2026-08-27 07:55:48 +00:00

Opened #255 [E07-S03-T01] Server returns article HTML 2026-08-27 07:55:49 +00:00

Opened #256 [E07-S03-T02] Works with JS disabled 2026-08-27 07:55:50 +00:00

Opened #257 [E07-S03-T03] Title + metadata + blocks render semantically 2026-08-27 07:55:50 +00:00

Opened #259 [E07-S03-T05] Missing/draft is 404 2026-08-27 07:55:51 +00:00

Opened #258 [E07-S03-T04] Canonical URL derived from site/post 2026-08-27 07:55:51 +00:00

Opened #260 [E07-S03-T06] Quote/code overflow/focus behaviours covered 2026-08-27 07:55:52 +00:00

Opened #261 [E08-S01-T01] Persist ordered versioned section instances 2026-08-27 08:00:27 +00:00

Opened #262 [E08-S02-T01] Register core.site-intro and core.post-list 2026-08-27 08:00:28 +00:00

Opened #265 [E08-S04-T02] Stable newest-first default 2026-08-27 08:00:29 +00:00

Opened #263 [E08-S03-T01] Site intro section settings 2026-08-27 08:00:29 +00:00

Opened #264 [E08-S04-T01] Published only 2026-08-27 08:00:29 +00:00

Opened #266 [E08-S04-T03] Empty state 2026-08-27 08:00:30 +00:00

Opened #267 [E08-S04-T04] Section uses content query service, not direct DB 2026-08-27 08:00:31 +00:00

Opened #268 [E08-S05-T01] Home renderer knows section contracts 2026-08-27 08:00:31 +00:00

Opened #269 [E09-S01-T01] Section list/editor 2026-08-27 08:00:32 +00:00

Opened #270 [E09-S02-T01] Section reorder 2026-08-27 08:00:33 +00:00

Opened #271 [E09-S03-T01] Section enable/disable 2026-08-27 08:00:33 +00:00

Opened #272 [E09-S04-T01] Generic section settings form 2026-08-27 08:00:34 +00:00

Opened #273 [E10-S01-T01] Edit site identity 2026-08-27 08:00:34 +00:00

Opened #274 [E10-S02-T01] Navigation CRUD 2026-08-27 08:00:35 +00:00

Opened #275 [E10-S03-T01] Footer configuration 2026-08-27 08:00:36 +00:00

Opened #277 [E11-S02-T01] Publish extension context 2026-08-27 08:02:00 +00:00

Opened #276 [E11-S01-T01] Publish manifest contract 2026-08-27 08:02:00 +00:00

Opened #280 [E12-S01-T01] Persist settings by extension ID 2026-08-27 08:02:01 +00:00

Opened #279 [E11-S04-T01] Persist extension state 2026-08-27 08:02:01 +00:00

Opened #278 [E11-S03-T01] Compatibility validator 2026-08-27 08:02:01 +00:00

Opened #282 [E12-S03-T01] Server validation 2026-08-27 08:02:03 +00:00

Opened #281 [E12-S02-T01] Generic settings admin renderer 2026-08-27 08:02:03 +00:00

Opened #283 [E13-S01-T01] Register migrations 2026-08-27 08:02:04 +00:00

Opened #284 [E13-S02-T01] Migration lock/transaction 2026-08-27 08:02:04 +00:00

Opened #285 [E13-S03-T01] Extension migration error state 2026-08-27 08:02:05 +00:00

Opened #286 [E14-S01-T01] Disable extension 2026-08-27 08:02:05 +00:00

Opened #287 [E14-S02-T01] Missing block fallback 2026-08-27 08:02:06 +00:00

Opened #288 [E14-S03-T01] Re-enable extension 2026-08-27 08:02:07 +00:00

Opened #289 [E15-S01-T01] Complete ThemeRegistry 2026-08-27 08:03:33 +00:00

Opened #291 [E15-S02-T02] Core packages cannot import Amber extension 2026-08-27 08:03:34 +00:00

Opened #290 [E15-S02-T01] Amber tokens exist only in theme-amber 2026-08-27 08:03:34 +00:00

Opened #292 [E15-S02-T03] Bootstrap references Amber ID as initial config only 2026-08-27 08:03:35 +00:00

Opened #293 [E15-S02-T04] Theme removal/invalid config has fallback 2026-08-27 08:03:36 +00:00

Opened #294 [E15-S03-T01] Theme settings 2026-08-27 08:03:36 +00:00

Opened #295 [E16-S01-T01] Theme component gallery 2026-08-27 08:03:37 +00:00

Opened #296 [E16-S02-T01] Test theme requires no core changes 2026-08-27 08:03:37 +00:00

Opened #297 [E16-S02-T02] Different body/UI fonts can be used 2026-08-27 08:03:38 +00:00

Opened #298 [E16-S02-T03] Light background/contrast works 2026-08-27 08:03:39 +00:00

Opened #299 [E16-S02-T04] Theme selector/resolution recognises both 2026-08-27 08:03:39 +00:00

Opened #300 [E16-S02-T05] All component-gallery states remain usable 2026-08-27 08:03:40 +00:00

Opened #301 [E16-S03-T01] Theme failure scenarios fall back safely 2026-08-27 08:03:40 +00:00

Opened #302 [E29-S01-T01] Reject oversized uploads and forged MIME types 2026-08-27 08:05:12 +00:00

Opened #303 [E29-S01-T02] Duplicate checksum returns existing record 2026-08-27 08:05:12 +00:00

Opened #305 [E29-S02-T01] Strip EXIF/GPS from public objects 2026-08-27 08:05:13 +00:00

Opened #304 [E29-S01-T03] Object keys never contain original filename 2026-08-27 08:05:13 +00:00

Opened #306 [E29-S02-T02] Derivatives at all applicable widths 2026-08-27 08:05:14 +00:00

Opened #308 [E29-S03-T01] core.image end to end 2026-08-27 08:05:15 +00:00

Opened #307 [E29-S02-T03] Original upload bytes never publicly served 2026-08-27 08:05:15 +00:00

Opened #310 [E29-S04-T02] Non-compliant file rejected with guidance message 2026-08-27 08:05:16 +00:00

Opened #309 [E29-S04-T01] Compliant MP4 publishes with poster frame 2026-08-27 08:05:16 +00:00

Opened #312 [E30-S02-T01] Provider allowlist and admin page 2026-08-27 08:05:17 +00:00

Opened #311 [E30-S01-T01] Hardened fetch service (core) 2026-08-27 08:05:17 +00:00

Opened #313 [E30-S03-T01] oEmbed resolution, snapshot cache, click-to-load 2026-08-27 08:05:18 +00:00

Opened #315 [E31-S01-T01] core.chart renderers 2026-08-27 08:05:19 +00:00

Opened #314 [E30-S04-T01] CSP frame-src from provider table 2026-08-27 08:05:19 +00:00

Opened #317 [E31-S03-T01] Chart accessibility contract 2026-08-27 08:05:20 +00:00

Opened #316 [E31-S02-T01] core.diagram Mermaid SSR 2026-08-27 08:05:20 +00:00

Opened #318 [E17-S01-T01] Created lazily only when preference is set 2026-08-27 08:05:45 +00:00

Opened #319 [E17-S01-T02] >=256-bit random token 2026-08-27 08:05:46 +00:00

Opened #320 [E17-S01-T03] One-way lookup hash at rest 2026-08-27 08:05:47 +00:00

Opened #321 [E17-S01-T04] Expiration supported 2026-08-27 08:05:47 +00:00

Opened #323 [E17-S01-T06] Corrupt/unknown token ignored safely 2026-08-27 08:05:48 +00:00

Opened #322 [E17-S01-T05] Cookie contains no personal/theme data 2026-08-27 08:05:48 +00:00

Opened #324 [E17-S02-T01] Namespaced key validation 2026-08-27 08:05:49 +00:00

Opened #325 [E17-S02-T02] Schema/policy validation supplied by feature 2026-08-27 08:05:50 +00:00

Opened #326 [E17-S02-T03] No theme-specific persistence 2026-08-27 08:05:50 +00:00

Opened #327 [E17-S03-T01] Owner theme policy 2026-08-27 08:05:51 +00:00

Opened #329 [E18-S02-T01] Preference mutation endpoint 2026-08-27 08:05:52 +00:00

Opened #328 [E18-S01-T01] Theme selector client island 2026-08-27 08:05:52 +00:00

Opened #330 [E18-S03-T01] SSR theme resolution 2026-08-27 08:05:53 +00:00

Opened #331 [E18-S04-T01] Disable fallback 2026-08-27 08:05:53 +00:00

Opened #332 [E19-S01-T01] Detect uninitialised installation 2026-08-27 08:07:17 +00:00

Opened #333 [E19-S02-T01] Create administrator (no default credentials) 2026-08-27 08:07:17 +00:00

Opened #334 [E19-S03-T01] Initial site wizard 2026-08-27 08:07:18 +00:00

Opened #335 [E20-S01-T01] Backup procedure/command 2026-08-27 08:07:18 +00:00

Opened #337 [E20-S03-T01] Automated restore smoke 2026-08-27 08:07:19 +00:00

Opened #336 [E20-S02-T01] Restore procedure 2026-08-27 08:07:19 +00:00

Opened #339 [E21-S02-T01] Content/config export 2026-08-27 08:07:20 +00:00

Opened #338 [E21-S01-T01] Export format v1 2026-08-27 08:07:20 +00:00

Opened #340 [E21-S03-T01] Import validation 2026-08-27 08:07:21 +00:00

Opened #341 [E21-S04-T01] Missing dependency report 2026-08-27 08:07:22 +00:00

Opened #342 [E22-S01-T01] Release manifest 2026-08-27 08:07:22 +00:00

Opened #344 [E22-S03-T01] Migration recovery documentation 2026-08-27 08:07:23 +00:00

Opened #343 [E22-S02-T01] Pre-upgrade check 2026-08-27 08:07:23 +00:00

Opened #346 [E23-S02-T01] Reduced motion 2026-08-27 08:08:45 +00:00

Opened #345 [E23-S01-T01] Keyboard journey suite 2026-08-27 08:08:45 +00:00

Opened #348 [E23-S04-T01] Extension accessibility checklist 2026-08-27 08:08:46 +00:00

Opened #347 [E23-S03-T01] Focus/semantic audit 2026-08-27 08:08:46 +00:00

Opened #349 [E24-S01-T01] Threat model 2026-08-27 08:08:47 +00:00

Opened #351 [E24-S03-T01] CSP/security headers 2026-08-27 08:08:48 +00:00

Opened #350 [E24-S02-T01] Rate limits 2026-08-27 08:08:48 +00:00

Opened #353 [E25-S01-T01] Zero-JS public assertion 2026-08-27 08:08:49 +00:00

Opened #352 [E24-S04-T01] Dependency/security response process 2026-08-27 08:08:49 +00:00

Opened #354 [E25-S02-T01] Query-count regression 2026-08-27 08:08:50 +00:00

Opened #355 [E25-S03-T01] Reference benchmark 2026-08-27 08:08:50 +00:00

Opened #356 [E26-T01] PostgreSQL unavailable 2026-08-27 08:10:08 +00:00

Opened #358 [E26-T03] Extension migration failure 2026-08-27 08:10:09 +00:00

Opened #357 [E26-T02] Core migration failure 2026-08-27 08:10:09 +00:00

Opened #359 [E26-T04] Duplicate extension ID 2026-08-27 08:10:10 +00:00

Opened #360 [E26-T05] Invalid settings 2026-08-27 08:10:10 +00:00

Opened #361 [E26-T06] Missing theme 2026-08-27 08:10:11 +00:00

Opened #362 [E26-T07] Corrupt visitor cookie 2026-08-27 08:10:12 +00:00

Opened #363 [E26-T08] Missing block extension 2026-08-27 08:10:12 +00:00

Opened #365 [E26-T10] Extension activation exception 2026-08-27 08:10:13 +00:00

Opened #364 [E26-T09] Missing media 2026-08-27 08:10:13 +00:00

Opened #398 PR Review Comment 2026-08-30 03:12:56 +00:00

Opened #399 PR Review 2026-08-30 03:13:04 +00:00

Opened #400 PR #397 Review for Issue #183 2026-08-30 03:13:10 +00:00

Opened #401 Final Review Assessment for PR #397 2026-08-30 03:13:12 +00:00

Opened #409 [security] Review of PR #408 — in progress 2026-08-31 00:28:43 +00:00