_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 (15,496 B)
three-functions.css sha256: 6c8d9dc539a27b0fecd48767d5f7314b5f43f2b173aab8db1fd16b153523b7d2 (unchanged at the advanced pin; the mirror stays at a single pin — three-functions.css, fonts-embedded.js and the six font carriers are byte-identical at a7c5530 and 067691a, verified member-by-member against the owner at both commits and against disk, so advancing the pin re-vendors colors_and_type.css alone)
Re-vendor 2026-10-08 — shared render support to design-system-ASK #175 (db9aaa86): the fit's v3 placement, a shared pointer controller and the chrome's room rule. Every diagram page now takes the responsive chrome and the controller; nine render stamps advance; the foundation pin above is untouched. None of these files is a mirror member, so 067691a and every mirror member — the tokens, Three Functions, the font files and fonts-embedded.js — stay exactly as vendored. Re-vendored byte-identical from the owner:
diagrams-fit.js6fbf521f…→d733be35…: v3 adds opt-in placement.balancecenters a drawing vertically between the chrome above and below it, andcompactClearancecaps the clearance while the responsive chrome is compact; a caller that passes neither gets the v2 result.diagrams-chrome.jsc4b63393…→e8eed502…: the panels also close behind their triggers when they would leave the drawing less room above the HUD than the fit needs, and a change in the HUD's size is announced like any other chrome change.diagrams.cssf6c398a3…→6ad733cd…: a canvas the pointer controller owns takestouch-action: noneunder the drawing, so a finger there moves the drawing, never the page.diagrams-static-H-engine.jsdbcebdb2…→e0892fbf…: the engine requires fit v3, passesbalanceandcompactClearance, and hands its gestures to the pointer controller; a page that does not load the controller keeps the mouse drag and wheel.- New:
diagrams-pointer.js830a4b62…(v2): one finger pans from anywhere on the drawing, two pinch it about their centroid, and a wheel zooms about the pointer; the panels keep their own taps and scrolling.
export-png.js is unchanged at b3e34d95… and diagrams-text-layout.js at 62c7b8a4…, both the owner's current bytes, and the engine's paired text-layout contract holds: every tree page renders. _dsa-surface/surface-panel.css (12582f53…) and surface-treatments.css (1ab4e3d0…) are unchanged. Adoption: the five tree pages, the SMGI ontology and system-ASK (D11) wrap their caption and, where they have one, their legend in .diagram-info with About and Legend triggers, add the illustrative cue, load _dsa-surface/surface-panel.css then surface-treatments.css, and load diagrams-chrome.js and diagrams-pointer.js before diagrams-fit.js. Every figure builder, bounded generativity's and SMGI doctrine's included, now requires fit v3 and the controller, passes balance and compactClearance, and hands its gestures to the controller. The public topology takes the same from its operator shell (below).
Measured, base ↔ this change, headless system Chrome 155.0.8059.40 over http at 1440×900: every page that loads the exporter — the five trees, the four figures, the SMGI ontology's ?layout=page profile and the public topology — × {PNG page, PNG diagram} × {light, dark} = 44 exports a side, each side exported twice with byte-identical results.
- Every
PNG diagramis byte-identical (22 of 22). - Every
PNG pagechanges only inside its stamp box (within x 3161–3741, y 69–148 of 3840×2880; the system-ASK stamp is the widest). Each base page, exported again after its live stamp is rewritten to the new tuple, gives the new page's bytes exactly (22 of 22), so the stamp is the only change in any export.
Live composition. On a 390×844 touch screen the seven newly adopting pages open compact, with their panels behind the triggers; one finger pans the drawing 60 px for 60 px of travel and two fingers scale it ×2.0 for ×2.0 with the page held at its own zoom, where before a 60 px drag moved the drawing 20 px and a pinch zoomed the page. Bounded generativity and the SMGI doctrine figure keep their at-rest view at 1440×900, and change it on a narrow or crowded window: at 390×844 each drawing rests about 19% larger, and at 900×820 the SMGI doctrine figure rests about 7% larger while bounded generativity is unchanged. On every page Fit equals the resting view, a second Fit changes nothing, and zooming out by button or wheel never reverses (1440×900, 900×820 and 390×844). The SMGI doctrine figure's live measurements are later loads in one browser, with its viewBox 1749 units wide, while its mirror is a first load (Committed rasters, below).
Stamps. The first-adoption precedent applies to the seven pages that take the chrome now, so their render advances and their source holds: topology source-v9 // render-v22 → render-v23; intent-artifact ontology source-v2 // render-v2 → render-v3; activation + lifecycle comparison source-v1 // render-v3 → render-v4; relay / feeding / ingestion and relay graph + PTX projection source-v1 // render-v2 → render-v3; SMGI ontology source-v2 // render-v1 → render-v2; system-ASK D11 // source-v2 // render-v1 → render-v2. Bounded generativity source-v5 // render-v6 → render-v7 and SMGI doctrine source-v1 // render-v3 → render-v4 advance because their at-rest live composition changed. All nine are dated 2026-10-08, and no source advances.
Committed rasters. All four dark full-page mirrors are regenerated from the final pages, because each one's stamp changes; the SMGI ontology's comes from its ?layout=page profile. Beyond the stamp, each new mirror is exactly what a fresh export of the unchanged base gives in the same environment. Against the previous mirrors, system-ASK differs only in the stamp box. Bounded generativity and SMGI doctrine also differ across 57–60% of their pixels by a one-level rendering-environment shift (largest channel difference 70 and 58), and the SMGI ontology by the same shift plus the edge rendering of its central label and the four relation labels around it (largest 190); a fresh export of the unchanged base shows the same differences. The SMGI doctrine mirror is exported with the page as a fresh browser's first load. Its builder sizes the viewBox from the drawn text, so the export depends on whether the webfonts have finished decoding when it measures: 1766 units wide before, 1749 after. A fresh browser's first load measures before; a later load usually, but not always, measures after. The previous mirror matches the 1766-wide composition.
The public topology's generated source, HTML and generation receipt come from the operator package's own generator at its render-v28 realization and land with that release; this repo does not edit them. The receipt pins the operator shell that carries the chrome and the controller, and the tuple is source-v13 // render-v28 // 2026-10-08. Its PNG diagram exports are byte-identical, and its PNG page changes only in the stamp.
Re-vendor 2026-09-28 — shared render support to design-system-ASK #169 (53fa86e5): responsive diagram chrome and a controlled disclosure trigger. Two figures adopt the chrome; four render stamps advance; the foundation pin above is untouched. None of these files is a mirror member, so 067691a and every mirror member — the tokens, Three Functions, the font files and fonts-embedded.js — stay exactly as vendored. Re-vendored byte-identical from the owner:
diagrams-fit.js98ffd786…→6fbf521f…: chrome may declare the edge it is anchored to; with nothing declared, the fit reserves exactly the panels it did before.diagrams-static-H-engine.js70f23852…→dbcebdb2…: a view stays at Fit until the reader moves it, and only a view at Fit follows a resize.diagrams.css049b0268…→f6c398a3…: the chrome's layout, applying only to a page that wraps its panels in.diagram-info.export-png.js395df1c9…→b3e34d95…:PNG pagereads the subtitle and stamp wherever they sit, keeps every caption line, and keeps the caption, the legend and the drawn marks apart.- New:
diagrams-chrome.jsc4b63393…, and_dsa-surface/surface-treatments.css1ab4e3d0…, which supplies the controlled disclosure trigger.
diagrams-text-layout.js is unchanged at 62c7b8a4…, the owner's current bytes, and the re-vendored engine's paired contract holds: its TARGETS still name diagram-static-H, and every tree page renders. Adoption: bounded generativity and the SMGI doctrine figure wrap their caption and legend in .diagram-info with About and Legend triggers, load _dsa-surface/surface-panel.css then surface-treatments.css, and load diagrams-chrome.js before diagrams-fit.js; their builders follow the tree engine's Fit rules. No other page adopts the chrome or loads a new file.
Measured, base ↔ this change before the stamp edits, headless system Chrome 154.0.8037.58 over http at 1440×900: every page that loads the exporter — the six trees, the four bespoke figures and the SMGI ontology's ?layout=page profile, which the committed mirror comes from — × {PNG page, PNG diagram} × {light, dark} = 44 exports.
- 38 byte-identical. Every
PNG diagramis byte-identical, and so is everyPNG pageexcept three. - SMGI doctrine
PNG pagechanges: its caption panel no longer runs under the legend, and the caption wraps to a third line. The figure, the legend and every caption word are unchanged. - Topology and activation
PNG pagechange: each landscape tree started inside the panel band, with its root under the caption panel; each is now fitted below the band, smaller and clear of both panels. Neither has a committed raster. - Unchanged: bounded generativity, the SMGI ontology (both profiles), system-ASK (
D11), the public topology and the other three trees.
The four stamp edits then change only the stamp region of those four pages' PNG page (x 3244–3740, y 69–148 of 3840×2880); the other 36 exports stay byte-identical. On the two adopting pages, PNG page is identical whether exported from the wide view, from compact with the panels closed, with About open, or from a short landscape window with Legend open (16 of 16, both themes).
Stamps. For this installation a changed live composition counts as a render change, so bounded generativity advances source-v5 // render-v5 → source-v5 // render-v6 and SMGI doctrine source-v1 // render-v2 → source-v1 // render-v3. Topology source-v9 // render-v21 → source-v9 // render-v22 and activation + lifecycle comparison source-v1 // render-v2 → source-v1 // render-v3 advance because their page export changed, as topology's did at render-v20. All four are dated 2026-09-28, and no source advances. Every other stamp is held; the tree pages' new Fit behavior is live interaction only.
Committed rasters. The bounded-generativity and SMGI doctrine dark full-page mirrors are regenerated from the final pages. The SMGI mirror takes the caption correction and its new stamp; the bounded-generativity mirror takes its new stamp, and its figure and composition are unchanged: beyond the stamp, it differs from the previous mirror only by the edge antialiasing between rendering environments that a fresh export of the unchanged base shows too. The SMGI ontology and system-ASK mirrors are untouched.
The public topology keeps its generated source, HTML and generation receipt unchanged. The receipt records the projection exporter, its input manifest, the operator canonical, the HTML shell and the generated outputs; it does not cover these shared files, and all four of its exports are byte-identical.
Re-sync 2026-09-17 (colors_and_type.css a7c5530 → 067691a; DS #154 SL3) — A REAL FOUNDATION REBIND, NOT COMMENT-ONLY; MEASURED NEUTRAL IN THIS BUNDLE BECAUSE EVERY PAGE THAT COULD EXPRESS IT ALREADY OVERRIDES .caption; ALL DIAGRAM STAMPS HELD AND NO COMMITTED RASTER RE-EXPORTED. The hop crosses one carrier-changing owner event for this file. SL3 (31e283e) adds the tracking token --tracking-caption: 0.14em and rebinds the foundation .caption role from var(--tracking-wide) (0.08em) to it. Those two lines are the entire a7c5530 → 067691a diff of this file: no other token value, role name, selector, @font-face, theme block or declaration moved (15,463 → 15,496 B). The owner's coupled half has no carrier here. SL3 is a pair — in the same commit the interactive-spine pattern pins its own caption band to --tracking-wide, because that band is the pattern's own 10px chrome rather than the foundation's 14px Caption role. This bundle vendors no spine: there is no diagrams-interactive-spine.css and no interactive-pattern directory in this repo, so the second half has nothing to land against, and nothing was pre-vendored for it. Neutral here by measured override, not by non-use. All ten docs/diagrams/*.html diagram pages carry exactly one <div class="caption glass">, and each loads _dsa-tokens/colors_and_type.css before diagrams.css, whose own .caption rule declares letter-spacing: 0.06em at the same specificity and later in source order — so the local rule wins the cascade and the foundation rebind never reaches the resolved value. .caption b declares 0.14em there as well. index.html, the one page that also loads the _dsa-surface/ carriers, carries no class="caption" element at all; its .card .cls and .group-label labels declare letter-spacing: 0.14em literally and read --fs-caption for size only. Measured on this bundle — all eleven pages in this folder (the ten diagrams plus index.html) × {prefers-reduced-motion: no-preference, reduce} = 22 loads on each side of the change, headless system Chrome 153.0.8010.48 over http with the HTTP cache disabled, computed values read off the live document: .caption letter-spacing = 0.6px and .caption b = 1.54px on every diagram page, identical before and after; --tracking-caption at :root moves from unset to 0.14em on every page, which is what confirms the new token is present and simply not expressed, while --tracking-wide stays 0.08em. A whole-document letter-spacing census — every element whose computed letter-spacing is not normal, counted by tag and class — is identical page for page, so nothing outside .caption moved either. Nothing in this bundle reads var(--tracking-caption), and the only var(--tracking-wide) consumer is _dsa-surface/surface-shell.css, whose token SL3 does not touch. No raster consequence, and for two independent reasons. No page's caption tracking changed; and export-png.js takes only the caption's text and the --diagram-ink / --diagram-muted color roles from the live DOM, drawing the page caption panel with its own hardcoded tracking, so a live .caption tracking change would not reach the page export by that path in any case. The four committed dark full-page mirrors — bounded generativity, SMGI doctrine, SMGI ontology and system-ASK (D11) — are untouched; no re-export. All diagram stamps held: method-ASK_topology source-v9 // render-v21 · system-ASK-topology-public source-v13 // render-v27 · intent-artifact ontology source-v2 // render-v2 · activation + lifecycle comparison, relay / feeding / ingestion, relay graph + PTX projection and SMGI doctrine source-v1 // render-v2 · bounded generativity source-v5 // render-v5 · SMGI ontology source-v2 // render-v1 · system-ASK D11 // source-v2 // render-v1. Companion leg, outside this mirror. The same commit re-vendors the two _dsa-surface/ carriers index.html loads — surface-action.css and surface-panel.css — from the same owner commit, for SL4 (e7f5ec2, reduced-motion suspension) and SL7 (881a996, which authors the glass recipe once in surface-panel.css so the treatment axis classes can share it by selector grouping). Measured on index.html in the same runs: at the default motion preference every computed property on its 14 .surface-panel and 40 .surface-action elements is identical before and after, so SL7's regrouping changes nothing a panel resolves. Under prefers-reduced-motion: reduce it is a declared behavior change: the four a.surface-panel and all 40 .surface-action controls drop their transition to none, their :active press scale resolves to none instead of animating toward scale(0.97), and the hover / focus paint (0.92 opacity, the magenta attention edge) applies instantly. Static paint is unchanged in every state, so no stamp and no raster follows from that leg either. Those two files are not mirror members and take no pin here — their owner pin is recorded in the commit.
Re-sync 2026-09-13 (three-functions.css f298678 → a7c5530; DS #147, with the owner's #149 clarification) — THE CSS RE-VENDOR IS COMMENT-ONLY AND RENDER-NEUTRAL; THE OWNER'S SEMANTIC GENERATION IS NOT, AND TWO FIGURE SOURCES ADVANCE FOR THAT REASON. The primitive advances v0.1 → v0.2 (#147, 85981a7): a semantic generation that changes which elements qualify for --function-legislative, not how the role renders once assigned. The owner now separates what performs the legislative function — the source-of-intent / normative-apex role as constitutive legislative source, and grammar · brief · rule · grant as delegated apparatus where it carries the standard into operative scope — from what sits around it and takes no role color: standing intent, passive carriage, the aperture and its geometry. #149 (a7c5530) then clarified two points inside v0.2, in three-functions.md only: an actor envelope that a figure draws separately from the role stays neutral while the role it occupies stays legislative, and a label takes --fg-1, or a registered foreground within that registration's scope, never the role hue. In the CSS file the change is two comment blocks and nothing else: no token value, role name, selector, cascade or declaration moved, and stripped of comments the file is byte-identical at 440 B (714dad02…) before and after — the same value the 2026-09-06 entry recorded. three-functions.css is unchanged between 85981a7 and a7c5530. What is NOT neutral is the conformance the owner change creates in this bundle's figures, and it is recorded against their authored sources: bounded generativity source-v4 // render-v5 → source-v5 // render-v5 — its source-of-intent role takes the legislative treatment beside the delegated grammar / brief; D11 source-v1 // render-v1 → source-v2 // render-v1 — human ASK becomes a neutral actor envelope holding the legislative source-of-intent role and the judicial adjudication gate, the builder's retired apex-neutral rationale is removed, its grants are keyed as delegated apparatus without the aperture they produce, the realization span inside the grant takes the executive treatment, the figure is recomposed on a grid — one ordinary-node size, shared column edges and routed gutters — and its three-functions and edge-grammar keys, with the owner's legend-only divider, are drawn inside the SVG. render-vN holds for both: no renderer, exporter, token or font changed. Both committed dark full-page mirrors are regenerated from the revised sources. SMGI doctrine takes no stamp change and no re-export: it loads this stylesheet but colors only its grammar node, a valid delegated-legislation instance that depicts no apex. The SMGI ontology figure does not load three-functions.css.
Re-sync 2026-09-06 (three-functions.css 8fb82b7 → f298678, DS #142) — COMMENT-ONLY, RENDER-NEUTRAL; ALL DIAGRAM STAMPS HELD. The owner revised the primitive's STATUS block: the forward-looking claims that the file was awaiting first-consumer proving, that method-ASK will be the first consumer, and that asset-pipeline-ASK is the intended second consumer, are replaced by a landed-record framing pointing at CONSUMERS.md and the worked example in three-functions.md, and stating that a landed consumption record is not, by itself, a portability, usability or generality verdict. The forward-looking consumption claims were already stale in this mirror — this repo is a landed consumer. Retiring the awaiting-proving wording is the owner's release-posture revision and asserts no completed proving event. No token value, role name, selector, or declaration changed: stripped of comments the file is byte-identical at 440 B (714dad02…) before and after. The dependency is unchanged rather than absent: the figure builders emit the fn-leg / fn-exe-wash / fn-exe-chamber / fn-jud / fn-jud-ring / fn-cut classes, and the <style> blocks of method-ASK_bounded-generativity.html and method-ASK_seed-mediated-generated-interface.html map those classes to var(--function-*) — consumption runs through the classes, and it is the unchanged declarations together with the unchanged consuming code that make this re-vendor neutral. Under §Update cadence none of the refresh triggers is met (no topology or method-altitude structural change, no new doctrine doc landing, and per-PR repo edits do not refresh) and the renderer realization is measurably unchanged: source-v4 // render-v5 and source-v1 // render-v2 both hold, and no committed dark mirror is re-exported. (The §Lineage source-v9 // render-v21 tuple describes the topology diagram and is not applied here.) The mirror stays at a single pin, advanced 2bbab41 → f298678; every other member — colors_and_type.css, fonts-embedded.js and the six font carriers — was verified byte-identical at both commits, so the advance re-vendors three-functions.css alone.
Re-sync 2026-09-03 (colors_and_type.css 28e9318 → 2bbab41) — REAL CANVAS CHANGE, MEASURED; ALL DIAGRAM STAMPS HELD. The hop crosses three carrier-changing owner events, and unlike the last two re-syncs this one is not comment-only and not neutral-by-non-use: it changes what the browser paints outside the document. #129 (85181c1) — the value-bearing event: adds the Tier-1 semantic role --bg-edge (root-only, binding existing palette values and creating none), sets color-scheme on the root, rewrites the base reset's background shorthand to the background-image longhand — the shorthand was resetting background-color to transparent, which is what left the canvas with no solid layer to derive an edge from — and adds html { background-color: var(--bg-edge); } plus body { background-color: transparent; } so the root's solid propagates to the canvas. The selectors match the root only, deliberately: a descendant .theme-dark resolves dark for its subtree while html still owns the canvas, so a descendant match would put dark content inside a light browser edge. #136 (b8d1f56) — rebinds the light edge --ask-white → --ask-lavender-light (#E2D3F0) and extends that token's comment to name its second role. #137 (6b513cf) — comment only within this file (its substance is the surface-shell swipe-to-close runtime), correcting one line of the --bg-edge block's prose. What changes here: the over-scroll pocket above and below the document, and the scrollbar / form-control rendering, now resolve from the theme instead of from the user agent's default white. What does not: the gradient still covers the viewport, so no in-page pixel moves. Measured on this bundle — all nine docs/diagrams/*.html pages × light + dark, headless system Chrome over http, computed values read off the live document: html background-color = rgb(226, 211, 240) light / rgb(10, 9, 12) dark, --bg-edge resolving to the same pair, body background-color = rgba(0, 0, 0, 0) on every page, color-scheme tracking the emulated preference, zero page or console errors — 18/18. diagrams.css sets body { background: var(--bg-gradient) } as a shorthand and so keeps body's own background-color transparent, which is the behavior the new root rule requires; no local override was needed. All other vendored files byte-identical between 8fb82b7 and 2bbab41 (three-functions.css, fonts-embedded.js, four woff2, two OFL texts — verified by hash against both owner commits and against disk), so the mirror moves to the single pin 2bbab41. No SVG geometry, source data, or committed raster is touched, and every consuming diagram stamp is held — the change is outside the document, not inside the figure.
Re-sync 2026-08-14 (colors_and_type.css 3d8b113 → 28e9318) — RENDER-NEUTRAL FOR THIS MIRROR 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. Render-neutral here by NON-USE — not because the change is comment-only: this is a real token-behavior change upstream, but nothing in this bundle reads var(--fg-on-card) (verified across the repo tree) and the carrier itself never consumes it, so no resolved value in any diagram changes. All other vendored files are byte-identical between 3d8b113 and 28e9318 — three-functions.css, the four fonts, and fonts-embedded.js are untouched, and the mirror stays at mixed pins (colors_and_type.css @ 28e9318, everything else @ 8fb82b7). Only the colors_and_type.css sha256 above differs (246aae65… → acd76409…; 13,022 → 13,375 B). All consuming diagram stamps held — no re-export.
Re-sync 2026-07-23 (colors_and_type.css → 3d8b113) — COMMENT-ONLY, render-neutral: design-system PR #88 corrected the tier-model header comment in colors_and_type.css — --ask-* 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; 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…). three-functions.css (@ 8fb82b7), fonts, fonts-embedded.js, and the exporter / engine / helper are unchanged — the mirror is now at mixed pins (colors_and_type.css @ 3d8b113, everything else @ 8fb82b7). The stylesheet is <link>ed, not inlined — no committed HTML or raster carries the comment. All consuming diagram stamps held — topology source-v6 // render-v20; bounded-generativity source-v4 // render-v5; SMGI doctrine source-v1 // render-v2; SMGI ontology source-v2 // render-v1 (render-neutral, no re-export).
Re-vendor + topology render-v20 2026-07-20 — export-png.js overlap-gated portrait page composition (design-system PR #80 2cd4610); per-surface disposition, not blanket. The shared static exporter's PNG page composition for PORTRAIT diagrams becomes an overlap-gated three-candidate fit (full region if it clears the corner panels / 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 reproduce the prior placement; the landscape page branch and the PNG diagram (chrome-free) path are mathematically unchanged. export-png.js re-vendored byte-identical from DS @ 2cd4610 (blob 2104021d…; prior on disk 9b043e6f…, the #72-era exporter). Measured gate — 4 surfaces × {PNG page, PNG diagram} × {light, dark} = 16 base↔head comparisons (headless system-Chrome exports, decoded + SHA-256): determined each surface independently.
- topology (
method-ASK_topology.html; diagram body portrait 3034×3440) — PNG page CHANGES materially both themes: the tree grows and rises into the centre lane (12.1% of pixels differ, high-amplitude, in the diagram-body region — not the chrome; visually confirmed larger, header/legend/stamp intact, no clipping). PNG diagram byte-identical both themes (the #80 change does not reach the diagram path — as it must not). Topology has no committed raster (on-demand only), so nothing is regenerated; its stamp advancesrender-v19 → render-v20(source heldsource-v5; date2026-06-11 → 2026-07-20) to record the changed on-demand page render — the same portrait-page-composition advance control-surface D01 took at #80. - bounded-generativity (landscape 3428×1494), SMGI doctrine (landscape 3440×1560), SMGI ontology (landscape 3440×1586) — all four exports byte-identical base↔head (page + diagram, light + dark); the landscape page branch is unchanged. Each committed dark full-page mirror is content-identical to a fresh head export (cross-environment decode: 99.5%+ of pixels at Δ≤2, zero pixels Δ>96 — pure antialiasing, no moved/restyled content; base→committed and head→committed give the same delta, confirming it is PR-independent). Stamps held (
bounded-generativity source-v4 // render-v5; SMGI doctrine + ontologysource-v1 // render-v1); the three committed rasters are untouched — no re-render. No blanket stamp — each surface dispositioned from its own base↔head result; the only change is the exporter re-vendor plus the topology stamp. The three figure builders,diagrams-fit.js,diagrams-static-H-engine.js,diagrams.css, tokens/fonts/Three Functions, and all source data/doctrine prose are untouched. The_dsa-tokensfoundation pin above (8fb82b7) is untouched —export-png.jsis not a mirror file. Exporter pin (DS2cd4610, #80) tracked in the operator consumer-ledger (item 14).
Re-vendor 2026-07-19 — DS diagram fit contract, interaction floor, and constrained-clearance fix (design-system PR #77 a7e1d36 · #78 094aa62 · #79 99d13e67); live-canvas fit + interaction only, exporter/raster neutral, all stamps held. Brings the bundle current with three landed owner changes and repairs the three bespoke figure builders' zoom floors. Files re-vendored byte-identical from the DS owner: diagrams-static-H-engine.js → 385f150d… (md5 ac4b66dd; prior on disk a47f255d… md5 a8b0c19c, the #77 engine) and diagrams-fit.js → 98ffd786… (md5 9b649a74; prior 0c993163… md5 27710d18). (Record correction: diagrams-fit.js and the #77 engine a47f255d… were first vendored in PR #122 (c38912f9, the #77 fit-contract leg) but that PR did not add a MANIFEST entry — this entry brings the log current for all three of #77/#78/#79.) What each owner change did: #77 extracted the shared diagrams-fit.js and made fit() reserve the measured caption/legend/HUD glass-panel band (overlap-gated); #78 made the zoom-out floor track Fit so a panel-aware fit below the historical floor no longer reverses the zoom-out direction; #79 made clearance degrade continuously on a constrained axis (effectiveClearance = min(clearance, avail/2)), fixing an off-canvas discontinuity where a canvas smaller than its clearance drove the scale to ~maxScale. Bespoke builders repaired (this bundle's own code, not owner files): method-ASK_bounded-generativity.figure.js, …_seed-mediated-generated-interface.figure.js, and …-ontology.figure.js each carried a FIXED 0.2 zoom-out floor on both the minus button and the wheel — the same reversal class #78 fixed in the DS engines. Evidence lineage, kept distinct: the pre-existing live reversals (old #77 helper, fixed 0.2 floor) were bounded-gen 700×600 fit 0.1594 and 520×460 fit 0.1848 — both below 0.2, so zoom-out raised the scale. Separately, at 420×380 the old helper produced the 1.0000 off-canvas catastrophe (not a below-0.2 reversal at that viewport); #79 corrects that to ≈0.0877 on-canvas, which is itself below 0.2 — so the combined #79-helper + fixed-0.2-builder would reverse there too unless the floor is repaired. Each builder now tracks fittedMinScale = Math.min(0.2, latest Fit), set from the applied fit so the document.fonts.ready refit and every resize refresh it; caller-owned inputs preserved (bounded-gen clearance 90/90, both SMGI 90/20, all maxScale 1.3, zero-origin stage bounds). LIVE-CANVAS FIT + INTERACTION ONLY — #77 and #79 change the default live placement geometry; #78 and the builder floors are interaction; the exporter and authored SVG geometry are untouched, which is why stamps hold. PNG page + PNG diagram verified byte-identical to the pre-change builders across the three figures × both modes × both themes (12/12), so the three committed dark rasters are untouched. The formerly anomalous small viewports were re-probed against the landed #79 helper: bounded-gen 420×380 → 0.088 on-canvas (was 1.0 off-canvas), doctrine 420×380 → 0.020 (was 0.0091), ontology 420×380 → 0.172 unchanged; all 1440×900 fits unchanged; no 1.0000 fallback and no unexplained 0.0091 near-clearance result remain. The topology shell (method-ASK_topology.html) is the H engine's only consumer here and was verified separately against base and head: above-floor keeps the 0.15 floor, real below-floor viewports (700×600 0.0545, 520×460 0.022) track Fit with no minus/wheel reversal, resize across the threshold is deterministic, no chrome collision, PNG page + PNG diagram byte-identical both themes. (At 420×380 the topology canvas-wrap measures 0 height — the shell chrome consumes the whole 380px window — so compute() returns its degenerate-input bail min(1, maxScale); identical in base and new, distinct from the #79 clearance path.) Live stamp dispositions (all held, no committed raster changes): method-ASK_topology source-v5 // render-v19 · bounded-generativity source-v4 // render-v5 · SMGI doctrine source-v1 // render-v1 · SMGI ontology source-v1 // render-v1. The _dsa-tokens foundation pin above (8fb82b7) is untouched — neither the engine nor the helper is a mirror file. Engine + helper pins tracked in the operator consumer-ledger (item 14).
Re-vendor + topology render-v19 2026-07-17 — diagrams-static-H-engine.js renders group notes (design-system PR #74 bb00558); topology stamp bump render-v18 → render-v19 (source held at source-v3). (Scope note: unlike every entry below, this one concerns method-ASK_topology.html, not the bounded-generativity figure — the figure renders from its own figure.js and does not load this engine.) The shared static-H engine measured a kind: 'group' note into column width and granted the group the taller 44px box, then the group render branch drew rect + label and continued — so the note was never emitted: invisible text that still moved layout, under a label centered in a box sized for content that was not there. The landed fix emits the group note (label at y+16, note at y + boxH - 10, matching the ordinary-node branch) and, in the same commit, stops an unrendered section note from buying 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). NOT render-neutral for this diagram — the doctrine docs group note ("source-of-intent doctrine cluster + method spine") was authored, measured, and unreadable; it now renders, so the stamp bumps to render-v19 (source held at source-v3 — the tree data is unchanged). This diagram authors no section notes, so the section half is inert here. No committed raster for the topology → nothing to re-export. Gated both themes with real tokens + fonts: note renders inside its 44px box below its label, zero text overflowing the viewBox, and the new note is not involved in any of the 21 pre-existing ~1.3px label/note font-bbox grazes. The _dsa-tokens foundation pin above (8fb82b7) is untouched — the engine is not a mirror file. Engine pin (DS bb00558) tracked in the operator consumer-ledger (item 13).
Re-vendor + render-v5 2026-07-13 — export-png.js direct-<defs> carry fix (design-system PR #72 5674b46); stamp bump render-v4 → render-v5 (source held at source-v4). The shared static exporter cloned only the live SVG's direct <g> content layers into the raster, never its direct <defs> — so this figure's executive-chamber negative-cutout mask (#exe-holes, a userSpaceOnUse mask in a direct <defs>) exported as a dangling url(#exe-holes) reference: the wash rasterized unmasked (solid) and the seven variance marks read as filled, while the live browser render stayed correct. The landed fix clones :scope > defs into the export content (both the page and diagram paths) so every url(#id) reference resolves. export-png.js re-vendored byte-identical from DS @ 5674b46 (md5 a91d9548). NOT render-neutral for this bundle — all four committed rasters are regenerated so the cutouts render as holes (page + diagram, both themes); the stamp bumps to render-v5 (source held at source-v4, figure geometry unchanged). The _dsa-tokens foundation pin above (8fb82b7) is untouched — export-png.js is not a mirror file. Exporter pin (DS 5674b46) tracked in the operator consumer-ledger.
Re-vendor + source-v4 2026-07-12 — positioned exporter (design-system PR #70 5512b5d) + figure geometry revision; stamp source-v3 → source-v4 (render held at render-v4). The shared static exporter gains a larger, lower-anchored page composition — the diagram side margin tightens 96→40px and landscape diagrams center in the space below the corner panels — re-vendored byte-identical from DS @ 5512b5d (md5 6b2190b8); it now carries both this and the #69 semantic-legend fix. The figure source is revised (source-v4): even 36px spacing throughout (frame→grammar, grammar→aperture ↕ arrow, chamber→governance, above/right of governance, frame→governed), the outer frame expanded +72px split evenly (36 top / 36 bottom) for vertical breathing room, the aperture permitted variance / aperture labels split with the ↕ arrow passing through the empty gap between them, the grammar and governed-artifact boxes tightened to their text, the chamber compacted, and source of intent rewrapped to two subordinate lines. All four rasters regenerated — the full-page mirrors (-{dark,light}.png, the primary doctrine embed) and the chrome-free diagram assets (-diagram-{dark,light}.png). The _dsa-tokens foundation pin (8fb82b7) is untouched — export-png.js is not a mirror file. Exporter pin (DS 5512b5d) tracked in the operator consumer-ledger.
Re-vendor 2026-07-12 — export-png.js semantic-legend page fidelity (design-system PR #69 81a6aa7); doctrine embed → full-page mirror; stamp bump render-v3 → render-v4. The shared static exporter's PNG page legend reader was .row-only and reduced every swatch to a generic neutral box, so this diagram's now load-bearing Three Functions legend flattened on export — the colored role swatches all read neutral and the dotted divider + downstream heading were dropped. The landed fix reads the legend's direct children as an ordered list of rows / dividers / group headings and draws each swatch from its live computed presentation, so the page PNG legend now carries the magenta / theme-neutral / cyan function key and the separated neutral governance row. export-png.js re-vendored byte-identical from DS @ 81a6aa7 (md5 313438be). NOT render-neutral for this bundle — the doctrine embed in bounded-generativity.md switches from the diagram-only raster to the full-page raster (the legend is load-bearing) and both committed page rasters are regenerated, so the stamp bumps to render-v4 (source held at source-v3). The chrome-free diagram-only rasters are unchanged by this legend-only fix and are retained as method-ASK_bounded-generativity-diagram-{dark,light}.png (the optional PNG diagram asset). The _dsa-tokens foundation pin above (8fb82b7) is untouched — export-png.js is not a mirror file. Exporter pin tracked in the operator consumer-ledger.
Vendor 2026-07-12 — add the Three Functions primitive (design-system PR #67 8fb82b7); diagram gains function color (source-v3 // render-v3). Adds three-functions.css to this mirror — the landed ASK Three Functions opt-in semantic-role primitive (Tier-1 --function-legislative / --function-executive / --function-judicial, bound in Tier-2 to magenta / theme-neutral / cyan). The bounded-generativity diagram now consumes it by reference to color the three functions: legislative grammar/brief box, the executive bounded-realization chamber (with variance rendered as negative cutouts through the chamber fill), and the judicial selection ring + ratified node — everything else neutral. colors_and_type.css / fonts / export-png.js are byte-identical (the pin bump only ADDS three-functions.css; colors_and_type.css sha256 above is unchanged). NOT render-neutral for this diagram — the diagram source gains color plus the chamber-top alignment, so its stamp bumps to source-v3 // render-v3 and both rasters are regenerated. First public consumer of Three Functions; 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 above 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 above 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 above 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 (the "five-color core" header summary → "a core identity set"; the "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 above differs. Fonts byte-identical; diagrams.css / engine / export-png.js unchanged. Diagram render-vN stamp held (no render change).
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 (new sha256 above); 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) |
Filethree-functions.css |
Upstream source/three-functions.css |
RoleASK Three Functions — opt-in semantic function-color primitive (three --function-* roles); consumed by the bounded-generativity, system-ASK (D11) and SMGI doctrine diagrams. Layers on colors_and_type.css |
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.