diff --git a/.githooks/pre-commit b/.githooks/pre-commit index d3940db..c91ccfb 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -26,7 +26,7 @@ if command -v swiftlint >/dev/null 2>&1; then if [ -n "$STAGED_SWIFT" ]; then echo "Checking staged Swift files..." - swiftlint lint --quiet CopilotMonitor/CopilotMonitor + swiftlint lint --quiet UsageBar/UsageBar if [ $? -ne 0 ]; then echo "❌ SwiftLint found issues" EXIT_CODE=1 diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml index 3152cba..de0cb42 100644 --- a/.github/workflows/build-release.yml +++ b/.github/workflows/build-release.yml @@ -8,12 +8,12 @@ jobs: runs-on: macos-26 env: XCODE_VERSION: '26.4' - PROJECT_FILE: CopilotMonitor.xcodeproj - SCHEME: CopilotMonitor + PROJECT_FILE: UsageBar.xcodeproj + SCHEME: UsageBar APP_BUNDLE_NAME: UsageBar.app defaults: run: - working-directory: CopilotMonitor + working-directory: UsageBar steps: - name: Checkout @@ -27,7 +27,7 @@ jobs: - name: Read Version id: version run: | - VERSION=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' CopilotMonitor/Info.plist) + VERSION=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' UsageBar/Info.plist) echo "version=v${VERSION}" >> "$GITHUB_OUTPUT" echo "version_number=${VERSION}" >> "$GITHUB_OUTPUT" @@ -37,7 +37,7 @@ jobs: -scheme "$SCHEME" \ -configuration Release \ -destination "generic/platform=macOS" \ - -archivePath build/CopilotMonitor.xcarchive \ + -archivePath build/UsageBar.xcarchive \ archive \ ARCHS="arm64 x86_64" \ ONLY_ACTIVE_ARCH=NO \ @@ -48,7 +48,7 @@ jobs: - name: Export App run: | mkdir -p build/export - cp -R "build/CopilotMonitor.xcarchive/Products/Applications/${APP_BUNDLE_NAME}" build/export/ + cp -R "build/UsageBar.xcarchive/Products/Applications/${APP_BUNDLE_NAME}" build/export/ - name: Verify Universal Binary run: | diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d5c8289..faca33c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: runs-on: macos-26 defaults: run: - working-directory: CopilotMonitor/CopilotMonitor + working-directory: UsageBar/UsageBar steps: - name: Checkout diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 8e9a239..780e8f1 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -37,8 +37,8 @@ jobs: echo "No Swift files changed" fi else - echo "Linting all files in CopilotMonitor/CopilotMonitor" - swiftlint lint --reporter github-actions-logging CopilotMonitor/CopilotMonitor + echo "Linting all files in UsageBar/UsageBar" + swiftlint lint --reporter github-actions-logging UsageBar/UsageBar fi env: GH_TOKEN: ${{ github.token }} diff --git a/.github/workflows/manual-release.yml b/.github/workflows/manual-release.yml index ab86ba5..f020a46 100644 --- a/.github/workflows/manual-release.yml +++ b/.github/workflows/manual-release.yml @@ -107,18 +107,18 @@ jobs: - name: Update Version Files run: | VERSION="${{ steps.release_version.outputs.version_number }}" - /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $VERSION" CopilotMonitor/CopilotMonitor/Info.plist - /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $VERSION" CopilotMonitor/CopilotMonitor/Info.plist + /usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString $VERSION" UsageBar/UsageBar/Info.plist + /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $VERSION" UsageBar/UsageBar/Info.plist perl -0pi -e 's/UsageBar v\d+\.\d+\.\d+/UsageBar v'"$VERSION"'/g' README.md README.zh-CN.md - name: Build Unsigned Archive run: | - cd CopilotMonitor - xcodebuild -project CopilotMonitor.xcodeproj \ - -scheme CopilotMonitor \ + cd UsageBar + xcodebuild -project UsageBar.xcodeproj \ + -scheme UsageBar \ -configuration Release \ -destination "generic/platform=macOS" \ - -archivePath build/CopilotMonitor.xcarchive \ + -archivePath build/UsageBar.xcarchive \ archive \ ARCHS="arm64 x86_64" \ ONLY_ACTIVE_ARCH=NO \ @@ -128,12 +128,12 @@ jobs: - name: Export App run: | - mkdir -p CopilotMonitor/build/export - cp -R "CopilotMonitor/build/CopilotMonitor.xcarchive/Products/Applications/UsageBar.app" CopilotMonitor/build/export/ + mkdir -p UsageBar/build/export + cp -R "UsageBar/build/UsageBar.xcarchive/Products/Applications/UsageBar.app" UsageBar/build/export/ - name: Verify Universal Binary run: | - APP_PATH="CopilotMonitor/build/export/UsageBar.app" + APP_PATH="UsageBar/build/export/UsageBar.app" MAIN_BIN="$APP_PATH/Contents/MacOS/UsageBar" CLI_BIN="$APP_PATH/Contents/MacOS/usagebar-cli" @@ -167,7 +167,7 @@ jobs: run: | VERSION_TAG="${{ steps.release_version.outputs.version_tag }}" DIST_DIR="$RUNNER_TEMP/release-dist" - APP_PATH="CopilotMonitor/build/export/UsageBar.app" + APP_PATH="UsageBar/build/export/UsageBar.app" ZIP_NAME="UsageBar-${VERSION_TAG}-unsigned.zip" DMG_NAME="UsageBar-${VERSION_TAG}-unsigned.dmg" DMG_STAGING="$RUNNER_TEMP/dmg_staging" @@ -322,7 +322,7 @@ jobs: run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" - git add CopilotMonitor/CopilotMonitor/Info.plist README.md README.zh-CN.md + git add UsageBar/UsageBar/Info.plist README.md README.zh-CN.md git diff --staged --quiet || git commit -m "chore: bump version to ${{ steps.release_version.outputs.version_number }}" git tag "${{ steps.release_version.outputs.version_tag }}" git push origin HEAD:main "${{ steps.release_version.outputs.version_tag }}" diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3f903d5..56c2245 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -9,11 +9,11 @@ jobs: runs-on: macos-26 env: XCODE_VERSION: '26.4' - PROJECT_FILE: CopilotMonitor.xcodeproj - SCHEME: CopilotMonitor + PROJECT_FILE: UsageBar.xcodeproj + SCHEME: UsageBar defaults: run: - working-directory: CopilotMonitor + working-directory: UsageBar steps: - name: Checkout diff --git a/.gitignore b/.gitignore index 2ae5227..d993cea 100644 --- a/.gitignore +++ b/.gitignore @@ -43,6 +43,7 @@ package-lock.json # VSCode local settings .vscode/settings.local.json +.vscode/.debug/ # Local runtime artifacts data/ @@ -56,4 +57,6 @@ nohup.out .pi .pi-lens .claude +.conductor/ +.sc/ .mcp.json diff --git a/.vscode/.debug/UsageBar.app b/.vscode/.debug/UsageBar.app deleted file mode 120000 index 658e370..0000000 --- a/.vscode/.debug/UsageBar.app +++ /dev/null @@ -1 +0,0 @@ -/Users/hypered/Library/Developer/Xcode/DerivedData/CopilotMonitor-dgshlcravqjtlsdnahyisndngtlu/Build/Products/Debug/UsageBar.app \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json index b9e5f0c..df9d253 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -4,7 +4,7 @@ { "label": "🐛 Debug: Build for LLDB", "type": "shell", - "command": "set -euo pipefail; xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj -scheme CopilotMonitor -configuration Debug build; BUILT_PRODUCTS_DIR=$(xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj -scheme CopilotMonitor -configuration Debug -showBuildSettings 2>/dev/null | sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1); if [ -z \"$BUILT_PRODUCTS_DIR\" ]; then echo 'Error: BUILT_PRODUCTS_DIR not found' >&2; exit 1; fi; mkdir -p .vscode/.debug; rm -f .vscode/.debug/UsageBar.app; ln -s \"$BUILT_PRODUCTS_DIR/UsageBar.app\" .vscode/.debug/UsageBar.app; echo \"LLDB bundle link prepared: .vscode/.debug/UsageBar.app\"", + "command": "set -euo pipefail; xcodebuild -project UsageBar/UsageBar.xcodeproj -scheme UsageBar -configuration Debug build; BUILT_PRODUCTS_DIR=$(xcodebuild -project UsageBar/UsageBar.xcodeproj -scheme UsageBar -configuration Debug -showBuildSettings 2>/dev/null | sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1); if [ -z \"$BUILT_PRODUCTS_DIR\" ]; then echo 'Error: BUILT_PRODUCTS_DIR not found' >&2; exit 1; fi; mkdir -p .vscode/.debug; rm -f .vscode/.debug/UsageBar.app; ln -s \"$BUILT_PRODUCTS_DIR/UsageBar.app\" .vscode/.debug/UsageBar.app; echo \"LLDB bundle link prepared: .vscode/.debug/UsageBar.app\"", "group": "build", "presentation": { "reveal": "always", @@ -18,7 +18,7 @@ { "label": "🐛 Debug: Kill + Build + Run", "type": "shell", - "command": "set -euo pipefail; pkill -x 'UsageBar' 2>/dev/null || true; xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj -scheme CopilotMonitor -configuration Debug build; BUILT_PRODUCTS_DIR=$(xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj -scheme CopilotMonitor -configuration Debug -showBuildSettings 2>/dev/null | sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1); if [ -z \"$BUILT_PRODUCTS_DIR\" ]; then echo 'Error: BUILT_PRODUCTS_DIR not found' >&2; exit 1; fi; mkdir -p .vscode/.debug; rm -f .vscode/.debug/UsageBar.app; ln -s \"$BUILT_PRODUCTS_DIR/UsageBar.app\" .vscode/.debug/UsageBar.app; open \"$BUILT_PRODUCTS_DIR/UsageBar.app\"", + "command": "set -euo pipefail; pkill -x 'UsageBar' 2>/dev/null || true; xcodebuild -project UsageBar/UsageBar.xcodeproj -scheme UsageBar -configuration Debug build; BUILT_PRODUCTS_DIR=$(xcodebuild -project UsageBar/UsageBar.xcodeproj -scheme UsageBar -configuration Debug -showBuildSettings 2>/dev/null | sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1); if [ -z \"$BUILT_PRODUCTS_DIR\" ]; then echo 'Error: BUILT_PRODUCTS_DIR not found' >&2; exit 1; fi; mkdir -p .vscode/.debug; rm -f .vscode/.debug/UsageBar.app; ln -s \"$BUILT_PRODUCTS_DIR/UsageBar.app\" .vscode/.debug/UsageBar.app; open \"$BUILT_PRODUCTS_DIR/UsageBar.app\"", "group": { "kind": "build", "isDefault": true diff --git a/Makefile b/Makefile index 06e8021..0d0fb8e 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ lint: lint-swift lint-actions lint-swift: @echo "Running SwiftLint..." - @swiftlint lint CopilotMonitor/CopilotMonitor + @swiftlint lint UsageBar/UsageBar lint-actions: @echo "Running action-validator..." diff --git a/README.md b/README.md index 2404b2d..f70ec59 100644 --- a/README.md +++ b/README.md @@ -302,12 +302,12 @@ make setup # Configure git hooks (SwiftLint + action-validator) ```bash # Build -xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj \ - -scheme CopilotMonitor -configuration Debug build +xcodebuild -project UsageBar/UsageBar.xcodeproj \ + -scheme UsageBar -configuration Debug build # Run (auto-detect build path) -open "$(xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj \ - -scheme CopilotMonitor -configuration Debug -showBuildSettings 2>/dev/null \ +open "$(xcodebuild -project UsageBar/UsageBar.xcodeproj \ + -scheme UsageBar -configuration Debug -showBuildSettings 2>/dev/null \ | sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1)/UsageBar.app" ``` diff --git a/README.zh-CN.md b/README.zh-CN.md index 4fd7b40..9641091 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -305,12 +305,12 @@ make setup # 配置 Git 钩子(SwiftLint + action-validator) ```bash # 构建 -xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj \ - -scheme CopilotMonitor -configuration Debug build +xcodebuild -project UsageBar/UsageBar.xcodeproj \ + -scheme UsageBar -configuration Debug build # 运行(自动检测构建路径) -open "$(xcodebuild -project CopilotMonitor/CopilotMonitor.xcodeproj \ - -scheme CopilotMonitor -configuration Debug -showBuildSettings 2>/dev/null \ +open "$(xcodebuild -project UsageBar/UsageBar.xcodeproj \ + -scheme UsageBar -configuration Debug -showBuildSettings 2>/dev/null \ | sed -n 's/^[[:space:]]*BUILT_PRODUCTS_DIR = //p' | head -n 1)/UsageBar.app" ``` diff --git a/CopilotMonitor/CLI/CLIProviderManager.swift b/UsageBar/CLI/CLIProviderManager.swift similarity index 100% rename from CopilotMonitor/CLI/CLIProviderManager.swift rename to UsageBar/CLI/CLIProviderManager.swift diff --git a/CopilotMonitor/CLI/Providers/CopilotCLIProvider.swift b/UsageBar/CLI/Providers/CopilotCLIProvider.swift similarity index 100% rename from CopilotMonitor/CLI/Providers/CopilotCLIProvider.swift rename to UsageBar/CLI/Providers/CopilotCLIProvider.swift diff --git a/CopilotMonitor/CLI/main.swift b/UsageBar/CLI/main.swift similarity index 100% rename from CopilotMonitor/CLI/main.swift rename to UsageBar/CLI/main.swift diff --git a/CopilotMonitor/CopilotMonitor.xcodeproj/project.pbxproj b/UsageBar/UsageBar.xcodeproj/project.pbxproj similarity index 97% rename from CopilotMonitor/CopilotMonitor.xcodeproj/project.pbxproj rename to UsageBar/UsageBar.xcodeproj/project.pbxproj index fe21f5d..4a42e1b 100644 --- a/CopilotMonitor/CopilotMonitor.xcodeproj/project.pbxproj +++ b/UsageBar/UsageBar.xcodeproj/project.pbxproj @@ -152,7 +152,7 @@ containerPortal = B44444444444444444444444 /* Project object */; proxyType = 1; remoteGlobalIDString = AFFFFFFFFFFFFFFFFFFFFF; - remoteInfo = CopilotMonitor; + remoteInfo = UsageBar; }; /* End PBXContainerItemProxy section */ @@ -203,7 +203,7 @@ ZH1111111111111111111111 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/Localizable.strings"; sourceTree = ""; }; A66666666666666666666666 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; A77777777777777777777777 /* UsageBar.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "UsageBar.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - A88888888888888888888888 /* CopilotMonitor.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = CopilotMonitor.entitlements; sourceTree = ""; }; + A88888888888888888888888 /* UsageBar.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = UsageBar.entitlements; sourceTree = ""; }; A99999999999999999999999 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; AD0CA52627AF05BD67B56E /* StatusBarIconView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarIconView.swift; sourceTree = ""; }; AM2222222222222222222222 /* AppMigrationHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMigrationHelper.swift; sourceTree = ""; }; @@ -254,7 +254,7 @@ AGVTESTFR111111111111111 /* AntigravityProviderVarintTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AntigravityProviderVarintTests.swift; sourceTree = ""; }; CLIFMTTESTFR1111111111111 /* CLIFormatterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CLIFormatterTests.swift; sourceTree = ""; }; OCAUTHTESTFR1111111111111 /* OpenCodeAuthDecodingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenCodeAuthDecodingTests.swift; sourceTree = ""; }; - TDDDDDDDDDDDDDDDDDDDDDD /* CopilotMonitorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CopilotMonitorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + TDDDDDDDDDDDDDDDDDDDDDD /* UsageBarTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UsageBarTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; SETFR111111111111111111111 /* AppPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppPreferences.swift; sourceTree = ""; }; SETFR222222222222222222222 /* CLIService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CLIService.swift; sourceTree = ""; }; SETFR333333333333333333333 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; @@ -297,12 +297,12 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - 1D81BD5EF6E11EA1F43B6746 /* CopilotMonitor */ = { + 1D81BD5EF6E11EA1F43B6746 /* UsageBar */ = { isa = PBXGroup; children = ( EC7EB390754865EBC783E08F /* ViewModels */, ); - name = CopilotMonitor; + name = UsageBar; sourceTree = ""; }; 3FEE31A8C4560737353C8578 /* SwiftUI */ = { @@ -336,15 +336,15 @@ ABBBBBBBBBBBBBBBBBBBBBBB = { isa = PBXGroup; children = ( - ACCCCCCCCCCCCCCCCCCCCCCC /* CopilotMonitor */, + ACCCCCCCCCCCCCCCCCCCCCCC /* UsageBar */, CLI7777777777777777777777 /* CLI */, - TFFFFFFFFFFFFFFFFFFFFFFFF /* CopilotMonitorTests */, + TFFFFFFFFFFFFFFFFFFFFFFFF /* UsageBarTests */, ADDDDDDDDDDDDDDDDDDDDDDD /* Products */, SP3333333333333333333333 /* Frameworks */, ); sourceTree = ""; }; - ACCCCCCCCCCCCCCCCCCCCCCC /* CopilotMonitor */ = { + ACCCCCCCCCCCCCCCCCCCCCCC /* UsageBar */ = { isa = PBXGroup; children = ( AEEEEEEEEEEEEEEEEEEEEEEE /* App */, @@ -354,12 +354,12 @@ E33333333333333333333333 /* Models */, A66666666666666666666666 /* Assets.xcassets */, LZ1111111111111111111111 /* Localizable.strings */, - A88888888888888888888888 /* CopilotMonitor.entitlements */, + A88888888888888888888888 /* UsageBar.entitlements */, A99999999999999999999999 /* Info.plist */, 4D0546BDF4C7CD74746285DF /* Providers */, - 1D81BD5EF6E11EA1F43B6746 /* CopilotMonitor */, + 1D81BD5EF6E11EA1F43B6746 /* UsageBar */, ); - path = CopilotMonitor; + path = UsageBar; sourceTree = ""; }; ADDDDDDDDDDDDDDDDDDDDDDD /* Products */ = { @@ -367,7 +367,7 @@ children = ( A77777777777777777777777 /* UsageBar.app */, CLI5555555555555555555555 /* usagebar-cli */, - TDDDDDDDDDDDDDDDDDDDDDD /* CopilotMonitorTests.xctest */, + TDDDDDDDDDDDDDDDDDDDDDD /* UsageBarTests.xctest */, ); name = Products; sourceTree = ""; @@ -493,7 +493,7 @@ name = Frameworks; sourceTree = ""; }; - TFFFFFFFFFFFFFFFFFFFFFFFF /* CopilotMonitorTests */ = { + TFFFFFFFFFFFFFFFFFFFFFFFF /* UsageBarTests */ = { isa = PBXGroup; children = ( T22222222222222222222222 /* ProviderUsageTests.swift */, @@ -517,7 +517,7 @@ CLIFMTTESTFR1111111111111 /* CLIFormatterTests.swift */, OCAUTHTESTFR1111111111111 /* OpenCodeAuthDecodingTests.swift */, ); - path = CopilotMonitorTests; + path = UsageBarTests; sourceTree = ""; }; TOOOOOOOOOOOOOOOOOOOOOOO /* Fixtures */ = { @@ -537,9 +537,9 @@ /* End PBXGroup section */ /* Begin PBXNativeTarget section */ - AFFFFFFFFFFFFFFFFFFFFF /* CopilotMonitor */ = { + AFFFFFFFFFFFFFFFFFFFFF /* UsageBar */ = { isa = PBXNativeTarget; - buildConfigurationList = B11111111111111111111111 /* Build configuration list for PBXNativeTarget "CopilotMonitor" */; + buildConfigurationList = B11111111111111111111111 /* Build configuration list for PBXNativeTarget "UsageBar" */; buildPhases = ( B22222222222222222222222 /* Sources */, AAAAAAAAAAAAAAAAAAAAAAAA /* Frameworks */, @@ -551,12 +551,12 @@ dependencies = ( CLIDEP1111111111111111111 /* PBXTargetDependency */, ); - name = CopilotMonitor; + name = UsageBar; packageProductDependencies = ( MBA2222222222222222222222 /* MenuBarExtraAccess */, SP2222222222222222222222 /* Sparkle */, ); - productName = CopilotMonitor; + productName = UsageBar; productReference = A77777777777777777777777 /* UsageBar.app */; productType = "com.apple.product-type.application"; }; @@ -579,9 +579,9 @@ productReference = CLI5555555555555555555555 /* usagebar-cli */; productType = "com.apple.product-type.tool"; }; - TGGGGGGGGGGGGGGGGGGGGGGG /* CopilotMonitorTests */ = { + TGGGGGGGGGGGGGGGGGGGGGGG /* UsageBarTests */ = { isa = PBXNativeTarget; - buildConfigurationList = THHHHHHHHHHHHHHHHHHHHHHH /* Build configuration list for PBXNativeTarget "CopilotMonitorTests" */; + buildConfigurationList = THHHHHHHHHHHHHHHHHHHHHHH /* Build configuration list for PBXNativeTarget "UsageBarTests" */; buildPhases = ( TIIIIIIIIIIIIIIIIIIIIII /* Sources */, TEEEEEEEEEEEEEEEEEEEEEE /* Frameworks */, @@ -592,9 +592,9 @@ dependencies = ( TKKKKKKKKKKKKKKKKKKKKKKK /* PBXTargetDependency */, ); - name = CopilotMonitorTests; - productName = CopilotMonitorTests; - productReference = TDDDDDDDDDDDDDDDDDDDDDD /* CopilotMonitorTests.xctest */; + name = UsageBarTests; + productName = UsageBarTests; + productReference = TDDDDDDDDDDDDDDDDDDDDDD /* UsageBarTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ @@ -624,7 +624,7 @@ }; }; }; - buildConfigurationList = B55555555555555555555555 /* Build configuration list for PBXProject "CopilotMonitor" */; + buildConfigurationList = B55555555555555555555555 /* Build configuration list for PBXProject "UsageBar" */; compatibilityVersion = "Xcode 14.0"; developmentRegion = en; hasScannedForEncodings = 0; @@ -643,9 +643,9 @@ projectDirPath = ""; projectRoot = ""; targets = ( - AFFFFFFFFFFFFFFFFFFFFF /* CopilotMonitor */, + AFFFFFFFFFFFFFFFFFFFFF /* UsageBar */, CLI8888888888888888888888 /* usagebar-cli */, - TGGGGGGGGGGGGGGGGGGGGGGG /* CopilotMonitorTests */, + TGGGGGGGGGGGGGGGGGGGGGGG /* UsageBarTests */, ); }; /* End PBXProject section */ @@ -816,7 +816,7 @@ }; TKKKKKKKKKKKKKKKKKKKKKKK /* PBXTargetDependency */ = { isa = PBXTargetDependency; - target = AFFFFFFFFFFFFFFFFFFFFF /* CopilotMonitor */; + target = AFFFFFFFFFFFFFFFFFFFFF /* UsageBar */; targetProxy = TNNNNNNNNNNNNNNNNNNNNNNN /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ @@ -947,7 +947,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = CopilotMonitor/CopilotMonitor.entitlements; + CODE_SIGN_ENTITLEMENTS = UsageBar/UsageBar.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 3; @@ -957,7 +957,7 @@ ENABLE_HARDENED_RUNTIME = YES; ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = CopilotMonitor/Info.plist; + INFOPLIST_FILE = UsageBar/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -975,7 +975,7 @@ buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; - CODE_SIGN_ENTITLEMENTS = CopilotMonitor/CopilotMonitor.entitlements; + CODE_SIGN_ENTITLEMENTS = UsageBar/UsageBar.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 3; @@ -985,7 +985,7 @@ ENABLE_HARDENED_RUNTIME = YES; ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES; GENERATE_INFOPLIST_FILE = NO; - INFOPLIST_FILE = CopilotMonitor/Info.plist; + INFOPLIST_FILE = UsageBar/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", @@ -1068,7 +1068,7 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - B11111111111111111111111 /* Build configuration list for PBXNativeTarget "CopilotMonitor" */ = { + B11111111111111111111111 /* Build configuration list for PBXNativeTarget "UsageBar" */ = { isa = XCConfigurationList; buildConfigurations = ( B88888888888888888888888 /* Debug */, @@ -1077,7 +1077,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - B55555555555555555555555 /* Build configuration list for PBXProject "CopilotMonitor" */ = { + B55555555555555555555555 /* Build configuration list for PBXProject "UsageBar" */ = { isa = XCConfigurationList; buildConfigurations = ( B66666666666666666666666 /* Debug */, @@ -1095,7 +1095,7 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - THHHHHHHHHHHHHHHHHHHHHHH /* Build configuration list for PBXNativeTarget "CopilotMonitorTests" */ = { + THHHHHHHHHHHHHHHHHHHHHHH /* Build configuration list for PBXNativeTarget "UsageBarTests" */ = { isa = XCConfigurationList; buildConfigurations = ( TLLLLLLLLLLLLLLLLLLLLLL /* Debug */, diff --git a/CopilotMonitor/CopilotMonitor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/UsageBar/UsageBar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved similarity index 100% rename from CopilotMonitor/CopilotMonitor.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved rename to UsageBar/UsageBar.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved diff --git a/CopilotMonitor/CopilotMonitor/App/AppDelegate.swift b/UsageBar/UsageBar/App/AppDelegate.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/AppDelegate.swift rename to UsageBar/UsageBar/App/AppDelegate.swift diff --git a/CopilotMonitor/CopilotMonitor/App/AppMigrationHelper.swift b/UsageBar/UsageBar/App/AppMigrationHelper.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/AppMigrationHelper.swift rename to UsageBar/UsageBar/App/AppMigrationHelper.swift diff --git a/CopilotMonitor/CopilotMonitor/App/ModernApp.swift b/UsageBar/UsageBar/App/ModernApp.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/ModernApp.swift rename to UsageBar/UsageBar/App/ModernApp.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/AppPreferences.swift b/UsageBar/UsageBar/App/Settings/AppPreferences.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/AppPreferences.swift rename to UsageBar/UsageBar/App/Settings/AppPreferences.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/CLIService.swift b/UsageBar/UsageBar/App/Settings/CLIService.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/CLIService.swift rename to UsageBar/UsageBar/App/Settings/CLIService.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/CodexSettingsView.swift b/UsageBar/UsageBar/App/Settings/CodexSettingsView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/CodexSettingsView.swift rename to UsageBar/UsageBar/App/Settings/CodexSettingsView.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/GeneralSettingsView.swift b/UsageBar/UsageBar/App/Settings/GeneralSettingsView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/GeneralSettingsView.swift rename to UsageBar/UsageBar/App/Settings/GeneralSettingsView.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/SettingsScaffold.swift b/UsageBar/UsageBar/App/Settings/SettingsScaffold.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/SettingsScaffold.swift rename to UsageBar/UsageBar/App/Settings/SettingsScaffold.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/SettingsView.swift b/UsageBar/UsageBar/App/Settings/SettingsView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/SettingsView.swift rename to UsageBar/UsageBar/App/Settings/SettingsView.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/StatusBarSettingsView.swift b/UsageBar/UsageBar/App/Settings/StatusBarSettingsView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/StatusBarSettingsView.swift rename to UsageBar/UsageBar/App/Settings/StatusBarSettingsView.swift diff --git a/CopilotMonitor/CopilotMonitor/App/Settings/SubscriptionSettingsView.swift b/UsageBar/UsageBar/App/Settings/SubscriptionSettingsView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/Settings/SubscriptionSettingsView.swift rename to UsageBar/UsageBar/App/Settings/SubscriptionSettingsView.swift diff --git a/CopilotMonitor/CopilotMonitor/App/StatusBarController+Menu.swift b/UsageBar/UsageBar/App/StatusBarController+Menu.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/StatusBarController+Menu.swift rename to UsageBar/UsageBar/App/StatusBarController+Menu.swift diff --git a/CopilotMonitor/CopilotMonitor/App/StatusBarController+MenuSections.swift b/UsageBar/UsageBar/App/StatusBarController+MenuSections.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/StatusBarController+MenuSections.swift rename to UsageBar/UsageBar/App/StatusBarController+MenuSections.swift diff --git a/CopilotMonitor/CopilotMonitor/App/StatusBarController+Rendering.swift b/UsageBar/UsageBar/App/StatusBarController+Rendering.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/StatusBarController+Rendering.swift rename to UsageBar/UsageBar/App/StatusBarController+Rendering.swift diff --git a/CopilotMonitor/CopilotMonitor/App/StatusBarController+SettingsSync.swift b/UsageBar/UsageBar/App/StatusBarController+SettingsSync.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/StatusBarController+SettingsSync.swift rename to UsageBar/UsageBar/App/StatusBarController+SettingsSync.swift diff --git a/CopilotMonitor/CopilotMonitor/App/StatusBarController.swift b/UsageBar/UsageBar/App/StatusBarController.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/App/StatusBarController.swift rename to UsageBar/UsageBar/App/StatusBarController.swift diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AntigravityIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/AntigravityIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AntigravityIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/AntigravityIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AntigravityIcon.imageset/antigravity-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/AntigravityIcon.imageset/antigravity-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AntigravityIcon.imageset/antigravity-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/AntigravityIcon.imageset/antigravity-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_128x128.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_128x128.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_128x128.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_16x16.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_16x16.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_16x16.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_256x256.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_256x256.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_256x256.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_32x32.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_32x32.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_32x32.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_512x512.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_512x512.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_512x512.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png rename to UsageBar/UsageBar/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/ChutesIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/ChutesIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/ChutesIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/ChutesIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/ChutesIcon.imageset/chutes-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/ChutesIcon.imageset/chutes-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/ChutesIcon.imageset/chutes-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/ChutesIcon.imageset/chutes-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/ClaudeIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/ClaudeIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/ClaudeIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/ClaudeIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/ClaudeIcon.imageset/claude-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/ClaudeIcon.imageset/claude-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/ClaudeIcon.imageset/claude-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/ClaudeIcon.imageset/claude-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/CodexIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/CodexIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/CodexIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/CodexIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/CodexIcon.imageset/codex-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/CodexIcon.imageset/codex-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/CodexIcon.imageset/codex-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/CodexIcon.imageset/codex-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/Contents.json b/UsageBar/UsageBar/Assets.xcassets/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/CopilotIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/CopilotIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/CopilotIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/CopilotIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/CopilotIcon.imageset/copilot-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/CopilotIcon.imageset/copilot-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/CopilotIcon.imageset/copilot-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/CopilotIcon.imageset/copilot-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/GeminiIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/GeminiIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/GeminiIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/GeminiIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/GeminiIcon.imageset/gemini-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/GeminiIcon.imageset/gemini-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/GeminiIcon.imageset/gemini-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/GeminiIcon.imageset/gemini-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/MinimaxIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/MinimaxIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/MinimaxIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/MinimaxIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/MinimaxIcon.imageset/minimax.svg b/UsageBar/UsageBar/Assets.xcassets/MinimaxIcon.imageset/minimax.svg similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/MinimaxIcon.imageset/minimax.svg rename to UsageBar/UsageBar/Assets.xcassets/MinimaxIcon.imageset/minimax.svg diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/NanoGptIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/NanoGptIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/NanoGptIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/NanoGptIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/NanoGptIcon.imageset/nano-gpt-logo.png b/UsageBar/UsageBar/Assets.xcassets/NanoGptIcon.imageset/nano-gpt-logo.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/NanoGptIcon.imageset/nano-gpt-logo.png rename to UsageBar/UsageBar/Assets.xcassets/NanoGptIcon.imageset/nano-gpt-logo.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/OpencodeIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/OpencodeIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/OpencodeIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/OpencodeIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/OpencodeIcon.imageset/opencode-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/OpencodeIcon.imageset/opencode-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/OpencodeIcon.imageset/opencode-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/OpencodeIcon.imageset/opencode-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/SyntheticIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/SyntheticIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/SyntheticIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/SyntheticIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/SyntheticIcon.imageset/synthetic-icon.png b/UsageBar/UsageBar/Assets.xcassets/SyntheticIcon.imageset/synthetic-icon.png similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/SyntheticIcon.imageset/synthetic-icon.png rename to UsageBar/UsageBar/Assets.xcassets/SyntheticIcon.imageset/synthetic-icon.png diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/ZaiIcon.imageset/Contents.json b/UsageBar/UsageBar/Assets.xcassets/ZaiIcon.imageset/Contents.json similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/ZaiIcon.imageset/Contents.json rename to UsageBar/UsageBar/Assets.xcassets/ZaiIcon.imageset/Contents.json diff --git a/CopilotMonitor/CopilotMonitor/Assets.xcassets/ZaiIcon.imageset/zai-icon.pdf b/UsageBar/UsageBar/Assets.xcassets/ZaiIcon.imageset/zai-icon.pdf similarity index 100% rename from CopilotMonitor/CopilotMonitor/Assets.xcassets/ZaiIcon.imageset/zai-icon.pdf rename to UsageBar/UsageBar/Assets.xcassets/ZaiIcon.imageset/zai-icon.pdf diff --git a/CopilotMonitor/CopilotMonitor/Helpers/APIValueParser.swift b/UsageBar/UsageBar/Helpers/APIValueParser.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/APIValueParser.swift rename to UsageBar/UsageBar/Helpers/APIValueParser.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/CandidateDedupe.swift b/UsageBar/UsageBar/Helpers/CandidateDedupe.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/CandidateDedupe.swift rename to UsageBar/UsageBar/Helpers/CandidateDedupe.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/DebugLogger.swift b/UsageBar/UsageBar/Helpers/DebugLogger.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/DebugLogger.swift rename to UsageBar/UsageBar/Helpers/DebugLogger.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/FlexibleDecoder.swift b/UsageBar/UsageBar/Helpers/FlexibleDecoder.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/FlexibleDecoder.swift rename to UsageBar/UsageBar/Helpers/FlexibleDecoder.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/ISO8601DateParsing.swift b/UsageBar/UsageBar/Helpers/ISO8601DateParsing.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/ISO8601DateParsing.swift rename to UsageBar/UsageBar/Helpers/ISO8601DateParsing.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/L10n.swift b/UsageBar/UsageBar/Helpers/L10n.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/L10n.swift rename to UsageBar/UsageBar/Helpers/L10n.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/MenuDesignToken.swift b/UsageBar/UsageBar/Helpers/MenuDesignToken.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/MenuDesignToken.swift rename to UsageBar/UsageBar/Helpers/MenuDesignToken.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/MenuEnums.swift b/UsageBar/UsageBar/Helpers/MenuEnums.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/MenuEnums.swift rename to UsageBar/UsageBar/Helpers/MenuEnums.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/MenuResultBuilder.swift b/UsageBar/UsageBar/Helpers/MenuResultBuilder.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/MenuResultBuilder.swift rename to UsageBar/UsageBar/Helpers/MenuResultBuilder.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/ModelUsageGrouper.swift b/UsageBar/UsageBar/Helpers/ModelUsageGrouper.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/ModelUsageGrouper.swift rename to UsageBar/UsageBar/Helpers/ModelUsageGrouper.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/ProviderDisplayPolicy.swift b/UsageBar/UsageBar/Helpers/ProviderDisplayPolicy.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/ProviderDisplayPolicy.swift rename to UsageBar/UsageBar/Helpers/ProviderDisplayPolicy.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/ProviderMenuBuilder.swift b/UsageBar/UsageBar/Helpers/ProviderMenuBuilder.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/ProviderMenuBuilder.swift rename to UsageBar/UsageBar/Helpers/ProviderMenuBuilder.swift diff --git a/CopilotMonitor/CopilotMonitor/Helpers/UsagePercentDisplayFormatter.swift b/UsageBar/UsageBar/Helpers/UsagePercentDisplayFormatter.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Helpers/UsagePercentDisplayFormatter.swift rename to UsageBar/UsageBar/Helpers/UsagePercentDisplayFormatter.swift diff --git a/CopilotMonitor/CopilotMonitor/Info.plist b/UsageBar/UsageBar/Info.plist similarity index 100% rename from CopilotMonitor/CopilotMonitor/Info.plist rename to UsageBar/UsageBar/Info.plist diff --git a/CopilotMonitor/CopilotMonitor/Models/CopilotAccountModels.swift b/UsageBar/UsageBar/Models/CopilotAccountModels.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/CopilotAccountModels.swift rename to UsageBar/UsageBar/Models/CopilotAccountModels.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/CopilotUsage.swift b/UsageBar/UsageBar/Models/CopilotUsage.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/CopilotUsage.swift rename to UsageBar/UsageBar/Models/CopilotUsage.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/ProviderAlert.swift b/UsageBar/UsageBar/Models/ProviderAlert.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/ProviderAlert.swift rename to UsageBar/UsageBar/Models/ProviderAlert.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/ProviderProtocol.swift b/UsageBar/UsageBar/Models/ProviderProtocol.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/ProviderProtocol.swift rename to UsageBar/UsageBar/Models/ProviderProtocol.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/ProviderResult.swift b/UsageBar/UsageBar/Models/ProviderResult.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/ProviderResult.swift rename to UsageBar/UsageBar/Models/ProviderResult.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/ProviderUsage.swift b/UsageBar/UsageBar/Models/ProviderUsage.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/ProviderUsage.swift rename to UsageBar/UsageBar/Models/ProviderUsage.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/SubscriptionSettings.swift b/UsageBar/UsageBar/Models/SubscriptionSettings.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/SubscriptionSettings.swift rename to UsageBar/UsageBar/Models/SubscriptionSettings.swift diff --git a/CopilotMonitor/CopilotMonitor/Models/UsageHistory.swift b/UsageBar/UsageBar/Models/UsageHistory.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Models/UsageHistory.swift rename to UsageBar/UsageBar/Models/UsageHistory.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/AntigravityProvider.swift b/UsageBar/UsageBar/Providers/AntigravityProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/AntigravityProvider.swift rename to UsageBar/UsageBar/Providers/AntigravityProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/ChutesProvider.swift b/UsageBar/UsageBar/Providers/ChutesProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/ChutesProvider.swift rename to UsageBar/UsageBar/Providers/ChutesProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/ClaudeProvider.swift b/UsageBar/UsageBar/Providers/ClaudeProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/ClaudeProvider.swift rename to UsageBar/UsageBar/Providers/ClaudeProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/CodexProvider.swift b/UsageBar/UsageBar/Providers/CodexProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/CodexProvider.swift rename to UsageBar/UsageBar/Providers/CodexProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/CopilotProvider.swift b/UsageBar/UsageBar/Providers/CopilotProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/CopilotProvider.swift rename to UsageBar/UsageBar/Providers/CopilotProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/GeminiCLIProvider.swift b/UsageBar/UsageBar/Providers/GeminiCLIProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/GeminiCLIProvider.swift rename to UsageBar/UsageBar/Providers/GeminiCLIProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/KimiProvider.swift b/UsageBar/UsageBar/Providers/KimiProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/KimiProvider.swift rename to UsageBar/UsageBar/Providers/KimiProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/MiniMaxProvider.swift b/UsageBar/UsageBar/Providers/MiniMaxProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/MiniMaxProvider.swift rename to UsageBar/UsageBar/Providers/MiniMaxProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/NanoGptProvider.swift b/UsageBar/UsageBar/Providers/NanoGptProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/NanoGptProvider.swift rename to UsageBar/UsageBar/Providers/NanoGptProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/OpenCodeProvider.swift b/UsageBar/UsageBar/Providers/OpenCodeProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/OpenCodeProvider.swift rename to UsageBar/UsageBar/Providers/OpenCodeProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/OpenRouterProvider.swift b/UsageBar/UsageBar/Providers/OpenRouterProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/OpenRouterProvider.swift rename to UsageBar/UsageBar/Providers/OpenRouterProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/SyntheticProvider.swift b/UsageBar/UsageBar/Providers/SyntheticProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/SyntheticProvider.swift rename to UsageBar/UsageBar/Providers/SyntheticProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Providers/ZaiCodingPlanProvider.swift b/UsageBar/UsageBar/Providers/ZaiCodingPlanProvider.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Providers/ZaiCodingPlanProvider.swift rename to UsageBar/UsageBar/Providers/ZaiCodingPlanProvider.swift diff --git a/CopilotMonitor/CopilotMonitor/Services/BrowserCookieService.swift b/UsageBar/UsageBar/Services/BrowserCookieService.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Services/BrowserCookieService.swift rename to UsageBar/UsageBar/Services/BrowserCookieService.swift diff --git a/CopilotMonitor/CopilotMonitor/Services/CopilotHistoryService.swift b/UsageBar/UsageBar/Services/CopilotHistoryService.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Services/CopilotHistoryService.swift rename to UsageBar/UsageBar/Services/CopilotHistoryService.swift diff --git a/CopilotMonitor/CopilotMonitor/Services/ProviderManager.swift b/UsageBar/UsageBar/Services/ProviderManager.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Services/ProviderManager.swift rename to UsageBar/UsageBar/Services/ProviderManager.swift diff --git a/CopilotMonitor/CopilotMonitor/Services/TokenManager.swift b/UsageBar/UsageBar/Services/TokenManager.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Services/TokenManager.swift rename to UsageBar/UsageBar/Services/TokenManager.swift diff --git a/CopilotMonitor/CopilotMonitor/Services/UsagePredictor.swift b/UsageBar/UsageBar/Services/UsagePredictor.swift similarity index 99% rename from CopilotMonitor/CopilotMonitor/Services/UsagePredictor.swift rename to UsageBar/UsageBar/Services/UsagePredictor.swift index 77528aa..da45aea 100644 --- a/CopilotMonitor/CopilotMonitor/Services/UsagePredictor.swift +++ b/UsageBar/UsageBar/Services/UsagePredictor.swift @@ -1,6 +1,6 @@ // // UsagePredictor.swift -// CopilotMonitor +// UsageBar // // Created by opencode on 2026-01-18. // diff --git a/CopilotMonitor/CopilotMonitor/CopilotMonitor.entitlements b/UsageBar/UsageBar/UsageBar.entitlements similarity index 100% rename from CopilotMonitor/CopilotMonitor/CopilotMonitor.entitlements rename to UsageBar/UsageBar/UsageBar.entitlements diff --git a/CopilotMonitor/CopilotMonitor/Views/MultiProviderBarView.swift b/UsageBar/UsageBar/Views/MultiProviderBarView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Views/MultiProviderBarView.swift rename to UsageBar/UsageBar/Views/MultiProviderBarView.swift diff --git a/CopilotMonitor/CopilotMonitor/Views/MultiProviderStatusBarIconView.swift b/UsageBar/UsageBar/Views/MultiProviderStatusBarIconView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Views/MultiProviderStatusBarIconView.swift rename to UsageBar/UsageBar/Views/MultiProviderStatusBarIconView.swift diff --git a/CopilotMonitor/CopilotMonitor/Views/StatusBarIconView.swift b/UsageBar/UsageBar/Views/StatusBarIconView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Views/StatusBarIconView.swift rename to UsageBar/UsageBar/Views/StatusBarIconView.swift diff --git a/CopilotMonitor/CopilotMonitor/Views/SwiftUI/ModernStatusBarIconView.swift b/UsageBar/UsageBar/Views/SwiftUI/ModernStatusBarIconView.swift similarity index 100% rename from CopilotMonitor/CopilotMonitor/Views/SwiftUI/ModernStatusBarIconView.swift rename to UsageBar/UsageBar/Views/SwiftUI/ModernStatusBarIconView.swift diff --git a/CopilotMonitor/CopilotMonitor/en.lproj/Localizable.strings b/UsageBar/UsageBar/en.lproj/Localizable.strings similarity index 100% rename from CopilotMonitor/CopilotMonitor/en.lproj/Localizable.strings rename to UsageBar/UsageBar/en.lproj/Localizable.strings diff --git a/CopilotMonitor/CopilotMonitor/zh-Hans.lproj/Localizable.strings b/UsageBar/UsageBar/zh-Hans.lproj/Localizable.strings similarity index 100% rename from CopilotMonitor/CopilotMonitor/zh-Hans.lproj/Localizable.strings rename to UsageBar/UsageBar/zh-Hans.lproj/Localizable.strings diff --git a/CopilotMonitor/CopilotMonitorTests/AntigravityProviderVarintTests.swift b/UsageBar/UsageBarTests/AntigravityProviderVarintTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/AntigravityProviderVarintTests.swift rename to UsageBar/UsageBarTests/AntigravityProviderVarintTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/AppPreferencesTests.swift b/UsageBar/UsageBarTests/AppPreferencesTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/AppPreferencesTests.swift rename to UsageBar/UsageBarTests/AppPreferencesTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/CLIFormatterTests.swift b/UsageBar/UsageBarTests/CLIFormatterTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/CLIFormatterTests.swift rename to UsageBar/UsageBarTests/CLIFormatterTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/ClaudeProviderTests.swift b/UsageBar/UsageBarTests/ClaudeProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/ClaudeProviderTests.swift rename to UsageBar/UsageBarTests/ClaudeProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/CodexProviderTests.swift b/UsageBar/UsageBarTests/CodexProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/CodexProviderTests.swift rename to UsageBar/UsageBarTests/CodexProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/CopilotProviderTests.swift b/UsageBar/UsageBarTests/CopilotProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/CopilotProviderTests.swift rename to UsageBar/UsageBarTests/CopilotProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/DependencyTests.swift b/UsageBar/UsageBarTests/DependencyTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/DependencyTests.swift rename to UsageBar/UsageBarTests/DependencyTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/claude_response.json b/UsageBar/UsageBarTests/Fixtures/claude_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/claude_response.json rename to UsageBar/UsageBarTests/Fixtures/claude_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/codex_response.json b/UsageBar/UsageBarTests/Fixtures/codex_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/codex_response.json rename to UsageBar/UsageBarTests/Fixtures/codex_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/copilot_response.json b/UsageBar/UsageBarTests/Fixtures/copilot_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/copilot_response.json rename to UsageBar/UsageBarTests/Fixtures/copilot_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/gemini_response.json b/UsageBar/UsageBarTests/Fixtures/gemini_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/gemini_response.json rename to UsageBar/UsageBarTests/Fixtures/gemini_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/minimax_response.json b/UsageBar/UsageBarTests/Fixtures/minimax_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/minimax_response.json rename to UsageBar/UsageBarTests/Fixtures/minimax_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/openrouter_credits_response.json b/UsageBar/UsageBarTests/Fixtures/openrouter_credits_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/openrouter_credits_response.json rename to UsageBar/UsageBarTests/Fixtures/openrouter_credits_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/Fixtures/openrouter_key_response.json b/UsageBar/UsageBarTests/Fixtures/openrouter_key_response.json similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/Fixtures/openrouter_key_response.json rename to UsageBar/UsageBarTests/Fixtures/openrouter_key_response.json diff --git a/CopilotMonitor/CopilotMonitorTests/GeminiCLIProviderTests.swift b/UsageBar/UsageBarTests/GeminiCLIProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/GeminiCLIProviderTests.swift rename to UsageBar/UsageBarTests/GeminiCLIProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/MenuDesignTokenTests.swift b/UsageBar/UsageBarTests/MenuDesignTokenTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/MenuDesignTokenTests.swift rename to UsageBar/UsageBarTests/MenuDesignTokenTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/MenuResultBuilderTests.swift b/UsageBar/UsageBarTests/MenuResultBuilderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/MenuResultBuilderTests.swift rename to UsageBar/UsageBarTests/MenuResultBuilderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/MiniMaxProviderTests.swift b/UsageBar/UsageBarTests/MiniMaxProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/MiniMaxProviderTests.swift rename to UsageBar/UsageBarTests/MiniMaxProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/NanoGptProviderTests.swift b/UsageBar/UsageBarTests/NanoGptProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/NanoGptProviderTests.swift rename to UsageBar/UsageBarTests/NanoGptProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/OpenCodeAuthDecodingTests.swift b/UsageBar/UsageBarTests/OpenCodeAuthDecodingTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/OpenCodeAuthDecodingTests.swift rename to UsageBar/UsageBarTests/OpenCodeAuthDecodingTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/OpenCodeProviderTests.swift b/UsageBar/UsageBarTests/OpenCodeProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/OpenCodeProviderTests.swift rename to UsageBar/UsageBarTests/OpenCodeProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/OpenRouterProviderTests.swift b/UsageBar/UsageBarTests/OpenRouterProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/OpenRouterProviderTests.swift rename to UsageBar/UsageBarTests/OpenRouterProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/ProviderUsageTests.swift b/UsageBar/UsageBarTests/ProviderUsageTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/ProviderUsageTests.swift rename to UsageBar/UsageBarTests/ProviderUsageTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/SyntheticProviderTests.swift b/UsageBar/UsageBarTests/SyntheticProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/SyntheticProviderTests.swift rename to UsageBar/UsageBarTests/SyntheticProviderTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/TokenManagerTests.swift b/UsageBar/UsageBarTests/TokenManagerTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/TokenManagerTests.swift rename to UsageBar/UsageBarTests/TokenManagerTests.swift diff --git a/CopilotMonitor/CopilotMonitorTests/ZaiCodingPlanProviderTests.swift b/UsageBar/UsageBarTests/ZaiCodingPlanProviderTests.swift similarity index 100% rename from CopilotMonitor/CopilotMonitorTests/ZaiCodingPlanProviderTests.swift rename to UsageBar/UsageBarTests/ZaiCodingPlanProviderTests.swift diff --git a/docs/RELEASE_WORKFLOW.md b/docs/RELEASE_WORKFLOW.md index 5730d7a..29df774 100644 --- a/docs/RELEASE_WORKFLOW.md +++ b/docs/RELEASE_WORKFLOW.md @@ -20,7 +20,7 @@ This document describes the current **unsigned release** workflow for **UsageBar - `HOMEBREW_TAP_GITHUB_TOKEN` available for workflow-based releases - `SPARKLE_ED_PRIVATE_KEY` available as a GitHub Actions secret - This is the Sparkle EdDSA private key, not an Apple Developer certificate. - - Its public key must match `SUPublicEDKey` in `CopilotMonitor/CopilotMonitor/Info.plist`. + - Its public key must match `SUPublicEDKey` in `UsageBar/UsageBar/Info.plist`. If the matching private key is unavailable, generate a new Sparkle key pair, update `SUPublicEDKey`, and save the exported private key as the `SPARKLE_ED_PRIVATE_KEY` repository secret: @@ -51,7 +51,7 @@ Both artifacts must be built as **universal binaries**: Update these files to the new version: -- `CopilotMonitor/CopilotMonitor/Info.plist` +- `UsageBar/UsageBar/Info.plist` - `CFBundleShortVersionString` - `CFBundleVersion` - `README.md` @@ -60,19 +60,19 @@ Update these files to the new version: Example: ```bash -/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString 0.0.7" CopilotMonitor/CopilotMonitor/Info.plist -/usr/libexec/PlistBuddy -c "Set :CFBundleVersion 0.0.7" CopilotMonitor/CopilotMonitor/Info.plist +/usr/libexec/PlistBuddy -c "Set :CFBundleShortVersionString 0.0.7" UsageBar/UsageBar/Info.plist +/usr/libexec/PlistBuddy -c "Set :CFBundleVersion 0.0.7" UsageBar/UsageBar/Info.plist ``` ## 2. Build Unsigned Release Archive ```bash -cd CopilotMonitor -xcodebuild -project CopilotMonitor.xcodeproj \ - -scheme CopilotMonitor \ +cd UsageBar +xcodebuild -project UsageBar.xcodeproj \ + -scheme UsageBar \ -configuration Release \ -destination "generic/platform=macOS" \ - -archivePath build/CopilotMonitor.xcarchive \ + -archivePath build/UsageBar.xcarchive \ archive \ ARCHS="arm64 x86_64" \ ONLY_ACTIVE_ARCH=NO \ @@ -85,7 +85,7 @@ xcodebuild -project CopilotMonitor.xcodeproj \ ```bash mkdir -p build/export -cp -R "build/CopilotMonitor.xcarchive/Products/Applications/UsageBar.app" build/export/ +cp -R "build/UsageBar.xcarchive/Products/Applications/UsageBar.app" build/export/ ``` ## 4. Verify Universal Binary Slices diff --git a/plans/xcode-project-rename.md b/plans/xcode-project-rename.md new file mode 100644 index 0000000..9d9fa94 --- /dev/null +++ b/plans/xcode-project-rename.md @@ -0,0 +1,46 @@ +# 统一 Xcode 项目名称为 UsageBar + +## 摘要 +- 将开发环境里的旧名 `CopilotMonitor` 统一改为 `UsageBar`。 +- 实际 App 名称、Bundle ID 已经是 `UsageBar`,这次主要修正 Xcode project、target、scheme、目录路径、构建命令和发布文档。 +- 不修改 `plans/` 历史计划文件;保留 `AppMigrationHelper` 里的 `CopilotMonitor.app`,因为它用于旧版本迁移兼容。 +s +## 主要改动 +- Xcode 结构: + - `CopilotMonitor/` 目录改为 `UsageBar/` + - `CopilotMonitor.xcodeproj` 改为 `UsageBar.xcodeproj` + - 主 target / scheme 从 `CopilotMonitor` 改为 `UsageBar` + - 测试 target 从 `CopilotMonitorTests` 改为 `UsageBarTests` + - entitlements 文件从 `CopilotMonitor.entitlements` 改为 `UsageBar.entitlements` +- 构建与发布配置: + - 更新 `.github/workflows/*.yml` 中的 project、scheme、工作目录、archive 路径、Info.plist 路径。 + - 更新 `Makefile` 的 SwiftLint 路径。 + - 更新 `docs/RELEASE_WORKFLOW.md` 中的旧路径与命令。 +- 文档: + - 更新 `README.md` 和 `README.zh-CN.md` 的 Xcode build/open 命令。 + - 不更新历史 `plans/` 文件,避免改动旧记录。 +- 保留兼容: + - `AppMigrationHelper` 中的 legacy bundle 名单继续包含 `CopilotMonitor.app`。 + - 不改变 `CFBundleDisplayName`、`CFBundleName`、`PRODUCT_NAME`、Bundle ID,它们已经正确。 + +## 验证 +- 先运行 `make setup`。 +- 确认 `xcodebuild -list -project UsageBar/UsageBar.xcodeproj` 显示: + - project: `UsageBar` + - schemes: `UsageBar`、`usagebar-cli` + - targets: `UsageBar`、`usagebar-cli`、`UsageBarTests` +- 清理并编译: + - `xcodebuild clean build -project UsageBar/UsageBar.xcodeproj -scheme UsageBar -configuration Debug` +- 测试: + - `xcodebuild test -project UsageBar/UsageBar.xcodeproj -scheme UsageBar -configuration Debug` +- 运行检查: + - 结束旧进程,运行新构建的 `UsageBar.app` + - 通过日志确认 App 正常启动,无旧 project/scheme 路径导致的错误 +- 搜索检查: + - `rg "CopilotMonitor" .` 只允许出现在 `plans/` 历史文件和 `AppMigrationHelper` legacy 名单中。 + +## 默认与假设 +- 推荐并采用完整统一方案。 +- `plans/` 目录视为历史记录,不参与本次改名。 +- `CopilotMonitor.app` 作为旧版兼容名称保留,不视为遗漏。 +- 不做发布、不创建 release、不修改版本号。