Pre-release builds now carry a `beta` flag in each group's list.json.
Surface it in the UI: a small amber Beta pill (and amber card border)
next to the version on the landing list, in the version switcher, and
in the diff version-history panel, so betas are visually distinct from
stable releases while remaining fully diffable against historical builds.
useQueryFilter called router.replace on every mount even when the query
was unchanged. On the static host that emitted a non-trailing-slash URL,
which 301-redirects back, and Next treats the redirect as a hard
navigation and remounts — firing the effect again in an endless reload
loop. Skip router.replace when the computed query equals the current
one.
Extract a useQueryFilter hook that debounces the filter keyword and
mirrors it into the URL's q param via router.replace, so deep links
open pre-filtered and rapid typing doesn't flood history. Apply across
keys, files, find, and oslist, replacing their ad-hoc debounce logic.
Replace animated Skeleton with deterministic-width divs to fix React
hydration mismatch caused by Math.random() generating different values
on server vs client.
- Move platform filter buttons to content area on mobile
- Hide platform name in OS breadcrumb on mobile (redundant with version)
- Ensure Keys/Files tabs stay visible on all screen sizes
- Allow header left group to wrap on narrow viewports
Replace line-by-line text diff with semantic key-level diff that:
- Compares top-level plist keys using parsed JSON values
- Serializes changed key-value pairs back to XML form
- Shows neighboring keys for context (sorted alphabetically)
- Add filter input to home page header (searches by product name/version)
- Move platform toggles (iOS/macOS/OS X) to header
- Display product names (e.g., "macOS Big Sur") on each build card
- Normalize platform names: mac→macOS, osx→OS X
- Center section headers with larger font
- Support left/right positions in HeaderPortal
- Move Keys/Files button group left-aligned after version dropdown
- Add icons to Keys/Files buttons with longer labels
- Use compact icon-only expand/collapse buttons on files and find pages
- Make platform filters (iOS/mac/osx) toggleable instead of anchors
- Optimize find page: filter controls right-aligned on same row as title
- Simplify keys page to flat grid layout without tree grouping
- Remove virtualization from keys page, use simple grid layout
- Add min-h-0 to main element for proper flex behavior
- Add subtle blue tint (oklch hue 250) to primary, accent, ring colors
- Keep black/white backgrounds, only colorize interactive elements
- Fix hover states to use foreground color instead of primary
- Change root layout from min-h-screen to h-screen with overflow-hidden
to properly constrain viewport height
- Add min-h-0 to main element to allow flex shrinking
- Add rewrite rule to proxy /data/* to production data URL for local dev
- Make output: "export" conditional (production only) since rewrites
require server mode
- Replace Node.js/npm with Bun for faster builds
- Replace ESLint with Biome for faster linting
- Use codecolor.ist/entdb-data for data URL (same origin, no CORS)
- Fix virtualizer row height estimation by tracking actual column count
- Batch consecutive single keys into grid rows for better space usage
- Default diff view to unified mode on narrow screens (<480px)
In Major Releases view, always display all minor versions for the
latest 2 major versions of iOS and macOS instead of just the latest
build of each major version.
- Display each changed key as separate colored badge
- Fix dark mode contrast for added/removed/changed badges
- Better visual organization with flex-wrap layout
- Show binary basename in breadcrumb after iOS version
- Move version switcher inline with OS name
- Remove separate Binary Detail/Search Results labels
- Add build timestamp to footer
- Rename GitHub links for clarity (Source Code, Firmware Indexer, Raw Data)
- Remove height limit from version history sidebar
- Remove duplicate links from header, keep only theme toggle
- Add links to all three repos (Website, Indexer, Data) in footer
- Update README with features, live site link, and repo table
- Create Footer component with links to GitHub and Mastodon
- Restructure root layout with flex column for sticky footer
- Update OS layout to use flex-1 for proper height inheritance
- Fix navbar height to h-14 (56px) for consistency
- Use flexbox layout to fill available viewport height
- Reduce header padding and margins
- Add min-h-0 for proper flex overflow handling
- Support light/dark themes with prism/tomorrow syntax styles
- Add mounted state to prevent hydration jitter
- Integrate download button alongside copy button
- Use theme-aware link colors for entitlement keys
- Add toggle between unified and split (side-by-side) view
- Make diff viewer theme-aware for light/dark modes
- Add context lines around changes
- Make diff summary collapsible for large change sets
- Implement @tanstack/react-virtual for performance with large key lists
- Add native debouncing (300ms) for search input
- Handle single-key groups without collapsible UI
- Add anchor navigation for quick jumps to OS groups
- Rename toggle from "Latest Only/All Versions" to "Major Releases/All Builds"
- Group versions by major version when showing all builds
- Add dark/light mode toggle with next-themes
- Redesign binary detail page with version history sidebar and diff support
- Improve keys page with multi-column grid layout
- Update navtop styling to match content padding
- Replace checkbox with segmented button for "Latest Only" toggle
- Upgrade to Next.js 16, React 19, TypeScript 6
- Find page now has same controls as files page
- Both pages support expand all / collapse all buttons
- FileSystem component accepts controlled expandAll state
- Fixed single-key groups to not show as collapsible
- Fix double base path in tab navigation (router.push handles it)
- Use multi-column grid for files in shallow folders
- Show item counts always (not just on hover)
- Better use of horizontal space on desktop
- Move version history to collapsible sidebar
- Group versions by major version (iOS 15.x, 16.x, etc.)
- Move copy button inside XML code block
- Improve loading skeleton
- Side-by-side layout on larger screens