Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
112 commits
Select commit Hold shift + click to select a range
63d4142
Add support for Jamf updates and enhance application management
almenscorner Oct 20, 2025
0cb0b3f
Refactor FileWatcher and JsonCardManager for improved file handling a…
almenscorner Oct 20, 2025
298a084
Add SSID retrieval and display in DeviceInfo and CardGridViewModel
almenscorner Oct 20, 2025
4698595
Refactor getMDMEnrollmentTime to use profile names for command execution
almenscorner Oct 20, 2025
7247036
Remove unused variables in SSOInfoHelpers, NotificationService, and I…
almenscorner Oct 20, 2025
ac1a40a
Add support for Jamf mode in CardGrid and CompactPatchProgressCard
almenscorner Oct 20, 2025
bec124b
Refactor ContentView to use SidebarListView for improved sidebar hand…
almenscorner Oct 20, 2025
87ad2ee
Enhance badge display in ScButton with improved styling and animation
almenscorner Oct 20, 2025
943c993
Add support for Jamf in tray menu
almenscorner Oct 20, 2025
8d3547a
Replace button image with InfoHelp component in ScCard for improved a…
almenscorner Oct 20, 2025
888ab57
Update localized strings for device restart messages to improve forma…
almenscorner Oct 20, 2025
5744ca7
Update installation paths for helper tool and migrate helper to AppSe…
almenscorner Oct 20, 2025
fbf0070
Add WiFi SSID information to device info output
almenscorner Oct 20, 2025
1475710
bump version
almenscorner Oct 20, 2025
a2bd521
Fix patch progress percentage display format in CompactPatchProgressCard
almenscorner Nov 4, 2025
1dffa12
Enhance patch handling by adding ID to Patch model and improving upda…
almenscorner Nov 4, 2025
4da0619
Add optional fields to PendingJamfUpdate and Patch models for enhance…
almenscorner Nov 4, 2025
43196ea
Add Jamf update functionality and enhance PendingUpdatesCard display
almenscorner Nov 4, 2025
f9af623
Add translations for "Due by" in German, French, Japanese, Norwegian,…
almenscorner Nov 4, 2025
dc9f7f7
Update changelog
almenscorner Nov 4, 2025
2fc1595
Add Jamf functionality with info retrieval and UI integration
almenscorner Nov 17, 2025
8bfd12e
Add Jamf info card to BatteryEvergreenStack
almenscorner Nov 17, 2025
69851e5
Enhance version normalization logic and update self-service refresh b…
almenscorner Nov 17, 2025
be8dd68
Add brand name and fix fielvault hide logic
almenscorner Nov 17, 2025
c9125de
Add localization strings for Jamf info and general time labels
almenscorner Nov 17, 2025
6445d36
Add general preferences for self-service refresh and Jamf log polling…
almenscorner Nov 17, 2025
90e6fb4
bump version
almenscorner Nov 17, 2025
5a3a160
Add custom Company Portal Url support and improve intune detection fo…
Actu4l-Human Nov 26, 2025
5c11d41
Merge branch 'dev' into support-more-intune
Actu4l-Human Nov 28, 2025
2e75bab
Update Preferences.swift
Actu4l-Human Nov 28, 2025
b60d777
Add additional logging
almenscorner Dec 12, 2025
e739dfc
Add logging to file with rotation
almenscorner Dec 12, 2025
7617c46
Move user info to open directory
almenscorner Dec 12, 2025
2316f93
Add delay before showing info help
almenscorner Dec 12, 2025
9e059af
Keep track of current running Jamf app updates
almenscorner Dec 12, 2025
831a8dd
Add localized string for installed applications message
almenscorner Dec 12, 2025
ac3d72e
Increase line limit for update names and add minimum scale factor for…
almenscorner Dec 12, 2025
ea0ca7b
Rename AppStorage key for debug logging
almenscorner Dec 12, 2025
f7e3bda
Version bump
almenscorner Dec 12, 2025
5b06871
Merge branch 'dev' into support-more-intune
almenscorner Dec 12, 2025
fed8940
Sync readme with upstream
almenscorner Dec 12, 2025
f2acc62
Merge pull request #79 from Actu4l-Human/support-more-intune
almenscorner Dec 12, 2025
5734863
Bump version
almenscorner Dec 12, 2025
a5c228e
Improve support button visibility checks in ActionsCard and TrayMenu
almenscorner Mar 16, 2026
98c889f
Refactor: code quality improvements across codebase
almenscorner Mar 17, 2026
976d008
Adopt Swift structured concurrency and add SSID/badge features
almenscorner Mar 18, 2026
8e32796
remove commented-out code across multiple files for improved code cla…
almenscorner Mar 18, 2026
426aa69
Fix XPC code signing requirement string for debug builds
almenscorner Mar 19, 2026
ef7934d
Fix NWPathMonitor reuse after stop by reinitializing on startMonitoring
almenscorner Mar 19, 2026
6dff6ed
Add Background Security Improvement support
almenscorner Mar 19, 2026
8148050
Fix naming conventions and typos across codebase
almenscorner Mar 19, 2026
7ab0193
Fix typo in localized string for privileged session message
almenscorner Mar 19, 2026
66e3073
Update changelog
almenscorner Mar 19, 2026
06cf398
Merge pull request #81 from macadmins/code-quality
almenscorner Mar 19, 2026
4d83075
Change command execution to use privileged method in getLastCheckIn a…
almenscorner Mar 24, 2026
143de17
Refactor sidebar item generation to safely unwrap URLs for Company Po…
almenscorner Mar 24, 2026
4324d82
Merge pull request #82 from macadmins/code-quality
almenscorner Mar 24, 2026
83e57d7
Fix view model and web view lifecycle issues
almenscorner Sep 17, 2026
ec7c1d7
Keep tray popover open when app activation changes on macOS 27
almenscorner Sep 17, 2026
5f8c092
Only honor privileged settings from administrator-managed preferences
almenscorner Sep 17, 2026
f099975
Fix command execution hangs and broken quoting
almenscorner Sep 17, 2026
793a642
Run Jamf patches as the current user instead of hardcoded UID 504
almenscorner Sep 17, 2026
edd8007
Use 4-space indentation instead of tabs in Swift sources
almenscorner Sep 17, 2026
bbb080e
Fix typos in HelperConstants and ElevationCard file names
almenscorner Sep 17, 2026
a5d910d
Share process running code between the app, helper, and CLI
almenscorner Sep 17, 2026
ae6b241
Route MDM-specific behavior through the active updates manager
almenscorner Sep 17, 2026
ab16b2b
Check hidden cards against config keys instead of localized titles
almenscorner Sep 17, 2026
58f60f4
Move top-level source files into App, Preferences, and Services folders
almenscorner Sep 17, 2026
7ad114b
Fix battery health, temperature, and time to full on macOS 27
almenscorner Sep 17, 2026
181ca04
Restore Due by translation in the pending updates list
almenscorner Sep 17, 2026
7c061c7
Migrate from ObservableObject to the Observation framework
almenscorner Sep 17, 2026
f59c7cf
Render the patch progress wave with Core Animation
almenscorner Sep 17, 2026
5f0a453
Fix mode detection stopping before a mode is chosen
almenscorner Sep 17, 2026
fb40cf0
Add Fleet device API client and Fleet mode detection
almenscorner Sep 17, 2026
d0ebd96
Add a unit test target with Fleet model tests
almenscorner Sep 17, 2026
b06b226
Find the MDM enrollment date by payload type instead of profile name
almenscorner Sep 17, 2026
66b74dd
Match the MDM server by host during mode detection
almenscorner Sep 17, 2026
72900d4
Read the Fleet server URL from fleetd's configuration profile
almenscorner Sep 17, 2026
06db43e
Add the Fleet self-service app catalog
almenscorner Sep 17, 2026
0391fa7
Show Fleet updates in the Home cards and update notifications
almenscorner Sep 17, 2026
c5f6d6b
Add Fleet device compliance and host details
almenscorner Sep 17, 2026
9d3ec8a
Handle Fleet installs blocked by an open app, and add notification ac…
almenscorner Sep 17, 2026
ad0237b
Add Fleet mode to the changelog
almenscorner Sep 17, 2026
b98f9cf
Merge pull request #85 from macadmins/code-quality
almenscorner Sep 17, 2026
21a60be
Merge pull request #86 from macadmins/fleet
almenscorner Sep 17, 2026
3a72a10
bump version
almenscorner Sep 17, 2026
86cc045
Bump version to 3.0.0 and update the changelog
almenscorner Sep 17, 2026
886b89b
Fix the release build with Xcode 26
almenscorner Sep 17, 2026
9453e91
Fix the Fleet app card build with Xcode 26
almenscorner Sep 17, 2026
bfe14f5
Give Fleet compliance its own page and tighten the Apps catalog
almenscorner Sep 18, 2026
318d483
Only report Jamf patches for apps that are installed
almenscorner Sep 18, 2026
058920d
Flatten the app icon to a solid violet and rewrite the README intro
almenscorner Sep 18, 2026
815b16e
Fix the crash when opening a web page in the sidebar
almenscorner Sep 21, 2026
a34858e
Encode action names in the CLI's supportcompanion:// URLs
almenscorner Sep 21, 2026
aede185
Move privileged policy enforcement into the helper
almenscorner Sep 21, 2026
4e997bd
Group the Fleet app card's version rows with the title
almenscorner Sep 21, 2026
907f878
Add the English strings for the Fleet pages
almenscorner Sep 21, 2026
1b8483d
Handle action execution errors in ScCardCompactButton and ensure runn…
almenscorner Sep 22, 2026
935015b
Add timer in menu bar for elevation
almenscorner Sep 22, 2026
c9db293
Add in-app Fleet Desktop SSO sign-in
almenscorner Sep 25, 2026
2930e25
Add user installs with a privileged installer policy
almenscorner Sep 25, 2026
44e4275
Translate the remaining strings, tint the progress wave, tidy the sid…
almenscorner Sep 25, 2026
ede81e7
Merge pull request #87 from macadmins/install-control
almenscorner Sep 25, 2026
5a42ec0
Refactor helper installation logic to prioritize device-scoped config…
almenscorner Sep 25, 2026
0d00091
Update changelog for version 3.0.0: revise breaking changes and enhan…
almenscorner Sep 25, 2026
435af6a
Add translations for various UI strings in German, French, Japanese, …
almenscorner Sep 25, 2026
68fcee8
Report Jamf patches against the policy that installed the app
almenscorner Sep 25, 2026
597ad51
Group the Apps page by updates, and make it searchable
almenscorner Sep 25, 2026
84c51da
Sign the app with the hardened runtime, and keep the tests loadable
almenscorner Sep 25, 2026
09482e7
Replace app icon in README
almenscorner Sep 25, 2026
903c56f
Keep the reason window's close delegate alive
almenscorner Sep 28, 2026
b5c64eb
Run the tests in CI, and tag releases at the commit they were built from
almenscorner Sep 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions .github/workflows/build_supportcompanion.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,23 @@ jobs:
with:
fetch-depth: 0

- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_26.6.app

- name: Run tests
# Signed ad hoc on purpose. The Debug configuration expects a Developer ID certificate
# the runner does not have, and the tests need none. Debug is also the only configuration
# that relaxes library validation, without which the hardened runtime refuses to load an
# ad-hoc signed test bundle into the app.
run: |
xcodebuild test \
-project SupportCompanion.xcodeproj \
-scheme SupportCompanion \
-configuration Debug \
-destination 'platform=macOS' \
CODE_SIGN_IDENTITY=- \
DEVELOPMENT_TEAM=

- name: Install Apple Xcode certificates
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
with:
Expand Down Expand Up @@ -72,6 +89,7 @@ jobs:
with:
name: SupportCompanion ${{env.SC_VERSION}}
tag_name: v${{env.SC_VERSION}}
target_commitish: ${{ github.sha }}
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/build_supportcompanion_manual.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,23 @@ jobs:
with:
fetch-depth: 0

- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_26.6.app

- name: Run tests
# Signed ad hoc on purpose. The Debug configuration expects a Developer ID certificate
# the runner does not have, and the tests need none. Debug is also the only configuration
# that relaxes library validation, without which the hardened runtime refuses to load an
# ad-hoc signed test bundle into the app.
run: |
xcodebuild test \
-project SupportCompanion.xcodeproj \
-scheme SupportCompanion \
-configuration Debug \
-destination 'platform=macOS' \
CODE_SIGN_IDENTITY=- \
DEVELOPMENT_TEAM=

- name: Install Apple Xcode certificates
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
with:
Expand Down Expand Up @@ -63,6 +80,7 @@ jobs:
with:
name: SupportCompanion ${{env.SC_VERSION}}
tag_name: v${{env.SC_VERSION}}
target_commitish: ${{ github.sha }}
draft: false
prerelease: false
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/build_supportcompanion_prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,23 @@ jobs:
with:
fetch-depth: 0

- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_26.6.app

- name: Run tests
# Signed ad hoc on purpose. The Debug configuration expects a Developer ID certificate
# the runner does not have, and the tests need none. Debug is also the only configuration
# that relaxes library validation, without which the hardened runtime refuses to load an
# ad-hoc signed test bundle into the app.
run: |
xcodebuild test \
-project SupportCompanion.xcodeproj \
-scheme SupportCompanion \
-configuration Debug \
-destination 'platform=macOS' \
CODE_SIGN_IDENTITY=- \
DEVELOPMENT_TEAM=

- name: Install Apple Xcode certificates
uses: apple-actions/import-codesign-certs@8f3fb608891dd2244cdab3d69cd68c0d37a7fe93 # v2.0.0
with:
Expand Down Expand Up @@ -63,6 +80,7 @@ jobs:
with:
name: SupportCompanion ${{env.SC_VERSION}}
tag_name: v${{env.SC_VERSION}}
target_commitish: ${{ github.sha }}
draft: false
prerelease: true
token: ${{ secrets.GITHUB_TOKEN }}
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,4 +46,5 @@ __pycache__/
build/
release/
.build/
buildServer.json
buildServer.json
.compile
17 changes: 10 additions & 7 deletions AppIcon.icon/icon.json
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
{
"fill" : {
"linear-gradient" : [
"extended-srgb:0.68627,0.32157,0.87059,1.00000",
"extended-srgb:0.00000,0.47843,1.00000,1.00000"
]
"solid" : "srgb:0.43137,0.29412,0.96078,1.00000"
},
"groups" : [
{
"blend-mode-specializations" : [
{
"value" : "overlay"
"value" : "normal"
},
{
"appearance" : "dark",
Expand All @@ -25,20 +22,25 @@
{
"blend-mode-specializations" : [
{
"value" : "normal"
"value" : "lighten"
},
{
"appearance" : "tinted",
"value" : "normal"
}
],
"fill-specializations" : [
{
"value" : {
"solid" : "extended-gray:1.00000,1.00000"
}
},
{
"appearance" : "tinted",
"value" : "automatic"
}
],
"glass" : true,
"glass" : false,
"hidden" : false,
"image-name" : "support_agent_800dp_E3E3E3_FILL0_wght400_GRAD0_opsz48.png",
"name" : "support_agent_800dp_E3E3E3_FILL0_wght400_GRAD0_opsz48",
Expand Down Expand Up @@ -78,6 +80,7 @@
"kind" : "neutral",
"opacity" : 0.5
},
"specular" : true,
"translucency" : {
"enabled" : false,
"value" : 0.5
Expand Down
Loading
Loading