Chat UI improvements: markdown tables, job links, list numbering#16
Merged
Conversation
Chat replies were showing raw pipe-table syntax instead of tables, and list_jobs gave the model no URL to link jobs it names. Add table parsing to MarkdownContent, attach detailUrl to list_jobs results, and tighten the system prompt so the role name itself becomes the link (no separate link column, no invented/placeholder URLs). Also expand screenshots.mjs with a second board-chat example and a job-detail-chat capture, and capture at deviceScaleFactor 2 for sharper marketing screenshots. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
…g to 1 MarkdownContent stopped collecting list items at the first blank line, so a "loose" list (blank line between items, which LLMs commonly emit) became several one-item lists instead of one. Every fresh <ol> restarts its own count, so every item rendered as "1." regardless of position. Fix: collectListItems now tolerates a single blank line between items, only ending the list when the next non-blank line isn't a list item. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Company/Role/Salary/Link tables wrapped the role column badly in the narrow chat panel, especially with long titles. Collapse job tables to two columns by default — "Job" (company + linked role) and one status-like field (Status for applied, Fit for prospects) — and push salary/date into prose highlights instead, only surfacing them as columns when the user specifically asks about comp or timing. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Chat UI fixes surfaced while polishing marketing screenshots — the assistant's replies about job lists were rendering incorrectly or awkwardly in both the board chat (
ChatDrawer) and the inline job-detail chat (JobChat).MarkdownContenthad no pipe-table support, so any table reply (e.g. "show me my strong-fit prospects") showed raw| Company | Role |text instead of an actual table.list_jobsdidn't return adetailUrl, so there was nothing to link to, and the model would occasionally hallucinate a placeholder link like[Anthropic](/)that rendered as broken raw markdown.<ol>restarts its own counter at 1.Job(company + linked role) and one status field (Statusfor applied,Fitfor prospects) — with salary/date moved to prose highlights unless specifically asked about.Also expanded
scripts/screenshots.mjswith a second board-chat example, a job-detail-chat capture, anddeviceScaleFactor: 2for sharper marketing screenshots (unrelated to the chat fixes but bundled from the same session).Changes
components/MarkdownContent.tsx: pipe-table rendering; list parser tolerates blank lines between items instead of splitting into separate lists.lib/chat-tools.ts:list_jobsnow attachesdetailUrlto every job it returns.app/api/chat/route.ts: system prompt now links the role name (never the company, never a placeholder URL) and formats job tables as compact 2-column tables.components/__tests__/MarkdownContent.test.tsx: new ZOMBIES-ordered test suite covering the list/table/link fixes.scripts/screenshots.mjs: extra chat examples, job-detail chat capture, 2x device scale.Test plan
pnpm tsc --noEmitcleanpnpm lintclean (pre-existing coverage-artifact warning unrelated)pnpm test— 116/116 passing (8 new tests added)/api/chatcalls: prospects table, June-applied stats list, and the compact 2-column table all render correctly with working role links and no placeholder/broken links