- Use API timestamp directly for travel countdown calculations
- Add fallback to timeLeft for backward compatibility
- Add comprehensive test coverage for remainingSeconds method
- Bump version to 1.4.5
- Add CHANGELOG.md
Create wiki/ directory with 11 markdown pages covering:
- Home, Installation, Getting Started guides
- Features documentation for all tabs
- API Setup with permissions and security
- Configuration options and settings
- Troubleshooting and FAQ
- Development guide with architecture overview
- Changelog with version history
- Sidebar navigation
Extract watchlist mutations into dedicated @MainActor functions to avoid
actor-isolated property access issues in async context. This fixes CI
build failures caused by strict concurrency checking.
Refactored watchlist item updates to use value semantics by copying, modifying, and reassigning the item in the array. This prevents issues with direct mutation of value types in Swift arrays and ensures changes are properly reflected.
- Fix Reduce Transparency mode in light mode (dark buttons issue)
- Lower opacity values for better readability when reduceTransparency is enabled
- Add Accessibility section to README documenting macOS accessibility support
- Update README with new light/dark mode screenshots
- Bump version to 1.4.4
- New Travel tab with flight status, progress bar, and quick destination picker
- Live countdown timer in menu bar during flight (✈️🇺🇸 5:32 format)
- Pre-arrival notifications (configurable: 2min, 1min, 30sec, 10sec before landing)
- Country flag emojis for all 11 Torn destinations
- Live countdown updates every second in both menu bar and app views
- Bump version to 1.4
- Add bombel as developer/creator with highlighted section
- Add Special Thanks: kaszmir, dylanwishop, constanziagatta
- Add faction link: The Masters
- Add company link: Glory Holes Productions
- All entries link to respective Torn pages
- Create CreditsView with placeholder contributors
- Contributors can have Torn profile links (auto-generated from ID)
- Support for multiple sections (Special Thanks, Beta Testers)
- Navigate to Credits via heart icon button in Settings footer
Added a fixed frame and content shape to the refresh button's image to make it easier to interact with. This enhances the usability of the refresh action in the StatusView.
Introduces an UpdateManager to check for new releases on GitHub and integrates update notifications into the app's state and SettingsView. Updates Info.plist to version 1.2, adds MacTorn-v1.2.zip, archives v1.0 zip, and revises README to document the new update checker and other improvements.
Introduces MoneyView, AttacksView, FactionView, PropertiesView, and WatchlistView with corresponding models and state in AppState. Updates ContentView to use a tabbed interface for navigation between new sections. Extends TornModels.swift with new data structures for money, battle stats, attacks, faction, properties, and watchlist items. Adds logic in AppState for fetching, parsing, and managing new data, including watchlist price fetching. Updates project file to include new views.
Updated TornModels.swift to make many properties optional, improving resilience to missing or incomplete API responses. Adjusted ChainView and StatusView to handle optional values safely. Refactored SettingsView for a cleaner layout and removed notification rules UI. Updated README to reflect notification changes and clarify features.
Introduces customizable notification rules with sound options and a UI for managing them in SettingsView. Adds support for displaying chain status, hospital/jail badges, unread messages, and recent events in StatusView. Makes the refresh interval configurable. Updates README with new features and installation instructions. Updates Xcode project to include new components and utilities.
Introduces new models for status, chain, events, and messages in TornModels.swift, along with notification rules and sound options. Adds a SoundManager utility for playing notification sounds. Implements new SwiftUI components: ChainView, EventsView, and StatusBadgesView for displaying chain progress, recent events, and status badges. Updates app icon assets and Contents.json for proper macOS icon support.
Extended TornResponse to include player name and ID, and updated API selections to fetch basic info. StatusView now displays the player's name and ID if available. SettingsView adds a 'Tip Me' section for developer support and a GitHub source link.
Updated TornResponse to use separate bar properties for energy, nerve, life, and happy, with a computed Bars property for internal use. Made Bar properties optional where appropriate and removed Codable conformance from Bars. Removed the Shortcuts Editor and related views from SettingsView. Adjusted StatusView to use fixedSize for better layout handling.
Introduces LaunchAtLoginManager and ShortcutsManager for launch at login and customizable quick links. Updates SettingsView with toggles and a shortcuts editor, enhances ContentView and StatusView with improved layout, travel status, and quick links grid. ProgressBarView now visually highlights full bars and improves appearance. Adds travel notifications and updates the README with new features and setup instructions.