_dsa-tokens — local design-system-ASK mirror
Local, pinned mirror of design-system-ASK Tier 1 + Tier 2 foundations for the diagram bundle in this directory. There is no runtime fetch from the design-system-ASK repo and no Google Fonts CDN dependency — the diagram renders entirely from these local files.
Synced from: apexSolarKiss/design-system-ASK
Pinned commit: 067691a2fb6ca979cb6a5b0c9ca1d97790134b3f
Synced: 2026-09-17
colors_and_type.css sha256: 4fed9d796a0d51072802f430b9528459a5cbb9c709fa1964bf5b13f18464122a
Re-vendor 2026-10-08 — static-family phone gestures and placement, responsive chrome adopted (design-system @ db9aaa8); LIVE RENDER CHANGE FOR BOTH FIGURES, EXPORTS CHANGE ONLY IN THE STAMP, MEASURED; BOTH RENDER STAMPS ADVANCE. Five diagram carriers are re-vendored byte-identical from design-system-ASK db9aaa86f8c26f45ef76b2b3ff2c3b73895e8aed (#175), the only owner commit after e3e0381 to touch the static-H pattern. Modified: diagrams-fit.js 6fbf521f… → d733be35… (sha256 fbee0539… → 52761ba2…, 18,205 → 35,232 B), diagrams-static-H-engine.js dbcebdb2… → e0892fbf… (e0d93429… → 5ab7ebb3…, 35,681 → 39,312 B) and diagrams.css f6c398a3… → 6ad733cd… (4bf635ce… → 7cb3b6ca…, 24,661 → 25,301 B). New to this bundle: diagrams-chrome.js e8eed502… (76c7bb98…, 19,160 B), the #175 generation of the #169 carrier, and diagrams-pointer.js 830a4b62… (620c51aa…, 11,399 B). export-png.js stays at b3e34d95… (09e9774e…) and diagrams-text-layout.js at 62c7b8a4… (64ee23cf…), both already byte-identical to the owner at db9aaa8. The _dsa-surface/ carrier surface-treatments.css is added at owner bytes 1ab4e3d0… (484e8134…, 20,556 B), unchanged in the owner since #169 (53fa86e); like the surface carriers in the entries below, it sits outside this mirror's record, and its owner pin is recorded in the commit.
The "not vendored" decisions of #210 and #211 are reversed. #210 left surface-treatments.css out because nothing here used it, and the 2026-10-06 entry below (#211) kept it out, and left diagrams-chrome.js out, because no page adopted the responsive chrome. Both pages now adopt it: the caption and legend sit in one .diagram-info[data-diagram-chrome] block behind About and Legend triggers, the header carries the illustrative cue, and diagrams-chrome.js then diagrams-pointer.js load after the chrome markup and before diagrams-fit.js, in the owner's order. The owner's chrome adoption contract takes the controlled disclosure trigger's grammar — label, indicator, hover and focus — from surface-treatments.css, and that trigger reached surface-treatments.css with #169 (2026-09-28), after #210 (2026-09-17) was decided. Each page therefore loads surface-panel.css and then surface-treatments.css, which requires it first. index.html is untouched and still loads no surface-treatments.css.
What #175 brings, and what reaches these pages. diagrams-pointer.js (v2) owns the canvas gestures: on a touch screen one finger pans the drawing from anywhere on it and two pinch it, never the page, while a press that starts on a panel stays native; diagrams.css adds the matching touch-action: none on a pointer-owned canvas's stage. Fit contract v3 adds opt-in placement: the engine's balance centers the drawing vertically between the chrome above and below it, and compactClearance: 32 caps total clearance at 32px while the chrome is compact. The engine requires fit v3, and pointer v2 when the pointer is loaded, and throws a named error with an older copy, so the carriers land together.
Measured, not assumed — headless Chrome 155.0.8059.40 over http, the prior bundle (84c7655) against this one. Export: PNG page (3840 × 2880) and PNG diagram (TREE_D01 3016 × 3440, TREE_D08 3288 × 3440), captured as the exact Blob the download receives, in light and dark, each side run twice: each side's two runs are byte-identical; all 4 diagram plates are byte-identical before and after; the 4 page plates differ only inside the stamp — the differing pixels are bounded by x 3245–3740, y 69–148 on TREE_D01 and x 3266–3740, y 69–148 on TREE_D08, inside the exporter's right-anchored stamp text box — and the prior page, with only its stamp text rewritten in the DOM to the new tuple and date, exports byte-identical to this one in all 4 page plates on both runs. Live, 1440×900: the chrome stays wide, the stamp stays in the header and both triggers are hidden; TREE_D01 rests exactly as before (scale 0.199524, same translation), and TREE_D08 keeps its scale 0.218137 while balance lifts the drawing 47.43px (translate-y 212.86 → 165.43). A 60px mouse drag pans 60px before and after. At 900×820 the rest scale moves 0.105677 → 0.101193 (TREE_D01) and 0.182035 → 0.17459 (TREE_D08). Live, 390×844 mobile with touch: both pages go compact, with the triggers above the HUD and the subtitle and stamp in About; the drawing lies inside the canvas, and its rest scale rises 0.043245 → 0.113291 (TREE_D01) and 0.055456 → 0.170142 (TREE_D08). A raw 60px one-finger drag pans the drawing 60px (previously 20px); a raw two-finger spread from 100 to 200px scales the drawing ×2.00 at page zoom 1 (previously drawing ×1.00, page zoom 5). Each trigger tap toggles its aria-expanded false → true → false with its panel's hidden in step and the other panel closed, and the indicator turns from rotate(-90deg) closed to none open. 0 console errors, 0 warnings and 0 failed requests in 28 page loads across both pages, both viewports and both themes.
Both render stamps advance; both sources hold. control-surface_architecture-tree moves source-v7 // render-v19 → source-v7 // render-v20 and control-surface_intent-inbox-lifecycle source-v2 // render-v2 → source-v2 // render-v3, both dated 2026-10-08, the realization date; the README.md lineage tuple moves with TREE_D01. Per this file's rule a render-vN stamp advances when its render actually changes, and here the live render does — the adopted chrome and cue, the compact layout, the gestures, and TREE_D08's balanced placement at 1440×900 — while the exports change only by the stamp itself. Neither *.source.js file changed. No raster is owed: no committed raster in this repo is derived from either page. The mirror pin above (067691a) and colors_and_type.css do not move: no token or font changed, and colors_and_type.css, fonts-embedded.js, the four woff2 faces, the two OFL texts, surface-panel.css, surface-action.css, surface-shell.css, surface-shell.js and the wordmark pair are byte-identical to the owner at db9aaa8 and untouched.
Re-vendor 2026-10-06 — attention edge by class + static-family responsive chrome (design-system @ e3e0381); RENDER-NEUTRAL FOR BOTH FIGURES, MEASURED; ONE INTENDED INTERACTION CHANGE. Four diagram carriers are re-vendored byte-identical from design-system-ASK e3e0381, each at the generation its owner event left it — no later owner commit touches them. The _dsa-surface/ carrier surface-action.css advances in the same commit for #168 (1c5eba6: a third governed population, .surface-attention-edge, joins the shared hover and focus paint by selector grouping; the compact action's own declarations are unchanged); like the surface carriers in the 2026-09-17 entry, it sits outside this mirror's record, and its owner pin is recorded in the commit. #169 (53fa86e): diagrams-fit.js 98ffd786… → 6fbf521f… (sha256 22423770… → fbee0539…, 17,332 → 18,205 B), diagrams.css 049b0268… → f6c398a3… (7612cc42… → 4bf635ce…, 16,054 → 24,661 B), diagrams-static-H-engine.js 70f23852… → dbcebdb2… (4c4b79fa… → e0d93429…, 32,187 → 35,681 B) and export-png.js 395df1c9… → b3e34d95… (10556ab7… → 09e9774e…, 50,120 → 57,249 B). The exporter's before identity is the #145 generation that control-surface #207 vendored; the 75822177… named in the 2026-09-03 entry below is the generation #207 replaced. diagrams-text-layout.js stays at 62c7b8a4… (64ee23cf…), already byte-identical to the owner at e3e0381.
What #169 brings, and what reaches these pages. Fit contract v2 lets chrome declare the edge it is anchored to (data-diagram-fit-edge); with no declaration, which neither page authors, the defaults select exactly the caption, legend and HUD they always did. The engine now tracks whether the view is at Fit: a resize refits only a view at Fit, so a reader's own zoom or pan survives a resize, and a press that travels less than 3px does not leave Fit. The exporter keeps every caption line (it cut at three), lays the caption and legend out jointly, and fits a landscape figure below the panel band when a drawn mark would come within the panel gutter. diagrams.css adds the responsive-chrome rules, every one scoped to .diagram-info or a shell that contains it, plus .bar .diagram-cue { display: none } for an element neither page has. diagrams-chrome.js is deliberately not vendored: this is a targeted replacement, no page here adopts the responsive chrome (no .diagram-info, no data-diagram-chrome), and the engine runs without it — with window.DIAGRAM_CHROME absent, each page keeps its corner panels and header as before. surface-treatments.css stays not vendored, and no page here carries .surface-attention-edge.
Measured, not assumed — headless Chrome 154.0.8037.98 over http, the prior carriers against these. Export: PNG page (3840 × 2880) and PNG diagram (TREE_D01 3016 × 3440, TREE_D08 3288 × 3440), captured as the exact Blob the download receives, in light and dark: 8 of 8 byte-identical, and a second run of the prior carriers byte-identical to the first. Both figures are portrait — SVG width × height 3160 × 3680 and 2104.12 × 2216 — so the landscape drawn-mark test does not run here, and each caption carries two explicit lines, so the old three-line cut never applied. Live fit: at 1440×900, 1600×620, 1441×903, 900×820 and 1280×560 the at-rest camera, the explicit Fit, a repeated Fit and every panel rect are identical before and after on both pages (TREE_D01 scale 0.199524 and TREE_D08 0.218137 at 1440×900). Interaction at 1440×900: the zoom-out floor stays 0.15 and monotone; a resize at Fit refits on both sides (to 0.105677 and 0.182035 at 900×820), and a tap at Fit leaves the view at Fit; after a reader zoom, a resize to 900×820 previously snapped back to Fit and now keeps the reader's view (0.239429 and 0.261764 held) — the change #169 intends. At-rest screenshots are byte-identical at all five viewports for TREE_D01; on the lifecycle page a 101 × 7 px strip of the legend header alternates between the same two raster states across reloads of the prior carriers too, with identical layout rects, and is harness noise. index.html: a computed-style census of all 13 .surface-action and 7 .surface-panel elements and their ::before / ::after, light and dark × reduced motion no-preference and reduce × rest, forced :hover and forced :focus-visible, found 0 differences in 412,560 values (a repeat of the prior carriers: 0); a control that perturbs one shared hover and focus declaration is detected — 832 differences, in exactly the 8 hover and focus states and none at rest. At-rest screenshots are byte-identical at 1440×900, 900×820 and 390×844 in both themes. 0 console errors on all three pages in both themes.
Both diagram stamps and their dates held — control-surface_architecture-tree at source-v7 // render-v19, control-surface_intent-inbox-lifecycle at source-v2 // render-v2, both 2026-09-03 — per this file's own rule: a render-vN stamp advances, and its committed rasters are regenerated, only when its render actually changes, and here the render was measured not to change. No raster is owed. The mirror pin above (067691a) and colors_and_type.css do not move: no token or font changed, and fonts-embedded.js, the four woff2 faces, the two OFL texts, surface-panel.css, surface-shell.css, surface-shell.js and the wordmark pair are byte-identical to the owner at e3e0381 and untouched.
Re-sync 2026-09-17 (2bbab41 → 067691a) — CAPTION ROLE REBOUND TO 0.14em TRACKING; DIAGRAM-RENDER-NEUTRAL BY LOCAL PIN, MEASURED. The hop crosses one colors_and_type.css event, PRG-019 SL3 (31e283e): it adds the Tier-1 --tracking-caption: 0.14em and rebinds the foundation .caption role from var(--tracking-wide) (0.08em) to it. --tracking-wide itself is unchanged at 0.08em, and no other token value, role name, selector, @font-face or theme behavior moved — the diff is one added custom property plus one rebound declaration. SL3 is a coupled pair upstream: because the interactive-spine pattern's caption band set no letter-spacing of its own, the same owner commit pins that band explicitly to --tracking-wide, so a 10px chrome band does not inherit the 14px Caption role. This bundle vendors the static-H pattern, not the spine — there is no spine file here and none was introduced. Static-H's diagrams.css has carried its own letter-spacing: 0.06em on .caption since before this hop, which is why SL3 needed no companion re-pin for it: the owner's patterns/diagram-static-H/diagrams.css carries the identical pin at 067691a, and this bundle's diagrams.css (7612cc42…) is byte-identical to it and untouched.
Render-neutral for both figures, measured not assumed. Both pages were rendered in headless Chrome 153.0.8010.48 at 1440×900 over http, before and after this re-vendor, in light and dark, and the computed letter-spacing was read from each page's actual .caption element: 0.6px in all eight page/state/theme combinations (0.06em against the local 10px font-size), with .caption b steady at 1.54px and the band's resolved color unchanged in both themes. The new token is present and resolving after the hop — --tracking-caption on :root reads UNDEFINED → 0.14em — so the probe demonstrably observes the change it tests for; the foundation rule simply loses the cascade, both stylesheets declaring .caption at equal specificity with diagrams.css <link>ed second on both pages. Sensitivity was demonstrated by a control run: with the local 0.06em pin deleted from diagrams.css and nothing else altered, the same measurement moves 0.8px → 1.4px across the hop — precisely the silent drift the upstream spine pin exists to prevent. Each page carries exactly one .caption element, and --tracking-caption has no other consumer in this bundle (surface-shell.css reads --tracking-wide, which did not move). Geometry corroborates: caption box 360 × 93.55 (TREE_D01) and 360 × 109.05 (TREE_D08), both at (18, 103.75), viewBox 3160 × 3680 and 2104.12 × 2216, 154 and 91 SVG text primitives, all identical across the hop in both themes — but that instrument is not independently sensitive to this change (in the control the box stays 93.55 while the tracking does move), so the computed-style reading is the load-bearing evidence and the geometry reading establishes only that nothing else moved. The caption band is read by diagrams-fit.js (topSelector: '.caption, .legend', chrome reservation) and by export-png.js (page composition); that is the path by which a tracking change would have reached figure geometry and raster output, and it is closed here because the band does not move.
Both diagram stamps held — control-surface_architecture-tree at source-v7 // render-v19, control-surface_intent-inbox-lifecycle at source-v2 // render-v2. The pin advance is not itself a render change, and the render was measured not to advance. No raster is owed and none was regenerated: the repo's five committed PNGs and one SVG are the repo banner (2752 × 1536), the site icons (apple-touch-icon 180 × 180, favicon-32 32 × 32, favicon.svg) and the vendored ASK wordmark pair under _dsa-surface/assets/ — a diagram export is 3840 × 2880, and no committed raster in this repo is derived from either page, as the entries below also record. Every other file in this mirror is untouched and byte-identical to the owner at 067691a: fonts-embedded.js, the four woff2 faces and the two OFL texts. diagrams.css, diagrams-fit.js, diagrams-text-layout.js, diagrams-static-H-engine.js and export-png.js are pinned separately, are already at owner parity, and are not part of this entry. The _dsa-surface/ carriers surface-action.css and surface-panel.css advance in the same commit for SL4 (e7f5ec2) and SL7 (881a996); they sit outside this mirror's record, are loaded only by index.html, and neither diagram page reads them.
Re-vendor 2026-09-03 — shared text-layout contract + H engine (design-system @ 2bbab417); RENDER CHANGE for BOTH figures, stamp decision deferred to the reviewing surface. The owner extracted text measurement and role layout out of each diagram engine into one shared carrier, diagrams-text-layout.js (64ee23cf…, 17,224 B, from patterns/_diagram-shared/) — new to this bundle — and rewrote diagrams-static-H-engine.js against it (33cae0cd… 15,947 B → 4c4b79fa… 32,187 B). Role caps, line heights and the wrapping primitive now live in the carrier; the engine keeps no local measure() and no local copy of the caps. The three files land atomically because the engine fails closed twice over: it checks every callable member of the carrier's interface, and it checks that the carrier declares diagram-static-H among its targets. Both gates were exercised, not inspected — running the new engine with no <script src="diagrams-text-layout.js"> throws Diagram text-layout support is missing or incomplete. Load diagrams-text-layout.js before the diagram engine. and renders 0 primitives; serving a carrier whose TARGETS omit this pattern throws the named target error; removing one interface member re-throws the first. diagrams-text-layout.js loads after diagrams-fit.js and immediately before the engine on both pages.
This is NOT render-neutral, and the numbers are measured. Long node text now wraps instead of widening its column, so both figures become narrower and taller: TREE_D01 viewBox 5260.64 × 3548 → 3160 × 3680 (width −39.9%, height +3.7%) and TREE_D08 3166.24 × 2006 → 2104.12 × 2216 (width −33.5%, height +10.5%). Widest text run 1734.3 → 719.2 (D01) and 1461.8 → 718.5 (D08). Pairing every text primitive by its normalized content: 154/154 and 91/91 matched with 0 lost and 0 added — 15 labels in D01 and 18 in D08 gained height by wrapping (2 lines, and 2 at 3 lines in D01), the rest were repositioned only. Comparing all primitives on tag, getBBox (2dp), text content and computed fill / stroke / stroke-width / opacity / font-family / font-size / font-weight / visibility / display, 355 of 355 stable rows differ in D01 light (357 total, the same 2 harness-unstable rows excluded), 357/357 in D01 dark, and 181/182 in D08 in both themes. Quality checks on the new render, with the checker's sensitivity demonstrated by an injected 400-character label it detects: 0 text primitives overflow their own node rect, 0 text-versus-text bbox collisions, 0 primitives outside the viewBox, 0 console or page errors, on both figures in both themes at 1440×900. Source data is untouched — neither *.source.js file changed, so source-vN holds on both figures. Because the realized render advances materially, the render-vN half of each stamp is a consumer-owned decision and is deliberately left unchanged in this record; the reviewing surface rules on it, and the README.md lineage line moves with it. Foundation pin 2bbab417 and colors_and_type.css are unchanged by this entry — see the token re-sync above. diagrams-fit.js (22423770…), diagrams.css (7612cc42…) and export-png.js (75822177…) were already byte-identical to the owner at this pin and are untouched.
Re-sync 2026-09-03 (28e9318 → 2bbab41) — NEW ROOT-ONLY --bg-edge ROLE; DIAGRAM-RENDER-NEUTRAL, MEASURED. The hop crosses three colors_and_type.css events, all one thread. #129 (85181c1) introduces the Tier-1 --bg-edge role for the browser / under-page edge — the over-scroll pocket the browser paints above and below the document — binds color-scheme beside it, and makes the base reset paint background-image + background-color as longhands so the shorthand can no longer reset the solid layer to transparent; html { background-color: var(--bg-edge) } and body { background-color: transparent } close it. The block is root-scoped on purpose: a descendant .theme-dark themes its subtree but must not repaint the root-owned canvas. #136 (b8d1f56) rebinds the light value from ink to --ask-lavender-light (#E2D3F0), so the light edge matches the gradient's own top-right stop instead of reading as a dark band. #137 (6b513cf) is a surface-shell change that does not touch this file. Dark resolves to --ask-ink-dark (#0A090C) on all three dark paths. No existing token value, role name, selector, @font-face or theme-behavior changed — the diff is additive plus the shorthand→longhand rewrite of one existing declaration. Neutral for the diagrams, measured not assumed: both figures were rendered in headless Chrome at 1440×900, light and dark, before and after this re-vendor; every SVG primitive was compared on tag, getBBox (2dp), text content and computed fill / stroke / stroke-width / opacity / font-family / font-size / font-weight / visibility / display — 0 differing rows in every page/theme combination — 357 primitives (TREE_D01) and 182 (TREE_D08) — with viewBox identical. Each state was captured three times and only rows stable across all three runs were compared; the projection excluded 2 rows in TREE_D01 light (indices 172 and 230, two descender-bearing 13px Inter labels) whose getBBox height flaps between 16 and ~17.5 under identical bytes and is therefore harness noise, not a carrier effect. The comparison's sensitivity was demonstrated by a control run in which one primitive's x was perturbed by 0.5 and detected. The role's only effect is the under-page area, which no diagram primitive occupies. Post-re-vendor the resolved values are light --bg-edge rgb(226, 211, 240) · dark rgb(10, 9, 12) · body background-color: rgba(0, 0, 0, 0) on all three pages, both themes. Both diagram stamps held — control-surface_architecture-tree at source-v7 // render-v18, control-surface_intent-inbox-lifecycle at source-v2 // render-v1. Every other vendored file in this mirror is untouched: fonts-embedded.js, the four woff2 faces and the two OFL texts are byte-identical between 28e9318 and 2bbab41; diagrams-fit.js, diagrams-static-H-engine.js, diagrams.css and export-png.js are pinned separately and are not part of this entry.
Re-sync 2026-08-14 (3d8b113 → 28e9318) — RENDER-NEUTRAL BY NON-USE: the hop crosses three carrier-changing owner events. #93 (410b3980) — comment/contract only: --fg-high-contrast moves from a reserved value with no approved surface to its first approved bounded use (the Class B message-archive ramp); no token value changed. #103 (8fbb0c01) — the value-bearing event: --fg-on-card is rebound var(--fg-1) → var(--fg-high-contrast) (#201D26) and both dark-mode --fg-on-card: var(--ask-lavender-dark) overrides (the [data-theme="dark"] block and the prefers-color-scheme auto-bridge) are removed, so the role stops flipping with theme against the fixed --surface-solid fill it exists to sit on. #104 (28e93188) — comment/contract only, and the final vendoring pin: it retains #103's value unchanged and replaces the bounded-use prose with the central registered-use and admission-gate contract for --fg-high-contrast. Neutral here by non-use, not by being comment-only — this is a real token-behavior change upstream; it simply has no consumer in this mirror: nothing in this bundle reads var(--fg-on-card) (verified — the only occurrences are the definitions inside colors_and_type.css itself and the historical prose below), and the carrier never consumes it. Every other vendored file is byte-identical between 3d8b113 and 28e9318 (fonts-embedded.js, the four woff2 faces, the two OFL texts); diagrams-fit.js / diagrams-static-H-engine.js / diagrams.css / export-png.js are pinned separately and are untouched. Only the new colors_and_type.css sha256 above differs (246aae65… → acd76409…, 13,022 → 13,375 B). Both diagram stamps held — control-surface_architecture-tree at source-v7 // render-v18, control-surface_intent-inbox-lifecycle at source-v1 // render-v1 (render-neutral, no re-export).
Re-sync 2026-07-22 (1231d03 → 3d8b113) — COMMENT-ONLY, render-neutral: design-system PR #88 corrected the tier-model header comment in colors_and_type.css — the --ask-* prefix is reclassified from Tier 3 to the canonical Tier-2 implementation namespace (travels with Tier 2 by reference), Tier 3 = the ASK name + logo-ASK wordmark, and the file header names the owner-carrier for provenance, not child-instance identity. No token value, role name, selector, @font-face, or theme-behavior change — non-comment content byte-identical; only the new colors_and_type.css sha256 above differs (bcd11e0e… → 246aae65…). Fonts byte-identical; diagrams-fit.js / diagrams-static-H-engine.js / diagrams.css / export-png.js unchanged. The stylesheet is <link>ed, not inlined — no committed HTML or raster carries the comment. Diagram stamp held source-v5 // render-v18 (render-neutral, no re-export).
Re-vendor 2026-07-20 — page exporter: overlap-gated portrait composition (design-system PR #80 2cd4610c); RENDER CHANGE for this bundle, render-v17 → render-v18, source held. The first exporter re-vendor that is not render-neutral here. The shared static exporter reserved a FULL-WIDTH top band for every portrait diagram, pushing a narrow tree below both corner panels and shrinking it — this bundle's D01 architecture tree (2328×2978, portrait) was the case ASK flagged as under-scaled. The landed owner fix (#80) is an overlap-gated three-candidate portrait fit (full region if it clears / measured centre lane / historical below-band fallback; max(C,B,A) with A = the prior placement byte-exact, so a portrait can only grow or stay equal). export-png.js re-vendored byte-identical from DS @ 2cd4610c (blob 2104021d…, prior 9b043e6f…). What changes: the D01 PNG page composition — the tree now rises through the clear centre lane between the caveat (top-left) and legend (top-right), page-fit scale 0.668 → 0.792 (+18.5%), clearing all chrome and page edges with no clipping; advisor-pixel-gated light + dark from byte-parity review copies at owner head a2dfea7. PNG diagram (chrome-free) is byte-identical — the fix touches page composition only, not the diagram build. Because this materially advances the rendered artifact, the tuple advances to render-v18 and the stamp date advances to the operation date 2026-07-20 (correcting the standing drift where the date was frozen at the source-v4 date 2026-06-11 through render-neutral syncs; the convention is now: source/render change ⇒ date advances, byte-neutral sync ⇒ date holds). Source held at source-v4 (no tree-data change). No committed raster exists for this maskless tree, so nothing is re-exported/committed — the render change is realised only in on-demand PNG page exports. diagrams-fit.js (98ffd786… #79), diagrams-static-H-engine.js (385f150d… #78), diagrams.css (049b0268…), source data, and the _dsa-tokens foundation pin (1231d03) are all unchanged — the interactive-spine exporter is a separate artifact and does not exist in this bundle. Exporter pin tracked in the operator consumer-ledger (item 14).
Re-vendor 2026-07-19 — fit() clearance degrades continuously on a constrained axis (design-system PR #79 99d13e67), helper-only; live-canvas Fit change at short viewports, exporter/raster neutral, stamp held. Follow-up to the #77/#78 entries below. The #77 helper subtracted an ABSOLUTE clearance (avail − clearance); on a canvas smaller than its clearance that term went non-positive and the degenerate-input guard rewrote the scale to ~maxScale, throwing content off canvas — surfaced on method-ASK's bespoke figures, not here. The owner fix degrades clearance continuously: effectiveClearance = min(clearance, avail/2), so it consumes at most half a positive available axis, and the contract now reads by region (ordinary avail ≥ 2·clearance = exact prior arithmetic; constrained avail < 2·clearance = continuous degradation; panel-collision = overlap-gated). diagrams-fit.js re-vendored byte-identical from DS @ 99d13e67 (blob 98ffd786…, prior 0c993163…). Helper-only: diagrams-static-H-engine.js is unchanged — it remains current at 385f150d… (#78); diagrams.css (049b0268…), export-png.js (9b043e6f…), source data, shell chrome, and the _dsa-tokens foundation pin (1231d03) are all untouched. What actually changes — measured base-vs-head: the four reference viewports (1440×900 wrap 1440×814 · 1600×620 1600×534 · 1441×903 1441×817 · 900×820 900×720) are all in the ordinary region and apply identical placement. The constrained region is reachable through the real D01 shell at a short viewport (an earlier "shell floors its canvas at ~490×546 / never reached" claim was wrong — that minimum was an artifact of the test pane's iframe, not a shell contract; the shell CSS declares no canvas minimum). Exercised in a controlled same-origin iframe sized to .bar height + 120 = 220px, the real shell's canvas measured 900×119.8 (a positive constrained axis, < 160); there the placement does change: old absolute-clearance helper scale 0.01302, #79 continuous scale 0.01961 — positive, on-canvas, reserved:false clear:true (the content at that scale clears the panels, so no reservation/degradation), and interaction was correct (zoom-out no reversal, Fit idempotent). So this is a live-canvas Fit change at short constrained viewports, render-neutral only for the ordinary reference viewports. Exporter/raster neutral: PNG page + PNG diagram byte-identical both themes (light page 76b6a387… · dark page 316669c3… · light diagram 76237fff… · dark diagram a9ebf0e3…) — the exporter clones the rendered SVG and composes independently. (Supplemental synthetic check, clearly synthetic: a 120px-height wrap with D01's real bounds 2328×2978 + clearance 80 gave old 0.01343 → #79 0.02015, matching the actual-shell direction.) No committed raster exists, so the stamp is held at render-v17 (source held at source-v4). Helper pin tracked in the operator consumer-ledger (item 14).
Re-vendor 2026-07-19 — interaction floor tracks Fit (design-system PR #78 094aa627), export-neutral, stamp held. Follow-up to the #77 entry below, and landed together with it in this bundle — this consumer never ran the intermediate a47f255d… engine. The #77 panel-aware fit can legitimately compute a scale below the engine's fixed zoom floor (a diagram that collides with the chrome fits smaller than it used to), and the engine then clamped zoom-out to that fixed floor — so from a fitted state both the minus button and the outward wheel increased the scale, reversing the control's direction. This bundle's D01 tree is the case that surfaced it: at 900×820 the corrected fit is 0.1273 against a 0.15 clamp. Note the reversal is not limited to collision cases — at 1600×620 this tree fits at 0.1487, already below the historical floor even though #77 left that placement untouched. The owner fix makes the live floor the lower of the pattern's own historical base floor (0.15 here, preserved — floors are not normalized across patterns) and the most recent Fit: minus and outward wheel now clamp to min(0.15, latest Fit). Fit itself remains unclamped — clamping it would restore the panel collision #77 exists to remove. diagrams-static-H-engine.js re-vendored byte-identical from DS @ 094aa627 (blob 385f150d…, prior on main e0f59276…). Interaction-only: diagrams-fit.js (0c993163…), diagrams.css (049b0268…), export-png.js (9b043e6f…), the source data, and the shell chrome are all unchanged, as is the _dsa-tokens foundation pin (1231d03). Export-neutral, measured: PNG page + PNG diagram byte-identical in both themes; no committed raster exists, so the stamp is held at render-v17 (source held at source-v4). Engine pin tracked in the operator consumer-ledger (item 14).
Re-vendor 2026-07-19 — DS fit contract: fit() reserves the measured glass-panel band (design-system PR #77 a7e1d36), export-neutral, stamp held. Every DS diagram engine computed fit() from the full canvas-wrap and reserved nothing for the top-corner caption / legend or the bottom HUD glass panels, so a diagram could render its edge bands underneath the chrome. The collision is between SVG content and HTML chrome, which no SVG bbox check sees. The landed owner fix extracts one shared, pure measurement utility — diagrams-fit.js, new to this bundle (blob 0c993163…, byte-identical to the owner) — and is overlap-gated: it computes the caller's prior transform first and returns it untouched when the content already clears the gutter-inflated chrome, activating a four-edge safe rectangle only on a demonstrated collision. diagrams-static-H-engine.js re-vendored byte-identical from DS @ a7e1d36 (blob a47f255d…, prior e0f59276…); the engine now fails closed with a named error if the helper is absent, so a partial re-vendor cannot look current while keeping the old geometry. diagrams-fit.js loads immediately before the engine in the shell. diagrams.css (049b0268…) and export-png.js (9b043e6f…) were already current at a7e1d36 — unchanged, and the _dsa-tokens foundation pin (then-current 1231d03) is untouched (neither the helper nor the engine is a mirror file). Export-neutral, measured not assumed: PNG page + PNG diagram were captured from the live exporter under both the prior and current engines in both themes and are byte-identical in all four combinations (light page 76b6a387… 4,173,211 B · dark page 316669c3… 5,143,409 B · light diagram 76237fff… 3,925,764 B · dark diagram a9ebf0e3… 5,203,903 B) — the static exporter clones the rendered SVG and performs its own poster composition, so it never reads the live stage transform. No committed raster exists for this maskless tree, so nothing is re-exported and the render-vN stamp is held at render-v17 (source held at source-v4). Live-canvas placement is unchanged at 6 of 8 tested viewport/theme combinations (exact prior transform: 1440×900 · 1600×620 · 1441×903, both themes) and changes only at narrow 900×820, where the prior fit genuinely collided with all three panels (legend 75×107 · caption 187×72 · HUD 176×12) and the corrected fit clears them at a smaller scale (0.2095 → 0.1273); that viewport is a pan/zoom overview state, not a read-all state. Engine + helper pins tracked in the operator consumer-ledger (item 14).
Re-vendor 2026-07-17 — diagrams-static-H-engine.js renders group notes + drops section-note dead space (design-system PR #74 bb00558), render-neutral for this bundle, stamp held. Two halves of one invariant (measured content must be rendered content) were repaired upstream: a kind: 'group' note was measured into column width and granted the taller 44px box, then the group branch drew rect + label and continued — the note was never emitted; and an unrendered section note still bought box height (the vertical half of the width-only fix in DS #32). diagrams-static-H-engine.js re-vendored byte-identical from DS @ bb00558 (md5 c29e43a6). Render-neutral for this bundle — the architecture tree authors no group notes and no section notes (its 9 sections carry tags, and a section tag earns the tall box under both the old and new predicate), and it has no leaf sections, so nothing cascades. Neutrality was measured, not assumed: the page was rendered in-browser with real tokens + fonts under both engines and the serialized SVG is byte-identical (28,554 chars, identical hash, viewBox 2328.81×2978, 126 text elements, 0 overflow). The render-vN stamp is therefore held at render-v17 (source held at source-v2). No committed raster (maskless tree) → nothing to re-export. The _dsa-tokens foundation pin (then-current 1231d03) is untouched — the engine is not a mirror file. Engine pin (DS bb00558) tracked in the operator consumer-ledger (item 13).
Re-vendor 2026-07-13 — export-png.js direct-<defs> carry fix (design-system PR #72 5674b46), render-neutral for this bundle, stamp held. The shared static exporter cloned only the live SVG's direct <g> content layers into the raster, never its direct <defs>, so a figure referencing a mask / clipPath / gradient / marker via url(#id) from a direct <defs> exported a dangling reference (e.g. a negative-cutout wash filled solid). The landed fix clones :scope > defs into the export content in both the page and diagram paths. export-png.js re-vendored byte-identical from DS @ 5674b46 (md5 a91d9548). Exporter-only — tokens, fonts, diagrams.css, the engine, and the _dsa-tokens mirror pin (then-current 1231d03) are unchanged. Render-neutral for this bundle — control-surface_architecture-tree is a maskless tree with no committed raster and no direct-<defs> reference, so its output is unchanged and the diagram render-vN stamp is held (render-v17); the fix only affects figures that reference a direct <defs>. Smoke-tested: PNG page + PNG diagram export cleanly in both themes. Exporter pin tracked in the operator consumer-ledger.
Re-vendor 2026-07-10 — native file:// export via embedded-font carrier (design-system PR #62 44c6074), render-neutral for http, stamp held. Supersedes #61's goal while keeping #61's fail-closed behavior as the floor: a double-clicked (file://) diagram now exports a correct PNG with no server. Not exporter-only — this re-vendor adds fonts-embedded.js to this mirror (the DS-generated embedded-font carrier + integrity manifest, md5 ffb61b1e), and the diagram HTML now loads <script src="./_dsa-tokens/fonts-embedded.js"> before export-png.js. export-png.js re-vendored byte-identical from DS @ 44c6074 (md5 9cb7a354): it prefers the carrier (no fetch → works under file://), falls back to the http woff2 fetch, and still fails CLOSED — now manifest-backed, so an incomplete carrier is caught even under file:// — if neither fully embeds. colors_and_type.css / fonts / the pin (then-current 1231d03) are unchanged (the carrier is generated FROM them). Render-neutral for http — the successful http export output is byte-identical (carrier @font-face bytes == fetch bytes), so the diagram render-vN stamp is held. Exporter + carrier pins tracked in the operator consumer-ledger (item 10; item 9 remains the fail-closed floor).
Re-vendor 2026-07-10 — export-png.js fail-closed under file:// (design-system PR #61 ed64b42), render-neutral for http, stamp held. Follow-up to #60: the exporter now fails closed when it can't embed the fonts — under a file:// page (Chromium blocks the woff2 fetch) or any incomplete embed it blocks the export with a "serve over http" warning instead of silently emitting a fallback-font (clipped) PNG. export-png.js re-vendored byte-identical from DS @ ed64b42 (md5 04aa5177). Exporter-only — tokens/fonts/diagrams.css/engine unchanged; the _dsa-tokens mirror pin (then-current 1231d03) is untouched. Render-neutral for this bundle — the successful http export output is unchanged (this diagram renders over http); the guard only blocks broken file:// exports, so the render-vN stamp is held. Exporter pin tracked in the operator consumer-ledger (item 9).
Re-vendor 2026-07-10 — export-png.js font-embed fix (design-system PR #60 9b05d9a), render-neutral for this bundle, stamp held. The shared raster exporter now embeds the page's own @font-face faces (base64) into the exported SVG <defs> before rasterizing — fixing right-edge node-text clipping in headless / font-absent PNG renders (SVG-as-image is font-isolated from the document's web fonts). export-png.js re-vendored byte-identical from DS @ 9b05d9a (the four static copies are byte-identical). Exporter-only — tokens, fonts, diagrams.css, and the engine are unchanged; the _dsa-tokens mirror pin (then-current 1231d03) is untouched. Render-neutral for this bundle (no committed raster; visual output is unchanged where the fonts are present, which is how this diagram renders), so the diagram render-vN stamp is held; the fix corrects only headless / font-absent exports. Exporter pin tracked in the operator consumer-ledger.
Re-sync 2026-06-26 (b5d158e → 1231d03) — COMMENT-ONLY, render-neutral: design-system PR #56 corrected two stale comments in colors_and_type.css ("five-color core" header → "a core identity set"; "Core 5 — backgrounds + text" block label → "Core set — backgrounds, wordmark, dark-mode text"). No token value, role name, selector, or behavior change — only the new colors_and_type.css sha256 (then-current bcd11e0efeae2851c8653a425f94a76cb6423c770e23cb18b3a0315519a7375f) differs. Fonts byte-identical; diagrams.css / engine / export-png.js unchanged. Diagram render-vN stamp held.
Re-sync 2026-06-26 (2e1ab4c → b5d158e) — RENDER-NEUTRAL conformance: picks up the light-mode foreground conformance (design-system PR #52) and the diagram foreground-alias de-dup (PR #53). In colors_and_type.css: --ask-white/--fg-1 comments corrected (white = wordmark, not body text), --ask-fg-light (#6A637F) + --fg-high-contrast (reserved #201D26) added, --fg-on-card rebound to var(--fg-1), .bg-ask-light text white→var(--fg-1). In diagrams.css: the scoped text roles --diagram-ink/muted/faint now alias var(--fg-1/-2/-3) instead of hardcoding the ramp (redundant dark-text redefs dropped; structural strokes stay local). Resolved values are unchanged in both themes — this diagram uses none of the rebind-affected roles (--fg-on-card / .bg-ask-light), and --fg-1 still resolves to #6A637F. Only colors_and_type.css + diagrams.css changed; the four font files are byte-identical; the diagram engine / export-png.js were already current. Diagram render-vN stamp held (render-neutral).
| File | Upstream source | Role |
|---|---|---|
Filecolors_and_type.css |
Upstream source/colors_and_type.css |
RoleTier 1 + Tier 2 tokens + @font-face (light default · [data-theme="dark"] · prefers-color-scheme auto-bridge) |
Filefonts-embedded.js |
Upstream sourcegenerated from /colors_and_type.css + /fonts/ by /tools/gen-embedded-fonts.js |
Roleembedded-font carrier (window.DSA_EMBEDDED_FONTS + integrity manifest) — enables offline file:// PNG export; load before export-png.js |
Filefonts/InterVariable.woff2 |
Upstream source/fonts/ |
Roledisplay family |
Filefonts/InterVariable-Italic.woff2 |
Upstream source/fonts/ |
Roledisplay italic |
Filefonts/JetBrainsMono.woff2 |
Upstream source/fonts/ |
Rolemono family |
Filefonts/JetBrainsMono-Italic.woff2 |
Upstream source/fonts/ |
Rolemono italic |
Filefonts/Inter-OFL.txt, fonts/JetBrainsMono-OFL.txt |
Upstream source/fonts/ |
RoleSIL OFL license texts |
Re-sync this mirror and advance the pin above when the upstream tokens or fonts
change. Then classify the effect on each consuming diagram under its own
source-vN // render-vN contract: advance a diagram's render-vN stamp, and
regenerate its committed rasters, only when its render actually changes — as the
entries above do. A re-sync or pin advance does not by itself change a render.