Releases
v1.1.0
Compare
Sorry, something went wrong.
No results found
[1.1.0] - 2024-12-19
Added
Folder Support - Hierarchical organization of favorites (#7 )
Create folders with disclosure groups
Drag & drop favorites between root and folders
Reorder items within same level
Export with children arrays in JSON/Plist
One-level deep hierarchy (folders cannot contain folders)
Visual folder icon with badge
Favicon Display - Visual website icons for favorites
Automatic favicon loading from URLs
Fallback to star icon when unavailable
16x16pt size for compact display
Async loading with placeholder
Favicon Provider Settings - Choose between Google and DuckDuckGo (#10 )
Settings panel (⌘,) with Appearance section
Google: More reliable, comprehensive coverage
DuckDuckGo: Privacy-focused, no tracking
OSLog for debugging provider usage
Favicon Hover Effects - Smooth animations on interaction (#2 )
Scale animation on hover (1.0 → 1.15)
Subtle shadow effect
Spring animation with bounce
Separate hover state for favicon only
Import Configuration - Import existing JSON and Plist configurations (#12 )
JSON Import via Copy/Paste (⌘I)
Paste JSON directly into dialog
Automatic format detection
Plist Import via File Selection (⌘⇧I)
NSOpenPanel for file selection
Supports full Plist files and fragments
Auto-wraps Intune export fragments
Replace all existing favorites on import
Folder structure preservation
Toplevel name extraction and update
Toolbar Grouping - Improved button organization (#13 )
"JSON:" and "Plist:" text labels visible
Actions grouped by format
Consistent icons (↓ Import, ↑ Export)
Cleaner visual hierarchy
GitHub Issue Templates - Consistent naming conventions
feat: prefix for feature requests
fix: prefix for bug reports
docs: prefix for documentation
Form-based templates with required fields
Fixed
GitHub Macro Mentions - Prevent @Query/@model attribution (#1 )
Added .gitattributes file
Added clarifying comments for Swift macros
JSON Export - Remove escaped slashes in output
Clean JSON without unnecessary escaping
Better readability
Toplevel Name Persistence - Settings changes now saved
SwiftData persistence for toplevel name
Changes reflected immediately in exports
Favicon Rendering Stability - Improved async loading
Better error handling
Smoother placeholder transitions
Favicon Performance - Cache URLs to prevent recomputation (#11 )
Favicon URLs cached with @State
Only recomputed on URL or provider changes
No more recomputation on hover/focus events
Reduced CPU usage and log spam
Changed
TopLevel Name moved to Settings from main view
Cleaner main UI
Avoids drag & drop conflicts
Semantically correct location
Section Headers - Consistent styling across views
.title2 font with bold weight
Subtitle with description
Unified spacing
Toolbar Layout - Format-based grouping
[Add] [Folder] | JSON: [Import] [Copy] | Plist: [Import] [Export]
Shorter button labels
Better visual organization
Technical
New FaviconProvider enum with URL generation
New FormatParser for JSON/Plist parsing
New ImportService with NSOpenPanel
New ImportJSONView - SwiftUI import dialog
moveFavorite() method for drag & drop logic
FolderRowView component for folder display
Enhanced FormatGenerator with children array support
Extended AppError with import-specific errors
MockImportService for unit testing
SwiftData migration with order field
OSLog with "Favicons" category
AppStorage for persistent Settings
Plist fragment detection and wrapping
Favicon URL caching with lifecycle handlers
Documentation
README: Debugging section with log stream command
README: Favicon provider verification guide
README: Gatekeeper bypass instructions
AGENTS.md: Issue template guidelines
AGENTS.md: Semantic Versioning strategy
You can’t perform that action at this time.