Commit Graph

63 Commits

Author SHA1 Message Date
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
cc 59f2c0484b Improve navigation and keys UI
- Add version switcher dropdown to quickly jump between OS versions
- Redesign keys page with grouped, collapsible sections
- Dim common prefix and highlight unique suffix for better scanning
- Add tab navigation between Entitlement Keys and Browse Files
- Show key counts per group and total
2026-04-14 17:31:03 +02:00
cc c13f83e3f7 Replace @pierre/diffs with custom diff viewer to fix freeze
The @pierre/diffs library was causing the browser to freeze when
comparing certain versions. Implemented a simple line-based diff
that only shows added/removed lines.
2026-04-14 17:17:02 +02:00
cc 47835803e6 Add error handling for comparison when binary doesn't exist
Prevents page freeze when comparing with a version that doesn't have the binary
2026-04-14 17:12:03 +02:00
cc 03286dca14 Parse plist to JSON for accurate structural diff
- Convert XML plist to JSON for proper key sorting and comparison
- Generate normalized XML from sorted JSON for diffing
- Hide unchanged lines in diff view (collapsedContextThreshold: 0)
- Simplify diffPlistKeys to use JSON comparison
2026-04-14 17:09:18 +02:00