Full deployment history for this project.
๐จ Palette: Add keyboard focus state to text-only utility button in theme switcher ๐ก What: Added explicit `focus-visible:ring-2` (and related focus classes) to the "Disable high contrast" inline text button in the accessible theme switcher dropdown. ๐ฏ Why: Text-only utility buttons within custom dropdown menus lack native browser focus rings. Without explicitly applied visual focus states, keyboard-only users cannot determine when this appended helper button receives focus, hindering their navigation. ๐ธ Before/After: Visual regression screenshot taken verifying the button's focus ring when tabbed to. โฟ Accessibility: Ensures WCAG 2.1 Success Criterion 2.4.7 (Focus Visible) is met for inline, text-only interactive elements inside floating menus. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
๐จ Palette: Fix keyboard accessibility for hover-revealed elements Added `group-focus-within:opacity-100` alongside `group-hover:opacity-100` to multiple elements across the application to ensure they become visible to keyboard users when focused. Affected components: - API code block copy button - Markdown renderer code block copy button - Markdown renderer header anchor links - Homepage document card arrow link Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
๐จ Palette: Improve keyboard focus for copy code buttons Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat: chunk `generateSEOMetadata` with a concurrency limit of 10 Replaced an unbounded `Promise.all` in `app/api/v1/workflow/route.ts` with a bounded chunked loop to prevent rate-limiting and resource exhaustion during `executeSEORefresh`. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
โก Bolt: Batch internal and external Promise.all maps Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
feat(api): implement Promise.all chunking to prevent network exhaustion Refactored unbounded `Promise.all` mapping over array items causing sequential synchronous external network fetches in `/api/v1/automation` and `/api/v1/workflow` batch routes to use a chunked batch execution. This prevents external API rate limits, avoids CPU starvation, and resolves `Maximum call stack size exceeded` vulnerabilities for massive arrays. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
perf: chunk Promise.all in emoji summaries batching Bounding the concurrent execution of generateEmojiSummary array calls over the entire document chunk avoids overloading external MCP endpoint fetches. Now limits active calls to a chunk size of 10. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
perf(api): batch external requests in chunks Implemented chunked processing with Promise.all in the automation and workflow APIs to avoid connection pool exhaustion and rate-limiting from external services when handling large arrays of documents. Co-authored-by: mbarbine <3211492+mbarbine@users.noreply.github.com>
Merge pull request #127 from mbarbine/palette-ux-search-clear-8268527873619391548 ๐จ Palette: [UX] Add clear button to search input
Merge branch 'main' into palette-ux-search-clear-8268527873619391548
Merge pull request #126 from mbarbine/palette-clear-filters-a11y-11335509460106998354 ๐จ Palette: Add keyboard focus and a11y label to Clear Filters button
Merge branch 'main' into palette-clear-filters-a11y-11335509460106998354
Merge pull request #125 from mbarbine/bolt/batch-mcp-scoring-1958984836402317533 โก Bolt: [performance improvement] Batched scoring API requests
Merge branch 'main' into bolt/batch-mcp-scoring-1958984836402317533
Merge pull request #123 from mbarbine/bolt-chunked-promise-all-seo-17408941241307932086 โก Bolt: Chunked concurrency for MCP SEO regeneration
Merge branch 'main' into palette-aria-labels-icon-buttons-1336965918490582022
Merge pull request #121 from mbarbine/bolt/mcp-route-promise-all-451482736329854120 โก Bolt: Use Promise.all for sequential DB queries in list_documents
Merge branch 'main' into bolt/mcp-route-promise-all-451482736329854120
Merge branch 'main' into palette-aria-label-apicodeblock-7423398849786298735
Merge pull request #120 from mbarbine/palette-a11y-icon-buttons-7032011667759325625 ๐จ Palette: Add ARIA labels to icon-only utility buttons
Merge pull request #115 from mbarbine/bolt-perf-opt-submissions-api-1947779583964644853 โก Bolt: [performance improvement] Batch sequential DB queries in submissions endpoint
Merge pull request #114 from mbarbine/perf-promise-all-batch-api-16469945030908465070 โก Bolt: [performance improvement] Concurrent batch processing and Domain Trust
Merge pull request #113 from mbarbine/jules-performance-promise-all-15014283993896826547
Merge pull request #112 from mbarbine/feat/platphorm-schema-pack-14428755928419892453 feat: Add PlatPhorm Universal Schema Pack and OpenAPI bundle
Merge pull request #111 from mbarbine/bolt/perf-mergetags-bulk-update-3871849862799721971 โก Bolt: bulk update tags to avoid N+1 queries in mergeTags
Merge pull request #109 from mbarbine/bolt/replace-correlated-subquery-9697190113231894999 โก Bolt: [performance improvement] Replace correlated subquery with LEFT JOIN in getCategories
Merge pull request #110 from mbarbine/bolt-perf-categories-n1-854925860663416289 โก Bolt: [performance improvement] Optimize Categories API N+1 Query
Merge pull request #108 from mbarbine/fix-build-and-roadmap-588434708470743977 ๐งช [Testing Improvement]: Fix broken tests, create roadmap, and add E2E tests
Merge pull request #55 from mbarbine/sentinel-fix-network-api-auth-bypass-33291104825633441231-6156996645110957961 ๐ก๏ธ Sentinel: [CRITICAL/HIGH] Fix Missing API Key Validation on /api/vโฆ
Merge pull request #54 from mbarbine/bolt-fix-n-plus-one-categories-cron-9069772744122562670 โก Bolt: Fix N+1 Query in Category Generation cron
Merge branch 'main' into bolt-api-caching-11979030173990177682
Merge branch 'main' into bolt-api-caching-11979030173990177682
Merge pull request #25 from mbarbine/sentinel-fix-jsonld-xss-11715698356670019737 ๐ก๏ธ Sentinel: [CRITICAL] Fix XSS vulnerability in JSON-LD rendering
Merge pull request #23 from mbarbine/sentinel/fix-xss-search-headline-7378648785107201123 ๐ก๏ธ Sentinel: [CRITICAL/HIGH] Fix XSS in search results headline
Merge pull request #18 from mbarbine/copilot/fix-requestinit-type-error [WIP] Fix TypeScript error for RequestInit compatibility
Merge pull request #13 from mbarbine/copilot/fix-docs-ui-issue Fix docs listing: show ingested docs, add search/filter, sidebar link
Merge pull request #12 from mbarbine/copilot/fix-typescript-indexing-error Fix TypeScript strict-mode build failures across sql typing, SEO metadata calls, and Document schema