diff --git a/agent-team/web/src/App.tsx b/agent-team/web/src/App.tsx index 56b1d9b..bd9e5ba 100644 --- a/agent-team/web/src/App.tsx +++ b/agent-team/web/src/App.tsx @@ -127,6 +127,7 @@ export default function App() { value={view} onValueChange={(v) => setView(v as View)} className="flex min-w-0 flex-1 flex-col" + aria-label="Main view" >
diff --git a/agent-team/web/src/components/TaskDrawer.tsx b/agent-team/web/src/components/TaskDrawer.tsx index 7abfe8d..0470e82 100644 --- a/agent-team/web/src/components/TaskDrawer.tsx +++ b/agent-team/web/src/components/TaskDrawer.tsx @@ -264,9 +264,9 @@ function CollapsibleSection({ return ( - +

{title} - +

diff --git a/agent-team/web/vite.config.ts b/agent-team/web/vite.config.ts index c5a5e62..cbc3927 100644 --- a/agent-team/web/vite.config.ts +++ b/agent-team/web/vite.config.ts @@ -18,6 +18,36 @@ export default defineConfig({ outDir: "dist", emptyOutDir: true, sourcemap: false, + rollupOptions: { + output: { + // Split heavy vendors into their own chunks so the app/UI code isn't + // re-downloaded when only a component changes, and to clear the 500 kB + // single-chunk warning. Function form (not object) so react-dom and + // transitive deps bucket precisely instead of collapsing into a stub. + manualChunks(id) { + if (!id.includes("node_modules")) return; + if (/[\\/]node_modules[\\/](react|react-dom|scheduler)[\\/]/.test(id)) + return "react"; + if (id.includes("reactflow") || id.includes("dagre")) return "flow"; + if (id.includes("@radix-ui")) return "radix"; + if ( + id.includes("react-markdown") || + id.includes("micromark") || + id.includes("mdast") || + id.includes("hast") || + id.includes("unist") || + id.includes("unified") || + id.includes("remark") || + id.includes("vfile") || + id.includes("property-information") || + id.includes("/decode-named-character-reference/") || + id.includes("character-entities") + ) + return "markdown"; + return "vendor"; + }, + }, + }, }, server: { proxy: {