v1.10.0 — human circulation + foundation refactor
Human circulation (ADR 0008)
Circulation analysis grows from "is every room reachable?" to "how far, how wide, how direct is the walk?" — strictly facts + advisory + explicit transform (no generative layout; default SVG output byte-identical, pinned by tests):
- Facts —
describe().circulation: per-room walk distance, bottleneck clear width, and detour ratio from the entrance, plus key routes (kitchen↔living/dining, bedroom↔bath), on a clearance-eroded navigation grid. - Lint —
W_PATH_TOO_NARROW(default 700 mm;accessibility-advisoryprofile: 900 mm) andW_CIRCUITOUS_PATH(>3.0× straight-line). - Overlay —
arch compile --overlay circulation/compile(src, { overlays: ["circulation"] })draws the walks, key routes, and bottleneck markers; the playground gains an off-by-default Paths toggle. - Repair guard —
arch repairdeclines any furniture move that would newly pinch a walk below the lint threshold and reports it inunresolved.
Foundation refactor (default output byte-identical)
- Wall-union rewritten: opening-heavy
toScene~19.5 → ~2.6 ms (full compile ~42 → ~24 ms);validate/lintno longer render the SVG they discard. lint()restructured to one module per rule over a shared context; shared rect geometry (geometry/rect.ts) and one deterministic number formatter (num-format.ts).- Drift tests pin the element-keyword↔registry, fixture-classifier, completion-kind, and export-format joints; new core exports
COMPLETION_KINDS,EXPORT_FORMATS, optionalScene.chrome. - Tooling: Biome (CI-gated),
noUncheckedIndexedAccesson, Node 18/20/22 CI matrix, honest per-stage benchmarks; the playground app is now TypeScript with its own tests.
Sites
Embeddable playground viewer (embed.html + Embed button), IDE-parity actions (Format / Repair panel / clickable diagnostics), live editable <ArchLive> docs examples.
Suite: 535 tests · typecheck/Biome/gen-drift clean · all default artifacts byte-identical to v1.9.0.