67 Commits

Author SHA1 Message Date
cc 9846dacbfc Mark beta firmware versions with an amber Beta badge
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.
2026-06-10 13:19:41 +02:00
cc 0d58645da3 feat(keys): surface history and changed keys 2026-06-10 01:39:50 +02:00
cc 7d40174b6a feat(keys): compute explicit key diffs 2026-06-10 01:39:34 +02:00
cc 4c98b87cec feat(keys): add version history plumbing 2026-06-10 01:39:09 +02:00
cc 696f75a1fb Fix reload loop from redundant URL sync on mount
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.
2026-06-03 19:49:22 +02:00
cc fdc454b798 Sync text filter keyword to URL query param
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.
2026-06-03 19:07:09 +02:00
cc 5dbfb2a011 Fix platform filter toggle behavior 2026-05-18 18:19:04 +02:00
cc f697b6d99e Use subtle loading skeleton for keys page
Replace animated Skeleton with deterministic-width divs to fix React
hydration mismatch caused by Math.random() generating different values
on server vs client.
2026-04-15 23:30:09 +02:00
cc fea2d5a2de Fix mobile header overflow and improve responsive layout
- 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
2026-04-15 23:28:15 +02:00
cc 02d80b338e Add cursor-pointer to version history buttons 2026-04-15 20:04:39 +02:00
cc 5c9407c405 Refactor XML diff to key-level comparison
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)
2026-04-15 20:01:15 +02:00
cc 5934043376 Shorten footer link labels 2026-04-15 19:53:33 +02:00
cc b166f450a4 Subtle loading skeleton for home page 2026-04-15 19:27:23 +02:00
cc 6efaa762a3 Fix: wrap NavTop in Suspense for static generation 2026-04-15 19:26:15 +02:00
cc e5e5c0c717 Add home page filter and display product names
- 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
2026-04-15 19:22:34 +02:00
cc 5e30a8b930 Add responsive header with quick filter tokens for entitlement keys
- Move filter controls into sticky header via React portal
- Responsive layout: wraps to 2 rows on mobile, single row on desktop
- Keys/Files nav shows icons only on mobile, icons+text on larger screens
- Add tokenizer that extracts frequent terms from entitlement keys
- Display clickable token pills for quick filtering (apple, security, etc.)
- Move item counts below header, above lists
- Fix light mode contrast (darken muted-foreground)
- Reduce homepage spacing
2026-04-15 19:06:23 +02:00
cc 7d6fea9ef0 Redesign header layout and compact filter controls
- 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
2026-04-15 18:34:32 +02:00
cc 320951a50f Simplify keys page layout, add subtle blue accent colors
- 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
2026-04-15 17:59:10 +02:00
cc dc0efb7f7d Add ENTDB logo as SVG favicon 2026-04-15 17:48:34 +02:00
cc c7b22f9cf9 Fix nested scrollbar issue on keys page, add local data proxy
- 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
2026-04-15 17:37:33 +02:00
cc 511980887c Auto-detect custom domain from GitHub Pages settings for data URL 2026-04-15 17:23:59 +02:00
cc 1e512f8956 Migrate to Bun + Biome, fix CORS with same-origin data URL
- 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)
2026-04-15 17:15:52 +02:00
cc 53aeb562b7 Fetch data from separate GitHub Pages instead of bundling
- Add NEXT_PUBLIC_DATA_URL env var pointing to entdb-data Pages
- Refactor env.ts: dataURL, withBase (cleaner naming)
- Remove data download step from build workflow
2026-04-15 17:10:29 +02:00
cc bb72bd3f57 Fix mobile layout for keys page and responsive diff view
- 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)
2026-04-15 16:12:05 +02:00
cc 0e55fc084f Show all minor versions for latest 2 major iOS/macOS releases
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.
2026-04-15 11:02:11 +02:00
cc e14355fb69 Fix duplicate basePath in version navigation
router.push already handles basePath automatically, so using addBasePath
or including basePath in pathname caused double /entdb/entdb/ paths.
2026-04-15 02:01:15 +02:00
cc e1f47892da Improve OS list display with product name, version and build number 2026-04-14 20:25:30 +02:00
cc bbb288189f Improve diff summary layout and fix dark mode colors
- Display each changed key as separate colored badge
- Fix dark mode contrast for added/removed/changed badges
- Better visual organization with flex-wrap layout
2026-04-14 19:58:18 +02:00
cc 2a77856a4e Persist diff state in URL and simplify binary detail header
- Store compareWith version in URL as diff param for shareable links
- Remove redundant Entitlements title
- Show full path as muted subtitle
2026-04-14 19:58:15 +02:00
cc 9e171642ad Improve breadcrumb with binary name and inline version switcher
- Show binary basename in breadcrumb after iOS version
- Move version switcher inline with OS name
- Remove separate Binary Detail/Search Results labels
2026-04-14 19:58:10 +02:00
cc a6f90462a5 Improve footer and version history display
- Add build timestamp to footer
- Rename GitHub links for clarity (Source Code, Firmware Indexer, Raw Data)
- Remove height limit from version history sidebar
2026-04-14 19:51:49 +02:00
codecolorist 1bdc9b730e Revise data query engines description in README
Updated technical details about data query engines.
2026-04-14 19:48:27 +02:00
codecolorist cb5b85c691 Remove live site link from README
Removed the live site link from the README.
2026-04-14 19:47:02 +02:00
cc 881311beef Update header, footer and README for repo reorganization
- 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
2026-04-14 19:41:58 +02:00
cc 614511d59a Add footer and improve layout structure
- 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
2026-04-14 19:38:15 +02:00
cc 2b9dd986b2 Optimize filesystem and find page performance
- Memoize FileItem and FileSystem components
- Use useMemo for tree building
- Replace use-debounce with native setTimeout debouncing
2026-04-14 19:36:12 +02:00
cc 4ca5c775dc Optimize layout for maximum content space
- 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
2026-04-14 19:36:02 +02:00
cc d9b98c65f3 Add theme-aware syntax highlighting and download button to binary detail
- 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
2026-04-14 19:35:57 +02:00
cc 25db426e62 Enhance diff viewer with side-by-side mode and theme support
- 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
2026-04-14 19:35:52 +02:00
cc ba3098d302 Add virtual scrolling and debounced search to keys page
- Implement @tanstack/react-virtual for performance with large key lists
- Add native debouncing (300ms) for search input
- Handle single-key groups without collapsible UI
2026-04-14 19:35:48 +02:00
cc fad0b347c0 Improve OS list with anchors and major version grouping
- 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
2026-04-14 19:35:44 +02:00
cc 996584f99d Add visual feedback to copy button and download button
- Replace toast notification with visual state change (green check icon)
- Add new DownloadButton component for saving XML as .plist files
2026-04-14 19:35:40 +02:00
cc 868f871863 UI improvements: theme support, version history, layout fixes
- 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
2026-04-14 18:20:11 +02:00
cc c28311ceae Move navigation links to top right, fix base path
- Links now on same row as breadcrumb/version switcher
- Removed addBasePath from Link hrefs (Next.js handles it)
2026-04-14 17:56:36 +02:00
cc 2ae939b0c3 Add search filter and expand/collapse to find page
- 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
2026-04-14 17:48:34 +02:00
cc ed34adfc7a Replace tabs component with simple navigation links
Navigation items don't need tab styling - plain links are cleaner
2026-04-14 17:45:02 +02:00
cc 162f457503 Fix routing and optimize paths layout
- 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
2026-04-14 17:42:22 +02:00
cc 872dca0fb9 Optimize binary detail page layout
- 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
2026-04-14 17:39:47 +02:00
cc 52b377b6a7 Improve keys and paths UI
Keys page:
- Add Expand All / Collapse All buttons
- Use grid layout for better space usage
- Improved loading skeleton with staggered animations

Paths page:
- Add search filter with path count
- Folder/file icons with chevrons
- Smart collapse (top level expanded, nested collapsed)
- Show item counts on hover
2026-04-14 17:37:22 +02:00
cc 175d532bad Fix ESLint: escape quotes in JSX 2026-04-14 17:32:11 +02:00