All notable changes to this project will be documented in this file.
- Comprehensive debug logging in service worker for troubleshooting
- Removed console logging from content script to keep browser console clean
- Dark mode toolbar icon now displays correctly on Safari launch (previously defaulted to light icon until popup was opened)
- Native messaging to detect system appearance on extension startup
- Content script color scheme detection for live dark/light mode switching
First stable release.
- Safari toolbar icon no longer gets tinted with system accent color
- Dark mode support for toolbar icons (light/dark variants switch based on system appearance)
- "Reload Required" state now uses a dedicated icon (cloud with question mark) instead of "RLD" text badge
- App icon now uses Xcode Icon Composer format (.icon) with layered composition
- Toolbar icons now use colored pixels to prevent Safari's accent color tinting
- Renamed internal ToolbarIcon asset to HeroIcon for clarity
- Moved toolbar icon SVG source to
assets/toolbarIcon.svg
- Fastly tiered cache diagram arrow alignment in popup
- Unused LargeIcon asset from Xcode project
- Detection of Safari limitation for bookmarks and external links
- "Reload Required" message when headers unavailable (with explanation)
- "RLD" badge indicator when reload is needed
- KNOWN_ISSUES.md documenting Safari webRequest API limitations
- Badge now shows full "MISS" instead of truncated "MIS"
- Release scripts now use shared
config.shfor app name and paths just releaseno longer waits for notarization (async workflow)- Version and build number now auto-derived from git tag and commit count
- Privacy Policy document (PRIVACY.md)
- DMG installer with drag-to-Applications window (
just dmg) - Support for
x-cache-dateheader
- App renamed from "CF Cache Status" to "Cache Status"
x-cache-statusheader now displayed in popup (was captured but not shown)
- Mac App Store release pipeline (
just archive-appstore,just upload-appstore) - Release documentation moved to dedicated RELEASE.md
- Popup now uses reactive updates via port connection (no more polling)
- "No Data" message now says "Navigate or reload to capture headers" instead of "No CDN headers found"
- Complete popup UI redesign with hero section and metrics grid
- Container app now uses toolbar cloud SVG instead of SF Symbol
- Improved dark mode support
- CDN detection not working (removed
type: modulefrom manifest - ES modules have isolated scope)
- New app icon design (cloud with gradient border and HIT badge)
- CI workflow split into parallel jobs (build, test, validate)
- Justfile for build and release commands (
just build-dev,just release, etc.) - CDN detection test suite (27 test cases)
- Akamai detection via
serverheader (supports AkamaiGHost, AkamaiNetStorage) - Versioned build directories (
build/<version>/) to avoid confusion
- Refactored CDN detection into shared
constants.jswith declarative rules - CDN info notes now only appear when relevant (Fastly note requires x-cache header, CloudFront note only on MISS)
- Release scripts moved to
scripts/directory for better maintainability
- URL display after redirects (now shows final URL instead of intermediate redirect URLs)
- Safari extension preferences now displays the colorful app icon instead of the toolbar icon
- Updated Xcode project configuration (macOS 11.0 deployment target, dead code stripping)
- Performance metrics via Navigation Timing API (TTFB, DNS, TCP, TLS, download time, transfer size)
- CloudFront Origin Shield info note explaining edge MISS behavior
- Fastly multi-layer cache explanation with visual diagram
- CI workflow for build validation on push/PR
- Headers now displayed in Title-Case (e.g., Cache-Control instead of cache-control)
- New app icon
- Simplified and cleaned up popup.js code
- Replaced WebView-based container app with native SwiftUI (~290 lines → 91 lines)
- Toolbar icon appearing blue instead of gray (Safari grayscale tinting workaround)
- Toolbar badge with color-coded cache status (HIT, MISS, EXPIRED, etc.)
- Popup showing detailed cache headers and response metadata
- Edge location mapping (IATA airport codes to city names)
- Multi-CDN support:
- Cloudflare
- CloudFront
- Fastly
- Akamai
- Bunny CDN
- Varnish
- Generic CDN (x-cache header)
- Dark mode support
- iOS Settings-inspired UI design
- GitHub Actions workflow for automated builds and notarization