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

stacklok / toolhive-studio / 25110033920
70%

Build:
DEFAULT BRANCH: main
Ran 29 Apr 2026 12:58PM UTC
Jobs 1
Files 491
Run time 1min
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

29 Apr 2026 12:54PM UTC coverage: 66.387% (+0.1%) from 66.261%
25110033920

push

github

web-flow
feat(playground): persist streaming responses and survive route changes (#2137)

* feat(playground): keep chat streams alive across route changes and persist mid-stream

* feat(playground): reconnect to in-flight chat streams via useChat({ resume: true })

* feat(playground): live streaming indicator and hover-only menu in threads sidebar

* feat(playground): show in-flight placeholder for token usage while streaming

* fix: adjust hydratation fetch and condense comments

* refactor: remove streamUIMessagesOverIPC export

* fix(playground): tighten stream subscription lifecycle and detach abort listener

* test(playground): cover useStreamingThreads hook

* docs(playground): note bufferedChunks lifetime in active-streams

* fix(playground): plug IPC listener leak in chat transport

events.on registers a wrapped listener under the hood, so removeListener by reference never matched and listeners accumulated for the lifetime of the renderer. Use the unsubscribe handle events.on returns instead and update the global mocks to surface that contract.

* fix(playground): harden chat stream lifecycle

Address review feedback on PR #2137:

- Reject duplicate runManagedStream calls for the same chatId; surface setup failures to the renderer via chat:stream:error.

- Abort the upstream on stream error and on before-quit so the LLM socket is torn down promptly (switched app.once → app.on so cancelled-then-retried quits still flush).

- Cap bufferedChunks at MAX_BUFFER_CHUNKS=5000; subscribeToStream returns null past the cap so late subscribers hydrate from SQLite.

- Broadcast a one-shot chat:stream:persist-error and toast a single warning when the snapshot write fails (disk full, SQLite locked, …).

- Extract buildActiveStream / startAssembler / pumpChunks / finalize{Success,Error} / teardownStream so runManagedStream reads as a workflow; replace the persistence-boundary switch with a ReadonlySet.

* test(playground): cover registry duplicate, persist-error, over... (continued)

4285 of 7075 branches covered (60.57%)

290 of 416 new or added lines in 10 files covered. (69.71%)

2 existing lines in 2 files now uncovered.

6569 of 9895 relevant lines covered (66.39%)

121.76 hits per line

Uncovered Changes

Lines Coverage ∆ File
74
69.29
main/src/chat/active-streams.ts
25
0.0
0.0% main/src/ipc-handlers/chat/streaming.ts
10
71.64
1.43% renderer/src/features/chat/hooks/use-chat-streaming.ts
8
25.93
-1.85% main/src/chat/streaming.ts
6
86.87
0.38% renderer/src/features/chat/transport/electron-ipc-chat-transport.ts
1
0.0
0.0% renderer/src/features/chat/components/token-usage.tsx
1
0.0
0.0% renderer/src/routes/playground.agents.tsx
1
0.0
0.0% renderer/src/routes/playground.agents_.$agentId.tsx

Coverage Regressions

Lines Coverage ∆ File
1
25.93
-1.85% main/src/chat/streaming.ts
1
0.0
0.0% main/src/ipc-handlers/chat/streaming.ts
Jobs
ID Job ID Ran Files Coverage
1 25110033920.1 29 Apr 2026 12:58PM UTC 491
66.39
GitHub Action Run
Source Files on build 25110033920
  • Tree
  • List 491
  • Changed 10
  • Source Changed 10
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #25110033920
  • 6c9788b2 on github
  • Prev Build on main (#25099424647)
  • Next Build on main (#25110050539)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc