• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

humanspeak / svelte-markdown / 29030772761 / 1
94%
main: 95%

Build:
Build:
LAST BUILD BRANCH: fix/shiki-out-of-extensions-barrel
DEFAULT BRANCH: main
Ran 09 Jul 2026 03:50PM UTC
Files 131
Run time 13s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

09 Jul 2026 03:45PM UTC coverage: 94.476%. First build
29030772761.1

push

github

web-flow
feat(streaming): add streamId prop to reset state between streams (#350)

* feat(streaming): add streamId prop to reset state between streams

The streaming buffer, incremental parser, and input-mode lock are
per-component-instance state that outlives a single message. They only
reset when the `source` prop changes value, which never happens in the
canonical `source=""` + `writeChunk()` pattern. A recycled component
(non-keyed each, virtual list, or a keyed each whose key identifies a
slot rather than a message) therefore starts each new stream on top of
the previous message's buffer.

Symptoms differ by mode:
- append: the next message renders as `previous + new`
- offset: writes overwrite without truncating, so the previous message's
  tail survives past the end of the new one and does not self-correct
  until the new message grows longer
- either: the previous stream's mode lock is still in force, so the new
  stream's first chunk is dropped with a warning if it uses the other
  chunk type

Changing `streamId` now drops the buffer, any pending unflushed chunk,
the parser, and the mode lock, then rebaselines on the current `source`.

`writeChunk()` reconciles a pending `streamId` change synchronously
rather than deferring to the $effect. Otherwise a parent that swaps
`streamId` and writes in the same tick would append to the old buffer
and then have that write wiped when the effect ran — silent loss of the
new stream's first chunk, not just corruption. Covered by a parent-driven
harness, since `rerender()` calls flushSync and hides the ordering.

Also corrects the README's claim that changing `source` resets the
buffer: that holds only when the value actually changes.

* docs: record trunk fmt/check as the lint gate

`pnpm lint` runs `prettier --check . && eslint .` across the whole repo,
which flags ~34 pre-existing unformatted files (generated
`docs/static/**/*.md`, `pnpm-lock.yaml`) that Trunk never touches.
Because the command is &&-chained, tha... (continued)

885 of 984 branches covered (89.94%)

Branch coverage included in aggregate %.

1475 of 1514 relevant lines covered (97.42%)

4461.51 hits per line

Source Files on job node-22 - 29030772761.1
  • Tree
  • List 131
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 29030772761
  • ec9a4957 on github
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc