Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
20 lines
4.8 KiB
Markdown
20 lines
4.8 KiB
Markdown
FAIL
|
|
|
|
1. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/check.rs:59` — The reread comparison discards all whitespace, including literal whitespace inside code. `Heading(3)` on ``a `x\n y`‸\n===`` succeeds, changing the inline-code value from `x\n y` to `x y`. The real MarkdownReader comparison also fails: this changes the code while merely changing the heading level. Preserve significant whitespace when joining the heading, or refuse as `Misread`; the verification must compare it instead of filtering it out.
|
|
|
|
2. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/check.rs:38` — The signature compares raw mdast nodes rather than the text and formats the component displays. Inserting `Rule` at `<u>ab‸cd</u>` succeeds with `<u>ab\n\n---\n\ncd</u>`, but MarkdownReader now renders `cd` without underline. Changing the first line of `<u>a‸\nb</u>` to a heading has the same loss. Likewise, splitting `x:smile: ‸:smile:` changes the second literal shortcode into an emoji. Verify the fragments through the same reader used for display, preserving its text and inline formats, or refuse the unsafe edit.
|
|
|
|
3. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/quote.rs:93` — Alert unwrapping strips the surviving body's significant indentation. `Quote` with the caret in `code` in `> [!NOTE]\n>\n> code` succeeds with `code`, changing the alert's indented code block into a paragraph. An indented fenced block also changes its code value because only its opening line loses the indentation. Preserve the body's indentation relative to the removed quote, consistently across its lines, or refuse if its block kind and code value cannot survive.
|
|
|
|
4. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/list.rs:214` — Retyping identifies a fence from the code's literal contents after discarding its indentation. `OrderedList` on ``- ```lang‸`` writes ``1. ```lang``: the original code value, three backticks followed by `lang`, becomes an empty fenced code block with language `lang`. Determine whether the original block is fenced from its source structure and indentation, not whether its content starts with backticks or tildes; retain the parsed code value.
|
|
|
|
5. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/list.rs:220` — Code padding counts every Unicode whitespace character's UTF-8 bytes as indentation, then leaves that character in the source as well. For `-` followed by five ASCII spaces, U+00A0, and `code`, `OrderedList` adds two ASCII spaces to the parsed code value: `\u{00A0}code` becomes ` \u{00A0}code`. Count actual indentation in columns and preserve non-ASCII whitespace as code content; do not duplicate its byte length as spaces.
|
|
|
|
6. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/list.rs:205` — Removing a task checkbox can activate block syntax in the retained paragraph. `BulletList` on `- [x] ---` succeeds with `- ---`, which parses as a thematic break: both the list and its displayed text disappear. `- [x] # h` similarly becomes a heading inside the item. Escape the newly active opener or refuse the conversion, and verify that removing the checkbox preserves the child's text and block kind. List retyping does not preserve these by construction.
|
|
|
|
7. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/list.rs:149` — The continuation-line checkbox fix covers retyping but not unwrapping. `TaskList` on `-\n [x] a` toggles the task list off and produces `[x] a`, making the former checkbox literal paragraph text; the equivalent same-line task unwraps to `a`. Remove the parsed checkbox on its own physical line when unwrapping, as well as the list opener and continuation indentation.
|
|
|
|
8. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/heading.rs:71` — The new guard requires a parsed paragraph node even when the valid result is an empty paragraph. `Paragraph` on `# ‸` now returns `EditRefusal::Misread` instead of removing the heading marks. Empty paragraphs have no mdast node, so `block_at` necessarily returns `None`. Recognize this valid empty result while continuing to reject results that actually reinterpret retained content.
|
|
|
|
9. `C:/Users/zhang/Documents/Github/Ely-GPUI-Components/src/documents/document/block/quote.rs:75` — The same-line alert guard rejects safely removable markers that the existing alert reader decodes. `> \[!NOTE]\n> a` is recognized as an alert with body `a`, but `Quote` now returns `Misread` because the raw marker does not start with `[!`. Its marker occupies a physical line of its own; the decoded-newline refusal does not apply. Identify the marker using the reader's decoded interpretation and distinguish a marker-only line from a line that also contains body text.
|