Full deployment history for this project.
add public kanban task receipt links
⚡ Bolt: Optimize Kanban Drag and Drop Performance
⚡ Bolt: defer search query filtering
Merge pull request #80 from mbarbine/micro-ux-a11y-improvements-18316976175382081478 feat(ux): improve accessibility in task detail sidebar
Merge branch 'main' into micro-ux-a11y-improvements-18316976175382081478
⚡ Bolt: Prevent Unnecessary Column Re-renders Fix React.memo bailouts on the Column component. - Eliminate inline arrow functions by passing columnId directly via props. - Introduce `columnsRef` to prevent stable callbacks from re-triggering child renders when board state changes. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [HIGH] Fix timing attack vulnerability - Add `secureCompare` function in `lib/utils.ts` for constant-time string comparison. - Replace direct string equality checks (`!==`) with `secureCompare` for API token authentication in `proxy.ts`, `app/api/v1/tasks/route.ts`, and `app/api/v1/tasks/[id]/route.ts`. - Fix duplicate loop declarations in `app/api/v1/tasks/[id]/route.ts`. - Fix mock assertion bug in `__tests__/lib/mcp-register.test.ts`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #72 from mbarbine/jules-perf-opt-movetask-3860597114753349278 ⚡ Optimize moveTask lookup via single pass traversal
Merge branch 'main' into jules-perf-opt-movetask-3860597114753349278
Merge pull request #78 from mbarbine/palette-add-aria-labels-1856744179956680102 fix: add missing ARIA labels and fix test syntax errors
fix: add missing ARIA labels and fix test syntax errors - Added `aria-label` attributes to icon-only buttons in kanban-board, column, task-detail-sidebar, and automation-rules components. - Fixed syntax/parsing errors in `__tests__/components/user-settings.test.tsx` and `__tests__/lib/mcp-register.test.ts`. - Replaced unescaped quotes with `"` in `app/faq/page.tsx` to clear React warnings. - Updated README.md to mention Accessibility as a feature. - Appended learning about icon button accessibility to `.jules/palette.md`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #74 from mbarbine/jules/testing-improvement-use-toast-14311983441131178928 🧪 Add tests for useToast hook and reducer
Merge pull request #76 from mbarbine/jules-sidebar-skeleton-fix-16361619277963497012 🧹 Update SidebarMenuSkeleton to preserve hook purity
Merge pull request #55 from mbarbine/fix-exhaustive-deps-kanban-board-8099966243664515228 🧹 Fix suppressed exhaustive-deps ESLint rule in kanban-board
Merge pull request #75 from mbarbine/jules-17380396874665094516-72078f10 ⚡ Optimize moveTask lookup algorithm
⚡ Bolt: Add React.memo to TaskCard and Column to prevent unnecessary re-renders Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat(ux): add aria-labels and focus states to icon buttons Added `aria-label`s and `focus-visible:ring-2` to the clear search button and column action buttons to improve screen reader support and keyboard navigation. Also added a journal entry in `.Jules/palette.md` for this learning. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Bolt: Memoize TaskCard and defer search query - Used `React.memo` with a custom equality function for the `TaskCard` component to prevent unnecessary re-renders during drag and drop operations. - Added `useDeferredValue` for the search query in `kanban-board.tsx` to keep the UI highly responsive by deferring the heavy filtering operations. - Added explanatory inline comments for the performance impacts. - Fixed two syntax errors inside `user-settings.test.tsx` and `mcp-register.test.ts` to get tests to pass correctly. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🎨 Palette: Add aria-label to delete rule button Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🧪 Add tests for useToast hook and reducer Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🧪 Add tests for useToast hook and reducer Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
🛡️ Sentinel: [CRITICAL] Fix Timing Attack in Bearer Token Auth - Mitigated timing attack vulnerability in `proxy.ts` Bearer token checking by using constant-time evaluation (XOR comparison). - Added `__tests__/proxy.test.ts` cases to verify length and exact match checks without timing leaks. - Resolved unrelated ESLint warnings in `components/kanban-board.tsx`, `components/user-settings.tsx`, `hooks/use-keyboard-shortcuts.ts`, `app/faq/page.tsx`, and `__tests__/components/user-settings.test.tsx`. - Recorded vulnerability analysis in `.jules/sentinel.md` journal. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
⚡ Optimize sequential network requests in MCP sync This commit improves the performance of the `sync_project_calendar` tool call in the MCP API route. By replacing a sequential loop of `fetch` requests with `Promise.all()`, multiple calendar sync requests are now executed concurrently. - Reduced sync latency for projects with many tasks (e.g., 10 tasks with 100ms delay now takes ~100ms instead of ~1000ms). - Preserves individual error handling for each task within the results array. - Maintains consistency with existing tool call response structures. Verified using a synthetic benchmark with ~90% improvement measured. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: add api/health, faq, breadcrumbs, mcp registrations and claws Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: add health check, FAQ, and MCP network registration Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #39 from mbarbine/add-keys-integration-12231379121938949400 Support PLATPHORM-API-KEY and keys integration
feat: add support for PLATPHORM-API-KEY settings and Keys integration Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #38 from mbarbine/test/create-claws-mcp-client-12361025884867796955 🧪 Add tests for createClawsMcpClient
Merge pull request #37 from mbarbine/perf-optimize-readme-read-17069909451562082984 ⚡ Optimize app/llms-full.txt/route.ts by replacing sync I/O with async I/O
Merge pull request #36 from mbarbine/test-use-keyboard-shortcuts-9776553933089269788 🧪 [testing improvement] Add useKeyboardShortcuts hook tests
⚡ optimize app/llms-full.txt/route.ts by using async file read Swapped the blocking `fs.readFileSync` for non-blocking `fs.promises.readFile` in `app/llms-full.txt/route.ts` because it's handling a GET request within an asynchronous context. This change removes blocking file I/O operations from the event loop, ensuring the application remains responsive, especially under heavy concurrent loads. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #33 from mbarbine/jules-3476919796250206600-cd1bb74f 🧹 [code health improvement description]
Merge pull request #34 from mbarbine/test/get-deployment-context-9095014822188068550 🧪 [testing improvement] Add test coverage for getDeploymentContext
Merge pull request #29 from mbarbine/test/proxy-middleware-9893560629030140258 🧪 [testing improvement] Add proxy middleware tests
Merge pull request #30 from mbarbine/add-user-settings-tests-17249467674532795608 🧪 Add comprehensive test suite for UserSettings component
test: add unit tests for createNetworkMcpClient - Update imports in __tests__/lib/mcp-client.test.ts to include createNetworkMcpClient. - Add describe block for createNetworkMcpClient to verify: - Client instantiation with the provided baseUrl. - Default X-Origin header inclusion in request headers. - Custom header overrides when provided in options. This improvement ensures the factory function used for network-wide MCP client initialization is correctly tested and follows the established patterns. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>