Remove legacy Vue web client, keep Svelte
Takeaway: Next time I'd start the prompt by naming the exact package to delete (packages/web) since the agent had to spend a lot of turns just grepping the whole repo to figure out where Vue was referenced.
23 sessions on Vue with a coding agent: the agent failed at least once in 7, and 12 finished without a human stepping in.
Takeaway: Next time I'd start the prompt by naming the exact package to delete (packages/web) since the agent had to spend a lot of turns just grepping the whole repo to figure out where Vue was referenced.
Takeaway: Next time I'd describe the exact observed behavior up front — 'streaming shows no queue, only cancel reveals it' — instead of a vague 'steering shows late', since the agent latched onto the wrong direction and built a whole feature before I could correct it.
Takeaway: Next time I'd just point directly at the file (ChatTranscript.vue) and mention both the web and svelte packages need the same fix, since that's where all the search time went.
Takeaway: Next time I'd ask for the migration to be done component-by-component with a build check after each one, instead of generating the whole 25-component app in one shot and debugging the pile of runtime errors afterward.
Takeaway: Next time I'd start by asking directly for the two known root causes at once: the frontend title priority order and the 64KB session-summary read truncation on large image messages, since both turned out to matter.
Takeaway: Next time I'd ask the agent up front to inspect how @pierre/diffs actually themes its shadow DOM (CSS variables vs.
Takeaway: Next time I'd describe the bug with more specifics up front, like which sessions or scroll actions trigger it, since that would have saved a lot of exploratory code reading.
Takeaway: Next time I'd just ask directly for a container-query based responsive fix instead of describing the symptom, since that's what the agent eventually landed on anyway.
Takeaway: This was a one-line constant change, so I could have just asked for the exact constant name if I'd known it, but letting the agent grep for it first was fine too.
Takeaway: Next time I'd tell it upfront to keep some layering between the composer, the tool chips, and the send button instead of flattening everything to base00 in one pass — going all-in on base00 made the light theme look muddy.
Takeaway: Next time I'd point directly at toolBlock.ts and ChatTranscript.vue upfront since I already knew roughly where tool rendering logic lived, instead of letting the agent grep broadly first.
Takeaway: Next time I'd point directly at the CSS class name if I know it, since most of the time here went into searching the codebase for where the spacing was defined.
Takeaway: I would have started by pointing at the exact CSS classes and values I wanted instead of iterating turn by turn (10px, then 4px, then 0px) — that wasted a couple of build cycles.
Takeaway: I'd start by pointing the agent straight at useBridgeClient.ts and ws-rpc-adapter.ts instead of letting it discover the RPC layer through several rounds of grepping from the Vue component outward.
Takeaway: Next time I'd specify upfront that packages should use package-name imports (not relative paths) and that internal packages must stay private, since that's exactly what I ended up correcting twice.
Takeaway: Next time I'd ask directly for the root cause investigation across the transcript rendering pipeline instead of just reporting the visual bug, since the fix ended up touching several files (Vue component, transcript utils, bridge types).
Takeaway: Next time I'd attach the screenshot and explicitly describe what looks wrong (e.g.