Skip to content

test(formula): pin the refused direction of the hole placement scan's tag-open and script escape corrections (#25351) - #25730

Merged
hotlong merged 1 commit into
mainfrom
claude/issue-25351-mail-hole-refused-rows
Oct 25, 2026
Merged

hotlong merged 1 commit into
mainfrom
claude/issue-25351-mail-hole-refused-rows

Conversation

@hotlong

@hotlong hotlong commented Oct 25, 2026

Copy link
Copy Markdown
Contributor

Closes #25351

The maintainer's action on #25351, written under the maintainer's delegation in chat: two refused-direction rows in the class-by-class refused table of packages/formula/src/mail-html-hole-placement.test.ts, one per scan correction of 86330c090 (PR #25212), as contract review 6342085020 ③ asked. Test-only: no change to the classifier, the rule, its doors or the renderer.

Per the card's disclosure rule, this body names each row by class only; the samples live in the test source.

The two rows

  1. The tag-open state. A hole inside a tag that opens immediately after a character the tag open state reconsumes in the data state answers tag and is refused.
  2. A script element's escape states. A hole after an end tag in a script element's double-escaped text answers raw-text-element and is refused.

Both rows were built from the HTML Living Standard's tokenizer section (the tag open state; the script data escaped and double escaped states).

Ablation (local, against the classifier at this PR's base)

Each correction of 86330c090 in packages/formula/src/mail-html-hole-placement.ts was reverted on its own, the file run, and the correction re-applied; the file was byte-identical to the base after each restore.

Correction reverted Rows red Reading
Tag open state: reconsume in the data state (back to a plain return to data) 1 of 48: the tag row added here expected tag, received element-text
Script escape states: the escape flag's arm/disarm and the end-tag guard removed 1 of 48: the raw-text-element row added here expected raw-text-element, received element-text

With both corrections in place: 48 of 48 pass in this file.

Verification

  • packages/formula: vitest run, 53 files and 1424 tests pass; pnpm typecheck (including check:test-typecheck) passes.
  • eslint on the changed file: clean.

Declarations

Clause-②: no
Metadata-protocol: none

Test-only, so no changeset: the diff publishes nothing from any released package, and this PR carries skip-changeset, as the card's acceptance states.


Generated by Claude Code

… tag-open and script escape corrections (#25351)

Two rows in the class-by-class refused table: a hole in a tag that opens
right after a character the tag open state reconsumes answers `tag`, and
a hole after an end tag in a script's double-escaped text answers
`raw-text-element`. Each row goes red with its correction reverted.

Co-authored-by: Claude <noreply@anthropic.com>
@hotlong hotlong added tests skip-changeset PR has no user-facing published change; bypasses the changeset gate labels Oct 25, 2026
@github-actions

Copy link
Copy Markdown
Contributor

📓 Docs Drift Check

Nothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs.

What this run could not see

Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): node scripts/docs-audit/affected-docs.mjs --json 43edf90b56db8b47ad17684c145fb7fa8bf08583 → packageMentionDocs.

@hotlong
hotlong marked this pull request as ready for review October 25, 2026 02:40
@hotlong
hotlong enabled auto-merge October 25, 2026 02:40
@hotlong
hotlong added this pull request to the merge queue Oct 25, 2026
Merged via the queue into main with commit c882092 Oct 25, 2026
73 of 76 checks passed
@hotlong
hotlong deleted the claude/issue-25351-mail-hole-refused-rows branch October 25, 2026 03:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Email template hole placement: pin the refused direction of the two scan corrections from PR #25212

1 participant