[E01-S01-T02] ADR: Node/TypeScript #189
Closed
opened 2026-08-27 00:09:10 +00:00 by kpcto
·
14 comments
Labels
Clear labels
agent/analyst-drafted
agent/analyst-drafted
needs/human-decision
needs/human-decision
needs/security-review
needs/security-review
tier/t0
tier/t1
tier/t2
tier/t3
kind
bug
kind
bug
kind
epic
kind
epic
kind
initiative
EPPP programme initiative
kind
story
kind
story
kind
task
EPPP engineering card/task decomposed from a story
kind
toil
kind
toil
loop
1
loop
1
loop
2
loop
2
loop
3
loop
3
risk
agent-full
risk
agent-full
risk
human-gated
risk
human-gated
risk
human-only
risk
human-only
size
l
size
l
size
m
size
m
size
s
size
s
status
blocked
status
blocked
status
done
Workflow: Done
status
in-progress
status
in-progress
status
proposed
status
proposed
status
ready
status
ready
status
review
status
review
stream
checkout
stream
checkout
stream
onboarding
stream
onboarding
stream
platform
stream
platform
trivial — implementer only, auto-merge
standard — implementer + reviewer + tester
complex — security if triggered, human merge
critical — full chain + security, human merge
Projects
Clear projects
No projects
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Fabrika/PersonalBlog#189
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Intent
Document the Node.js 24 LTS runtime and TypeScript 6.0.3 language decisions (ADR-002 and ADR-003).
Acceptance criteria
Explicitly out of scope
Test plan
Rollback note
Owning stream
platform
Risk quadrant
agent-full
status/readymay only be applied by a human maintainer.Triage of #189 — [E01-S01-T02] ADR: Node/TypeScript (single structured comment, covering start-to-end of this triage):
Evidence for the verdict (all claims reproducible):
gitleaks detect --source . --no-git --redact→no leaks found(output above; scanned the full working tree at headee0c094, including both new ADR files).osv-scanner --recursive .→No issues found(25 packages). Diff adds no dependencies, manifests or lockfile entries.command -v semgrepfails) → skipped per playbook; compensated by the manual traces below.ignore previous,system prompt,instructions:) → zero matches. Content is descriptive prose referencing pre-existing, independently verified repo facts; nothing executable.engines.node: ">=24.0.0 <25.0.0"in rootpackage.json;engineStrict: trueinpnpm-workspace.yaml— enforcement empirically demonstrated: runningtests/typescript-pin.test.mjsin this Node-22 sandbox fails withERR_PNPM_UNSUPPORTED_ENGINE, i.e. the guard the ADR describes actually fires.node:24.19.0-bookworm-slimis the base image of both Dockerfile stages (apps/server/Dockerfile:52,83).typescript@6.0.3(pnpm-lock.yaml:143,233); root manifest pins"6.0.3"exactly.ADR-002 | Node.js 24 LTS runtime,ADR-003 | TypeScript 6.0.3 pending TS7.1 ecosystem review..gitea/workflows/ci.yml(Stage 2 — Typecheck;node-version: '24'throughout).node --test tests/formatting-policy.test.mjs→ 13/13 pass locally on this branch. Note for triage:node-engine/typescript-pinsuites fail in this sandbox (Node 22.23.2, no pnpm) — environmental, occurs identically onmain, and the typescript-pin failure is the engine-strict guard working; not a PR regression.No blockers, no
should-level findings — onenit(listed in the YAML above) which does not gate approval. Start comment: #issuecomment-3571.Review Findings
Criterion → Test Mapping: ✅ Both ADRs are properly committed as new files in the
docs/adr/directory.Scope: ✅ Changes are strictly within the scope of documenting the Node.js and TypeScript decisions as specified in issue #189.
Correctness: ✅ Both ADRs follow the proper structure with all required sections:
Index Consistency: ✅ Each decision matches what is stated in the ADR index:
Security: ✅ No security concerns in these documentation-only changes.
Test Honesty: ✅ These are documentation-only changes with no tests affected.
Conventions: ✅ The ADRs follow established conventions with proper formatting and structure.
Both ADRs are well-written, comprehensive, and follow the established ADR format. They provide clear rationale for the technology choices, consider alternatives appropriately, and document the operational implications. The decisions are consistent with the overall architecture described in ADR-001.