Context
All 182 evidence anchors were verified. Node engine mismatch and dependency-only major intent were excluded as covered by open issue #3169 (#3169).
Audit Purposes
Bug finding, contract API, tests edge, and comprehensive audit.
Findings or R&D Brief
architecture#3: Drizzle must prefer the lifecycle-aware wrapper over the raw handle. Evidence: packages/terminus/src/indicators/drizzle.ts:49, packages/terminus/src/indicators/drizzle.ts:120, packages/terminus/src/indicators/drizzle.ts:127, packages/terminus/src/indicators/drizzle.test.ts:112, packages/terminus/README.md:104, book/beginner/ch18-health.md:139, packages/drizzle/src/database.ts:196, packages/drizzle/src/tokens.ts:2, packages/drizzle/src/tokens.ts:4. tests-edge#1: wrapper timeout rejection must not release ownership while uncancellable downstream work remains. Evidence: packages/terminus/README.md:114, packages/terminus/src/health-check.ts:51, packages/terminus/src/health-check.ts:53, packages/terminus/src/health-check.ts:56, packages/terminus/src/health-check.ts:61, packages/terminus/src/indicators/utils.ts:93, packages/terminus/src/indicators/utils.ts:95, packages/terminus/src/indicators/utils.ts:98, packages/terminus/src/indicators/redis.ts:148, packages/terminus/src/indicators/prisma.ts:256, packages/terminus/src/indicators/drizzle.ts:158, packages/terminus/src/indicators/redis.test.ts:108, packages/terminus/src/indicators/prisma.test.ts:212, packages/terminus/src/indicators/drizzle.test.ts:21. contract-api#2: all-up causes in a thrown HealthCheckError must still produce failure. Evidence: packages/terminus/README.md:131, packages/terminus/README.md:189, packages/terminus/src/errors.ts:9, packages/terminus/src/types.ts:9, packages/terminus/src/health-check.ts:279, packages/terminus/src/health-check.ts:281.
Contract Impact
Behavior correction for lifecycle precedence, timeout ownership, and explicit failure semantics.
Suggested Resolution
Resolve wrapper before raw handle, retain ownership until settlement, and normalize every thrown HealthCheckError as down while preserving causes.
Affected Packages
terminus, drizzle, redis, prisma.
Affected Surfaces
Indicators, aggregation, endpoints, and regression tests.
Why Now
These defects can hide dependency failure, probe the wrong lifecycle surface, or overlap downstream work.
Acceptance Criteria
- Wrapper precedence and raw fallback are tested.
- Timeout overlap is blocked until raw settlement, then recovery succeeds.
- All-up
HealthCheckError causes produce down /health and /ready results with causes preserved.
Context
All 182 evidence anchors were verified. Node engine mismatch and dependency-only major intent were excluded as covered by open issue #3169 (#3169).
Audit Purposes
Bug finding, contract API, tests edge, and comprehensive audit.
Findings or R&D Brief
architecture#3: Drizzle must prefer the lifecycle-aware wrapper over the raw handle. Evidence:packages/terminus/src/indicators/drizzle.ts:49,packages/terminus/src/indicators/drizzle.ts:120,packages/terminus/src/indicators/drizzle.ts:127,packages/terminus/src/indicators/drizzle.test.ts:112,packages/terminus/README.md:104,book/beginner/ch18-health.md:139,packages/drizzle/src/database.ts:196,packages/drizzle/src/tokens.ts:2,packages/drizzle/src/tokens.ts:4.tests-edge#1: wrapper timeout rejection must not release ownership while uncancellable downstream work remains. Evidence:packages/terminus/README.md:114,packages/terminus/src/health-check.ts:51,packages/terminus/src/health-check.ts:53,packages/terminus/src/health-check.ts:56,packages/terminus/src/health-check.ts:61,packages/terminus/src/indicators/utils.ts:93,packages/terminus/src/indicators/utils.ts:95,packages/terminus/src/indicators/utils.ts:98,packages/terminus/src/indicators/redis.ts:148,packages/terminus/src/indicators/prisma.ts:256,packages/terminus/src/indicators/drizzle.ts:158,packages/terminus/src/indicators/redis.test.ts:108,packages/terminus/src/indicators/prisma.test.ts:212,packages/terminus/src/indicators/drizzle.test.ts:21.contract-api#2: all-up causes in a thrownHealthCheckErrormust still produce failure. Evidence:packages/terminus/README.md:131,packages/terminus/README.md:189,packages/terminus/src/errors.ts:9,packages/terminus/src/types.ts:9,packages/terminus/src/health-check.ts:279,packages/terminus/src/health-check.ts:281.Contract Impact
Behavior correction for lifecycle precedence, timeout ownership, and explicit failure semantics.
Suggested Resolution
Resolve wrapper before raw handle, retain ownership until settlement, and normalize every thrown
HealthCheckErroras down while preserving causes.Affected Packages
terminus,drizzle,redis,prisma.Affected Surfaces
Indicators, aggregation, endpoints, and regression tests.
Why Now
These defects can hide dependency failure, probe the wrong lifecycle surface, or overlap downstream work.
Acceptance Criteria
HealthCheckErrorcauses produce down/healthand/readyresults with causes preserved.