Saxon Fletcher
2f8181b8bb
refactor: decouple assistant chat surfaces ( #48973 )
...
## Summary
- extract the reusable assistant conversation body from the sidebar
interface
- drive shared chat rendering and mutations with an explicit chat ID
- keep sidebar selection, shortcuts, SQL-editor context, and header
controls in the sidebar wrapper
- add selection-free chat creation and branching primitives while
preserving existing sidebar helpers
- add store tests for cross-surface selection and mutation isolation
This is PR 1 of 3. Review this foundation first, then #49031 for the
routed Explorer chat lifecycle, followed by #49032 for discovery and
cross-surface entry points.
Supersedes #48970 after renaming the branch to use the repository's
`chore/` convention.
## Test plan
- `mise exec node@22 -- pnpm --dir apps/studio exec tsc --noEmit`
- `mise exec node@22 -- pnpm --dir apps/studio exec vitest run
state/ai-assistant-state.test.ts`
- ESLint on changed files
- Prettier on changed files
2026-08-13 16:00:39 +10:00
..
2026-07-06 15:29:16 +02:00
2026-08-13 16:00:39 +10:00
2026-07-08 14:52:59 +08:00
2026-08-03 21:02:19 +07:00
2026-07-31 16:20:37 +01:00
2026-06-29 08:45:09 +00:00
2026-07-07 14:34:29 +10:00
2026-07-24 15:18:21 +08:00
2026-08-07 10:09:21 +01:00
2026-07-21 17:13:55 +08:00
2026-07-29 00:48:56 +08:00
2026-07-29 00:48:56 +08:00
2026-07-29 00:48:56 +08:00
2026-05-20 20:03:52 +07:00
2026-06-26 10:44:16 +08:00
2026-06-26 11:48:58 +02:00
2026-06-16 23:59:58 +02:00
2026-07-30 17:15:52 +03:00
2026-07-29 00:48:56 +08:00
2026-06-29 14:31:18 +02:00
2026-05-20 15:45:32 +02:00
2026-04-01 10:22:37 +02:00
2026-08-07 10:35:30 +10:00
2026-07-15 14:09:08 +00:00
2026-08-13 10:09:54 +07:00
2026-06-16 23:59:58 +02:00
2026-07-29 19:26:28 +08:00
2026-05-18 19:02:51 +10:00
2026-07-29 18:36:55 +08:00
2026-07-29 00:48:56 +08:00
2026-07-29 09:26:50 -07:00
2026-07-29 00:48:56 +08:00
2026-05-06 16:04:54 +00:00
2026-04-30 10:53:24 +00:00
2026-07-29 19:26:28 +08:00
2026-07-25 00:13:54 +10:00
2026-08-04 20:47:48 +12:00
2026-06-29 15:46:16 +02:00
2026-06-30 11:24:48 -04:00
2025-05-27 15:50:42 +02:00
2026-08-07 17:19:30 +01:00
2025-11-13 15:13:03 +08:00
2026-06-16 23:59:58 +02:00
2026-07-21 16:52:03 +08:00
2026-04-30 10:53:24 +00:00
2026-08-07 11:21:38 +07:00
2026-06-16 23:59:58 +02:00
2026-07-21 08:22:43 +10:00
2026-04-30 10:53:24 +00:00
2026-07-21 08:22:43 +10:00
2026-04-16 15:31:04 +02:00
2026-06-16 23:59:58 +02:00
2026-05-06 10:53:49 +08:00
2026-07-29 00:48:56 +08:00
2026-04-16 15:31:04 +02:00
2026-06-16 23:59:58 +02:00
2026-06-08 10:51:04 -06:00
2026-04-28 11:33:53 +02:00
2026-06-02 15:37:42 +02:00
2026-07-29 00:48:56 +08:00
2026-06-16 23:59:58 +02:00
2026-06-02 23:36:14 +10:00
2026-04-01 10:22:37 +02:00
2026-06-16 23:59:58 +02:00
2026-06-16 23:59:58 +02:00
2026-07-03 15:00:43 +10:00
2026-04-23 12:17:24 +10:00
2026-07-03 15:00:43 +10:00
2026-04-28 12:17:29 +10:00
2026-06-16 23:59:58 +02:00
2026-07-21 08:22:43 +10:00
2026-04-01 10:22:37 +02:00
2026-07-29 00:48:56 +08:00
2026-06-18 15:34:56 +08:00
2026-06-16 23:59:58 +02:00
2026-05-13 14:57:08 -04:00
2026-08-04 14:36:06 +02:00
2026-08-04 14:36:06 +02:00
2026-02-13 11:48:12 +01:00
2026-04-30 10:53:24 +00:00
2026-07-23 05:21:15 +10:00
2026-05-04 07:08:35 -06:00
2026-04-28 09:09:59 -06:00
2026-07-15 13:35:32 +08:00
2026-07-21 08:22:43 +10:00
2026-08-13 08:44:27 +07:00
2026-06-16 23:59:58 +02:00
2026-06-29 15:46:16 +02:00
2026-07-06 17:38:03 +08:00
2026-07-29 00:48:56 +08:00
2025-12-05 14:52:35 +00:00
2026-06-16 23:59:58 +02:00
2026-07-23 08:52:22 +10:00
2026-04-23 08:06:03 -06:00
2026-07-29 00:48:56 +08:00
2026-07-29 19:26:28 +08:00
2026-07-29 00:48:56 +08:00
2026-04-01 10:22:37 +02:00