Commit graph

72 commits

Author SHA1 Message Date
Paweł Orzech
0819a06e3b
Release v1.6.0: Cooldown quick action buttons
- Cooldown cells become clickable buttons when Ready, opening Torn Items page
- New Booster cooldown link setting (Boosters/Alcohol)
- Accessibility support for action buttons
2026-03-14 23:00:59 +01:00
Paweł Orzech
c1625ffd57
Merge feat/cooldown-quick-actions: cooldown quick action buttons
When cooldowns reach Ready, cells become clickable buttons opening
the corresponding Torn Items page. Booster target configurable
in Settings (Boosters/Alcohol).
2026-03-14 22:59:20 +01:00
Paweł Orzech
ce183a794a
feat: add booster cooldown target setting (Boosters/Alcohol) 2026-03-14 22:57:10 +01:00
Paweł Orzech
f3a340b9d4
feat: add cooldown quick action buttons when Ready
When a cooldown reaches 0, the cell becomes a clickable button that
opens the corresponding Torn Items subsection. Booster target
(boosters vs alcohol) is read from @AppStorage preference.
2026-03-14 22:56:49 +01:00
Paweł Orzech
0fc54b257d
Add implementation plan for cooldown quick action buttons 2026-03-14 22:55:09 +01:00
Paweł Orzech
e6808277f2
Address spec review: reduceTransparency flow and accessibility labels 2026-03-14 22:50:47 +01:00
Paweł Orzech
c11d657fba
Improve code quality: network DI, deduplicate logic, parallelize fetches
- Add NetworkMonitor with NetworkConnectivity protocol for DI and testability
- Deduplicate flag mapping (MenuBarLabel now uses TornDestination.flag(for:))
- Centralize logger subsystem string in TornConstants.logSubsystem
- Fold API error check into parseDataInBackground, removing double JSON parse
- Fix fetchFactionData double JSON parse (single parse with early error check)
- Parallelize user data parse and faction fetch with async let
- Deduplicate refreshNow() by delegating to startPolling()
- Remove redundant showLoginError state in SettingsView (use computed Binding)
- Batch watchlist saves after concurrent price fetches (N saves → 1 save)
- Add change detection for offline errorMsg to avoid no-op @Published updates
- Remove unused ObservableObject conformance from NetworkMonitor
- Fix tokens CodingKey (company_funds → donator)
- Replace print() calls with os.log Logger
- Remove stub UI tests that only asserted window.exists
2026-03-14 22:50:47 +01:00
Paweł Orzech
f9758ca74b
Add design spec for cooldown quick action buttons 2026-03-14 22:47:52 +01:00
Paweł Orzech
56037885d0
Merge pull request #8 from pawelorzech/fix/medium-priority-phase2
Fix safety issues, deprecated APIs, and code quality
2026-02-27 23:34:46 +01:00
Paweł Orzech
22f6e5d8e4
Fix safety issues, deprecated APIs, and code quality improvements
- Replace force unwrap developer.tornID! with safe optional binding
- Generate travel notification IDs dynamically from TravelNotificationSetting.defaults
  instead of hardcoded strings, preventing cancellation gaps
- Extract duplicated developer ID (2362436) into TornConstants enum
- Change DateFormatter from computed property to static let to avoid
  expensive re-creation on every render
- Remove redundant objectWillChange.send() already handled by @Published
- Migrate deprecated onChange(of:) { _ in } to new parameterless closure form
2026-02-27 23:34:25 +01:00
Paweł Orzech
464bfea0a4
Merge pull request #7 from pawelorzech/fix/critical-bugs-phase1
Fix 3 critical bugs: infinite recursion, stuck loading, unstable IDs
2026-02-27 23:30:52 +01:00
Paweł Orzech
032ff5887c
Fix 3 critical bugs: infinite recursion, stuck loading state, unstable IDs
- Rename waitForExistence() to waitForAppearance() in UI test helpers
  to fix infinite recursion caused by shadowing XCUIElement's built-in method
- Add else branch in fetchItemPrice() so watchlist items show "Parse Error"
  instead of staying stuck in loading state when JSON parsing fails
- Change AttackResult.id from computed property (generating new UUID on
  every access) to stored property assigned once at init, preventing
  SwiftUI re-render thrashing in ForEach
2026-02-27 23:30:15 +01:00
Paweł Orzech
0ea44f891a
Remove MacTorn v1.4.4–v1.4.7 zip files
Delete binary release archives MacTorn-v1.4.4.zip through MacTorn-v1.4.7.zip from the repository. Removes the four zipped release files from version control to clean up binary assets and reduce repo size.
2026-02-04 14:29:56 +01:00
Paweł Orzech
c46da1e13f
Release version 1.5.1 2026-02-04 14:15:28 +01:00
Paweł Orzech
7b7fe98666
Merge pull request #6 from pawelorzech/codex/added_new_browsers
Include broader browser discovery in picker
2026-02-04 14:12:00 +01:00
Paweł Orzech
bbeb89b9ba
Show installed browser options 2026-02-04 14:06:53 +01:00
Paweł Orzech
bbf977c6c0
Merge pull request #5 from pawelorzech/codex/linktotheforum
Add forum discussion link to README
2026-02-04 14:04:48 +01:00
Paweł Orzech
4391a8b6b4
Add forum link to README 2026-02-04 14:04:31 +01:00
Paweł Orzech
d1166d3218
Release version 1.5.0
- Add preferred browser support for opening Torn links
- Add GitHub Actions integration with Claude Code
- Add BrowserManager utility for managing browser preferences
2026-02-04 13:47:56 +01:00
Paweł Orzech
9b8eaed844
Merge pull request #3 from pawelorzech/codex/github-mention-default-browser-suggested-improvement
Add preferred browser setting for opening links
2026-02-04 13:42:32 +01:00
Paweł Orzech
bdaee4dcf1
Merge pull request #4 from pawelorzech/add-claude-github-actions-1770208442743
Add Claude Code GitHub Workflow
2026-02-04 13:34:28 +01:00
Paweł Orzech
36d2214c60 "Claude Code Review workflow" 2026-02-04 13:34:05 +01:00
Paweł Orzech
4b339d86eb "Claude PR Assistant workflow" 2026-02-04 13:34:04 +01:00
Paweł Orzech
cd2f6ce653 Add BrowserManager to app target 2026-02-04 13:25:19 +01:00
Paweł Orzech
0b5b156182 Add preferred browser support for links 2026-02-04 12:52:12 +01:00
Paweł Orzech
3e214a0b19
Add feedback prompt and release v1.4.7
Add in-app feedback prompt with progressive timing thresholds
(1 hour, 1 week, 1 month) and 5-minute cooldown. Includes
FeedbackPromptView, AppFeedbackState model, and comprehensive
test coverage.
2026-01-27 23:43:17 +01:00
Paweł Orzech
b1804e5a69
fix: Prevent incorrect "Released" notification on travel arrival
The "Released! 🎉 - You are now free" notification was incorrectly
triggering when landing from airplane travel. Changed condition to
only fire when transitioning from Hospital or Jail status, not any
non-Okay state like Traveling.

Bumps version to 1.4.6.
2026-01-25 15:57:49 +01:00
Paweł Orzech
63cef35384
Add new version release instructions and v1.4.5 zip
Added a markdown file with instructions for creating a new version release, including changelog and version updates. Also added the MacTorn-v1.4.5.zip file for direct distribution.
2026-01-25 12:07:44 +01:00
Paweł Orzech
e4c8f6927b
fix: Improve travel timer accuracy with direct timestamp usage
- 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
2026-01-25 12:02:56 +01:00
Paweł Orzech
a55be3c6be
Update README.md 2026-01-20 13:31:42 +00:00
Paweł Orzech
a2d3e6416f
docs: Migrate wiki to GitHub Wiki feature
Move documentation from wiki/ folder to GitHub Wiki repository.
Add wiki link to README for easy access.
2026-01-20 13:30:20 +00:00
Paweł Orzech
715f0877ff
docs: Add comprehensive GitHub wiki documentation
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
2026-01-20 13:24:55 +00:00
Paweł Orzech
e10add9474
fix: Resolve Swift concurrency errors by extracting MainActor functions
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.
2026-01-20 13:22:26 +00:00
Paweł Orzech
9724bcbacb
Fix watchlist item mutation to update via copy
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.
2026-01-20 13:18:42 +00:00
Paweł Orzech
8a4fb30cad
chore: Remove root .DS_Store from git tracking 2026-01-20 13:12:19 +00:00
Paweł Orzech
4414a2696a
chore: Remove .DS_Store from git tracking 2026-01-20 13:10:25 +00:00
Paweł Orzech
21ac399269
feat: Improve accessibility support and update README
- 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
2026-01-20 13:00:11 +00:00
Paweł Orzech
273fd31884
feat: Add Universal Binary support for Intel and Apple Silicon Macs
- Add ARCHS="arm64 x86_64" to Release configuration for universal builds
- Update Info.plist to use dynamic version variables (MARKETING_VERSION, CURRENT_PROJECT_VERSION)
- Update Makefile release target with proper universal build settings
- Add Universal Binary badge to README
2026-01-19 16:46:03 +00:00
Paweł Orzech
7f836a0bbd
feat: Display cooldown labels as text instead of icons
Show "Drug", "Medical", "Booster" text labels in cooldowns section
for better clarity. Bump version to 1.4.3.
2026-01-19 16:16:53 +00:00
Paweł Orzech
7cca5dd896
chore: Bump version to 1.4.2 2026-01-18 21:44:05 +00:00
Paweł Orzech
f9a2b63ab4
fix: Resolve Credits view height being cut off in MenuBarExtra
- Remove Spacer() that was compressing ScrollView
- Set fixed height (480) to ensure all sections are visible
2026-01-18 21:43:44 +00:00
Paweł Orzech
7c4059e59a
chore: Remove old MacTorn-v1.3.zip archive 2026-01-18 21:29:11 +00:00
Paweł Orzech
57be14f6c3
chore: Bump version to 1.4.1 2026-01-18 21:27:43 +00:00
Paweł Orzech
0764a38bb8
fix: Resolve SwiftUI constraint update loop in MenuBarExtra
- Add .transaction { $0.animation = nil } to prevent constraint recalculation loops
- Add CreditsView.swift to Xcode project (was missing after git pull)
- Fixes NSGenericException for Update Constraints in Window passes
2026-01-18 21:25:49 +00:00
Paweł Orzech
71db6d4db1
feat: Add Travel tab with live countdown timer and pre-arrival notifications
- 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
2026-01-18 21:22:50 +00:00
Paweł Orzech
2e485c05d1
Merge pull request #1 from pawelorzech/claude/add-credits-page-NhUe5
Add credits page with username linking
2026-01-18 19:47:08 +00:00
Claude
bab929df98
feat: Populate Credits page with real data
- 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
2026-01-18 19:43:35 +00:00
Claude
14439f50ff
feat: Add Credits page accessible from Settings
- 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
2026-01-18 16:28:52 +00:00
Paweł Orzech
e781a767b3
Update .DS_Store 2026-01-18 12:50:13 +00:00
Paweł Orzech
33857f8cfe
feat: Add live countdown timers for cooldowns and bump version to 1.3
Replace static cooldown display with real-time countdown timers that update every second using TimelineView.
2026-01-18 03:30:43 +00:00