Full deployment history for this project.
Sanitize JSON-LD serialization to prevent XSS
Replace native title with Tooltip for AppShell Close button
⚡ Bolt: Colocate copy state in MessageItem Moved the `isCopied` state and `handleCopy` logic from the parent `ChatInterface` down to the `MessageItem` child component. This isolates the state updates, preventing the entire list of messages from re-rendering every time a single message is copied.
perf: colocate copy state to avoid O(N) re-renders in ChatInterface
🎨 Palette: Add Radix Tooltips to icon-only buttons * Import `Tooltip`, `TooltipTrigger`, and `TooltipContent` from `@/components/ui/tooltip` into `components/app-shell.tsx`. * Wrap the "Toggle menu" button (mobile view) and "Close" button (desktop sidebar) in Radix UI Tooltips. * Remove the native `title="Close"` attribute to prevent overlapping/inconsistent native browser tooltips while retaining the `aria-label`.
🛡️ Sentinel: Fix XSS vulnerability in JSON-LD injection by escaping HTML tags during serialization.
Replace native titles with Tooltip components for icon-only buttons
🛡️ Sentinel: Fix XSS vulnerability in JSON-LD serialization
perf(chat): colocate copy state to MessageItem Moved the `isCopied` state and `handleCopy` logic from the parent `ChatInterface` component down into the child `MessageItem` component. This prevents O(N) array iteration and re-rendering of the entire parent container on every copy interaction.
perf(chat): colocate isCopied state to prevent O(N) list re-renders
🛡️ Sentinel: Fix XSS vulnerability in JSON-LD injection
perf(chat): isolate copy state to prevent O(N) re-renders
Merge pull request #20 from mbarbine/bolt-isolate-jobs-state-12830588880494738080 ⚡ Bolt: [performance improvement] Isolate high-frequency state in JobsPage
Merge pull request #18 from mbarbine/palette/chat-keyboard-hints-2480994075721214566 🎨 Palette: Add keyboard shortcut hints below chat input textarea
Merge pull request #17 from mbarbine/palette-tooltips-10939370853888290181 🎨 Palette: Replace native title attributes with Tooltips for icon-only buttons
Merge pull request #15 from mbarbine/bolt-optimize-chat-input-3205408642404170175 ⚡ Bolt: Isolate high-frequency state updates in ChatInterface
Merge pull request #16 from mbarbine/sentinel-jobs-api-validation-15893031418511270346 🛡️ Sentinel: [MEDIUM] Add input validation to Jobs API
feat: add platform contract fallback routes
feat: add platform contract fallback routes
feat: add platform contract fallback routes
Merge pull request #11 from mbarbine/palette/active-states-10691509939595009998 🎨 Palette: Add active state to sidebar navigation
Merge pull request #10 from mbarbine/bolt-memoize-chat-17031468979360231609 ⚡ Bolt: Memoize chat messages to prevent input typing lag
🎨 Palette: Improve sidebar accessibility and add active link indicator Fixes invalid HTML caused by nesting <button> tags inside Next.js <a> tags by using Radix UI's `asChild` prop. Also adds an active link indicator to the sidebar navigation to show the user their current location, significantly improving micro-UX and orientation. Extracted navigation links to an array for cleaner and more maintainable code. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge remote-tracking branch 'origin/main' into bolt-memoize-chat-17031468979360231609 Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #12 from mbarbine/palette-breadcrumb-a11y-2163998927627253198 🎨 Palette: [UX improvement] Accessible breadcrumbs with focus states
🎨 Palette: Add keyboard shortcut hints to chat interface Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: [UX improvement] Accessible breadcrumbs with focus states Added ARIA labels to breadcrumb navigation, hid decorative elements from screen readers, and improved keyboard focus visibility for interactive links. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: add active states to sidebar navigation - Added `usePathname` to track current route - Dynamically apply `secondary` variant to the active Button - Added `aria-current="page"` to the active Link for accessibility Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Memoize chat messages to prevent input typing lag - Extracted MessageItem and wrapped it in memo - Wrapped handleCopy in useCallback to maintain referential equality - Added inline comments explaining the memoization - Added .jules/bolt.md learning entry Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #9 from mbarbine/vercel/react-server-components-cve-vu-v3u43k Fix React Server Components CVE vulnerabilities
Fix React Server Components CVE vulnerabilities Updated dependencies to fix Next.js and React CVE vulnerabilities. The fix-react2shell-next tool automatically updated the following packages to their secure versions: - next - react-server-dom-webpack - react-server-dom-parcel - react-server-dom-turbopack All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory. Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
feat: add Enter-to-send support and accessibility labels to chat interface Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Add missing ARIA labels and titles to buttons and inputs 💡 What: Added `aria-label` attributes to the Textarea inputs in the chat interface and jobs page, and an `aria-label` along with a `title` to the mobile sidebar toggle menu button. 🎯 Why: Enhances accessibility for screen reader users by properly describing interactive elements and provides tooltip context for sighted mouse-hover users. 📸 Before/After: Visuals remain unchanged; improvements are within the DOM. ♿ Accessibility: Improved screen reader support for icon-only buttons and unlabelled textareas. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #4 from mbarbine/palette-a11y-buttons-4549794304013023240 🎨 Palette: A11y improvements for icon-only buttons
feat: add a11y labels to icon buttons and disable empty send button Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #3 from mbarbine/vercel/react-server-components-cve-vu-85pr0u Fix React Server Components CVE vulnerabilities
Fix React Server Components CVE vulnerabilities Updated dependencies to fix Next.js and React CVE vulnerabilities. The fix-react2shell-next tool automatically updated the following packages to their secure versions: - next - react-server-dom-webpack - react-server-dom-parcel - react-server-dom-turbopack All package.json files have been scanned and vulnerable versions have been patched to the correct fixed versions based on the official React advisory. Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
fix: remove corrupted Radix ScrollArea dependency Replace 'ScrollArea' with native overflow scrolling and add '"use client"' to 'app-shell.tsx'. Co-authored-by: Michael Barbine <3211492+mbarbine@users.noreply.github.com>
fix: resolve Next.js file import conflicts Move 'chat-interface.tsx' to 'components/' and rename 'layout.tsx' to 'components/app-shell.tsx' Co-authored-by: Michael Barbine <3211492+mbarbine@users.noreply.github.com>