TanStack
OSS
ai
Sign in / Sign up
Open main menu
ai
GitHub
Overview
Runs
Analytics
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
feat/audio-recorder
0af3c3ea docs(audio-recorder): group doc snippets so kiira type-checks them The audio-recording guide's reactive-field and onComplete snippets reused `useAudioRecorder` from the opening example without re-importing it, so kiira's docs type-check (added on main) reported unresolved `useAudioRecorder` and an implicit-any `rec` param. Tag the related snippets `group=audio-recording` and wrap the two continuation fragments in named functions to avoid top-level redeclaration. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
feat/audio-recorder
0af3c3ea Merge 6bda5fe2b8ac650ebb15528b68e7f67866721595 into 33a91e5619b1d4e4db2e8b4a2b2549074bdab1e7
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
7282d870 fix(audio-recorder): address PR review — error-channel leak, null-transform soundness, wrapper cleanup tests - ai-client: reject the pending stop() promise before invoking onError, and isolate a throwing onError via notifyError() so a user callback that throws can't strand the awaiter (the two error channels are independent). - Make a null-returning onComplete type-sound: InferAudioRecordingOutput now excludes only void|undefined (preserving null), and every framework wrapper falls back on `=== undefined` instead of `??`. Type and runtime now agree. - example: surface transcription failures in the shared banner instead of only console.error (relabeled "Voice input error"). - tests: cover throwing-onError-still-rejects-stop, null-transform preservation, and mic release on unmount/cleanup for React/Solid/Vue. - docs: clarify onComplete's undefined-only fallback vs onResult's null semantics. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XcTgrWuN13Tedw2V2diWgG
by Tom Beckenham
T
Failed
feat/audio-recorder
7282d870 Merge ab2a75dd7222fb733fc6cc8c45b722c1d4d6d549 into 33a91e5619b1d4e4db2e8b4a2b2549074bdab1e7
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
8db18bb4 test(audio-recorder): dedupe jsdom Blob.arrayBuffer polyfill into a shared module Extract the per-file Blob.prototype.arrayBuffer polyfill (jsdom lacks it, which AudioRecorder.finalize() needs) into a single shared module and register it via each package's Vitest setupFiles, removing five copies. - new packages/ai-client/tests/blob-polyfill.ts — lint-clean (Partial<Blob>) side-effect module, homed beside the shared test-utils - ai-react/ai-solid: import it from the existing tests/setup.ts - ai-vue/ai-svelte: new tests/setup.ts + setupFiles wired in their configs - ai-angular: imported in the test file rather than vitest.setup.ts — the Analog plugin runs setup files in a separate module realm, so a Blob patched there isn't the one the test's AudioRecorder sees No behavior change; all five framework suites + ai-client unchanged and green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XcTgrWuN13Tedw2V2diWgG
by Tom Beckenham
T
Failed
feat/audio-recorder
8db18bb4 Merge b7ea47df0ecaf86d5d893e4d0b00fe87d5b3c63b into 33a91e5619b1d4e4db2e8b4a2b2549074bdab1e7
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
d07db260 ci: apply automated fixes
by autofix-ci...
a
Failed
feat/audio-recorder
d07db260 Merge 42b1c515abf93153900953df2ad57b4846bc8f7a into 33a91e5619b1d4e4db2e8b4a2b2549074bdab1e7
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
edefed17 fix(audio-recorder): address PR review — mic leaks, watchdog recovery, error surfacing Core AudioRecorder: - cancel() during a pending start() now releases the freshly acquired stream instead of leaving a live (unstoppable) microphone — the exact unmount path the framework hooks rely on - stop() watchdog recovers buffered audio from this.chunks when onstop never fires, rather than discarding a recording the user captured; only rejects (with an actionable message) when nothing was captured - cancel() no longer swallows unexpected recorder.stop() errors — only the expected InvalidStateError is ignored; anything else routes to onError Docs/skill: - transcription examples wrap the recording as a data: URL (stripping ;codecs=) so the provider gets the real content type instead of the adapter mislabeling webm/mp4 bytes as audio/mpeg Example: - ts-react-chat surfaces recorder failures in a dismissible banner and uses a single error channel (try/catch, not an extra onError) Tests: - new Svelte + Angular hook suites (toggle, transform, onError-on-denial, Angular mic-release-on-destroy) - new core cases: watchdog recovery vs. no-data rejection, cancel-during-start Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XcTgrWuN13Tedw2V2diWgG
by Tom Beckenham
T
Succeeded
feat/audio-recorder
edefed17 Merge 18dc2faaf5fcd131c204d8b30f268727ca261103 into 33a91e5619b1d4e4db2e8b4a2b2549074bdab1e7
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
67689e2f feat(examples): add voice input to the React chat composer Wire `useAudioRecorder` into the ts-react-chat front-page composer: a mic button records from the browser, transcribes the clip via the existing `/api/transcribe` endpoint (`useTranscription`), and drops the text into the input for the user to review and send. Text chat models don't accept raw audio, so transcription is the path that works. Uses an explicit type argument on `useTranscription` to work around the generation hooks' `onResult` inference bug (TanStack/ai#848). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XcTgrWuN13Tedw2V2diWgG
by Tom Beckenham
T
Failed
feat/audio-recorder
67689e2f Merge 6310929c957c5d0a9d3d7f873154abdbd2a8c2b0 into 33a91e5619b1d4e4db2e8b4a2b2549074bdab1e7
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
333428ce docs: rewrite audio-recording guide (journey format, recording field, transform)
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
333428ce Merge 91c499f4776327ec270d751443078724a2c1606f into 16cb212f2ff6d92ba234ac1822c86c4bab37d66a
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
78c07bb2 fix(ai-react): store transform output via functional setState to support function-valued results
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
78c07bb2 Merge 2f4be620a5fdb0444b3ab89f5e18393b41feb78f into 16cb212f2ff6d92ba234ac1822c86c4bab37d66a
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
30aabd2a chore: format
by Alem Tuzlak
A
Succeeded
feat/audio-recorder
30aabd2a Merge 12600feb70ada35574c916999e699451e42f3c37 into eddfbbdfd979cad7874f0fb33695c5c41331631e
by Alem Tuzlak
A
Previous page
Previous
Next
Next page