v2.0.0: BooCoder frontend — chat pane + diff pane + session picker
Integrates BooCoder as a 'coder' workspace pane within the existing BooChat SPA at code.indifferentketchup.com. Renamed the placeholder 'agent' pane kind to 'coder' across all types, menus, hooks, and mobile switcher (Icon: Code instead of Bot). CoderPane.tsx: split layout with chat area (messages via WS to boocoder:9502, input bar posting to /api/coder/sessions/:id/messages) and diff panel (pending changes with Approve/Reject per change plus Approve All/Reject All). Reuses MarkdownRenderer for message content. Proxy: Vite dev config adds /api/coder → boocoder:9502 (ordered above /api per CLAUDE.md proxy-ordering rule). Production: Fastify route in apps/server/src/index.ts proxies /api/coder/* to http://boocoder:3000 via fetch() pass-through. WS connects directly to :9502 (same Tailscale network, no proxy needed for WebSocket upgrade). WorkspacePaneKind mirror updated in both apps/web and apps/server types. useWorkspacePanes gains coderPane() factory (replaces the old agent toast stub). Workspace.tsx switch renders CoderPane for pane.kind === 'coder'. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -30,6 +30,17 @@ export default defineConfig({
|
||||
'Remote-User': process.env.DEV_REMOTE_USER ?? 'sam',
|
||||
},
|
||||
},
|
||||
// BooCoder: proxy /api/coder/* to the coder container. Must be listed
|
||||
// before /api so the more-specific prefix matches first.
|
||||
'/api/coder': {
|
||||
target: process.env.BOOCODER_DEV_URL ?? 'http://127.0.0.1:9502',
|
||||
changeOrigin: true,
|
||||
ws: true,
|
||||
rewrite: (path: string) => path.replace(/^\/api\/coder/, '/api'),
|
||||
headers: {
|
||||
'Remote-User': process.env.DEV_REMOTE_USER ?? 'sam',
|
||||
},
|
||||
},
|
||||
'/api': {
|
||||
target: 'http://127.0.0.1:3000',
|
||||
changeOrigin: true,
|
||||
|
||||
Reference in New Issue
Block a user