Full deployment history for this project.
⚡ Bolt: Memoize LayersPanel DnD components and element lists Wrapped SortableLayerItem with React.memo to prevent unnecessary re-renders of un-dragged/un-changed layer items during high-frequency canvas operations. Memoized sortedElements and elementIds array derivations using useMemo to preserve array reference stability.
⚡ Bolt: memoize layer elements and item rows in layers-panel-dnd - Memoized `sortedElements` and `elementIds` with `useMemo` in `components/design/layers-panel-dnd.tsx` to preserve array reference stability and eliminate redundant array re-allocations during high-frequency drag/canvas updates. - Wrapped `SortableLayerItem` in `React.memo` to skip Virtual DOM diffing for unchanged layer rows when parent state re-renders.
🎨 Palette: Add explicit aria-label to theme toggle button
⚡ Bolt: optimize escapeXML using single-pass regex replacement
🎨 Palette: Add toast feedback and explicit aria-labels in ExportPanel - Added toast feedback when copying social meta tags in ExportPanel - Added explicit aria-labels for social media preset buttons - Fixed Storage.prototype.getItem mocking in mcp-client unit tests - Added unit tests verifying ExportPanel aria-labels and copy feedback
🎨 Palette: Improve accessibility of AIAssistant prompt textarea
🎨 Palette: Improve accessibility of AIAssistant prompt textarea
⚡ Bolt: Memoize layer list array derivations and drag handlers in LayersPanel - Memoize `sortedElements` and `elementIds` in `components/design/layers-panel.tsx` and `components/design/layers-panel-dnd.tsx` using `useMemo` to maintain array reference stability across render frames during high-frequency canvas interactions. - Memoize `handleDragEnd` callback using `useCallback`. - Wrap `SortableLayerItem` in `React.memo` in `components/design/layers-panel-dnd.tsx`. - Fix Storage.prototype spy in `tests/lib/api/mcp-client.test.ts`.
🎨 Palette: Add accessible aria-labels to mobile toolbar color swatches Adds explicit aria-label attributes to stroke and fill color swatch buttons in the mobile style popover within components/design/toolbar.tsx, ensuring screen reader accessibility for color selection on mobile devices.
⚡ Bolt: Memoize LayersPanel DnD components and element lists Wrapped SortableLayerItem with React.memo to prevent unnecessary re-renders of un-dragged/un-changed layer items during high-frequency canvas operations. Memoized sortedElements and elementIds array derivations using useMemo to preserve array reference stability.
🎨 Palette: replace native export alert with toast.error
⚡ Bolt: memoize layer elements and item rows in layers-panel-dnd - Memoized `sortedElements` and `elementIds` with `useMemo` in `components/design/layers-panel-dnd.tsx` to preserve array reference stability and eliminate redundant array re-allocations during high-frequency drag/canvas updates. - Wrapped `SortableLayerItem` in `React.memo` to skip Virtual DOM diffing for unchanged layer rows when parent state re-renders.
🎨 Palette: Add toast feedback and explicit aria-labels in ExportPanel - Added toast feedback when copying social meta tags in ExportPanel - Added explicit aria-labels for social media preset buttons - Fixed Storage.prototype.getItem mocking in mcp-client unit tests - Added unit tests verifying ExportPanel aria-labels and copy feedback
⚡ Bolt: cache SVG pathPointsToD string generation with WeakMap
⚡ Bolt: optimize escapeXML using single-pass regex replacement
🎨 Palette: Add explicit aria-label to theme toggle button
Standardize PlatPhorm service manifest
🎨 Palette: add accessible aria-labels to header menu dropdown triggers Add explicit aria-label attributes to the File, Edit, and View menu dropdown trigger buttons in the design editor header, ensuring screen readers can announce menu purpose when navigating header controls.
fix: harden design sharing tests
fix: harden design sharing tests
release: consolidate Wave 1 production migration
release: consolidate Wave 1 production migration Merged consolidated release branch after local typecheck and repository test gates.
chore: auto-close PR #122 via merge path
chore: auto-close PR #110 via merge path
chore: stack PR #122
chore: stack PR #111
Merge pull request #109 from mbarbine/consolidate/platphorm-design-20260811-cont3 consolidate 68 PRs into one commit
Merge pull request #40 from mbarbine/jules-9845030506145947805-ae2a8c89 🎨 Palette: Export Preset Accessibility and Usability Enhancements
Normalize Phorm MCP span operations
stop collecting routine platform probes
fix: stop trace export after root failure
fix: trace model fallback journeys
fix: export complete Phorm request journeys
Refresh TypeScript build metadata
Refresh TypeScript build metadata
Close AnswerReady content depth gap
Merge pull request #39 from mbarbine/palette/inline-text-editing-5130305810386478800 🎨 Palette: Inline Text Editing on Canvas
Merge branch 'main' into palette/inline-text-editing-5130305810386478800
Merge pull request #38 from mbarbine/jules-7458819761759155992-d0094497 ⚡ Bolt: optimize high-frequency rendering with React.memo and stable callbacks
release: harden Phorm platform contract v0.6.0