Full deployment history for this project.
Merge pull request #21 from mbarbine/sentinel/fix-timing-attack-api-key-6319417734279565554 š”ļø Sentinel: [HIGH] Fix timing attack vulnerability in API key validation
Merge pull request #19 from mbarbine/bolt-canvas-optimization-15845337860700551761 ā” Bolt: optimize canvas context readback and React renders
Merge branch 'main' into bolt-canvas-optimization-15845337860700551761
Merge pull request #20 from mbarbine/bolt-canvas-optimization-1185389612399424403 ā” Bolt: Optimize Canvas GPU Readback and Prevent Re-allocations
Merge branch 'main' into bolt-canvas-optimization-1185389612399424403
Merge pull request #18 from mbarbine/bolt-canvas-optimization-6513736015109249019 ā” Bolt: Optimize canvas operations and component rendering
Merge branch 'main' into bolt-canvas-optimization-6513736015109249019
Merge pull request #17 from mbarbine/bolt-optimize-ascii-loop-2960821549797891570 ā” Bolt: Optimize ASCII conversion inner loop
š”ļø Sentinel: Fix timing attack vulnerability in API key validation Replaced standard string comparison `!==` with a timing-safe comparison using `crypto.timingSafeEqual` in `app/api/webhooks/route.ts` to prevent attackers from guessing the `ADMIN_API_KEY` via response timing differences. Also added an entry in `.Jules/sentinel.md` documenting this finding. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
š§Ŗ Add error path test for invalid JSON on /api/convert This commit adds a new test suite to `__tests__/convert-edge-cases.test.ts` to verify that the `/api/convert` endpoint correctly handles and returns a 400 Bad Request response for invalid JSON syntax and empty request bodies. šÆ **What:** The testing gap for the `catch` block in the `/api/convert` POST handler has been addressed. š **Coverage:** Added scenarios for invalid JSON syntax and empty body requests. ⨠**Result:** Improved test coverage for error conditions in the conversion API. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #16 from mbarbine/palette-tooltip-accessibility-18359152392165826683 šØ Palette: Add keyboard accessibility to Tooltips
šØ Palette: Add keyboard accessibility to Tooltips Adds `tabIndex={0}` and Tailwind `focus-visible` classes to non-interactive elements (like `div` and `Label`) used as `TooltipTrigger`s. This allows keyboard and screen reader users to access the helpful tooltips which previously were inaccessible since they could not be focused natively. Added visual focus rings so keyboard users can track their state. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat(security): implement authorization check for webhook api Added missing authorization validation for GET and DELETE webhook endpoints to prevent unauthorized listing or deletion. Tests updated accordingly. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
šØ Palette: Make tooltips keyboard accessible Added `tabIndex={0}` and Tailwind `focus-visible` utility classes to the tooltip triggers in `components/ascii-converter.tsx` to ensure that keyboard users can access the informational tooltips. Updated the `.Jules/palette.md` UX journal with the learning. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
šØ Palette: Improve copy button visual feedback with checkmark Swapped the static `Copy` icon on the "Copy to Clipboard" button to conditionally render a green `Check` icon when the user's action succeeds. This adds a delightful touch of visual confirmation alongside the existing text change. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #12 from mbarbine/palette/aria-live-announcements-9497527897752974195 šØ Palette: Add visually hidden aria-live region for dynamic states
Merge branch 'main' into palette/aria-live-announcements-9497527897752974195
Merge pull request #11 from mbarbine/palette/add-sr-only-live-region-18301412650074474393 šØ Palette: Add screen reader live region for dynamic states
šØ Palette: Add visually hidden aria-live region for dynamic states Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #10 from mbarbine/palette/a11y-focus-visible-custom-elements-5208399594768012039 šØ Palette: [Add Focus Indicators to Custom UI Elements]
Merge pull request #9 from mbarbine/palette/a11y-upload-button-space-key-3050417556190753774
Merge pull request #7 from mbarbine/jules-12360537445373183414-d7a0cf56 Enhance: PlatPhorm Universal Schema Pack Integration
Merge pull request #6 from mbarbine/feat/add-binary-matrix-charsets-18243139114104649351 feat: add binary and matrix ascii charsets
Merge pull request #5 from mbarbine/palette-tooltip-fix-16152728414174784510 šØ Palette: Fix tooltip accessibility on disabled buttons
Merge pull request #4 from mbarbine/copilot/add-save-as-png-option Add "Save as PNG" UI button and MCP tool
Address code review: responsive grid layout and stronger test assertion Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #3 from mbarbine/copilot/add-comprehensive-tests-to-everything Add comprehensive test coverage and GitHub Actions CI pipeline
Add save-as-PNG UI button, MCP tool, and comprehensive tests - Add downloadAsPng function and "Save .png" button to ascii-converter UI - Add save_as_png MCP tool to /api/mcp route with full inputSchema - Add save_as_png to .well-known/mcp.json discovery manifest - Add save_as_png to OpenAPI docs tool name enum - Update get_info features list to include 'Save as PNG image' - Add 35 new tests (save-as-png.test.ts + enhanced existing tests) - Total: 114 tests passing (up from 79) Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Initial plan for save-as-PNG feature Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Address code review: fix misleading resolution test Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Add comprehensive tests and GitHub Actions CI workflow - Add utils.test.ts (10 tests for cn() utility) - Add openapi-spec.test.ts (17 tests for /api/docs OpenAPI spec) - Add mcp-integration.test.ts (17 tests for subscribe_webhook, list_webhooks, register_site tools) - Add webhooks-advanced.test.ts (17 tests for webhook edge cases) - Add convert-edge-cases.test.ts (23 tests for /api/convert edge cases) - Add mcp-client-advanced.test.ts (28 tests for MCP client edge cases) - Add .github/workflows/ci.yml for lint, typecheck, test, build Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #2 from mbarbine/copilot/create-real-mcp-client Add MCP client library, comprehensive test suite, and enhanced discovery integration
Merge pull request #1 from mbarbine/next-shadcn-error Replace Radix Select with native select
Merge pull request #1 from mbarbine/next-shadcn-error Replace Radix Select with native select