Skip to content

fix: line and page breaks in long documents - #1347

Merged
jedrazb merged 26 commits into
mainfrom
fix/justified-line-fidelity
Oct 15, 2026
Merged

jedrazb merged 26 commits into
mainfrom
fix/justified-line-fidelity

Conversation

@jedrazb

@jedrazb jedrazb commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Fix line and page breaks for justified text, footnotes, and tables, and let PDF export handle long documents and large installed fonts.

🤖 Generated with Claude Code

jedrazb and others added 13 commits October 14, 2026 22:26
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Long documents within the documented page limit no longer fail with
workLimitExceeded. The evaluation scripts accept up to 2000 pages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…e after to fit

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…border

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
docx-editor Ready Ready Preview Oct 15, 2026 1:23pm UTC

Request Review

@eigenpal-release-pal

Copy link
Copy Markdown
Contributor

All contributors have signed the CLA ✍️ ✅

Posted by the CLA bot.

…t column

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

Performance benchmark

Typing latency (browser)

Scenario Base frame Head frame Δ Frame p95 Input p95
521pp-editing-character 68.30 ms 51.40 ms 🟢 -24.7% 54.25 ms 0.15 ms
521pp-editing-wrap 62.70 ms 48.50 ms ⚪ -22.6% 58.95 ms 0.15 ms
521pp-suggesting-character 115.75 ms 91.45 ms 🟢 -21.0% 98.55 ms 0.15 ms
editing-character 59.95 ms 89.90 ms 🔴 +50.0% ⚠️ 109.30 ms 0.20 ms
editing-wrap 50.90 ms 53.35 ms ⚪ +4.8% 56.75 ms 0.15 ms
suggesting-character 106.55 ms 117.05 ms ⚪ +9.9% 129.65 ms 0.10 ms
suggesting-wrap 109.50 ms 122.20 ms ⚪ +11.6% 125.65 ms 0.15 ms
highlighted-edit-character 48.80 ms 48.50 ms ⚪ -0.6% 57.20 ms 0.10 ms
highlighted-suggest-character 114.05 ms 116.15 ms ⚪ +1.8% 128.35 ms 0.15 ms
tracked-editing-character 41.70 ms 33.35 ms ⚪ -20.0% 37.80 ms 0.10 ms
tracked-suggesting-character 77.25 ms 64.60 ms ⚪ -16.4% 79.70 ms 0.15 ms
tracked-suggesting-wrap 68.70 ms 62.45 ms ⚪ -9.1% 64.45 ms 0.10 ms
huge-open-to-ready 5257.00 ms 6016.00 ms 🔴 +14.4% 6016.00 ms 6016.00 ms
huge-suggesting-character 154.30 ms 175.35 ms ⚪ +13.6% 210.05 ms 0.15 ms
huge-suggesting-wrap 161.20 ms 142.60 ms ⚪ -11.5% 165.95 ms 0.15 ms
huge-paste-50k 248.20 ms 238.05 ms ⚪ -4.1% 257.55 ms 0.15 ms

Engine layout (headless)

Scenario Base median Head median Δ Head p95
steady-middle-text 19.17 ms 17.87 ms ⚪ -6.8% 20.87 ms
wrap-middle-text 18.30 ms 18.93 ms ⚪ +3.4% 20.14 ms
forced-middle-reflow 16.34 ms 16.49 ms ⚪ +0.9% 20.08 ms
forced-early-reflow 16.21 ms 17.56 ms ⚪ +8.3% 21.00 ms
enter-split-middle 15.92 ms 18.59 ms ⚪ +16.8% 27.65 ms
backspace-join-middle 15.81 ms 16.17 ms ⚪ +2.3% 19.22 ms
enter-split-early 16.42 ms 19.52 ms ⚪ +18.9% 22.70 ms
page-break-middle 16.25 ms 17.14 ms ⚪ +5.5% 24.18 ms
How to read these tables
  • Base: the main commit this PR builds on. Head: this PR.
  • Median: the typical sample. p95: 95 of 100 samples were faster than this.
  • Browser table: frame is the time from the keystroke until the edit is
    visible on screen — the number a typing user feels. Input p95 is how long
    the keystroke handler blocked the page (typing buffers its work off the input
    task, so this stays near zero by design).
  • 521pp-* rows run the pinned 521-page reproduction; the other rows run the
    small synthetic fixtures that exist for deterministic work-counter gates.
  • Δ: 🟢 faster, 🔴 slower, ⚪ inside the noise. Each side runs interleaved
    rounds; a delta smaller than the run-to-run spread renders neutral.
  • Work counters: exact counts of layout work (paragraphs placed, pages
    reused, full passes). They are deterministic: a change means different
    behavior, not just different speed.

Work counters: unchanged.

Head report (full JSON)
{
  "schema": 1,
  "fixture": "/home/runner/_work/docx-editor/docx-editor/e2e/fixtures/synthetic-long-edit.docx",
  "fixtureBytes": 27897,
  "fixtureSha256": "ca8ee28a8d40ae7914a820303b96ddbbe8f06d37325b0fc2ae6f1140aea96321",
  "environment": {
    "runtime": "Bun 1.4.3",
    "arch": "x64"
  },
  "config": {
    "runs": 3,
    "warmup": 2,
    "measurer": "fixed(6px,14px)"
  },
  "scenarios": [
    {
      "name": "steady-middle-text",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 13.845135000000028,
        "p95Ms": 18.97335800000019,
        "minMs": 11.719780999999784,
        "maxMs": 18.97335800000019
      },
      "layout": {
        "medianMs": 5.131538999999975,
        "p95Ms": 5.47603700000036,
        "minMs": 4.597131999999874,
        "maxMs": 5.47603700000036
      },
      "total": {
        "medianMs": 18.4422669999999,
        "p95Ms": 24.44939500000055,
        "minMs": 16.85131999999976,
        "maxMs": 24.44939500000055
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "wrap-middle-text",
      "target": {
        "paragraphIndex": 1599,
        "paragraphId": "/word/document.xml#0.0.1599"
      },
      "transaction": {
        "medianMs": 12.780479999999443,
        "p95Ms": 13.69038399999954,
        "minMs": 11.186867000000348,
        "maxMs": 13.69038399999954
      },
      "layout": {
        "medianMs": 4.8042820000000575,
        "p95Ms": 5.818982999999207,
        "minMs": 4.441999000000578,
        "maxMs": 5.818982999999207
      },
      "total": {
        "medianMs": 18.494665999999597,
        "p95Ms": 18.59946299999865,
        "minMs": 15.628866000000926,
        "maxMs": 18.59946299999865
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "forced-middle-reflow",
      "target": {
        "paragraphIndex": 1599,
        "paragraphId": "/word/document.xml#0.0.1599"
      },
      "transaction": {
        "medianMs": 10.45316400000047,
        "p95Ms": 12.005530000000363,
        "minMs": 10.400997000000643,
        "maxMs": 12.005530000000363
      },
      "layout": {
        "medianMs": 4.509936999999809,
        "p95Ms": 5.129142999999203,
        "minMs": 3.809567000000243,
        "maxMs": 5.129142999999203
      },
      "total": {
        "medianMs": 14.963101000000279,
        "p95Ms": 17.134672999999566,
        "minMs": 14.210564000000886,
        "maxMs": 17.134672999999566
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "forced-early-reflow",
      "target": {
        "paragraphIndex": 159,
        "paragraphId": "/word/document.xml#0.0.159"
      },
      "transaction": {
        "medianMs": 11.379809999999452,
        "p95Ms": 13.11299599999984,
        "minMs": 11.372156000001269,
        "maxMs": 13.11299599999984
      },
      "layout": {
        "medianMs": 4.986824999999953,
        "p95Ms": 7.61537700000008,
        "minMs": 4.349435000000085,
        "maxMs": 7.61537700000008
      },
      "total": {
        "medianMs": 18.099820999999793,
        "p95Ms": 18.98753300000135,
        "minMs": 15.729244999999537,
        "maxMs": 18.98753300000135
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 155,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "enter-split-middle",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 10.866183000000092,
        "p95Ms": 18.428290999998353,
        "minMs": 9.964294000001246,
        "maxMs": 18.428290999998353
      },
      "layout": {
        "medianMs": 4.441649000000325,
        "p95Ms": 6.158032999999705,
        "minMs": 4.124911999999313,
        "maxMs": 6.158032999999705
      },
      "total": {
        "medianMs": 15.307832000000417,
        "p95Ms": 24.586323999998058,
        "minMs": 14.089206000000559,
        "maxMs": 24.586323999998058
      },
      "work": {
        "placed": 14,
        "total": 3201,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3202,
          "evictions": 0,
          "size": 3202
        }
      }
    },
    {
      "name": "backspace-join-middle",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 10.947054999998727,
        "p95Ms": 11.949994999999035,
        "minMs": 10.851875000000291,
        "maxMs": 11.949994999999035
      },
      "layout": {
        "medianMs": 4.433273000000554,
        "p95Ms": 4.510808999999426,
        "minMs": 4.313185999999405,
        "maxMs": 4.510808999999426
      },
      "total": {
        "medianMs": 15.380327999999281,
        "p95Ms": 16.46080399999846,
        "minMs": 15.165060999999696,
        "maxMs": 16.46080399999846
      },
      "work": {
        "placed": 12,
        "total": 3199,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 12,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "enter-split-early",
      "target": {
        "paragraphIndex": 159,
        "paragraphId": "/word/document.xml#0.0.159"
      },
      "transaction": {
        "medianMs": 10.514881000000969,
        "p95Ms": 11.587733000000298,
        "minMs": 8.698178000000553,
        "maxMs": 11.587733000000298
      },
      "layout": {
        "medianMs": 3.630360000001019,
        "p95Ms": 4.636615999999776,
        "minMs": 3.196914000000106,
        "maxMs": 4.636615999999776
      },
      "total": {
        "medianMs": 14.145241000001988,
        "p95Ms": 16.224349000000075,
        "minMs": 11.895092000000659,
        "maxMs": 16.224349000000075
      },
      "work": {
        "placed": 14,
        "total": 3201,
        "reusedPages": 155,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3202,
          "evictions": 0,
          "size": 3202
        }
      }
    },
    {
      "name": "page-break-middle",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 9.862943000000087,
        "p95Ms": 20.240814000000682,
        "minMs": 9.045842999999877,
        "maxMs": 20.240814000000682
      },
      "layout": {
        "medianMs": 3.818232999999964,
        "p95Ms": 4.274864000000889,
        "minMs": 3.140747999999803,
        "maxMs": 4.274864000000889
      },
      "total": {
        "medianMs": 13.68117600000005,
        "p95Ms": 24.51567800000157,
        "minMs": 12.18659099999968,
        "maxMs": 24.51567800000157
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 99,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 205,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    }
  ]
}
Base report (full JSON)
{
  "schema": 1,
  "fixture": "/home/runner/_work/_temp/base/e2e/fixtures/synthetic-long-edit.docx",
  "fixtureBytes": 27897,
  "fixtureSha256": "ca8ee28a8d40ae7914a820303b96ddbbe8f06d37325b0fc2ae6f1140aea96321",
  "environment": {
    "runtime": "Bun 1.4.3",
    "arch": "x64"
  },
  "config": {
    "runs": 3,
    "warmup": 2,
    "measurer": "fixed(6px,14px)"
  },
  "scenarios": [
    {
      "name": "steady-middle-text",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 12.287294999999858,
        "p95Ms": 12.657439999999951,
        "minMs": 11.47816499999999,
        "maxMs": 12.657439999999951
      },
      "layout": {
        "medianMs": 5.799240000000282,
        "p95Ms": 11.983543000000054,
        "minMs": 4.666119999999864,
        "maxMs": 11.983543000000054
      },
      "total": {
        "medianMs": 18.456680000000233,
        "p95Ms": 24.270837999999912,
        "minMs": 16.144284999999854,
        "maxMs": 24.270837999999912
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "wrap-middle-text",
      "target": {
        "paragraphIndex": 1599,
        "paragraphId": "/word/document.xml#0.0.1599"
      },
      "transaction": {
        "medianMs": 11.092407999999523,
        "p95Ms": 12.647020999999768,
        "minMs": 9.346507000000202,
        "maxMs": 12.647020999999768
      },
      "layout": {
        "medianMs": 4.054522000000361,
        "p95Ms": 5.158335000000079,
        "minMs": 3.998464999999669,
        "maxMs": 5.158335000000079
      },
      "total": {
        "medianMs": 15.146929999999884,
        "p95Ms": 17.805355999999847,
        "minMs": 13.34497199999987,
        "maxMs": 17.805355999999847
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "forced-middle-reflow",
      "target": {
        "paragraphIndex": 1599,
        "paragraphId": "/word/document.xml#0.0.1599"
      },
      "transaction": {
        "medianMs": 9.870651999999609,
        "p95Ms": 11.70658800000001,
        "minMs": 9.626578000000336,
        "maxMs": 11.70658800000001
      },
      "layout": {
        "medianMs": 4.409208999999464,
        "p95Ms": 4.416802000000644,
        "minMs": 4.099438000000191,
        "maxMs": 4.416802000000644
      },
      "total": {
        "medianMs": 14.287454000000253,
        "p95Ms": 16.115796999999475,
        "minMs": 13.726016000000527,
        "maxMs": 16.115796999999475
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "forced-early-reflow",
      "target": {
        "paragraphIndex": 159,
        "paragraphId": "/word/document.xml#0.0.159"
      },
      "transaction": {
        "medianMs": 7.939677000000302,
        "p95Ms": 8.541226999999708,
        "minMs": 7.880444999999781,
        "maxMs": 8.541226999999708
      },
      "layout": {
        "medianMs": 2.856158999999934,
        "p95Ms": 2.9566890000005515,
        "minMs": 2.732025999999678,
        "maxMs": 2.9566890000005515
      },
      "total": {
        "medianMs": 10.896366000000853,
        "p95Ms": 11.397385999999642,
        "minMs": 10.61247099999946,
        "maxMs": 11.397385999999642
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 155,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "enter-split-middle",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 9.326745000000301,
        "p95Ms": 13.931252000000313,
        "minMs": 8.993878999999652,
        "maxMs": 13.931252000000313
      },
      "layout": {
        "medianMs": 3.5185050000000047,
        "p95Ms": 3.775677999999971,
        "minMs": 3.4736700000012206,
        "maxMs": 3.775677999999971
      },
      "total": {
        "medianMs": 12.800415000001522,
        "p95Ms": 17.706930000000284,
        "minMs": 12.512383999999656,
        "maxMs": 17.706930000000284
      },
      "work": {
        "placed": 14,
        "total": 3201,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3202,
          "evictions": 0,
          "size": 3202
        }
      }
    },
    {
      "name": "backspace-join-middle",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 8.33977799999957,
        "p95Ms": 9.057227999999668,
        "minMs": 7.7959460000001854,
        "maxMs": 9.057227999999668
      },
      "layout": {
        "medianMs": 2.5633789999992587,
        "p95Ms": 3.461887999999817,
        "minMs": 2.4045400000013615,
        "maxMs": 3.461887999999817
      },
      "total": {
        "medianMs": 10.74431800000093,
        "p95Ms": 12.519115999999485,
        "minMs": 10.359324999999444,
        "maxMs": 12.519115999999485
      },
      "work": {
        "placed": 12,
        "total": 3199,
        "reusedPages": 154,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 12,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    },
    {
      "name": "enter-split-early",
      "target": {
        "paragraphIndex": 159,
        "paragraphId": "/word/document.xml#0.0.159"
      },
      "transaction": {
        "medianMs": 9.828337000000829,
        "p95Ms": 10.907375999999203,
        "minMs": 8.54499399999986,
        "maxMs": 10.907375999999203
      },
      "layout": {
        "medianMs": 3.955777000001035,
        "p95Ms": 4.211417000000438,
        "minMs": 2.7278580000001966,
        "maxMs": 4.211417000000438
      },
      "total": {
        "medianMs": 13.784114000001864,
        "p95Ms": 15.118792999999641,
        "minMs": 11.272852000000057,
        "maxMs": 15.118792999999641
      },
      "work": {
        "placed": 14,
        "total": 3201,
        "reusedPages": 155,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 204,
        "cache": {
          "hits": 13,
          "misses": 3202,
          "evictions": 0,
          "size": 3202
        }
      }
    },
    {
      "name": "page-break-middle",
      "target": {
        "paragraphIndex": 1919,
        "paragraphId": "/word/document.xml#0.0.1919"
      },
      "transaction": {
        "medianMs": 8.761141000000862,
        "p95Ms": 8.86272099999951,
        "minMs": 8.420830999999453,
        "maxMs": 8.86272099999951
      },
      "layout": {
        "medianMs": 3.238367999998445,
        "p95Ms": 3.384522999998808,
        "minMs": 3.0026249999991705,
        "maxMs": 3.384522999998808
      },
      "total": {
        "medianMs": 11.86534599999868,
        "p95Ms": 12.14566399999967,
        "minMs": 11.659198999997898,
        "maxMs": 12.14566399999967
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 99,
        "fullPasses": 1,
        "pagesBefore": 204,
        "pagesAfter": 205,
        "cache": {
          "hits": 13,
          "misses": 3201,
          "evictions": 0,
          "size": 3201
        }
      }
    }
  ]
}
Browser report (full JSON)
{
  "schema": 1,
  "fixture": "synthetic-long-edit.docx",
  "fixtureSha256": "ca8ee28a8d40ae7914a820303b96ddbbe8f06d37325b0fc2ae6f1140aea96321",
  "environment": {
    "browser": "chromium",
    "browserVersion": "149.0.7827.55",
    "platform": "linux",
    "arch": "x64"
  },
  "config": {
    "runs": 5,
    "warmup": 2,
    "sustainedEdits": 120,
    "reviewRail": true,
    "viewport": "1440x1000@1x",
    "injectedDelayMs": 0
  },
  "scenarios": [
    {
      "name": "521pp-editing-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 46.90000000000873,
        "p95Ms": 50.40000000000873,
        "minMs": 45.90000000000873,
        "maxMs": 50.40000000000873
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 25.10000000000582,
        "p95Ms": 26,
        "minMs": 24.10000000000582,
        "maxMs": 26
      },
      "paint": {
        "medianMs": 3.1000000000058208,
        "p95Ms": 3.400000000008731,
        "minMs": 3,
        "maxMs": 3.400000000008731
      },
      "selection": {
        "medianMs": 1.1000000000058208,
        "p95Ms": 1.3999999999941792,
        "minMs": 1,
        "maxMs": 1.3999999999941792
      },
      "work": {
        "placed": 11,
        "total": 6540,
        "reusedPages": 516,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2628,
        "materializedPages": 4,
        "selectionSpans": 738
      }
    },
    {
      "name": "521pp-editing-wrap",
      "mode": "edit",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.09999999999126885,
        "minMs": 0,
        "maxMs": 0.09999999999126885
      },
      "frame": {
        "medianMs": 42.5,
        "p95Ms": 47.29999999998836,
        "minMs": 41.19999999999709,
        "maxMs": 47.29999999998836
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 21.59999999999127,
        "p95Ms": 25.20000000001164,
        "minMs": 20.5,
        "maxMs": 25.20000000001164
      },
      "paint": {
        "medianMs": 3.3999999999941792,
        "p95Ms": 3.599999999991269,
        "minMs": 3,
        "maxMs": 3.599999999991269
      },
      "selection": {
        "medianMs": 1.5,
        "p95Ms": 1.5,
        "minMs": 1.3999999999941792,
        "maxMs": 1.5
      },
      "work": {
        "placed": 11,
        "total": 6540,
        "reusedPages": 516,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2649,
        "materializedPages": 4,
        "selectionSpans": 758
      }
    },
    {
      "name": "521pp-suggesting-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.20000000001164153,
        "minMs": 0,
        "maxMs": 0.20000000001164153
      },
      "frame": {
        "medianMs": 86.39999999999418,
        "p95Ms": 99.40000000000873,
        "minMs": 82,
        "maxMs": 99.40000000000873
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 26.09999999999127,
        "p95Ms": 33.30000000000291,
        "minMs": 23.69999999999709,
        "maxMs": 33.30000000000291
      },
      "paint": {
        "medianMs": 14.30000000000291,
        "p95Ms": 15.099999999991269,
        "minMs": 12.80000000000291,
        "maxMs": 15.099999999991269
      },
      "selection": {
        "medianMs": 12,
        "p95Ms": 12.89999999999418,
        "minMs": 10.80000000000291,
        "maxMs": 12.89999999999418
      },
      "work": {
        "placed": 11,
        "total": 6540,
        "reusedPages": 516,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2631,
        "materializedPages": 4,
        "selectionSpans": 739
      }
    },
    {
      "name": "editing-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.09999999999854481,
        "p95Ms": 0.20000000000436557,
        "minMs": 0,
        "maxMs": 0.20000000000436557
      },
      "frame": {
        "medianMs": 85.39999999999418,
        "p95Ms": 113.5,
        "minMs": 56.30000000000291,
        "maxMs": 113.5
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 15.400000000001455,
        "p95Ms": 18.400000000001455,
        "minMs": 8.5,
        "maxMs": 18.400000000001455
      },
      "paint": {
        "medianMs": 5.400000000001455,
        "p95Ms": 8.10000000000582,
        "minMs": 3.5,
        "maxMs": 8.10000000000582
      },
      "selection": {
        "medianMs": 5.30000000000291,
        "p95Ms": 8.900000000001455,
        "minMs": 3,
        "maxMs": 8.900000000001455
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2194,
        "materializedPages": 4,
        "selectionSpans": 1738
      }
    },
    {
      "name": "editing-wrap",
      "mode": "edit",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0.09999999999854481,
        "p95Ms": 0.09999999999854481,
        "minMs": 0,
        "maxMs": 0.09999999999854481
      },
      "frame": {
        "medianMs": 54.599999999998545,
        "p95Ms": 58.19999999999709,
        "minMs": 51.900000000001455,
        "maxMs": 58.19999999999709
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 7,
        "p95Ms": 7.5,
        "minMs": 6.700000000004366,
        "maxMs": 7.5
      },
      "paint": {
        "medianMs": 3.7999999999956344,
        "p95Ms": 4,
        "minMs": 3.599999999998545,
        "maxMs": 4
      },
      "selection": {
        "medianMs": 3.400000000001455,
        "p95Ms": 4.19999999999709,
        "minMs": 3.2999999999956344,
        "maxMs": 4.19999999999709
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2216,
        "materializedPages": 4,
        "selectionSpans": 1758
      }
    },
    {
      "name": "suggesting-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.09999999999854481,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 112.29999999999563,
        "p95Ms": 121.5,
        "minMs": 106.80000000000291,
        "maxMs": 121.5
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 8.200000000004366,
        "p95Ms": 9.60000000000582,
        "minMs": 7.200000000004366,
        "maxMs": 9.60000000000582
      },
      "paint": {
        "medianMs": 12.69999999999709,
        "p95Ms": 13.19999999999709,
        "minMs": 12.60000000000582,
        "maxMs": 13.19999999999709
      },
      "selection": {
        "medianMs": 12.89999999999418,
        "p95Ms": 14,
        "minMs": 12.30000000000291,
        "maxMs": 14
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2196,
        "materializedPages": 4,
        "selectionSpans": 1739
      }
    },
    {
      "name": "suggesting-wrap",
      "mode": "suggest",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.09999999999126885,
        "minMs": 0,
        "maxMs": 0.09999999999126885
      },
      "frame": {
        "medianMs": 118.60000000000582,
        "p95Ms": 124.60000000000582,
        "minMs": 112.10000000000582,
        "maxMs": 124.60000000000582
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 6.80000000000291,
        "p95Ms": 8.900000000008731,
        "minMs": 6.400000000008731,
        "maxMs": 8.900000000008731
      },
      "paint": {
        "medianMs": 14,
        "p95Ms": 17.30000000000291,
        "minMs": 13.69999999999709,
        "maxMs": 17.30000000000291
      },
      "selection": {
        "medianMs": 16.40000000000873,
        "p95Ms": 16.700000000004366,
        "minMs": 12,
        "maxMs": 16.700000000004366
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2217,
        "materializedPages": 4,
        "selectionSpans": 1758
      }
    },
    {
      "name": "highlighted-edit-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 44.5,
        "p95Ms": 53.69999999999709,
        "minMs": 42.30000000000291,
        "maxMs": 53.69999999999709
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 6,
        "p95Ms": 6.80000000000291,
        "minMs": 5.7999999999883585,
        "maxMs": 6.80000000000291
      },
      "paint": {
        "medianMs": 2.900000000008731,
        "p95Ms": 4.19999999999709,
        "minMs": 2.8999999999941792,
        "maxMs": 4.19999999999709
      },
      "selection": {
        "medianMs": 2.8000000000029104,
        "p95Ms": 3,
        "minMs": 2.6999999999970896,
        "maxMs": 3
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2194,
        "materializedPages": 4,
        "selectionSpans": 1738
      }
    },
    {
      "name": "highlighted-suggest-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 94.80000000000291,
        "p95Ms": 107.09999999999127,
        "minMs": 93.10000000000582,
        "maxMs": 107.09999999999127
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 6,
        "p95Ms": 9,
        "minMs": 5.7000000000116415,
        "maxMs": 9
      },
      "paint": {
        "medianMs": 11.200000000011642,
        "p95Ms": 11.69999999999709,
        "minMs": 11.19999999999709,
        "maxMs": 11.69999999999709
      },
      "selection": {
        "medianMs": 10.80000000000291,
        "p95Ms": 12.10000000000582,
        "minMs": 10.5,
        "maxMs": 12.10000000000582
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2196,
        "materializedPages": 4,
        "selectionSpans": 1739
      }
    },
    {
      "name": "tracked-editing-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 35.40000000000873,
        "p95Ms": 37.20000000001164,
        "minMs": 33.59999999999127,
        "maxMs": 37.20000000001164
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 4.19999999999709,
        "p95Ms": 5.399999999994179,
        "minMs": 4,
        "maxMs": 5.399999999994179
      },
      "paint": {
        "medianMs": 3,
        "p95Ms": 3.3000000000029104,
        "minMs": 2.8000000000029104,
        "maxMs": 3.3000000000029104
      },
      "selection": {
        "medianMs": 3.099999999991269,
        "p95Ms": 3.1000000000058208,
        "minMs": 3,
        "maxMs": 3.1000000000058208
      },
      "work": {
        "placed": 3,
        "total": 620,
        "reusedPages": 151,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2093,
        "materializedPages": 3,
        "selectionSpans": 1740
      }
    },
    {
      "name": "tracked-suggesting-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 57.10000000000582,
        "p95Ms": 59,
        "minMs": 54.30000000000291,
        "maxMs": 59
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 4.600000000005821,
        "p95Ms": 5.899999999994179,
        "minMs": 4.399999999994179,
        "maxMs": 5.899999999994179
      },
      "paint": {
        "medianMs": 11.400000000008731,
        "p95Ms": 14.400000000008731,
        "minMs": 10.80000000000291,
        "maxMs": 14.400000000008731
      },
      "selection": {
        "medianMs": 12,
        "p95Ms": 12.5,
        "minMs": 11.200000000011642,
        "maxMs": 12.5
      },
      "work": {
        "placed": 3,
        "total": 620,
        "reusedPages": 151,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2095,
        "materializedPages": 3,
        "selectionSpans": 1741
      }
    },
    {
      "name": "tracked-suggesting-wrap",
      "mode": "suggest",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 59.39999999999418,
        "p95Ms": 61.10000000000582,
        "minMs": 54.5,
        "maxMs": 61.10000000000582
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.30000000000291,
        "p95Ms": 6.600000000005821,
        "minMs": 4.7999999999883585,
        "maxMs": 6.600000000005821
      },
      "paint": {
        "medianMs": 11.299999999988358,
        "p95Ms": 11.900000000008731,
        "minMs": 10.19999999999709,
        "maxMs": 11.900000000008731
      },
      "selection": {
        "medianMs": 12.69999999999709,
        "p95Ms": 13,
        "minMs": 11.80000000000291,
        "max
… truncated …
Browser baseline (full JSON)
{
  "schema": 1,
  "fixture": "synthetic-long-edit.docx",
  "fixtureSha256": "ca8ee28a8d40ae7914a820303b96ddbbe8f06d37325b0fc2ae6f1140aea96321",
  "environment": {
    "browser": "chromium",
    "browserVersion": "149.0.7827.55",
    "platform": "linux",
    "arch": "x64"
  },
  "config": {
    "runs": 5,
    "warmup": 2,
    "sustainedEdits": 120,
    "reviewRail": true,
    "viewport": "1440x1000@1x",
    "injectedDelayMs": 0
  },
  "scenarios": [
    {
      "name": "521pp-editing-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.10000000000582077,
        "minMs": 0.09999999997671694,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 73.79999999998836,
        "p95Ms": 99.59999999997672,
        "minMs": 69.29999999998836,
        "maxMs": 99.59999999997672
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 38.60000000000582,
        "p95Ms": 51.09999999997672,
        "minMs": 37.20000000001164,
        "maxMs": 51.09999999997672
      },
      "paint": {
        "medianMs": 4.899999999994179,
        "p95Ms": 5.7000000000116415,
        "minMs": 4.5,
        "maxMs": 5.7000000000116415
      },
      "selection": {
        "medianMs": 1.3000000000174623,
        "p95Ms": 1.599999999976717,
        "minMs": 1.2999999999883585,
        "maxMs": 1.599999999976717
      },
      "work": {
        "placed": 11,
        "total": 6540,
        "reusedPages": 516,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2628,
        "materializedPages": 4,
        "selectionSpans": 738
      }
    },
    {
      "name": "521pp-editing-wrap",
      "mode": "edit",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.10000000000582077,
        "minMs": 0.10000000000582077,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 69.10000000000582,
        "p95Ms": 220.20000000001164,
        "minMs": 59.29999999998836,
        "maxMs": 220.20000000001164
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 39.10000000000582,
        "p95Ms": 175,
        "minMs": 31.800000000017462,
        "maxMs": 175
      },
      "paint": {
        "medianMs": 4.300000000017462,
        "p95Ms": 5.5,
        "minMs": 4,
        "maxMs": 5.5
      },
      "selection": {
        "medianMs": 1.599999999976717,
        "p95Ms": 1.8999999999941792,
        "minMs": 1.3999999999941792,
        "maxMs": 1.8999999999941792
      },
      "work": {
        "placed": 11,
        "total": 6540,
        "reusedPages": 516,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2649,
        "materializedPages": 4,
        "selectionSpans": 758
      }
    },
    {
      "name": "521pp-suggesting-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.20000000001164153,
        "minMs": 0,
        "maxMs": 0.20000000001164153
      },
      "frame": {
        "medianMs": 124.70000000001164,
        "p95Ms": 151.89999999999418,
        "minMs": 118.80000000001746,
        "maxMs": 151.89999999999418
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 38.70000000001164,
        "p95Ms": 40.20000000001164,
        "minMs": 33.79999999998836,
        "maxMs": 40.20000000001164
      },
      "paint": {
        "medianMs": 18.800000000017462,
        "p95Ms": 20.699999999982538,
        "minMs": 15.800000000017462,
        "maxMs": 20.699999999982538
      },
      "selection": {
        "medianMs": 16.5,
        "p95Ms": 18.20000000001164,
        "minMs": 13.300000000017462,
        "maxMs": 18.20000000001164
      },
      "work": {
        "placed": 11,
        "total": 6540,
        "reusedPages": 516,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2631,
        "materializedPages": 4,
        "selectionSpans": 739
      }
    },
    {
      "name": "editing-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.1999999999825377,
        "minMs": 0,
        "maxMs": 0.1999999999825377
      },
      "frame": {
        "medianMs": 46.39999999999418,
        "p95Ms": 53.89999999999418,
        "minMs": 43.19999999998254,
        "maxMs": 53.89999999999418
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 6.899999999994179,
        "p95Ms": 9.900000000023283,
        "minMs": 6,
        "maxMs": 9.900000000023283
      },
      "paint": {
        "medianMs": 3.1999999999825377,
        "p95Ms": 4.7000000000116415,
        "minMs": 2.900000000023283,
        "maxMs": 4.7000000000116415
      },
      "selection": {
        "medianMs": 2.8999999999941792,
        "p95Ms": 3,
        "minMs": 2.5,
        "maxMs": 3
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2194,
        "materializedPages": 4,
        "selectionSpans": 1738
      }
    },
    {
      "name": "editing-wrap",
      "mode": "edit",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 44.60000000000582,
        "p95Ms": 47.89999999999418,
        "minMs": 41.39999999999418,
        "maxMs": 47.89999999999418
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.7999999999883585,
        "p95Ms": 6.100000000005821,
        "minMs": 5.599999999976717,
        "maxMs": 6.100000000005821
      },
      "paint": {
        "medianMs": 3.1000000000058208,
        "p95Ms": 3.2999999999883585,
        "minMs": 3.099999999976717,
        "maxMs": 3.2999999999883585
      },
      "selection": {
        "medianMs": 2.8999999999941792,
        "p95Ms": 3.6000000000058208,
        "minMs": 2.7000000000116415,
        "maxMs": 3.6000000000058208
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2216,
        "materializedPages": 4,
        "selectionSpans": 1758
      }
    },
    {
      "name": "suggesting-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 94,
        "p95Ms": 98.60000000000582,
        "minMs": 88.5,
        "maxMs": 98.60000000000582
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.7999999999883585,
        "p95Ms": 5.899999999994179,
        "minMs": 5.5,
        "maxMs": 5.899999999994179
      },
      "paint": {
        "medianMs": 11.700000000011642,
        "p95Ms": 11.799999999988358,
        "minMs": 11.39999999999418,
        "maxMs": 11.799999999988358
      },
      "selection": {
        "medianMs": 11.299999999988358,
        "p95Ms": 12.200000000011642,
        "minMs": 11.10000000000582,
        "maxMs": 12.200000000011642
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2196,
        "materializedPages": 4,
        "selectionSpans": 1739
      }
    },
    {
      "name": "suggesting-wrap",
      "mode": "suggest",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0,
        "p95Ms": 0.10000000000582077,
        "minMs": 0,
        "maxMs": 0.10000000000582077
      },
      "frame": {
        "medianMs": 94.39999999999418,
        "p95Ms": 95.59999999997672,
        "minMs": 91.39999999999418,
        "maxMs": 95.59999999997672
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.7000000000116415,
        "p95Ms": 8.10000000000582,
        "minMs": 5.5,
        "maxMs": 8.10000000000582
      },
      "paint": {
        "medianMs": 12,
        "p95Ms": 12.300000000017462,
        "minMs": 10.89999999999418,
        "maxMs": 12.300000000017462
      },
      "selection": {
        "medianMs": 14.10000000000582,
        "p95Ms": 14.599999999976717,
        "minMs": 10.199999999982538,
        "maxMs": 14.599999999976717
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2217,
        "materializedPages": 4,
        "selectionSpans": 1758
      }
    },
    {
      "name": "highlighted-edit-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.20000000001164153,
        "minMs": 0,
        "maxMs": 0.20000000001164153
      },
      "frame": {
        "medianMs": 41.5,
        "p95Ms": 45.19999999998254,
        "minMs": 40.80000000001746,
        "maxMs": 45.19999999998254
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.600000000005821,
        "p95Ms": 5.899999999994179,
        "minMs": 5.2999999999883585,
        "maxMs": 5.899999999994179
      },
      "paint": {
        "medianMs": 2.900000000023283,
        "p95Ms": 3.099999999976717,
        "minMs": 2.7000000000116415,
        "maxMs": 3.099999999976717
      },
      "selection": {
        "medianMs": 2.6000000000058208,
        "p95Ms": 2.900000000023283,
        "minMs": 2.5,
        "maxMs": 2.900000000023283
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2194,
        "materializedPages": 4,
        "selectionSpans": 1738
      }
    },
    {
      "name": "highlighted-suggest-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.20000000001164153,
        "minMs": 0,
        "maxMs": 0.20000000001164153
      },
      "frame": {
        "medianMs": 101.90000000002328,
        "p95Ms": 128.80000000001746,
        "minMs": 89.89999999999418,
        "maxMs": 128.80000000001746
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 6.600000000005821,
        "p95Ms": 8.5,
        "minMs": 5.399999999994179,
        "maxMs": 8.5
      },
      "paint": {
        "medianMs": 11.5,
        "p95Ms": 16,
        "minMs": 10.89999999999418,
        "maxMs": 16
      },
      "selection": {
        "medianMs": 10.5,
        "p95Ms": 13.5,
        "minMs": 10,
        "maxMs": 13.5
      },
      "work": {
        "placed": 13,
        "total": 3200,
        "reusedPages": 154,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2196,
        "materializedPages": 4,
        "selectionSpans": 1739
      }
    },
    {
      "name": "tracked-editing-character",
      "mode": "edit",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.20000000001164153,
        "minMs": 0.10000000000582077,
        "maxMs": 0.20000000001164153
      },
      "frame": {
        "medianMs": 48.30000000001746,
        "p95Ms": 49.5,
        "minMs": 34.39999999999418,
        "maxMs": 49.5
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.5,
        "p95Ms": 7.2999999999883585,
        "minMs": 5.399999999994179,
        "maxMs": 7.2999999999883585
      },
      "paint": {
        "medianMs": 4,
        "p95Ms": 5.2999999999883585,
        "minMs": 3.2999999999883585,
        "maxMs": 5.2999999999883585
      },
      "selection": {
        "medianMs": 3.6000000000058208,
        "p95Ms": 4.899999999994179,
        "minMs": 3.5,
        "maxMs": 4.899999999994179
      },
      "work": {
        "placed": 3,
        "total": 620,
        "reusedPages": 151,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2093,
        "materializedPages": 3,
        "selectionSpans": 1740
      }
    },
    {
      "name": "tracked-suggesting-character",
      "mode": "suggest",
      "textLength": 1,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.1999999999825377,
        "minMs": 0,
        "maxMs": 0.1999999999825377
      },
      "frame": {
        "medianMs": 75.20000000001164,
        "p95Ms": 90.39999999999418,
        "minMs": 69.5,
        "maxMs": 90.39999999999418
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 7.5,
        "p95Ms": 8.699999999982538,
        "minMs": 4.899999999994179,
        "maxMs": 8.699999999982538
      },
      "paint": {
        "medianMs": 13,
        "p95Ms": 18.300000000017462,
        "minMs": 12.60000000000582,
        "maxMs": 18.300000000017462
      },
      "selection": {
        "medianMs": 14.10000000000582,
        "p95Ms": 16.10000000000582,
        "minMs": 13.10000000000582,
        "maxMs": 16.10000000000582
      },
      "work": {
        "placed": 3,
        "total": 620,
        "reusedPages": 151,
        "fullPasses": 1,
        "staleDiscards": 0,
        "cancelledRuns": 0
      },
      "dom": {
        "nodes": 2095,
        "materializedPages": 3,
        "selectionSpans": 1741
      }
    },
    {
      "name": "tracked-suggesting-wrap",
      "mode": "suggest",
      "textLength": 100,
      "inputTask": {
        "medianMs": 0.10000000000582077,
        "p95Ms": 0.20000000001164153,
        "minMs": 0,
        "maxMs": 0.20000000001164153
      },
      "frame": {
        "medianMs": 61.60000000000582,
        "p95Ms": 67.20000000001164,
        "minMs": 61.10000000000582,
        "maxMs": 67.20000000001164
      },
      "eventDuration": null,
      "eventDelay": null,
      "layout": {
        "medianMs": 5.300000000017462,
        "p95Ms": 5.7000000000116415,
        "minMs": 5.2000000000116415,
        "maxMs": 5.7000000000116415
      },
      "paint": {
       
… truncated …

@github-actions

github-actions Bot commented Oct 14, 2026 •

Copy link
Copy Markdown
Contributor

📦 Package size report

Package Tarball vs main Unpacked vs main
@docx-editor.dev/core 2.57 MB — 8.33 MB —
@docx-editor.dev/docx-to-markdown 63.9 KB — 202.5 KB —
@docx-editor.dev/docx-to-pdf 2.43 MB — 4.96 MB —
@docx-editor.dev/editor-api 180.2 KB — 753.5 KB —
@docx-editor.dev/fonts 4.01 MB — 8.12 MB —
@docx-editor.dev/fonts-cjk 13.07 MB — 15.73 MB —
@docx-editor.dev/i18n 623.8 KB — 2.24 MB —
@docx-editor.dev/pro 416.2 KB — 1.41 MB —
@docx-editor.dev/react 397.8 KB — 1.44 MB —
@docx-editor.dev/telemetry 71.3 KB — 224.8 KB —
@docx-editor.dev/vue 307.4 KB — 1.50 MB —

No baseline from main was available; sizes are reported without deltas.

jedrazb and others added 4 commits October 14, 2026 23:50
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jedrazb jedrazb changed the title fix: justified lines, footnote space after, and table border fit at page ends fix: justified lines, footnote space after, and table widths for long redlined documents Oct 14, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jedrazb and others added 2 commits October 15, 2026 08:08
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Read the markup structure only for tables with revisions, limit the
auto-width shrink to the outer rule, let a splittable next row keep the row
above, scope the fixed-result mark to REF results, keep the PDF shaping
default under a partial fontShaping, and add incremental-layout tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
PAGEREF and NOTEREF results can change width after the line is decided, so
only a plain REF result counts as a fixed word. Refresh the API snapshot, fix
the closing-edge band comment, and cover a splittable next row and a wide grid.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@jedrazb jedrazb changed the title fix: justified lines, footnote space after, and table widths for long redlined documents fix: line and page breaks in long documents Oct 15, 2026

@TimurKr TimurKr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work, looks good to go.

jedrazb and others added 2 commits October 15, 2026 15:20
…imSun its line height

The footnote hold-out kept a whole paragraph continuation off the previous page when
its one reference line could not return. Lines ahead of the reference now return, as
far as widow and orphan control allow. One-em CJK faces with a small built-in gap now
take the same 1.3 em single line as faces without one. The section flow keys and the
table read prelude move to their own modules to keep the layout files under their caps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@TimurKr TimurKr left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Ship it.

@jedrazb
jedrazb merged commit 02b31d7 into main Oct 15, 2026
36 checks passed
@jedrazb
jedrazb deleted the fix/justified-line-fidelity branch October 15, 2026 13:37
@eigenpal-release-pal

Copy link
Copy Markdown
Contributor

🚀 Released in v2.31.0

This branch was successfully deployed

1 active deployment
Preview — 53b77440 Deployed Oct 15, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants