Repository navigation
fix(voice-input): use InlineButton for processing error dismissal - #1800
Merged
Merged
Conversation
🧩 UI Consistency
|
donjor
force-pushed
the
fix/ui-consistency-voice-input
branch
from
October 20, 2026 02:04
cf5dfe3 to
6b574c6
Compare
donjor-agent
Bot
force-pushed
the
fix/ui-consistency-voice-input
branch
from
October 20, 2026 02:17
6b574c6 to
6c40a86
Compare
Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no
donjor-agent
Bot
force-pushed
the
fix/ui-consistency-voice-input
branch
from
October 20, 2026 02:53
6c40a86 to
8c0ed81
Compare
This was referenced Oct 20, 2026
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 20, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 21, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 22, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 22, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 23, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 24, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Oct 27, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 6, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 7, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 7, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 7, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 8, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 8, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
) ## Problem The dismissible voice-processing error duplicates the shared inline action primitive. ## Change #1792 ui-consistency-2: use destructive `InlineButton` for error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler. Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline. #1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file. The finish/retry markup and `ui/button.tsx` match `origin/hyprws` exactly. #1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in `ChatComposer` (live padding) and `ComposerSurface` (shell geometry), exceeding the approved one-hook limit. The fork-only stylesheet remains unchanged. ## Scope and approval Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits. The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants. ## Verification `vp lint apps/web/src/voice-input/useVoiceText.fork.tsx` → exit 0 (0 errors, 0 warnings). `cd apps/web && vp run typecheck` → exit 0. `vp run fork:ci` → exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings). No tests were touched, so no touched-test command applies. The previous head's cloud Test Web failed `AttachmentFilePreview.browser.test.tsx:74` (8,786 passed, 1 failed). The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope. Host browser grounding: see Evidence. No browser or dev server was started. Implemented by GPT-6.1 Sol through Pi. ## Evidence Web client, dark, 1280x800, seeded dev data: `hyprws` vs this PR merged on the current base. The error state was set directly in React state; a real failure needs a failing provider call. - Shows: error at rest, hovered, keyboard focus - Rest: destructive tone at 80%, full on hover - Hover: underline; tooltip and truncation unchanged - Focus: shared ring outline  ## Fork trailers Fork-Domain: voice-input Fork-Tier: qol Fork-Upstreamable: no Co-authored-by: donjor <[email protected]>
donjor
added a commit
that referenced
this pull request
Nov 9, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 9, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 10, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 11, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
rsi-software-agent Bot
pushed a commit
that referenced
this pull request
Nov 12, 2026
Squashes: - 26171fbd8fa feat(server): scaffold external voice dictation (#1672) (#1672) - da9e3d289f0 feat(server): transcribe recordings with Meta Muse (#1673) (#1673) - c7b4f781cf5 feat(desktop): record dictation into editable chat drafts (#1675) (#1675) - 9d5dcb319c9 fix(desktop): keep dictation transcribing across thread switches (#1684) (#1684) - 7782b1f05b3 feat(desktop): stream live Meta dictation into the composer (#1686) (#1686) - 80071d08816 fix(voice-input): keep Meta realtime dictation on HTTP/1.1 WebSockets (#1710) (#1710) - 7edffba3c2b feat(voice-input): live dictation preview for any OpenAI Realtime endpoint (#1775) (#1775) - 2283697771d fix(voice-input): use InlineButton for processing error dismissal (#1800) (#1800) - 54c87d908a2 fix(voice-input): one base URL derives dictation upload and live paths (#1881) (#1881) - bd64d598282 feat(voice-input): send per-project speech terms to the dictation service (#1882) (#1882) Fork-Domain: voice-input Fork-Tier: core Fork-Upstreamable: no Co-authored-by: donjor <[email protected]> Co-authored-by: donjor <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The dismissible voice-processing error duplicates the shared inline action primitive.
Change
#1792 ui-consistency-2: use destructive
InlineButtonfor error dismissal, preserving its tooltip, accessible label, truncation, and dismiss handler.Visible differences are the primitive's hover underline, destructive tone, and keyboard focus outline.
#1792 ui-consistency-1: held: mirrors upstream composer action button; no shared Button variant upstream, and adding one means a hook in a high-churn upstream file.
The finish/retry markup and
ui/button.tsxmatchorigin/hyprwsexactly.#1792 ui-consistency-3: held because moving both static rules requires separate upstream hooks in
ChatComposer(live padding) andComposerSurface(shell geometry), exceeding the approved one-hook limit.The fork-only stylesheet remains unchanged.
Scope and approval
Maintainer-directed, issue-free consistency fix for existing desktop dictation; no new capability, mobile changes, or backfill PR edits.
The host's Round 3 ruling prioritizes sync-conflict avoidance over adding shared button variants.
Verification
vp lint apps/web/src/voice-input/useVoiceText.fork.tsx→ exit 0 (0 errors, 0 warnings).cd apps/web && vp run typecheck→ exit 0.vp run fork:ci→ exit 0 (63 files, 776 tests passed; 0 lint errors, 451 warnings).No tests were touched, so no touched-test command applies.
The previous head's cloud Test Web failed
AttachmentFilePreview.browser.test.tsx:74(8,786 passed, 1 failed).The host identifies AttachmentFilePreview and WorkflowOpeningBlock failures as known base flakes; do not fix or rerun them in this scope.
Host browser grounding: see Evidence.
No browser or dev server was started.
Implemented by GPT-6.1 Sol through Pi.
Evidence
Web client, dark, 1280x800, seeded dev data:
hyprwsvs this PR merged on the current base.The error state was set directly in React state; a real failure needs a failing provider call.
Fork trailers
Fork-Domain: voice-input
Fork-Tier: qol
Fork-Upstreamable: no