Full deployment history for this project.
chore: merge open PRs into main
chore: merge open PRs into main
Merge PR #136: ⚡ Bolt: Memoize subcomponents and callbacks in LifecycleLab
⚡ Bolt: Memoize CodeEditor Gutter to prevent line number VDOM diffing on keystrokes
🎨 Palette: Add dynamic tooltip and ARIA label to Activity auto-refresh toggle
a11y: add screen reader context to external links on network page
⚡ Bolt: memoize CodeEditor line number Gutter subcomponent Extracted the line number gutter in components/code-editor.tsx into a standalone Gutter subcomponent wrapped in React.memo (taking lineCount as a prop). This eliminates Virtual DOM re-evaluations and diffing of line number elements on every keystroke when lineCount does not change.
🎨 Palette: Enhance sidebar external navigation accessibility Add ExternalLink icons, screen reader helper text, and keyboard focus rings to external links in the sidebar.
🎨 Palette: Add accessible new-tab indicators to sidebar external links
⚡ Bolt: Memoize Playground header and stabilize action callbacks - Extract top header UI in `PlaygroundClient` to a standalone `PlaygroundHeader` component wrapped in `React.memo`. - Stabilize action callbacks (`handleSaveLocal`, `handleCreateProviderSandbox`, `handleSyncServer`, `exportProject`) using `useCallback` and `useRef` state references. - Bypasses Virtual DOM diffing and re-rendering of the top header and action buttons on every code editor keystroke.
palette: synchronize copy button aria-label with copied state in CodeEditor
⚡ Bolt: Memoize code editor line number gutter to optimize typing performance
Palette: add htmlFor label associations in playground client
⚡ Bolt: memoize CodeEditor line number gutter component
Verify header icon button accessibility and test suite
⚡ Bolt: memoize static Home breadcrumb link subcomponent
ux(activity): add tooltip and accessible labels to live polling button
⚡ Bolt: optimize code editor line gutter rendering with React.memo
🎨 Palette: replace native title with Radix Tooltip on activity event correlation IDs
bolt: memoize subcomponents in lifecycle lab Extract StepItem, FileItem, CommandItem, SendTargetButton, and StatusTile into standalone subcomponents wrapped in React.memo and stabilize callbacks with useCallback to eliminate unnecessary Virtual DOM re-evaluations during state updates.
chore: consolidate all open PRs into one merge (#129) * palette: Wrap copy-to-clipboard buttons in Tooltips on the network page Wrap the JSON-RPC Gateway URL copy button and the individual tool endpoint copy buttons on the network page in Radix UI Tooltips. Dynamically update the tooltip content and button ARIA label dynamically depending on whether the item is copied. * ⚡ Bolt: optimize webhooks rendering performance - Extracted table row rendering into a memoized `WebhookRow` component to bypass full list diffing when form fields/dialogues update in the parent. - Wrapped parent handler callbacks inside `useCallback` to maintain reference stability across renders. - Retained full UI structure and styling features unchanged. * 🎨 Palette: Add Radix Tooltips to copy buttons on the network page Implement dynamic Radix UI tooltips and corresponding live aria-labels on the JSON-RPC gateway copy button and individual external tool card endpoint copy buttons inside `app/(dashboard)/network/network-client.tsx`
chore: auto-close PR #121 via merge path
chore: auto-close PR #113 via merge path
chore: stack PR #123
chore: stack PR #113
Merge pull request #112 from mbarbine/consolidate/platphorm-sandbox-20260811-cont3 consolidate 40 PRs into one commit
Merge pull request #72 from mbarbine/bolt/optimize-lifecycle-lab-rendering-16225055934429742994 ⚡ Bolt: Optimize rendering performance and fix typecheck in LifecycleLab
Merge pull request #73 from mbarbine/palette/ux-disabled-tooltips-7874367977668453987 🎨 Palette: Dynamic Tooltips Explaining Disabled Form Actions
Merge pull request #70 from mbarbine/jules-17480690988190602914-192e5f99 🎨 Palette: Improve Tooltips on Disabled and Busy Buttons
Merge pull request #69 from mbarbine/bolt/playground-memoization-optimization-12546771153123513817 ⚡ Bolt: Playground React.memo optimizations
fix: export complete request journeys
fix: clarify Sandbox execution lifecycle
release: sharpen Sandbox discovery v1.3.0
Resolve and consolidate 3 platphorm pull requests Merged resolved consolidation of PRs: #64, #59, #56
Improve request access form button tooltips (#66) Convert native title attributes on the action buttons in the request access form to Radix Tooltips. Wrap the disabled "Generate key" button to allow hover tooltips explaining why it is disabled, dynamically describing that an operator key is required.
⚡ Bolt: Memoize breadcrumb generation in Breadcrumbs component (#65)
feat(playground): add accessible tooltips to icon-only tab triggers (#63) Sighted users had no visual indication of what each icon-only sidebar tab represented without clicking. This change maps over the tab configuration to dynamically render the triggers, wrapping each one in a custom Radix UI Tooltip with descriptive labels. This makes workspace navigation highly intuitive and accessible on hover or focus.
perf: optimize array allocation in code editor line rendering (#62)
fix: align sandbox trust contract
chore: reconcile and restore pnpm build
feat: improve playground share button with custom radix tooltip and screen reader support (#61) Replace native title attribute on the disabled share button with a styled Radix UI Tooltip and add aria-label for improved accessibility.
⚡ Bolt: Optimize NetworkClient rendering and prevent unnecessary card re-renders (#60) - Hoisted getStatusColor helper to the module scope to avoid recreation on every render. - Stabilized copyToClipboard with useCallback to keep the function reference static. - Memoized filteredTools with useMemo to prevent list filtering calculations on every render. - Wrapped ToolCard with React.memo and passed the specific isCopied boolean prop instead of copiedId state, completely preventing O(N) card re-renders.
feat: add name-specific dynamic tooltips and ARIA labels for webhooks actions (#58) Wrap the edit and delete actions on the webhooks dashboard list in Radix UI Tooltip components. Use dynamic, webhook-specific ARIA labels and tooltip content to provide a highly descriptive, accessible screen reader and sighted user experience.
⚡ Bolt: optimize activity dashboard re-renders and timestamps (#57) - Introduced a centralized 'now' state inside ActivityClient updating every 60s. - Refactored getTimeAgo and formatDuration to accept 'now' as parameter. - Wrapped EventCard and AgentCard in React.memo with custom equality comparators to prevent unnecessary re-renders on SWR polls when data hasn't changed. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
Consolidate open PRs, compatible upgrades, and platform auth Validated locally and through a READY Vercel preview. Merge commit preserves every original PR head in ancestry.
chore: validate consolidated upgrades and platform auth
🎨 Palette: Enhance Code Editor "Run" button with keyboard shortcut hint (#39) This change replaces the native `title` attribute on the Code Editor's "Run" button with a rich Radix UI `Tooltip`. The new tooltip includes a visual keyboard shortcut hint (`Ctrl` / `⌘` + `Enter`) using the `Kbd` component, improving discoverability and providing a more polished, accessible user experience. - Replaced native `title` with Radix `Tooltip` on "Run" button in `components/code-editor.tsx`. - Added cross-platform shortcut hints using `Kbd` and `KbdGroup`. - Ensured proper accessibility with descriptive tooltip content. - Updated Palette journal with learnings on cross-platform shortcut hints. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
feat(ux): upgrade API key actions with Radix custom Tooltips (#54) This change upgrades the "Show/Hide secret key", "Copy secret key", and "Delete key" actions in the ApiKeysClient component with polished custom Radix Tooltips, removing the browser's native title tooltips and improving keyboard focus accessibility. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
⚡ Bolt: Optimize ActivityFeed re-renders and function recreation (#53) - Extracted static helper functions (getEventIcon, getEventColor, getTimeAgo) to module scope to prevent garbage collection thrashing and redundant recreation on every render. - Extracted individual event row rendering to ActivityEventRow subcomponent and wrapped with React.memo to avoid re-rendering of all event rows during SWR polling updates or parent state toggles. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>