Full deployment history for this project.
chore: merge open PRs into main
chore: merge open PRs into main
Merge PR #140: 🎨 Palette: Localize screen reader text and add focus ring to LocaleSelector
🎨 Palette: add aria-pressed to ThemeToggle button Add aria-pressed state to ThemeToggle button to inform screen readers of the active theme state.
⚡ Bolt: optimize dataset CSV and JSONL export string building Optimized `toJsonl` and `toCsv` dataset serialization utilities in `lib/dictionary/dataset-exports.ts` by replacing nested `.map()` array transformations and array spread operators with direct loop iteration and array pushing. This eliminates intermediate array allocations and reduces garbage collection pressure when exporting large dataset files.
⚡ Bolt: precompute source metadata in buildSeedRelatedTerms Precompute source term metadata (tag sets, category slug, explicit related slugs) outside candidate iteration loop in buildSeedRelatedTerms to eliminate redundant allocations and string slugification inside scoreRelatedTerm.
🎨 Palette: Localize screen-reader accessibility for LocaleSelector component
⚡ Bolt: pass pre-fetched metrics to buildWebStatus in web scorecard Eliminate duplicate executions of getDictionaryMetrics() in /api/web/scorecard. Previously, Promise.all([buildWebStatus(), getDictionaryMetrics()]) was called, but buildWebStatus internally called getDictionaryMetrics() again, executing database/service plane queries twice per request. - Allow buildWebStatus in lib/web/status.ts to accept optional pre-fetched metrics. - In app/api/web/scorecard/route.ts, fetch metrics once and pass directly to buildWebStatus(metrics).
🎨 Palette: Add focus visible styling to related terms card links Add focus-visible ring styles to the Link wrappers in RelatedTerms to ensure keyboard navigation focus states are clear and visible.
🎨 Palette: Improve keyboard focus indicators and accessibility on Related Terms cards - Added focus-visible ring styles to card Link elements in RelatedTerms - Marked decorative ArrowRight icon with aria-hidden="true" - Added unit tests for RelatedTerms in components/__tests__/related-terms.test.tsx
serve per-term exports from D1
serve per-term exports from D1
support edge redirects for D1 service reads
support edge redirects for D1 service reads
normalize D1 term tags for public surfaces
normalize D1 term tags for public surfaces
route public dictionary surfaces through D1
⚡ Bolt: Precompute tag sets and category slugs in buildSeedRelatedTerms Precompute source term metadata (normalized tag Set, category slug, and explicit related slugs Set) once before iterating over candidate terms in buildSeedRelatedTerms, eliminating thousands of redundant Set instantiations, string normalizations, and slugification calls per request.
fix: harden discovery fallback and localized document metadata
fix: harden discovery fallback and localized document metadata
merge integrated PR batch 130-139
chore: auto-close PR #120 via merge path
chore: auto-close PR #108 via merge path
chore: stack PR #120
chore: stack PR #108
fix protected mutation boundary
fix protected mutation boundary
fix protected submission hydration
fix AnswerReady and platform discovery contract
⚡ Bolt: optimize buildSeedCollections static grouping and memoization (#69)
⚡ Bolt: optimize buildSeedCollections static grouping and memoization (#69)
🎨 Palette: Add global search input focusing shortcut with visual indicator (#68) Introduce a global '/' hotkey that automatically focuses the search bar on any page when pressed. The hotkey includes safe guards to prevent overriding default browser or operating system hotkeys and avoids triggering while typing in text elements. Also renders a visual keycap badge '/' inside the search input to inform the user of the available shortcut.
⚡ Bolt: optimize categories, tags, and collections aggregations (#67)
🎨 Palette: Replace dummy Share Term link with interactive ShareCard on Term Detail page (#66) - Replaced the placeholder dummy link button (which did nothing other than reload the page) with the interactive, accessible `ShareCard` component on the Term Detail view. - Enables visual preview card, X (Twitter) sharing, copy link capability with immediate, transient visual feedback ('Copied!') and updated ARIA labels. - Verified visual presentation and layout under Playwright on port 3000. All tests and production builds pass without errors.
⚡ Bolt: Optimize localized seed term card mapping and search (#65)
🎨 Palette: Improve keyboard accessibility for breadcrumb links (#64)
release: expose Dictionary health observability v0.6.0
⚡ Bolt: Cache static seed terms at module level (#63) Optimized getSeedTerms and publicSeedTerms to cache the language-supported and public-filtered seed terms once at the module scope to avoid redundant computation.
🎨 Palette: Added accessible tooltips to Upvote and Downvote buttons on definition detail page (#62) - Wrapped upvote/downvote buttons in components/vote-buttons.tsx with Radix Tooltips. - Addressed accessibility barriers on natively disabled buttons by wrapping them in inline-block span elements. - Dynamically assigned tabIndex={isPending ? 0 : undefined} to the span wrapper to ensure keyboard focus/hover states work perfectly during submission transitions. - Integrated translation localization helper to support English, Spanish, French, German, Japanese, and all other languages. - Created robust unit tests to verify the components and prevent regressions.