From 1327a84b633f308dc6fc965771f4996989a1db82 Mon Sep 17 00:00:00 2001 From: devinnicholson Date: Mon, 10 Aug 2026 11:11:42 -0700 Subject: [PATCH] Add verified one-arc composer study --- visualizer/app/experience.tsx | 156 ++++++++++++++- visualizer/app/globals.css | 186 ++++++++++++++++++ .../composer-one-arc-demonstration.json | 1 + .../tests/fixed-value-hero-contract.test.mjs | 4 + visualizer/tests/rendered-html.test.mjs | 34 ++++ 5 files changed, 376 insertions(+), 5 deletions(-) create mode 100644 visualizer/public/evidence/composer-one-arc-demonstration.json diff --git a/visualizer/app/experience.tsx b/visualizer/app/experience.tsx index 967a0fd..dc8d72d 100644 --- a/visualizer/app/experience.tsx +++ b/visualizer/app/experience.tsx @@ -11,6 +11,7 @@ import { useState, } from "react"; import elkiesJson from "../public/evidence/elkies-study.json"; +import composerJson from "../public/evidence/composer-one-arc-demonstration.json"; import fiberJson from "../public/evidence/fixed-value-fiber-193.json"; import motifJson from "../public/evidence/fixed-value-motif.json"; @@ -127,9 +128,41 @@ type CompactFiber = { }; }; +type ComposerEdit = { + a: number; + arc: [number, number]; + c: string; + g: string; + m: number; + q: string; + retained: boolean; + state: "present" | "absent"; +}; + +type ComposerDemonstrationData = { + artifact_sha256: string; + counts: { + edited_forms: number; + retained_exact_value: number; + retained_graph_quotients: number; + }; + edits: ComposerEdit[]; + parent: { + a: number; + c: string; + g: string; + m: number; + q: string; + }; + protocol_artifact_sha256: string; + target: string; + verification_artifact_sha256: string; +}; + const motif = motifJson as unknown as FixedValueMotif; const elkies = elkiesJson as HistoricalEvidence; const compactFiber = fiberJson as unknown as CompactFiber; +const composerDemo = composerJson as unknown as ComposerDemonstrationData; const numberFormat = new Intl.NumberFormat("en-US"); const layerNames = ["Graph form", "Complete game", "Exact value"] as const; const layerCounts = [21_697, 16_120, 3] as const; @@ -270,6 +303,7 @@ function DirectedGraph({ } type FiberMember = { index: number; item: AtlasItem }; +type GraphEncoding = Pick; type FiberArcState = "shared" | "added" | "removed"; function FiberEdge({ @@ -309,8 +343,8 @@ function FiberGraph({ reference, large = false, }: { - item: AtlasItem; - reference?: AtlasItem; + item: GraphEncoding; + reference?: GraphEncoding; large?: boolean; }) { const arcs = decodedArcs(item.g); @@ -351,7 +385,7 @@ function FiberGraph({ ); } -function edgeDifference(reference: AtlasItem, selected: AtlasItem) { +function edgeDifference(reference: GraphEncoding, selected: GraphEncoding) { const referenceSet = new Set(decodedArcs(reference.g).map(arcKey)); const selectedSet = new Set(decodedArcs(selected.g).map(arcKey)); return { @@ -887,6 +921,110 @@ function FiberClass({ atlas, error }: { atlas: AtlasData | null; error: boolean ); } +function ComposerDemonstration() { + const [selectedIndex, setSelectedIndex] = useState(() => + Math.max(0, composerDemo.edits.findIndex((edit) => edit.retained)), + ); + const selected = composerDemo.edits[selectedIndex]; + const difference = edgeDifference(composerDemo.parent, selected); + const changedValue = + composerDemo.counts.edited_forms - composerDemo.counts.retained_exact_value; + + return ( +
+
+
+

Performed edit study

+

One certified form, edited 42 ways.

+
+

+ The author selected the class's only 17-arc form, toggled every + possible loop-free directed arc once, and reverified every result. + Gold cells retain exact value 1/2. +

+
+ +
+
42one-arc edits
+
33retain value 1/2
+
33distinct graph quotients
+
{changedValue}change exact value
+
+ +
+
+
+ Starting form + {composerDemo.parent.a} directed arcs +
+ + quotient {shortHash(composerDemo.parent.q)} +
+ +
+
+ Toggle one directed arc + source → target +
+
+ {composerDemo.edits.map((edit, index) => { + const label = arcKey(edit.arc); + const operation = edit.state === "present" ? "added" : "removed"; + return ( + + ); + })} +
+
+ +
+
+ Selected edit {arcKey(selected.arc)} + {selected.a} directed arcs +
+ + quotient {shortHash(selected.q)} +
+ + +
+ +
+ Protocol {shortHash(composerDemo.protocol_artifact_sha256)} + Independent verification {shortHash(composerDemo.verification_artifact_sha256)} +
+
+ ); +} + function AtlasCanvas({ atlas, layer, @@ -1834,8 +1972,9 @@ function EvidenceLedger({ atlas }: { atlas: AtlasData | null }) { representation to pursue.

- The evaluation covers structural novelty and certified equality. - Aesthetic preference remains outside its scope. + The performed edit study begins with the unique 17-arc form and + reports all 42 possible one-arc edits. Exact replay retained 33 + variants at value 1/2.

@@ -1936,6 +2075,12 @@ export function PartizanExperience() { > Corpus + navigateToSection(event, "demonstration")} + > + Edit study + navigateToSection(event, "evidence")} @@ -1952,6 +2097,7 @@ export function PartizanExperience() { +
diff --git a/visualizer/app/globals.css b/visualizer/app/globals.css index ec6d949..34ee8f4 100644 --- a/visualizer/app/globals.css +++ b/visualizer/app/globals.css @@ -70,6 +70,7 @@ summary:focus-visible, .experience { min-height: 100vh; } #class, +#demonstration, #atlas, #evidence, #further-example { @@ -78,6 +79,7 @@ summary:focus-visible, .masthead, .fiber-class, +.composer-demonstration, .atlas-section, .crossing-journey, .evidence-ledger, @@ -365,6 +367,171 @@ kbd { display: grid; min-width: 24px; height: 24px; place-items: center; border: .fiber-legend .line-removed { height: 0; border-top: 1px dashed var(--coral); } .fiber-legend code { min-width: 0; margin-left: auto; overflow-wrap: anywhere; color: #7e7a71; font-size: .43rem; } +.composer-demonstration { + padding: 68px 0 92px; + border-top: 1px solid var(--line); +} + +.composer-intro { + display: grid; + grid-template-columns: minmax(0, 1fr) minmax(300px, .72fr); + gap: clamp(34px, 7vw, 110px); + align-items: end; +} + +.composer-intro h2 { + max-width: 760px; + margin: 10px 0 0; + font-family: var(--serif); + font-size: clamp(1.7rem, 2.7vw, 2.7rem); + font-weight: 400; + letter-spacing: -.04em; + line-height: 1; +} + +.composer-intro > p { + max-width: 540px; + margin: 0; + color: var(--muted); + font-family: var(--serif); + font-size: 1rem; + line-height: 1.58; +} + +.composer-results { + display: grid; + grid-template-columns: repeat(4, 1fr); + margin-top: 36px; + border-top: 1px solid var(--line); + border-left: 1px solid var(--line); +} + +.composer-results > div { + display: grid; + min-height: 104px; + align-content: space-between; + padding: 15px 17px; + border-right: 1px solid var(--line); + border-bottom: 1px solid var(--line); +} + +.composer-results strong { + color: var(--gold); + font-family: var(--serif); + font-size: clamp(1.7rem, 2.5vw, 2.45rem); + font-weight: 400; +} + +.composer-results span, +.composer-edit-board-header, +.composer-graph figcaption span, +.composer-authority { + color: var(--muted); + font-family: var(--mono); + font-size: .52rem; + letter-spacing: .07em; + text-transform: uppercase; +} + +.composer-workbench { + display: grid; + grid-template-columns: minmax(210px, .8fr) minmax(390px, 1.35fr) minmax(210px, .8fr) minmax(220px, .7fr); + margin-top: 30px; + border: 1px solid var(--stage-line); + background: var(--stage); +} + +.composer-graph { + display: grid; + min-width: 0; + margin: 0; + padding: 18px; + align-content: start; + border-right: 1px solid var(--stage-line); +} + +.composer-graph figcaption { + display: flex; + justify-content: space-between; + gap: 14px; + align-items: baseline; +} + +.composer-graph figcaption strong { + font-family: var(--serif); + font-size: .9rem; + font-weight: 400; +} + +.composer-graph .fiber-graph.large { width: min(250px, 92%); margin-block: 28px 20px; } +.composer-graph small { overflow-wrap: anywhere; color: var(--muted); font-family: var(--mono); font-size: .48rem; } + +.composer-edit-board { + min-width: 0; + border-right: 1px solid var(--stage-line); +} + +.composer-edit-board-header { + display: flex; + min-height: 54px; + justify-content: space-between; + gap: 18px; + align-items: center; + padding: 0 14px; + border-bottom: 1px solid var(--stage-line); +} + +.composer-edit-board-header small { color: #77736a; font-size: .47rem; } + +.composer-edit-grid { + display: grid; + grid-template-columns: repeat(6, minmax(54px, 1fr)); +} + +.composer-edit-grid button { + display: grid; + min-height: 58px; + place-content: center; + gap: 3px; + border: 0; + border-right: 1px solid var(--stage-line); + border-bottom: 1px solid var(--stage-line); + background: transparent; + cursor: pointer; +} + +.composer-edit-grid button:nth-child(6n) { border-right: 0; } +.composer-edit-grid button:nth-last-child(-n + 6) { border-bottom: 0; } +.composer-edit-grid button strong { font-family: var(--mono); font-size: .56rem; font-weight: 500; } +.composer-edit-grid button span { color: var(--muted); font-family: var(--mono); font-size: .43rem; text-transform: uppercase; } +.composer-edit-grid button.retained { color: var(--gold); background: rgba(215, 177, 104, .08); } +.composer-edit-grid button.changed { color: #87837a; } +.composer-edit-grid button:hover { background: var(--stage-soft); } +.composer-edit-grid button.selected { box-shadow: inset 0 0 0 2px var(--coral); } + +.composer-inspector { + display: grid; + min-width: 0; + align-content: start; + gap: 13px; + padding: 18px; +} + +.composer-inspector > strong { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; } +.composer-inspector > p:not(.eyebrow) { margin: 0; color: var(--muted); font-family: var(--serif); font-size: .86rem; line-height: 1.5; } +.composer-inspector dl { display: grid; gap: 9px; margin: 8px 0 0; padding-top: 12px; border-top: 1px solid var(--stage-line); } +.composer-inspector dl > div { display: grid; gap: 3px; } +.composer-inspector dt { color: var(--muted); font-family: var(--mono); font-size: .46rem; text-transform: uppercase; } +.composer-inspector dd { margin: 0; overflow-wrap: anywhere; font-family: var(--mono); font-size: .55rem; } + +.composer-authority { + display: flex; + justify-content: space-between; + gap: 18px; + padding: 11px 0 0; + text-transform: none; +} + .atlas-section { padding: 48px 0 58px; border-top: 1px solid var(--line); @@ -937,6 +1104,10 @@ kbd { display: grid; min-width: 24px; height: 24px; place-items: center; border: .fiber-specimens { grid-template-columns: 1fr 1fr; } .fiber-difference { grid-column: 1 / -1; border-top: 1px solid var(--stage-line); } .fiber-specimens > figure:nth-child(2) { border-right: 0; } + .composer-intro { grid-template-columns: 1fr; gap: 24px; } + .composer-workbench { grid-template-columns: 1fr 1.4fr; } + .composer-selected-graph { border-top: 1px solid var(--stage-line); } + .composer-inspector { border-top: 1px solid var(--stage-line); } .atlas-intro { grid-template-columns: 1fr; gap: 24px; } .atlas-context > p { max-width: 720px; } .atlas-toolbar { grid-template-columns: 1fr; } @@ -953,6 +1124,7 @@ kbd { display: grid; min-width: 24px; height: 24px; place-items: center; border: @media (max-width: 680px) { .masthead, .fiber-class, + .composer-demonstration, .atlas-section, .crossing-journey, .evidence-ledger, @@ -986,6 +1158,20 @@ kbd { display: grid; min-width: 24px; height: 24px; place-items: center; border: .fiber-difference { grid-column: auto; } .fiber-legend { gap: 11px; } .fiber-legend code { width: 100%; margin-left: 0; } + .composer-demonstration { padding: 52px 0 72px; } + .composer-intro h2 { font-size: clamp(1.65rem, 7vw, 2.2rem); } + .composer-results { grid-template-columns: 1fr 1fr; } + .composer-workbench { grid-template-columns: 1fr; } + .composer-graph, + .composer-edit-board { border-right: 0; border-bottom: 1px solid var(--stage-line); } + .composer-selected-graph { border-top: 0; } + .composer-inspector { border-top: 0; } + .composer-edit-grid { grid-template-columns: repeat(3, 1fr); } + .composer-edit-grid button:nth-child(6n) { border-right: 1px solid var(--stage-line); } + .composer-edit-grid button:nth-child(3n) { border-right: 0; } + .composer-edit-grid button:nth-last-child(-n + 6) { border-bottom: 1px solid var(--stage-line); } + .composer-edit-grid button:nth-last-child(-n + 3) { border-bottom: 0; } + .composer-authority { display: grid; } .atlas-section { padding: 44px 0 72px; } .atlas-intro h1 { font-size: clamp(1.7rem, 7vw, 2.35rem); } .layer-tabs { grid-template-columns: 1fr; } diff --git a/visualizer/public/evidence/composer-one-arc-demonstration.json b/visualizer/public/evidence/composer-one-arc-demonstration.json new file mode 100644 index 0000000..cd1466c --- /dev/null +++ b/visualizer/public/evidence/composer-one-arc-demonstration.json @@ -0,0 +1 @@ +{"artifact_sha256":"b8f68d05fe7b36a58f2c24a1aea6524e9c5da50e0a506b457493b9b3e485c1f1","counts":{"edited_forms":42,"retained_exact_value":33,"retained_graph_quotients":33},"edits":[{"a":18,"arc":[0,1],"c":"e04c02cbefc6cf1d033db9dc9e9dd8c4a1b58e17fa51cd45663f0d0c35747e97","g":"08a128aa87c06","m":29,"q":"eed537eaa7743f13d4bf61157db28b4124519fa5b172fce367953bc8612b9580","retained":true,"state":"present"},{"a":16,"arc":[0,2],"c":"81f0ff7394351ea0904fc01f02269dc440dc71644d3f22f766f1a9ec0b50ef56","g":"08a128aa87c00","m":29,"q":"0e50b64c8c362abd5ef607965c335a29af2ec4a5e78d202ed47e666f5d41879d","retained":false,"state":"absent"},{"a":18,"arc":[0,3],"c":"9ffa934d657fb5bd2ee7a0d92052061fc3687e096ac6de4e69973c5e144e9089","g":"08a128aa87c0c","m":29,"q":"6df45001d6c9de5da31eca9c29ac2c4898e6016e8e5d2a02c21018632df393e9","retained":true,"state":"present"},{"a":18,"arc":[0,4],"c":"21951ef85d3afb78012a4a7ca51626654b292e0f9e56a3ab5ce514bb6552c1f5","g":"08a128aa87c14","m":29,"q":"7ebd3a6c5ade8623c608877081e112f6a9588cd51452083e6e7730f0c839da64","retained":true,"state":"present"},{"a":18,"arc":[0,5],"c":"7a62ed60ec7f0df84ed8e275fcae2335ffae2baf7f82cfa32f6d754b6d3d4413","g":"08a128aa87c24","m":29,"q":"f632aa8ce2028b57446ba41031d02d156b3e4c7fcf1c4b7747f8d8364a5179ce","retained":true,"state":"present"},{"a":18,"arc":[0,6],"c":"1607331dbe4e3bda158ef7234a255fc32a505e619e3d92903a2dcfbbc1cac35f","g":"08a128aa87c44","m":29,"q":"ab61fbf7464892818ce1b48a86819f1070a3a16ffe569349de1f0815a94ec0aa","retained":true,"state":"present"},{"a":18,"arc":[1,0],"c":"78be4be2ee6b387dab8408625ac6a3f1717e5269fcb90ba8ec6a40e438c3b1d0","g":"08a128aa87c84","m":29,"q":"492c0e87ada9f29fa03a6af619f6565b22f190880ebf6c67d11aedc1b3a3c857","retained":true,"state":"present"},{"a":18,"arc":[1,2],"c":"c8de5db9fd672bf01eca110433427f4b7272c5c08321cfbe4bc09038c6aa3999","g":"08a128aa87e04","m":29,"q":"fd2f415821b08b2ba6244a228ddf253f37e9a774af65a9285de5a4acbf8a8502","retained":true,"state":"present"},{"a":16,"arc":[1,3],"c":"2be3dee5ded56cbca1d93a1544cfb171f38326f91339e14d88d5ac90b8eaabb7","g":"08a128aa87804","m":29,"q":"ce04cbb19a2a7b5abf47752e986b2a81a1fc35c13a7761b51dbe4ea96e49b45e","retained":false,"state":"absent"},{"a":16,"arc":[1,4],"c":"1e371e82d7b3eb67e571f3c06e191eda4d3d8be330e4dcec32256a537a4d0780","g":"08a128aa87404","m":29,"q":"14e38f7c9a37a34154cb1133df70e3d20fa073ee5634b8464aaf0784072b193e","retained":false,"state":"absent"},{"a":16,"arc":[1,5],"c":"425bd16852f99f9b1da0d7daf0e08b4846266afd5dfd74280a3f40f6e426b917","g":"08a128aa86c04","m":29,"q":"ce8e95ae6b2ef9307a1e03ee64eb11cbbba8bc738d73af442450df47a05617f4","retained":false,"state":"absent"},{"a":16,"arc":[1,6],"c":"0d1413bc6965099269894c6f46fb31ad8fd5d1487248e1676a134958555a9da1","g":"08a128aa85c04","m":29,"q":"b71bfcb6411f83e8a151f8a246d8f47ee5cc54c1530d89715ff39854751cd9c2","retained":false,"state":"absent"},{"a":16,"arc":[2,0],"c":"8824050b80bea5e5a1811170fc2572a4cc9e4e79a0a26f343a607d9930fca169","g":"08a128aa83c04","m":29,"q":"53e21e60642cd0f7df024fa61c10e234b622a059855cfb4df63f12d9d11574f5","retained":false,"state":"absent"},{"a":18,"arc":[2,1],"c":"9c5a265fe2a95623aa82a91b6cdc7ec1a8a77ca384689faf750f57123f364617","g":"08a128aa8fc04","m":29,"q":"884c6d70fa36c2deb499a35c80049f3263274b3eb090c7b9d6a990faabee1e79","retained":false,"state":"present"},{"a":18,"arc":[2,3],"c":"03e8db5050e5acbe59639e62ab6c9d6c06e4a2952a47cd28a3ca9aa5e47d47b1","g":"08a128aaa7c04","m":29,"q":"54c49175c9d13170cfd0d9409c6627a8a5963967d318f73dd6cd40185941d316","retained":true,"state":"present"},{"a":18,"arc":[2,4],"c":"954ca3a819b4b1ce0963a5a40c2628bd8aa6aab0c579bde94581e96870dc459d","g":"08a128aac7c04","m":29,"q":"5d36ef4bde5a7da592cd529e9c9e5dd1757bd327222996de5abf8b2c31d0effa","retained":true,"state":"present"},{"a":16,"arc":[2,5],"c":"3bb82fa1ac1ae5bbed42104325a1125edcc65a5c1479ab8d9256b7c275457c23","g":"08a128aa07c04","m":29,"q":"7c194a01ee211ec99a76d982321420804aaf367f9b6da937b5294813c14be646","retained":true,"state":"absent"},{"a":18,"arc":[2,6],"c":"c9dcd8389c8610d85d293062b20c8b9c0016840fbdfbe443c438eb610a4c73c2","g":"08a128ab87c04","m":29,"q":"34b345eec6dc349e81edafc232c1eeec540219a2a647a68147a4746e5fd45570","retained":true,"state":"present"},{"a":16,"arc":[3,0],"c":"603f96fbcbd7bdeb1943e151d773be3a244d15ad0a62112b335b132978778ee2","g":"08a128a887c04","m":29,"q":"74e42ce478c54d23373dbb861c9c37302ab61eaa617f7f14347d8efae2bccc18","retained":true,"state":"absent"},{"a":18,"arc":[3,1],"c":"04f72dd91210c56dc20cecfef7aab71739cc8f0e5b286470fd646da43de27c42","g":"08a128ae87c04","m":29,"q":"cbedd7e4075836ef4722f771bc7c55d8f451ea81777f4c0915cb14d484ce9983","retained":true,"state":"present"},{"a":16,"arc":[3,2],"c":"61777bad4bfd1b49c96d9dcb3a259fc04db3748f02cbb11b920bd5daf6b9fc1b","g":"08a128a287c04","m":29,"q":"de057f443aa26a21e351156b4dd61de2eeee655cd5da63dcf930c4b078c088d4","retained":true,"state":"absent"},{"a":16,"arc":[3,4],"c":"4d4289280d977da5dc5da1167239126b8d67911fc12ec47033bba78ccb9d856d","g":"08a1288a87c04","m":29,"q":"5bd51c92a173ff989092b003b22d50695b7c467f010c25daa2c75af290de1524","retained":true,"state":"absent"},{"a":18,"arc":[3,5],"c":"5d3f5b5896675755ef0f16cbb79fdc7ac61d1f0210af3f3fe22f6b6a908fb5d1","g":"08a128ea87c04","m":29,"q":"8338d8b9553e892231469012e5a908539e4ab8d87efbbe55dccf46c6aa013d3c","retained":true,"state":"present"},{"a":16,"arc":[3,6],"c":"14a534fcf8ee2753d33977713dfc8c4c5af3dd5fba2159bd3c447ccbb1502530","g":"08a1282a87c04","m":29,"q":"3816bb7317bcf32c5b1266249c2886835a8d32293b8675463c8b052a51995cae","retained":true,"state":"absent"},{"a":18,"arc":[4,0],"c":"d03e46cf5e632d95dfce165de03f245664ef06ca225d8df670bef126c7fde263","g":"08a129aa87c04","m":29,"q":"abf9d5b75511c82bf420d36b30effbcb31c232f209684e2d1df203b7e9b25725","retained":true,"state":"present"},{"a":18,"arc":[4,1],"c":"12bbdff3c8e9a72905bf9939a5a63f434e89661ef07babdb651f9747ebf0e478","g":"08a12aaa87c04","m":29,"q":"1357ad1ac81d2c3ef9257c06de7d1d3d8784a9e5c32f590bab2b269ca9c12fb5","retained":true,"state":"present"},{"a":18,"arc":[4,2],"c":"229d34bb6a54d3cfd500b0028143eaf009c20a2c79d7f6347f9154bba2b9e838","g":"08a12caa87c04","m":29,"q":"fafa36fe23b7ef442333bfe67bdad6cb9fc32e3395c182c2e13faa1fe583c019","retained":true,"state":"present"},{"a":16,"arc":[4,3],"c":"08712a4fd4c3940ad6b0efe2033882a4e5b58c16d61e5de90a937fd4109feb74","g":"08a120aa87c04","m":29,"q":"5438c0164845268f1c138922eb2a46c6dfe6953f40cebaf33a8c8e7cad398b46","retained":true,"state":"absent"},{"a":16,"arc":[4,5],"c":"84578f94a91c9362700aa7193436eaaf7348b95516a50b7d15fa92cb2db90a4a","g":"08a108aa87c04","m":29,"q":"0b7ca679da38202aae7679ef2db8824339fa0135b95c229dd0fbdbe530a3e521","retained":true,"state":"absent"},{"a":18,"arc":[4,6],"c":"e57a3d06192d20ea3eaddd61fc7f61b132579a692b9b4ad0ce7a9285231c1ee5","g":"08a168aa87c04","m":29,"q":"1a69141389d9e1435e78b3b6f3e99bae9da3da0b7d3c852b5a0812a06d86e080","retained":true,"state":"present"},{"a":18,"arc":[5,0],"c":"91c24889157e8a499507ff025e61be7e14f849c58537f0e5c02dd6ddaa095d50","g":"08a1a8aa87c04","m":29,"q":"4519bf9f1d62503e836370562b81e95e6f313c6c2aed6e389fb96403aca4afe1","retained":true,"state":"present"},{"a":16,"arc":[5,1],"c":"0692c0a05cba9bdcaead11f084b3663a0b4c36e440d2f0970059c69c59fb70fa","g":"08a028aa87c04","m":29,"q":"8c6d876adb2282c42144c9a1b7e862af0985306d7da7b955778a24b1d9e2d6ed","retained":false,"state":"absent"},{"a":18,"arc":[5,2],"c":"f252797f5042cf83df243b023eb3f9e5a854769f5aface18dee937d6db40e830","g":"08a328aa87c04","m":29,"q":"7584bd1becef7bbd42242463c41f5fcc5ad5fc73250c38f2d891b41a0ed8fb1e","retained":true,"state":"present"},{"a":18,"arc":[5,3],"c":"cddef0336c5a9df7749fd2efc7b19d2ab7c2fbdcc81c4cac18dc5d379bb8ebc7","g":"08a528aa87c04","m":29,"q":"a3ef6002eb4f4a7deb0f88f4fa9b43b6586084680c98810d202877da6f7eeafe","retained":true,"state":"present"},{"a":18,"arc":[5,4],"c":"7eb2fe328f1d46f31196f135a1713c40f306cd5c3bd753af53021f7dc57d5207","g":"08a928aa87c04","m":29,"q":"779b7662aa1b1af23f5f7ccf8f24294c467aab1c793877669bd78796ae5a2269","retained":true,"state":"present"},{"a":16,"arc":[5,6],"c":"7047499b0083c6cd4193b7a9ac380e84945bcb81cde29b36ec3ab7c12b6b3ab3","g":"088128aa87c04","m":29,"q":"63edfba205da14a9774e017d4b1a1310b7ebcd9f42cede92a55cf3f0561552e1","retained":true,"state":"absent"},{"a":18,"arc":[6,0],"c":"969ba11d726be5d0a82cb90033938c56e125734791d8f3a79101384063bd7fd0","g":"08e128aa87c04","m":29,"q":"87aff07a83ed33b1106626f5439f514ab12e537c71f1a15b32ee1efeac4522b1","retained":true,"state":"present"},{"a":16,"arc":[6,1],"c":"ab3abd5456fd4893f2f3bea4523ce9b910689c7d80bd6e154e9c4e1f3f4a2503","g":"082128aa87c04","m":29,"q":"3172690e4a14444f480c496809b9e90c23789af64c96ef5c82174a75222cc0c8","retained":false,"state":"absent"},{"a":18,"arc":[6,2],"c":"252ceef78c434f0daddaf932e0a431e6063c802d7b9cf61fac607fbbc4b73f28","g":"09a128aa87c04","m":29,"q":"1d0e324beed10dd4d078efd6adfcf979f63a0babe86c693a1b662ad52a397585","retained":true,"state":"present"},{"a":18,"arc":[6,3],"c":"8693be64e1b1be65156ab7032221d2faf8fc4a8a7a0e375e93359b689b445ed6","g":"0aa128aa87c04","m":29,"q":"d23215c69b305522943bbf73f7cd159fb28fefe9e51ce89dffb79266ea1743f3","retained":true,"state":"present"},{"a":18,"arc":[6,4],"c":"e08384ade7c5749a9babba00b1cf9e6e9ff2833dcd39d38094da24a57040c2d7","g":"0ca128aa87c04","m":29,"q":"6380f1866ee0efa39e237fc67aafad1b2dc0b9a427eb6303583a303a8dd26419","retained":true,"state":"present"},{"a":16,"arc":[6,5],"c":"f251d1a01aeb0e59ee37a23cfa8b558168fa1ae86a1b7bbb2356411b0f25e6b6","g":"00a128aa87c04","m":29,"q":"5f7849136984f78f5dc9cef5148da3c42735997c6b727f8c4f2714514fb9efc4","retained":true,"state":"absent"}],"parent":{"a":17,"c":"e40c9c746e5361d7462ea40e65dcb2e772ad611d9c07b5cebe45081a449f59f6","g":"08a128aa87c04","m":29,"q":"9c21e65fd9efc584f29a7b3416b085f321748f589ff58f5e16d7e481031f7b63"},"protocol_artifact_sha256":"c0d8f47996a705fa2047d68adf992cf8e75e7588c4dd2d15165d0f98573d2792","schema_version":"partizan.composer_one_arc_site_payload.v1","target":"1/2","verification_artifact_sha256":"9a0f5d0a34039a0bd6e23d87088cb3a2e458c319c0f30edb1e011c64bed8bccc"} diff --git a/visualizer/tests/fixed-value-hero-contract.test.mjs b/visualizer/tests/fixed-value-hero-contract.test.mjs index 0b196cf..64adaa5 100644 --- a/visualizer/tests/fixed-value-hero-contract.test.mjs +++ b/visualizer/tests/fixed-value-hero-contract.test.mjs @@ -157,6 +157,10 @@ test("the 193-form hero exposes evidence, columns, and reachable controls", asyn assert.match(experienceSource, /graph in\s+this class/i); assert.match(experienceSource, /column containing the median form/i); assert.match(experienceSource, /similar silhouettes/i); + assert.match(experienceSource, /data-composer-edit-study=["']42["']/i); + assert.match(experienceSource, /composer-one-arc-demonstration\.json/i); + assert.match(experienceSource, /One certified form, edited 42 ways\./i); + assert.match(experienceSource, /aria-pressed=/i); assert.match(experienceSource, /
{ assert.match(normalizedHtml, /graph in this class/i); assert.match(normalizedHtml, /column containing the median form/i); assert.match(html, /From one class to the full corpus/); + assert.match(html, /Performed edit study/); + assert.match(normalizedHtml, /One certified form, edited 42 ways\./); + assert.match(normalizedHtml, /33[\s\S]*?retain value 1\/2/i); + assert.match(normalizedHtml, /33[\s\S]*?distinct graph quotients/i); assert.match(normalizedHtml, /similar silhouettes/i); assert.match(normalizedHtml, /The study contains 21,697 certified graph forms\./); assert.match(html, /Graph form/); @@ -70,6 +74,7 @@ test("server-renders the finished Partizan experience", async () => { ); assert.match(html, /Stiller used computation to locate an endgame kernel/); assert.match(html, /Elkies recomposed it as a chess study/); + assert.doesNotMatch(html, /Aesthetic preference remains outside its scope/i); assert.doesNotMatch(html, /linear-gradient|radial-gradient/i); assert.doesNotMatch(html, /Select form/i); assert.doesNotMatch(html, /codex-preview|react-loading-skeleton/i); @@ -84,6 +89,7 @@ test("ships checked evidence and removes the starter preview", async () => { atlasManifestEvidence, repertoireEvidence, policyResultEvidence, + composerEvidence, globalCss, packageJson, ] = await Promise.all([ @@ -111,6 +117,10 @@ test("ships checked evidence and removes the starter preview", async () => { new URL("../public/evidence/site-policy-result.json", import.meta.url), "utf8", ), + readFile( + new URL("../public/evidence/composer-one-arc-demonstration.json", import.meta.url), + "utf8", + ), readFile(new URL("../app/globals.css", import.meta.url), "utf8"), readFile(new URL("../package.json", import.meta.url), "utf8"), ]); @@ -121,6 +131,7 @@ test("ships checked evidence and removes the starter preview", async () => { const atlasManifest = JSON.parse(atlasManifestEvidence); const repertoire = JSON.parse(repertoireEvidence); const policyResult = JSON.parse(policyResultEvidence); + const composer = JSON.parse(composerEvidence); assert.equal(parsed.schema_version, "partizan.visual_crossing.v0.1"); assert.deepEqual( @@ -266,6 +277,29 @@ test("ships checked evidence and removes the starter preview", async () => { ); assert.equal(policyResult.independent_replay, true); assert.equal(policyResult.corruption_families_rejected, 20); + assert.equal( + composer.schema_version, + "partizan.composer_one_arc_site_payload.v1", + ); + assert.deepEqual(composer.counts, { + edited_forms: 42, + retained_exact_value: 33, + retained_graph_quotients: 33, + }); + assert.equal(composer.edits.length, 42); + assert.equal(composer.edits.filter((edit) => edit.retained).length, 33); + assert.equal( + new Set(composer.edits.filter((edit) => edit.retained).map((edit) => edit.q)).size, + 33, + ); + assert.equal( + composer.protocol_artifact_sha256, + "c0d8f47996a705fa2047d68adf992cf8e75e7588c4dd2d15165d0f98573d2792", + ); + assert.equal( + composer.verification_artifact_sha256, + "9a0f5d0a34039a0bd6e23d87088cb3a2e458c319c0f30edb1e011c64bed8bccc", + ); assert.doesNotMatch(globalCss, /linear-gradient|radial-gradient/i); assert.match(globalCss, /--paper:\s*#090908/i); assert.match(globalCss, /--stage:\s*#090908/i);