Repository navigation
Land batch: #103, #251, #236, #250, #255 - #258
Merged
Merged
Conversation
…2: txt1a-1's own change (txt1a-1b..txt1a-1 9743d57c9, without its regenerated outputs; the text-latin captures, breaks and vectors, which pnpm regen does not write, are carried as committed). Two conflicts: internal.ts keeps master's SELD-R1a state-program exports beside engineLayoutProjection; ios-layout.ts lowerTree keeps master's rootFontSizeOf (which refuses a root font size that did not compute to px) and passes the engine-mode flag
…li/text-latin-capture.ts (TXT1a-1 predates pnpm regen; TXT1a-2 moves them into the regen steps)
…ES hold 489 layout cases (the INL1a stack's and master's new cases since the old inl1a-compiler base, 477); the pin still says TXT1a-1 leaves every FIXTURES layout case as its base has it
…packages/parity/src/cli/text-latin-capture.ts (live Chrome; MANUAL), /tmp/heavy-lease.sh pnpm regen (fixed point after 3 passes), text-latin-capture.ts again, pnpm regen (no change), text-latin-capture.ts --vectors, pnpm regen (no change). The committed text-latin captures predated SIZE-ar's aspect-ratio computed key, so on the C2 base every text-latin case failed chrome-dual, profile:rows proved no font-family row from them, and text-latin-faces and text-latin-flex had no web output; recaptured, each capture gains aspect-ratio: auto and nothing else, the web profile regains the text-latin font-family rows (pinned in text-in-block, text-in-inline and text-in-flex-item), emitted CSS headers move only in their compilation digest, the text-latin vectors are rewritten from the new captures, and north-star-check gains 'Lato', sans-serif on web (UNPROVEN_CONTEXT web 27 -> 25)
…into txt1a-1-v2. Conflict: internal.ts keeps engineLayoutProjection beside SELD-R1b's hit facts
…ged in (2d04d5c), whose FIXTURES hold 520 layout cases (C2 alone held 489); the pin still says TXT1a-1 leaves every FIXTURES layout case as its base has it
…packages/parity/src/cli/text-latin-capture.ts (live Chrome; MANUAL), pnpm regen, text-latin-capture.ts again, pnpm regen, text-latin-capture.ts --vectors. The text-latin captures predated SELD-R1b's pointer-events computed key, merged forward with inl1a-lowering; each gains that key, and the vectors are rewritten from the new captures
…) into txt1a-1-v2 (local prep). Conflicts: diagnostics move per feature on master, so DRAGON_SYNTHETIC_FONT_STYLE goes to codes/txt1a.ts (pinned in diagnostic-codes/txt1a.json); ios-layout lowerTree takes both REPL-a's image naturals and TXT1a-1's lowering mode; project.ts checks each SELD-R2 interaction state with TXT1a-1's font deferrals; pipeline runCase keeps TXT1a-1's projection argument and SELD-R2's lane-only native rows and interaction projection; report, gen-profile-rows and parity.test run both the ENV-SAFE and text-latin web-only registries
…de --conditions=dragon-internal packages/parity/src/cli/text-latin-capture.ts (live Chrome; MANUAL), pnpm regen, node --conditions=dragon-internal packages/parity/src/cli/text-latin-capture.ts again, pnpm regen, node --conditions=dragon-internal packages/parity/src/cli/text-latin-capture.ts --vectors
… empty 'text-latin' fixture group (master's registry-claims check: every fixture-groups file is a group; TXT1a-2 fills it), and text-latin.test's BASE pins move to the new base's 569 layout cases and their id hash (intent kept: TXT1a-1 changes no FIXTURES case; the list equals the 1b base's)
… and Android Port of #119 (origin/bg2-native) onto the master port of #110: the gradient lowering, the native emitter (raster after every layout, background-layers stage), DragonBoxShape's unsnapped border box, paddings and root scroll origin, the bleed-avoidance and transformed-subtree refusals, the gradients fixture group, sample points, the two device plants (one dormant) and the bg2-reference, bg2-samples and bg2-layers tests. The interim 'background-layers-native' refusal is lifted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DE6siPvWXmHBDwbuC9zxg
…nto master The shadow engine from #80 (paint-shadow.ts, paint-aa.ts's A8 coverage blit, their tests, the paint-vector input generator and its regen step, the harness cases, the ports entries), and the compiler and native half from #82 (the box-shadow family, its computed values, one write per shadowed box, the companion-view and inset-stage emitters, the shadow-offset-1 plant, the shadow fixtures, samples and Chrome comparison tests), adapted to master's per-feature registries. New: native refusals, at the box-shadow value, of what the companion view and the shadow backdrop do not cover on master: html and body, replaced elements, inline boxes, positioned boxes (paint order without the stacking sort), and a shadow on or inside a transform or a compositing will-change. Floors appended with DRAGON_FLOOR_WRITE=1. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012dJVP4456dCkJKMJUUf3xG
… files to the seams floors Written with DRAGON_FLOOR_WRITE=1 DRAGON_PIN_WRITE=1 over paint-seams, seams and the other targeted platform-free tests; append-only. The write also appends master's radius entries and the single-run-baseline support plant, which the floors did not yet hold, and the BG2 layer longhands the compiler slice registered. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DE6siPvWXmHBDwbuC9zxg
…er with #101, #210, #208, #198, #216, #218) into txt1a-1-v2 (prep, no PR changes until #102 merges). Conflicts: ios-layout's Lowerer carries both TXT1a-1's lowering mode and master's propagated viewport-overflow element, and lowerTree passes both; project.ts checkCases takes master's @Property registrations and checkComputed faults argument and keeps TXT1a-1's font deferrals beside master's native-scroll check; the band passes pass both the shared font deferrals and the registrations; native lowering runs master's per-band loop in native mode, then TXT1a-1's engine-mode lowering of the native band's cases. Generated outputs: this side's, regenerated after #102 merges. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WSkSiXMPXTAsNpS9BD9LDR
… for the text-latin vectors, and the audit's fixes - text-latin-engine.test: #103's referenceShapedMeasurer registers every vendored face, Lato included, so "a shaped measurer without the face" is now an explicit Ahem-only shaped measurer (ahemShapedMeasurer); a new test pins that it lacks Lato and the reference one holds it. Intent kept: each refusal is still judged on a measurer that does not hold the face. - line-breaks engineTextLines re-resolved the input with zoomInput (Ahem) after laying it out with the caller's measurer, so a real face's ex, ch, cap or lh in the break check threw text-glyph; it now uses layout.ts resolvedInput with the same measurer (exported from @dragon/layout), with a test that fails without it. - inline-box-placelines.test (placeLines == placeIfcLines on every vector): the text-latin vectors name real faces, which the Ahem measurer refuses on both sides, so the check passed without placing a line; they are now measured by the HarfBuzz reference measurer and every placement must succeed (28 shaped vectors). - text-latin-capture CLI: an unknown argument exits 2 before it deletes anything (a mistyped --vectors ran the live capture, which first cleans the committed captures), and a case that writes nothing (no web CSS, a vector of a failing case) exits 1 instead of logging; test added. - The text-latin vectors get a regen step (text-latin-vectors, after dpr-vectors, from the committed text-latin captures) and a .gitattributes line; the captures stay MANUAL (live Chrome). The vectors predate master's grid keys, so they must be rebuilt by regen, which a cloud lane cannot run by hand. - text-latin.test BASE pin: 569 -> 664 layout cases and their id hash, the FIXTURES of #102's head d542a45 (identical ids, checked on a d542a45 worktree); intent kept: TXT1a-1 changes no FIXTURES case. - parity.test: the fixture-file existence check covers the text-latin fixtures and probes too, not only the font and env ones. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WSkSiXMPXTAsNpS9BD9LDR
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 89276b6 Run: https://github.com/compiled-run/dragoncss/actions/runs/37900368527
R4's will-change refusal replaces gradientLayerOf; the lowering guards on compositesSubtree. The R13 test's synthetic elements carry will-change: auto, as every resolved element does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015DE6siPvWXmHBDwbuC9zxg
…t refuse Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012dJVP4456dCkJKMJUUf3xG
…hadow and the shadow fixtures join the identity check's post-base keys and files Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012dJVP4456dCkJKMJUUf3xG
…103's parent merged; no conflicts, generated files regenerate on CI Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WSkSiXMPXTAsNpS9BD9LDR
…ure, after capture, live Chrome on the capture runner) The first regen-on-ci run on master's tree failed text-latin-vectors: the committed text-latin captures predate master's new computed keys (border-*-radius, content, list-style-*), so every text-latin case failed chrome-dual in profile:rows, the web profile lost their font-family rows, and text-latin-faces had no web output. The captures were MANUAL (live Chrome); like expected-fonts and expected-env they are now written by regen on the macos-26 capture runner, so the vectors step reads current captures. MANUAL entry removed; .gitattributes line added. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WSkSiXMPXTAsNpS9BD9LDR
…eported a conflict; generated files keep this side, regen rebuilds them) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012dJVP4456dCkJKMJUUf3xG
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 8be7846 Run: https://github.com/compiled-run/dragoncss/actions/runs/37919424725
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 10ea5b1 Run: https://github.com/compiled-run/dragoncss/actions/runs/37918055076
…2: GitHub reported the PR conflicting; no source conflicts, generated files regenerate on CI Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WSkSiXMPXTAsNpS9BD9LDR
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 4b6d184 Run: https://github.com/compiled-run/dragoncss/actions/runs/38055353802
…action-runtime-evd0n6
…196's effects family is on master Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012dJVP4456dCkJKMJUUf3xG
…e-evd0n6' into claude/cloud-landing-99s80v # Conflicts: # .gitattributes
…nu' into claude/cloud-landing-99s80v
The dragon-generated merge driver kept master's profile rows, so #103's text-latin proof rows were missing and text-latin-capture refused to run (web output not ready). Regen rebuilds these files from the captures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JzUCRZ7PRctKowaJ7qRxYa
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 80bbe7c Run: https://github.com/compiled-run/dragoncss/actions/runs/38060938279
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 579173e Run: https://github.com/compiled-run/dragoncss/actions/runs/38054289835
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: ed2d6a3 Run: https://github.com/compiled-run/dragoncss/actions/runs/38061265554
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 7ba1145 Run: https://github.com/compiled-run/dragoncss/actions/runs/38065480448
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: 2b780da Run: https://github.com/compiled-run/dragoncss/actions/runs/38067972092
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: b802f8a Run: https://github.com/compiled-run/dragoncss/actions/runs/38068434163
…g-99s80v # Conflicts: # packages/layout/test/inline-box-placelines.test.ts # packages/parity/src/line-breaks.ts # packages/parity/test/text-latin-engine.test.ts
…into claude/cloud-landing-99s80v
… into claude/cloud-landing-99s80v
…XTURES pin to the batch Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JzUCRZ7PRctKowaJ7qRxYa
Commands: pnpm regen --skip lanes-host --skip tw-sweep (macos-26) and pnpm regen --only lanes-host (xcode-27), alternated to a fixed point, then pnpm regen --only tw-sweep (macos-26). Base: f5016a4 Run: https://github.com/compiled-run/dragoncss/actions/runs/38075946809
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Before: each ready PR had to catch up with master, wait for a CI regen of about 40 minutes and pass checks on its own. Every merge then invalidated the other PRs' generated files (lanes.json, ports.json, snapshots), so the queue landed about one PR per regen cycle.
After: #103, #251, #236, #250 and #255 are merged together onto current master (#249 and #253 are already in it) and regenerated once. When this PR merges, GitHub marks all five as merged, because each one's head commit is in this branch.
How:
merge=dragon-generatedlines.NO_GRID_FAULTSand TXT1a-1 (v2): the text-latin registry against Chrome, engine-mode real faces and R3 vectors #103'sresolvedInputand shaped measurer are combined in line-breaks.ts, inline-box-placelines.test.ts and text-latin-engine.test.ts.🤖 Generated with Claude Code
https://claude.ai/code/session_01JzUCRZ7PRctKowaJ7qRxYa