Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1105 commits
Select commit Hold shift + click to select a range
cca9c72
chore: reformat long lines and reorder imports across conversation co…
senamakel Sep 24, 2026
37dd071
chore: reorder imports and reformat long lines
senamakel Sep 24, 2026
1dac7ca
fix(dev): handle missing tool call data in gallery
senamakel Sep 24, 2026
e3249cc
test(ContextUsage): add assertions for context window label
senamakel Sep 24, 2026
e66004a
fix(conversations): correct context breakdown title translation key
senamakel Sep 24, 2026
e0bfef1
fix(platform): handle missing conversation intelligence catalog grace…
senamakel Sep 24, 2026
f2900be
fix(about_app): handle missing conversation intelligence catalog
senamakel Sep 24, 2026
2fd8757
chore(dev): reorder imports in ToolCallGallery
senamakel Sep 24, 2026
81fe614
fix(test): replace text matcher with accessible role query
senamakel Sep 24, 2026
3474115
fix(aui): correct tool timeline adapter test for restored block
senamakel Sep 24, 2026
3885979
chore(factory_crate_native_tests): condense multiline struct fields i…
senamakel Sep 24, 2026
bb4377f
fix(assistant-ui): correct tool timeline rendering for empty state
senamakel Sep 24, 2026
f6f7815
fix(tool-timeline): correct tool status display for completed tools
senamakel Sep 24, 2026
69d80eb
test: format struct fields on separate lines in factory tests
senamakel Sep 24, 2026
1e99436
fix(store): remove delete test for useOpenHumanExternalStore
senamakel Sep 24, 2026
479cde9
fix(test): correct test file name for delete functionality
senamakel Sep 24, 2026
a4c5d5a
fix(web_chat): handle missing egress surface gracefully
senamakel Sep 24, 2026
48d5714
fix(aui): handle missing subagent activity data gracefully
senamakel Sep 24, 2026
d3232e2
fix(tests): use fully qualified path for EgressSurfaceSubscriber
senamakel Sep 24, 2026
ed56889
fix(chat): correct provider to restore missing chat history
senamakel Sep 24, 2026
182a7b5
fix(test): update SubagentActivityCard test to match new activity format
senamakel Sep 24, 2026
1794331
test: remove placeholder and duplicate test stubs from ChatRuntimePro…
senamakel Sep 24, 2026
98671fe
test(conversations): add test for ToolTimelineAdapter component
senamakel Sep 24, 2026
ced341f
fix(chat): correct provider test to verify runtime state
senamakel Sep 24, 2026
e4cb06a
fix(conversations): correct tool timeline adapter test assertion
senamakel Sep 24, 2026
5de523e
fix(chat): correct provider to restore missing chat history
senamakel Sep 24, 2026
7a9c507
fix(chat): handle missing runtime in provider test
senamakel Sep 24, 2026
2cfb38f
fix(web_chat): handle missing user agent in request headers
senamakel Sep 24, 2026
33b9510
fix(test): remove obsolete test file for useOpenHumanExternalStore
senamakel Sep 24, 2026
a99d2fd
fix(test): remove obsolete test file for useOpenHumanExternalStore
senamakel Sep 24, 2026
74373a7
chore(tests): reformat test arguments for consistency
senamakel Sep 24, 2026
7827c06
chore(web_chat): reformat subscriber creation in event bus tests
senamakel Sep 24, 2026
1b66e1f
chore: files changed crates/openhuman-core/src/web_chat/web_tests.rs
senamakel Sep 24, 2026
fe597c1
feat(workflow-copilot): wrap transcript in subagent drawer host
senamakel Sep 24, 2026
b43d104
feat(conversations): restore subagent drawer with cancel support
senamakel Sep 24, 2026
454f991
feat(conversations): add SubagentDrawer component
senamakel Sep 24, 2026
9705f4b
refactor(conversations): remove legacy SubagentDrawer and its host co…
senamakel Sep 24, 2026
1a799c4
fix(workflow): restore missing copilot panel import
senamakel Sep 24, 2026
28b4987
fix(workflow): handle missing copilot panel gracefully
senamakel Sep 24, 2026
35e82bb
fix(workflow-copilot-panel): handle missing copilot session gracefully
senamakel Sep 24, 2026
4ebb43b
fix(test): update approval gate tests for new validation logic
senamakel Sep 24, 2026
193a8d1
fix(transcript): handle missing overlay data gracefully
senamakel Sep 24, 2026
887bf36
fix(test): update approval gate tests to match new validation logic
senamakel Sep 24, 2026
81c37b6
fix(transcript): handle missing overlay data gracefully
senamakel Sep 24, 2026
5612858
fix(aui): guard ContextUsage against rendering for invalid thread
senamakel Sep 24, 2026
b551772
fix(aui): correct context usage display for empty state
senamakel Sep 24, 2026
8cf791e
fix(context_breakdown): log serialization errors in config fingerprint
senamakel Sep 24, 2026
89af8f0
test(queueAdapter): add test for synchronous idle-thread message hand…
senamakel Sep 24, 2026
7fe20fc
refactor(aui-queue): split enqueue and steer into separate paths
senamakel Sep 24, 2026
4366f41
test(conversations): add mid-turn follow-up state to send-failure test
senamakel Sep 24, 2026
16c7e71
fix(aui-queue): wrap enqueue delivery in a microtask
senamakel Sep 24, 2026
a54e06c
fix(agent): handle empty context in breakdown logic
senamakel Sep 24, 2026
5a50602
test: add separate test for workspace_dir being ignored in config fin…
senamakel Sep 24, 2026
393af5e
feat(commands): add CommandsListResponse struct for consistent list r…
senamakel Sep 24, 2026
073fcbc
fix(ops): handle empty input in command parsing
senamakel Sep 24, 2026
4e36d71
fix(aui): deliver idle-thread messages one microtask later
senamakel Sep 24, 2026
429ec9b
fix(ops): handle missing config file gracefully
senamakel Sep 24, 2026
9cd8a05
chore(conversations): remove AssistantUiInferenceStatus component and…
senamakel Sep 24, 2026
d17eb67
fix(ops_tests): correct test assertion for empty input handling
senamakel Sep 24, 2026
bb53ce7
fix(aui): use globalThis.queueMicrotask for host delivery
senamakel Sep 24, 2026
528f948
feat(i18n): add background task inbox and memory job translations
senamakel Sep 24, 2026
d0ecb55
feat(i18n): add new translation files for multiple languages
senamakel Sep 24, 2026
f149902
test(ops_tests): reformat chained iterator call for readability
senamakel Sep 24, 2026
ebf2fa5
chore(tests): remove unused test modules
senamakel Sep 24, 2026
6062a13
fix(connection-state): handle missing connection state gracefully
senamakel Sep 24, 2026
dfd96f3
fix(aui): handle missing connection state in banner
senamakel Sep 24, 2026
af031f7
fix(conversations): update ConnectionStateBanner test to match new st…
senamakel Sep 24, 2026
f168b2f
chore: files changed app/src/features/conversations/aui/ConnectionSta…
senamakel Sep 24, 2026
be0d928
fix(aui): show connection state banner for all conversation types
senamakel Sep 24, 2026
482b4e0
fix(ConnectionStateBanner): simplify reconnection detection logic
senamakel Sep 24, 2026
315bdac
feat(i18n): add connection state translations for all locales
senamakel Sep 24, 2026
5826bd9
fix(conversations): restore background process selector for conversat…
senamakel Sep 24, 2026
1f215bb
test(thread): add test file for connection state component
senamakel Sep 24, 2026
94eb608
fix(assistant-ui): handle connection state test for missing thread
senamakel Sep 24, 2026
f93ffd1
fix(assistant-ui): handle missing thread state on initial render
senamakel Sep 24, 2026
c43058d
fix(assistant-ui): handle missing thread state on initial render
senamakel Sep 24, 2026
10193a6
fix(aui): handle missing connection state in banner
senamakel Sep 24, 2026
2881365
fix(aui): correct background color in inbox card
senamakel Sep 24, 2026
479d66f
fix(conversations): handle missing background process state gracefully
senamakel Sep 24, 2026
25efe4a
fix(dev): correct mock script import path in ToolCallGallery
senamakel Sep 24, 2026
968851b
fix(conversations): correct background process selector to include to…
senamakel Sep 24, 2026
9f6dd5f
fix(conversations): restore background activity rows in processes panel
senamakel Sep 24, 2026
eeb8527
fix(transcript): handle missing tool call data in overlay
senamakel Sep 24, 2026
5722f61
fix(conversations): handle empty conversation list gracefully
senamakel Sep 24, 2026
6818f20
fix(conversations): correct JSDoc reference to BackgroundInboxCard
senamakel Sep 24, 2026
7eeb636
test(thread): simplify assertion formatting in connection state test
senamakel Sep 24, 2026
5609de3
fix(test): update BackgroundInboxCard test to match new inbox behavior
senamakel Sep 24, 2026
445fd92
fix(chatRuntimeSlice): handle missing runtime state on reconnect
senamakel Sep 24, 2026
c4a1b57
chore: files changed app/src/features/conversations/aui/ConnectionSta…
senamakel Sep 24, 2026
ceee0a3
fix(aui): update ConnectionStateBanner test to reflect new connection…
senamakel Sep 24, 2026
072c7b4
fix(conversations): show connection state banner for all conversation…
senamakel Sep 24, 2026
59c2d07
fix(aui): show connection state banner for all conversation types
senamakel Sep 24, 2026
f3af5d7
feat(i18n): add new translation files for multiple languages
senamakel Sep 24, 2026
d6e23b7
fix(ui): correct agent status display in ParallelAgentsCard
senamakel Sep 24, 2026
d5e81a9
fix(aui): handle missing toolkit state on initial render
senamakel Sep 24, 2026
71d8874
fix(conversations): handle missing toolkit in AUI conversation
senamakel Sep 24, 2026
d203a5c
fix(aui): correct test assertion for ParallelAgentsCard
senamakel Sep 24, 2026
6199691
fix(ui): correct parallel agents card layout on narrow screens
senamakel Sep 24, 2026
63b5f05
test(parallel-agents-card): add test for ParallelAgentsCard component
senamakel Sep 24, 2026
1c4eaeb
test(ParallelAgentsCard): use React.ComponentProps instead of Parameters
senamakel Sep 24, 2026
9fd3ec2
fix(aui): correct test for ParallelAgentsCard component
senamakel Sep 24, 2026
40aeb0d
fix(chat): handle missing runtime in chat runtime slice
senamakel Sep 24, 2026
758da0e
fix(chatRuntimeSlice): handle missing runtime state on reconnect
senamakel Sep 24, 2026
f8f69e4
chore: files changed app/src/store/chatRuntimeSlice.ts
senamakel Sep 24, 2026
843ba62
fix(chat): handle missing message content in chat response
senamakel Sep 24, 2026
a85eeff
fix(chat): handle empty message in chat service
senamakel Sep 24, 2026
98ac0bf
fix(chat): handle empty message in chat service
senamakel Sep 24, 2026
9aed081
feat(chat): include tool_call_id in artifact event payloads
senamakel Sep 24, 2026
f016cfe
fix(chat): handle missing runtime gracefully in provider
senamakel Sep 24, 2026
26d16ef
fix(chat): restore missing ChatRuntimeProvider export
senamakel Sep 24, 2026
ff5c24b
fix(chat): restore missing chat runtime provider export
senamakel Sep 24, 2026
b7415ed
fix(bus): handle missing event data gracefully
senamakel Sep 24, 2026
6595211
fix(aui): handle missing artifact data in ArtifactCardAdapter
senamakel Sep 24, 2026
5f15b51
fix(conversations): handle empty conversation list gracefully
senamakel Sep 24, 2026
4f08ee7
fix(conversations): handle empty conversation list gracefully
senamakel Sep 24, 2026
26bd0c6
test(a11y): add smoke test for accessibility
senamakel Sep 24, 2026
8b97bdc
test(a11y): add smoke test for accessibility
senamakel Sep 24, 2026
b74b29f
chore(chat): remove ArtifactCard component and its tests
senamakel Sep 24, 2026
54ff753
fix(store): correct artifact state handling in chat runtime tests
senamakel Sep 24, 2026
28f8e06
test(artifact-card-adapter): add test file for ArtifactCardAdapter
senamakel Sep 24, 2026
a01d8bc
fix(test): update test to reflect new suggestion format
senamakel Sep 24, 2026
6658c95
fix(aui): prevent crash when media call ends without active session
senamakel Sep 24, 2026
01df231
fix(chat): handle plan exit tool result in chat service
senamakel Sep 24, 2026
34758ca
feat(aui): show failed artifact snapshot in document call component
senamakel Sep 24, 2026
719b7eb
fix(tools): correct plan exit test assertions
senamakel Sep 24, 2026
6c7906b
fix(aui): prevent duplicate media call buttons on conversation page
senamakel Sep 24, 2026
2f53bab
fix(plan_exit_tests): correct test assertions for exit plan behavior
senamakel Sep 24, 2026
dbf6b19
test: add diagnostics tests for native provider factory
senamakel Sep 24, 2026
f8a8e44
test(store): add test file for followupSuggestionsSlice
senamakel Sep 24, 2026
d4c0362
test: remove obsolete factory crate native tests
senamakel Sep 24, 2026
6b673c3
chore: add factory_tests.rs for inference provider factory
senamakel Sep 24, 2026
f16ad0c
feat(store): add followup suggestions slice
senamakel Sep 24, 2026
e4ac0c4
fix(aui): correct test for media and document calls
senamakel Sep 24, 2026
56d4d0c
fix(store): remove unused import of createStore
senamakel Sep 24, 2026
43341bb
fix(approval): correct gate intercept decision for followup suggestio…
senamakel Sep 24, 2026
a5c0905
fix(aui): handle missing subagent events in followup suggestion tracking
senamakel Sep 24, 2026
d78c117
fix(progress_bridge): handle missing progress bar in update
senamakel Sep 24, 2026
7f0c823
fix(approval): handle missing gate intercept in approval flow
senamakel Sep 24, 2026
7923fa3
chore: files changed crates/openhuman-core/src/security/approval/gate.rs
senamakel Sep 24, 2026
f6f2a4a
chore: files changed app/src/providers/ChatRuntimeProvider.tsx
senamakel Sep 24, 2026
9466745
feat(assistant-ui): port free-text answer path and voice-session lock…
senamakel Sep 24, 2026
31972a2
test: add missing subscribeSuggestionEvents mock and remove obsolete …
senamakel Sep 24, 2026
7c2910b
fix(approval): correct test assertion for gate approval logic
senamakel Sep 24, 2026
b305d70
refactor(progress_bridge): extract subagent event handling into dedic…
senamakel Sep 24, 2026
69d5d77
feat(assistant-ui): add textarea import and approval state hook
senamakel Sep 24, 2026
cb1d772
fix(approval): handle missing trust entry in store flow
senamakel Sep 24, 2026
215869e
fix(approval): handle missing approval store path
senamakel Sep 24, 2026
025522f
test(useOpenHumanExternalStore): add test for suggestion filtering by…
senamakel Sep 24, 2026
d8c174b
fix(approval): handle missing approval store gracefully
senamakel Sep 24, 2026
62a1452
fix(useOpenHumanExternalStore): correct store initialization to preve…
senamakel Sep 24, 2026
24b21b8
chore(security): add path attribute to store_flow_trust module
senamakel Sep 24, 2026
31dc3cc
fix(providers): handle missing external store gracefully
senamakel Sep 24, 2026
d25ddff
fix(useOpenHumanExternalStore): correct store initialization for exte…
senamakel Sep 24, 2026
57e669c
feat(assistant-ui): support question-style tool approvals and text an…
senamakel Sep 24, 2026
62ed42c
fix(assistant-ui): handle missing tool call in fallback component
senamakel Sep 24, 2026
cd451ef
fix(assistant-ui): handle tool call fallback when tool is not found
senamakel Sep 24, 2026
d780d76
chore(approval): fix module path for approval types in store_flow_trust
senamakel Sep 24, 2026
db854ed
fix(assistant-ui): update tool-fallback comment to reflect current ap…
senamakel Sep 24, 2026
f76a6d5
fix(assistant-ui): handle missing follow-up suggestions gracefully
senamakel Sep 24, 2026
006c3dc
chore(web_chat): add event bus tests
senamakel Sep 24, 2026
d4a1f93
chore: files changed app/src/components/assistant-ui/follow-up-sugges…
senamakel Sep 24, 2026
6a93df5
fix(assistant-ui): disable automatic sending of follow-up suggestions
senamakel Sep 24, 2026
207b5a7
chore: files changed app/src/components/assistant-ui/follow-up-sugges…
senamakel Sep 24, 2026
e495600
fix(artifacts): handle missing artifact store directory on creation
senamakel Sep 24, 2026
bb4c167
fix(artifacts): handle missing artifact store directory on creation
senamakel Sep 24, 2026
0ebaf24
fix(assistant-ui): handle missing task card data gracefully
senamakel Sep 24, 2026
94077f0
fix(assistant-ui): handle missing task data in task card component
senamakel Sep 24, 2026
a5e6f43
refactor(store): extract follow-up suggestion mapping into a shared f…
senamakel Sep 24, 2026
3b9e533
fix(ui): correct task card status display for completed tasks
senamakel Sep 24, 2026
0da2b2e
fix(store): correct follow-up suggestions not updating after action
senamakel Sep 24, 2026
05c8a0e
feat(i18n): add transcript labels for subagent conversations
senamakel Sep 24, 2026
6a6e274
fix(ui): correct follow-up suggestion rendering in SubagentTaskCard
senamakel Sep 24, 2026
1a65f2d
test(store): add tests for request_id propagation from chat context
senamakel Sep 24, 2026
bf10f12
feat(dev-tools): add mock chat suggestions event for UI gallery
senamakel Sep 24, 2026
9d87bef
feat(assistant-ui-demo): add follow-up suggestions demo
senamakel Sep 24, 2026
6f92528
feat(dev): add follow-up suggestions demo to tool call gallery
senamakel Sep 24, 2026
25f2acb
chore: reorder imports and format multiline arguments
senamakel Sep 24, 2026
ea9925b
chore: reformat test code and reorder module declarations
senamakel Sep 24, 2026
ddd7545
fix(aui): handle missing conversation in BackgroundInboxCard
senamakel Sep 24, 2026
226640b
chore: reorder imports and reformat long expressions
senamakel Sep 24, 2026
a86cce2
test: remove unused imports in factory crate native tests
senamakel Sep 24, 2026
b40f975
feat(web_chat): add run_mode field to WebChatParams
senamakel Sep 24, 2026
a8b0580
feat(web_chat): add run_mode parameter to channel_web_chat
senamakel Sep 24, 2026
319dbd0
feat(web_chat): pass run_mode to chat request metadata
senamakel Sep 24, 2026
6284b91
chore: files changed app/src/features/conversations/aui/MediaAndDocum…
senamakel Sep 24, 2026
0fd4823
fix(aui): correct test for media and document calls
senamakel Sep 24, 2026
9404200
fix(conversations): correct test for media and document calls
senamakel Sep 24, 2026
014361a
test: remove obsolete MediaAndDocumentCalls test file
senamakel Sep 24, 2026
7ab0bcc
fix(transcript_view): correct test assertion for empty transcript
senamakel Sep 24, 2026
d9be791
fix(transcript_view): correct test assertion for empty transcript
senamakel Sep 24, 2026
15e2a9f
chore: files changed crates/openhuman-core/src/web_chat/turn_timing.rs
senamakel Sep 24, 2026
08cee79
fix: correct turn timing test to use consistent time unit
senamakel Sep 24, 2026
86711b6
fix(web_chat): handle missing chat session on start
senamakel Sep 24, 2026
48ea7a2
test(web_chat): add tests for start_chat operation
senamakel Sep 24, 2026
b493c86
test(presentation): add test for test support utilities
senamakel Sep 24, 2026
4342577
fix(threads): correct test assertion for edit operation
senamakel Sep 24, 2026
9a0816e
fix(web_chat): correct test assertion for empty state
senamakel Sep 24, 2026
599e400
fix: correct test assertions for thread editing and web chat presenta…
senamakel Sep 24, 2026
4fcfcc3
fix(threads): correct test for editing turn state
senamakel Sep 24, 2026
1f5560a
feat(threads): add test module declarations for edit operations
senamakel Sep 24, 2026
b6a631f
chore: files changed app/src/features/conversations/aui/SubagentTaskC…
senamakel Sep 24, 2026
0bb19c5
fix(aui): handle missing subagent task data gracefully
senamakel Sep 24, 2026
871ce46
fix(aui): handle missing subagent task data gracefully
senamakel Sep 24, 2026
27e66bd
fix: correct test module name in presentation test support
senamakel Sep 24, 2026
29a28b5
fix(tests): update JSON-RPC e2e test to match new response format
senamakel Sep 24, 2026
38a257c
fix(chatService): add 'video' to ArtifactKind type
senamakel Sep 24, 2026
96b231f
fix(chat): handle missing artifact download URL gracefully
senamakel Sep 24, 2026
d69fcbf
chore: files changed app/src/components/chat/artifactExtension.ts
senamakel Sep 24, 2026
96018a5
fix(settings-panel): correct tooltip text for the "Save" button
senamakel Sep 24, 2026
ebedbdf
fix(conversations): add VideoIcon import to ArtifactCardAdapter
senamakel Sep 24, 2026
38ad3a4
fix(chat): correct model quality pill to show correct tier for free u…
senamakel Sep 24, 2026
a9f5eac
feat(chat): add video icon to file kind indicator
senamakel Sep 24, 2026
8664e3c
fix(aui): prevent crash when media call ends without active call
senamakel Sep 24, 2026
49fdcb7
fix(threads): correct test assertion for edit operation
senamakel Sep 24, 2026
e38cd38
fix(chat): prevent crash when opening settings panel with empty conve…
senamakel Sep 24, 2026
3c4f946
fix(assistant-ui): handle empty thread state in thread component
senamakel Sep 24, 2026
0058721
fix(aui): handle missing approval card data gracefully
senamakel Sep 24, 2026
ff2442c
feat(i18n): add approval card translations for all supported languages
senamakel Sep 24, 2026
cd52386
fix(aui): handle missing approval card data gracefully
senamakel Sep 24, 2026
1a0825d
fix(ui): remove duplicate model quality indicator from settings panel
senamakel Sep 24, 2026
70707bf
fix(aui): handle missing approval data in ApprovalCardAdapter
senamakel Sep 24, 2026
48d0db9
fix(aui): handle missing approval card data gracefully
senamakel Sep 24, 2026
1831c00
fix(aui): handle missing approval card data gracefully
senamakel Sep 24, 2026
26534f2
fix(planreview): handle missing plan data in review component
senamakel Sep 24, 2026
9c80bfa
fix(planreview): handle missing plan data in review component
senamakel Sep 24, 2026
bd0dc18
feat(approval-card): add label override props for approval buttons
senamakel Sep 24, 2026
fe385b9
fix(aui): handle missing approval data in ApprovalCardAdapter
senamakel Sep 24, 2026
1ddc90e
fix(PlanReviewPart): add missing labels for approval card buttons
senamakel Sep 24, 2026
a3dc5a7
feat(architecture): add agent-harness documentation
senamakel Sep 24, 2026
387568a
feat(dev): add settings panel to tool call gallery
senamakel Sep 24, 2026
bc0c718
fix(PlanReviewPart): handle missing plan data gracefully
senamakel Sep 24, 2026
6f181f8
fix(plan-review): handle missing plan data in review component
senamakel Sep 24, 2026
afcf568
chore: files changed app/src/features/conversations/aui/ApprovalCardA…
senamakel Sep 24, 2026
b9c6e90
fix(aui): handle missing approval data in ApprovalCardAdapter
senamakel Sep 24, 2026
b5c07cf
fix(aui): prevent crash when media call ends without active call
senamakel Sep 24, 2026
ee2ce76
chore: reformat long function calls and assertions for readability
senamakel Sep 24, 2026
089e199
fix(i18n): correct typo in English locale string
senamakel Sep 24, 2026
7913646
chore: files changed app/src/lib/i18n/ar.ts,app/src/lib/i18n/bn.ts,ap…
senamakel Sep 24, 2026
2e7d340
fix(aui): handle missing context usage data gracefully
senamakel Sep 24, 2026
65f2b00
chore: files changed app/src/features/conversations/aui/ContextUsage.tsx
senamakel Sep 24, 2026
c7e7946
fix(aui): correct context usage display for empty state
senamakel Sep 24, 2026
d0d41f4
fix(aui): handle missing context usage data gracefully
senamakel Sep 24, 2026
3cb9c06
fix(aui): handle missing context usage data gracefully
senamakel Sep 24, 2026
4462f40
fix(aui): correct context usage display for empty state
senamakel Sep 24, 2026
b2ef707
feat(i18n): add missing translations for multiple languages
senamakel Sep 24, 2026
58407ea
Merge upstream/main into assistant-ui-elements
senamakel Sep 24, 2026
38b44aa
fix(chat): handle missing runtime in ChatRuntimeProvider
senamakel Sep 24, 2026
1bd7d87
chore(deps): add serde_json dependency to Cargo.lock
senamakel Sep 24, 2026
78d1c11
feat(transcript_view): pass timestamp through pair_result
senamakel Sep 24, 2026
0774506
fix(transcript_view): populate timestamp from message in tool results
senamakel Sep 24, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,13 @@
"lint": "eslint . --ext .ts,.tsx --cache",
"lint:fix": "eslint . --ext .ts,.tsx --fix --cache",
"lint:commands-tokens": "bash scripts/lint-token-scan.sh lint:commands-tokens -nU \"(bg|text|border|ring|shadow)-(neutral|primary|sage|amber|canvas|stone|slate)\" src/components/commands/",
"lint:ui-tokens": "bash scripts/lint-token-scan.sh lint:ui-tokens -nP \"^(?!\\s*(//|\\*|/\\*)).*\\b(bg|text|border|ring|divide)-(neutral|stone|slate|canvas|white|black)\\b\" src/components/ui/ src/components/layout/ src/components/settings/ src/features/conversations/ src/components/intelligence/ src/components/feedback/ src/components/flows/ src/components/chat/ src/components/skills/ src/components/channels/ src/pages/ src/components/dashboard/ src/components/composio/ src/components/notifications/ src/components/accounts/ src/components/approvals/ src/features/human/ && bash scripts/lint-token-scan.sh lint:ui-tokens -nP \"^(?!\\s*(//|\\*|/\\*)).*(color-mix\\(|oklch\\(|@layer )\" src/components/ui/ src/styles/fonts.css && node scripts/lint-undefined-scales.mjs",
"lint:ui-tokens": "bash scripts/lint-token-scan.sh lint:ui-tokens -nP \"^(?!\\s*(//|\\*|/\\*)).*\\b(bg|text|border|ring|divide)-(neutral|stone|slate|canvas|white|black)\\b\" src/components/ui/ src/components/layout/ src/components/settings/ src/features/conversations/ src/components/intelligence/ src/components/feedback/ src/components/flows/ src/components/chat/ src/components/skills/ src/components/channels/ src/pages/ src/components/dashboard/ src/components/composio/ src/components/notifications/ src/components/accounts/ src/features/human/ && bash scripts/lint-token-scan.sh lint:ui-tokens -nP \"^(?!\\s*(//|\\*|/\\*)).*(color-mix\\(|oklch\\(|@layer )\" src/components/ui/ src/styles/fonts.css && node scripts/lint-undefined-scales.mjs",
"knip": "knip --config knip.json",
"knip:production": "knip --config knip.json --production"
},
"dependencies": {
"@assistant-ui/core": "^0.3.15",
"@assistant-ui/react": "^0.15.16",
"@assistant-ui/core": "^0.3.20",
"@assistant-ui/react": "^0.15.21",
"@assistant-ui/react-lexical": "^0.2.10",
"@assistant-ui/react-markdown": "^0.14.12",
"@base-ui/react": "^1.7.0",
Expand Down
5 changes: 5 additions & 0 deletions app/src/AppRoutes.guards.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,9 @@ vi.mock('./pages/Accounts', () => ({ default: () => <div /> }));
vi.mock('./pages/Brain', () => ({ default: () => <div /> }));
vi.mock('./pages/dev/AgentInsightsPreview', () => ({ default: () => <div /> }));
vi.mock('./pages/dev/UiGallery', () => ({ default: () => <div data-testid="page-ui-gallery" /> }));
vi.mock('./pages/dev/ToolCallGallery', () => ({
default: () => <div data-testid="page-tool-call-gallery" />,
}));
vi.mock('./pages/Invites', () => ({ default: () => <div data-testid="page-invites" /> }));
vi.mock('./pages/Notifications', () => ({
default: () => <div data-testid="page-notifications" />,
Expand Down Expand Up @@ -102,6 +105,7 @@ const OWNED: Array<{ path: string; page: string; guard: Guard }> = [
{ path: '/notifications', page: 'page-notifications', guard: 'protected' },
{ path: '/ptt-overlay', page: 'page-ptt-overlay', guard: 'none' },
{ path: '/dev/ui', page: 'page-ui-gallery', guard: 'none' },
{ path: '/dev/tools', page: 'page-tool-call-gallery', guard: 'none' },
];

describe('AppRoutes — each route renders its page behind the right guard', () => {
Expand Down Expand Up @@ -200,6 +204,7 @@ describe('AppRoutes — the whole route table stays classified', () => {
'/ptt-overlay': 'none',
'/dev/agent-insights': 'none',
'/dev/ui': 'none',
'/dev/tools': 'none',
'/dev/assistant-ui': 'none',
'*': 'none',
};
Expand Down
4 changes: 4 additions & 0 deletions app/src/AppRoutes.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import Activity from './pages/Activity';
import Brain from './pages/Brain';
import AgentInsightsPreview from './pages/dev/AgentInsightsPreview';
import AssistantUiDemoPage from './pages/dev/assistant-ui-demo';
import ToolCallGallery from './pages/dev/ToolCallGallery';
import UiGallery from './pages/dev/UiGallery';
import FlowCanvasPage, { FlowCanvasDraftPage } from './pages/FlowCanvasPage';
import FlowsPage from './pages/FlowsPage';
Expand Down Expand Up @@ -260,6 +261,9 @@ const AppRoutes = ({ location }: AppRoutesProps = {}) => {
{/* Gallery of every shared UI primitive, in the active theme. */}
<Route path="/dev/ui" element={<UiGallery />} />

{/* Tool-call presentation: every state and the whole core catalog. */}
<Route path="/dev/tools" element={<ToolCallGallery />} />

{/* The upstream assistant-ui `base` demo on a mock runtime. */}
<Route path="/dev/assistant-ui" element={<AssistantUiDemoPage />} />
</>
Expand Down
47 changes: 18 additions & 29 deletions app/src/components/__tests__/a11y.smoke.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,14 @@
* Kept deliberately small and provider-light so it stays fast and stable; grow
* it screen-by-screen rather than pulling in the full app shell.
*/
import { configureStore } from '@reduxjs/toolkit';
import { render } from '@testing-library/react';
import { axe } from 'jest-axe';
import { Provider } from 'react-redux';
import { describe, expect, it, vi } from 'vitest';

import chatRuntimeReducer, {
type ArtifactSnapshot,
type PendingApproval,
setPendingApprovalForThread,
} from '../../store/chatRuntimeSlice';
import ApprovalRequestCard from '../chat/ApprovalRequestCard';
import ArtifactCard from '../chat/ArtifactCard';
import { ApprovalCardAdapter } from '../../features/conversations/aui/ApprovalCardAdapter';
import { ArtifactCardAdapter } from '../../features/conversations/aui/ArtifactCardAdapter';
import type { ArtifactSnapshot } from '../../store/chatRuntimeSlice';

vi.mock('../../services/artifactDownloadService', () => ({
saveArtifactViaDialog: vi.fn(),
revealArtifactInFileManager: vi.fn(),
}));
vi.mock('../../services/coreRpcClient', () => ({ callCoreRpc: vi.fn() }));

async function expectNoViolations(container: HTMLElement) {
Expand All @@ -34,7 +24,7 @@ async function expectNoViolations(container: HTMLElement) {
}

describe('accessibility smoke', () => {
it('ArtifactCard (ready) has no axe violations', async () => {
it('ArtifactCardAdapter (ready) has no axe violations', async () => {
const artifact: ArtifactSnapshot = {
artifactId: 'a-1',
kind: 'presentation',
Expand All @@ -44,11 +34,11 @@ describe('accessibility smoke', () => {
path: 'a-1/deck.pptx',
updatedAt: 0,
};
const { container } = render(<ArtifactCard artifact={artifact} />);
const { container } = render(<ArtifactCardAdapter artifact={artifact} />);
await expectNoViolations(container);
});

it('ArtifactCard (failed with error) has no axe violations', async () => {
it('ArtifactCardAdapter (failed with error) has no axe violations', async () => {
const artifact: ArtifactSnapshot = {
artifactId: 'a-2',
kind: 'document',
Expand All @@ -57,23 +47,22 @@ describe('accessibility smoke', () => {
error: 'producer crashed',
updatedAt: 0,
};
const { container } = render(<ArtifactCard artifact={artifact} onRetry={vi.fn()} />);
const { container } = render(<ArtifactCardAdapter artifact={artifact} onRetry={vi.fn()} />);
await expectNoViolations(container);
});

it('ApprovalRequestCard has no axe violations', async () => {
const approval: PendingApproval = {
requestId: 'req-1',
toolName: 'shell',
message: 'Run `shell` — shell (18 bytes of arguments)',
command: 'pip show yfinance',
};
const store = configureStore({ reducer: { chatRuntime: chatRuntimeReducer } });
store.dispatch(setPendingApprovalForThread({ threadId: 't1', approval }));
it('ApprovalCardAdapter has no axe violations', async () => {
const { container } = render(
<Provider store={store}>
<ApprovalRequestCard threadId="t1" approval={approval} />
</Provider>
<ApprovalCardAdapter
ariaLabel="Approval needed"
title="Approval needed"
subtitle="Run `shell` — shell (18 bytes of arguments)"
command="pip show yfinance"
toolName="shell"
alwaysDecision="approve_always_for_tool"
analyticsPrefix="chat-approval"
onDecide={vi.fn()}
/>
);
await expectNoViolations(container);
});
Expand Down
135 changes: 0 additions & 135 deletions app/src/components/approvals/ApprovalDecisionCard.test.tsx

This file was deleted.

92 changes: 0 additions & 92 deletions app/src/components/approvals/ApprovalDecisionCard.tsx

This file was deleted.

Loading
Loading