Full deployment history for this project.
chore: merge open PRs into main
chore: merge open PRs into main
Merge PR #239: 🎨 Palette: Improve accessibility and icon decoration in OpenDocs ingest searc
🎨 Palette: Enhance collections keyboard focus and ARIA labels Add explicit aria-hidden="true" to decorative icons and visible keyboard focus ring styling to collection link cards across collections pages.
⚡ Bolt: optimize JSON tag unnesting in suggestRelatedTags with CROSS JOIN LATERAL Refactors suggestRelatedTags in lib/tagging.ts to unnest JSON tag arrays once per row using CROSS JOIN LATERAL jsonb_array_elements_text(d.tags) AS t(value) rather than evaluating set-returning jsonb_array_elements 3 times across SELECT, WHERE, and GROUP BY clauses.
⚡ Bolt: Execute getOpenDocsBaseUrl concurrently in Promise.all on homepage
🎨 Palette: Add accessible single-click clear button to search documentation input - Create SearchInput component with single-click clear ('X') button. - Add explicit aria-label="Search documentation" and aria-label="Clear search query". - Hide decorative icons from screen readers using aria-hidden="true". - Suppress native WebKit search cancel controls to avoid redundant clear icons. - Add unit tests in __tests__/unit/components/search-input.test.tsx.
⚡ Bolt: Eliminate redundant category query on Category detail page Extract the target category in-memory from the already fetched `categories` array in `app/docs/category/[slug]/page.tsx`, eliminating an unnecessary `getCategory()` database query round-trip on category page views. Also fix locale switcher change handler parameter scoping in `components/locale-switcher.tsx`.
fix: resolve duplicate imports and reference error in LocaleSwitcher and fix test query in ShareDialog
⚡ Bolt: optimize category count query subqueries with tenant isolation
🎨 Palette: Add aria-hidden to decorative clear search icon in DocsListClient - Added aria-hidden="true" to the clear search X icon inside DocsListClient to avoid screen reader text noise alongside aria-label="Clear search" - Fixed runtime parameter scope issue in LocaleSwitcher and cleaned duplicate imports - Removed redundant aria-live element in ShareDialog to fix multi-matching screen reader element queries
perf: deduplicate database queries in server components with React cache Wrapped data fetching helpers in app/docs/[...slug]/page.tsx and app/docs/category/[slug]/page.tsx with React cache(), and derived category objects in-memory from getCategories(). Also fixed duplicate component imports and aria-live elements.
Palette: Add focus-visible ring styles to BreadcrumbLink - Add high-contrast focus ring styling (`focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 rounded-sm`) to BreadcrumbLink in components/ui/breadcrumb.tsx. - Add unit tests verifying BreadcrumbLink accessibility ring styles in __tests__/unit/components/breadcrumb.test.tsx.
🎨 Palette: Improve IngestCockpit icon accessibility and copy feedback - Add aria-hidden="true" to decorative icons in IngestCockpit component - Add dynamic aria-label updates and sr-only aria-live polite feedback for Markdown copy button - Add unit test suite in __tests__/unit/components/ingest-cockpit.test.tsx
⚡ Bolt: Eliminate redundant SQL query on category page
🎨 Palette: Improve OpenDocsIngestSearch accessibility and feedback - Add aria-hidden="true" to decorative icons in OpenDocsIngestSearch - Satisfy WCAG 2.5.3 (Label in Name) by using explicit visible text on Copy Markdown button - Add green Check icon feedback state when content is copied - Add unit test suite in __tests__/unit/components/opendocs-ingest-search.test.tsx
⚡ Bolt: Eliminate redundant category database query on category page
Bolt: Scope category document count subquery to tenant_id Apply tenant_id filtering inside the documents aggregation subquery in app/api/v1/categories/route.ts. This ensures proper multi-tenant isolation and allows PostgreSQL to leverage composite indexes for faster category document counts.
Fix locale switcher duplicate imports and parameter bug Clean up duplicate DropdownMenu imports in LocaleSwitcher and fix parameter naming in handleLocaleChange to properly update search params.
fix(ui): clean up locale switcher and share dialog live regions
chore: consolidate all open PRs into one merge (#232) * perf: precalculate tag document counts with a Map Precalculate the tag document counts in a single pass of the documents array using a Map. This optimizes tag document counting complexity from O(T * D) to O(T + D) on the collections route and frontend page. * feat(ui): convert LocaleSwitcher selection to accessible DropdownMenuRadioItem * Improve locale switcher accessibility and add unit tests - Refactor `LocaleSwitcher` to use `DropdownMenuRadioGroup` and `DropdownMenuRadioItem` to address WCAG 1.4.1 (Use of Color) and proper ARIA standards. - Add robust unit testing suite for `LocaleSwitcher` component. - Record visual indicators and write learning entry to journal. * ⚡ Bolt: Optimize collection tag count complexity from O(T*D) to O(T+D) Precalculate tag frequencies using a Map in a single pass of the documents array. This drops the complexity from O(T*D) to linear O(T+D), completely eliminating nested scan loops on the collections routes. * ⚡
chore: auto-close PR #226 via merge path
chore: auto-close PR #224 via merge path
chore: auto-close PR #221 via merge path
chore: auto-close PR #216 via merge path
chore: auto-close PR #215 via merge path
chore: stack PR #228
chore: stack PR #224
chore: stack PR #221
chore: stack PR #215
Bound Docs discovery projections
Add Docs-owned document ingress
fix: protect persisted draft reports
fix: protect persisted draft reports
Merge pull request #214 from mbarbine/consolidate/platphorm-opendocs-20260811-cont3 consolidate 37 PRs into one commit
Merge pull request #176 from mbarbine/jules-3448087478610906970-53354969 🎨 Palette: Accessible Copy-to-Clipboard Enhancements
Merge pull request #175 from mbarbine/jules-7278316164324795265-e81d8d1b ⚡ Bolt: Optimize MCP Stats Queries to O(1) Subqueries
test: align route imports with production resolution
Merge pull request #174 from mbarbine/jules-9071968600964074668-5de41892 🎨 Palette: Accessible Copy-to-Clipboard Interactions and Decorative Icons
Merge pull request #173 from mbarbine/jules-9396934685402083838-1c3c9661 ⚡ Bolt: Consolidated concurrent database count queries in handleStats
Merge remote-tracking branch 'origin/main'
Merge pull request #172 from mbarbine/jules-14268677237192811133-807ae189 🎨 Palette: Integrate LocaleSwitcher in DocsLayout Header
Merge pull request #171 from mbarbine/bolt-discover-query-optimization-15048640120763740660 ⚡ Bolt: Optimize trending content query in discovery route