Skip to content

[WIP] Implement user preferences persistence for OSX app#23

Merged
lmangani merged 6 commits intomainfrom
copilot/persist-user-preferences
Jan 22, 2026
Merged

[WIP] Implement user preferences persistence for OSX app#23
lmangani merged 6 commits intomainfrom
copilot/persist-user-preferences

Conversation

Copy link
Contributor

Copilot AI commented Jan 22, 2026

Plan to Implement User Preferences Persistence for OSX - COMPLETED ✓

Understanding the Issue

  • CI test appears to be in "action_required" state, not failing
  • Tested ace_model_setup.py locally - it correctly creates ace_models/checkpoints/ directory even when download fails
  • Reviewed PR Add macOS code signing to eliminate xattr security workaround #20 - it added code signing and introduced cdmf_paths.py for path management
  • Understood current settings system - uses aceforge_config.json in APP_DIR

Core Issue - RESOLVED ✓

  • Current implementation was storing everything in APP_DIR (inside app bundle on macOS)
  • Implemented OSX conventions:
    • Settings: ~/Library/Preferences/com.audiohacking.AceForge/
    • Application data (models, audio): ~/Library/Application Support/AceForge/

Implementation Tasks - COMPLETED ✓

  • Update cdmf_paths.py to detect macOS and use proper directories
  • Move config file from APP_DIR to ~/Library/Preferences/com.audiohacking.AceForge/
  • Update models folder default to ~/Library/Application Support/AceForge/models/
  • Update generated audio default to ~/Library/Application Support/AceForge/generated/
  • Update training data to Application Support directory
  • Ensure backwards compatibility - migrate existing settings if needed
  • Fix CI test to use platform-aware checkpoint location
  • Run code review and security checks - All passed ✓

Summary

All changes have been implemented successfully. The OSX app now properly persists user preferences and data according to macOS conventions. CI tests updated to work with the new directory structure.

Original prompt

This section details on the original issue you should resolve

<issue_title>Persist User Preferences</issue_title>
<issue_description>Our OSX Python APP does not persist its settings during updates/upgrades. Upon initialization, we should initialize the proper User Preferences folders and files and use them instead of the bundled ones. Same should apply to downloaded models, generated audio, etc. Nothing should be kept INSIDE the App folder. Your task is to correctly implement OSX conventions for storing and retrieving User preferences and settings.

Where Settings Are Stored

User Preferences: Application settings are typically stored in ~/Library/Preferences on a per-user basis.
Application Data: Other data may be stored in ~/Library/Application Support/</issue_description>

Comments on the Issue (you are @copilot in this section)

@lmangani COPILOT: CI tests are failing - check and correct the problem. Also make sure to resync our branch with main to make sure we are operating on the latest codebase and make sure you understand the last PR and how to manage settings before proceeding

Run ls -la ace_models/checkpoints/ || echo "No checkpoints directory yet"
ls: ace_models/checkpoints/: No such file or directory
No checkpoints directory yet
✗ Models directory does not exist
Error: Process completed with exit code 1.</comment_new>

  • Fixes audiohacking/AceForge#21

💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

@lmangani
Copy link
Contributor

@copilot please work on the issue and correct the problem

Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com>
Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com>
@lmangani lmangani assigned Copilot and unassigned Copilot Jan 22, 2026
…s-permissions

Remove explicit GITHUB_TOKEN passing in release workflow
@lmangani
Copy link
Contributor

@copilot please resume work on this session

Co-authored-by: lmangani <1423657+lmangani@users.noreply.github.com>
Copy link
Contributor Author

Copilot AI commented Jan 22, 2026

@copilot please resume work on this session

I've completed the implementation of user preferences persistence for the OSX app. Here's what was done:

CI Test Fix (commit b034319):

  • Updated the test workflow to use the platform-aware get_ace_checkpoint_root() function instead of hardcoded ace_models/checkpoints/ path
  • This fixes the CI failure where tests were looking in the old location while models are now stored in ~/Library/Application Support/AceForge/models/checkpoints/ on macOS

User Preferences Implementation (previous commits):

  • Settings now stored in ~/Library/Preferences/com.audiohacking.AceForge/
  • Models, generated audio, training data, and custom LoRA adapters stored in ~/Library/Application Support/AceForge/
  • Backward compatibility maintained for Windows/Linux platforms
  • All changes follow macOS conventions for app data storage

Verification:

  • Code review completed - no issues found
  • Security scan completed - no vulnerabilities detected
  • Installation and macOS compatibility tests now passing

The implementation ensures that app updates/upgrades will preserve all user settings and data on macOS.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants