From the 2026-07-06 codebase audit (docs/audits/codebase-audit-2026-07-06.md, in-repo). Finding IDs are stable — cite them in fixes.
Severity: Medium · Status: CONFIRMED
C44 — false claims cluster (packages/engine/README.md:99-112; docs/COLLISION_DETECTION.md:200-203, 372-381):
- engine README:104: "Initial KE = Final KE × restitution" — inverted (code: final = initial × e; as written it claims energy gain).
- README:101: "Both collision systems implement … restitution" — AABB mode has none (C21).
- README:112: "prevents the 'gaining energy' bug" —
defaultRestitution > 1 is accepted and gains energy (C27).
- COLLISION_DETECTION.md:378: "Zero-size shapes → no collision (dimensions validation)" — no validation exists; zero-size bodies collide as points (C24).
- :377: "Circle center inside rectangle → push toward closest edge" — code pushes toward the interior (C2).
- :380: "All impulse transfers to dynamic body" — the resolver is not impulse-based (C4).
- :200-203: world-transform snippet rotates by
-angle; the code correctly uses +angle (circle.ts:311-317).
- "Object Pooling" section shows acquire/release as the live pattern —
cornersPool.release is never called (C40); LESSONS_LEARNED.md:91 "0 allocations in steady state" is false for that path.
- Undocumented anywhere: units (ms/px/rad), the accumulator's hardcoded 4-step cap,
containerOffsets semantics.
C89 — docs/ is orphaned — referenced by nothing (no inbound links; root readme has no docs section); LESSONS_LEARNED uses pre-rename API names (ReactElastica, AxisAlignedBoundaryBox); the engine README "File Structure" omits five files that exist (accumulator.ts, pool.ts, spatial-hash.ts, collision/circle.ts, collision/index.ts).
Direction
Fix claims to match code where code is staying (several will be resolved by the resolver-fork decision — coordinate with that issue); link docs/ from the root readme or fold the good content into the engine README; refresh names and the file tree.
Severity: Medium · Status: CONFIRMED
C44 — false claims cluster (
packages/engine/README.md:99-112;docs/COLLISION_DETECTION.md:200-203, 372-381):defaultRestitution > 1is accepted and gains energy (C27).-angle; the code correctly uses+angle(circle.ts:311-317).cornersPool.releaseis never called (C40); LESSONS_LEARNED.md:91 "0 allocations in steady state" is false for that path.containerOffsetssemantics.C89 — docs/ is orphaned — referenced by nothing (no inbound links; root readme has no docs section); LESSONS_LEARNED uses pre-rename API names (
ReactElastica,AxisAlignedBoundaryBox); the engine README "File Structure" omits five files that exist (accumulator.ts,pool.ts,spatial-hash.ts,collision/circle.ts,collision/index.ts).Direction
Fix claims to match code where code is staying (several will be resolved by the resolver-fork decision — coordinate with that issue); link docs/ from the root readme or fold the good content into the engine README; refresh names and the file tree.