Skip to content

Very large hostile transcripts render slowly in Reading view #437

Closed as not planned

Description

@chhoumann

A hostile published transcript can produce a note whose Reading view stays blank for several seconds.

Found by the PR #420 verification (V-420c, Obsidian 1.14.4, Linux, 2560x1440): 1,024 dense escaped paragraphs, each under the 2,000-character paragraph cap, render a 2.04 MB note. Its Reading view stays blank for 5.4-8.6 s in five of five opens. An equal-sized plain-text note opens in 0.14-0.16 s. The main thread stays responsive (this is a display delay, not a freeze), and Live Preview and Source open in at most 2.3 s and 0.3 s.

Real transcripts are far smaller: a 3-hour transcript of 43,200 words renders without delay, and the longest real paragraph across 154 published transcripts is 1,874 characters.

Possible fix: a total budget on the rendered transcript body before the note is written, for example 512 KiB (a 511 KB dense control opened in 1.35-1.49 s). It needs real-size data first: measure the rendered size of the longest real transcripts (5+ hour episodes) so a budget never truncates a legitimate transcript. Add a Reading-view regression that checks visible text, not just the view shell.

Severity: low. It needs an adversarial feed, and Obsidian stays usable.

Activity

  1. chhoumann commented on Oct 15, 2026

    @chhoumann
    OwnerAuthor

    Closing as not planned. This needs a deliberately hostile published transcript, Obsidian stays responsive, and only Reading view is slow to appear (Live Preview and Source open quickly). Real transcripts, including a 3-hour one, render without delay. A size cap would need careful measurement of the longest real transcripts so it never cuts a legitimate one, which isn't worth it for a hostile-feed-only display delay. We can reopen if a real feed hits it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions