Skip to content

Handle apps updated after being managed gracefully - #13

Merged
hewigovens merged 2 commits into
mainfrom
handle-updated-managed-apps
Jun 8, 2026
Merged

Handle apps updated after being managed gracefully#13
hewigovens merged 2 commits into
mainfrom
handle-updated-managed-apps

Conversation

@hewigovens

@hewigovens hewigovens commented Jun 6, 2026

Copy link
Copy Markdown
Owner

Detect when an app update, flag it as requiring a re-add across the GUI, status bar, and CLI, and offer a one-click re-add that refreshes the binary backup instead of restoring a stale one. Restore/remove now discard the old backup rather than overwriting a newer binary.

Also:

  • Cache ghosthide checks by file identity and memory-map the read-only check so snapshot refreshes don't repeatedly read large binaries on the main thread.
  • Store and surface the managed app version in the UI.
  • Make the backup refresh atomic via replaceItemAt.
  • Serialize config-dependent tests with a semaphore (safe to signal across threads) and add AppRestoreManager coverage.

Bump version to 2.0.9 (26).

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 622ee8e602

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Sources/GhostTileApp/Services/AppActions/AppOperations.swift Outdated
Comment thread Sources/GhostTileCore/AppRestoreManager.swift Outdated
@hewigovens
hewigovens force-pushed the handle-updated-managed-apps branch 4 times, most recently from 37fd23e to f54a149 Compare June 6, 2026 08:53
@hewigovens
hewigovens marked this pull request as draft June 7, 2026 00:08
@hewigovens
hewigovens force-pushed the handle-updated-managed-apps branch from f54a149 to 908ecd8 Compare June 7, 2026 00:09
@hewigovens
hewigovens marked this pull request as ready for review June 7, 2026 00:13

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 908ecd8ad2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Sources/ghosttile/ManagePrepareCommands.swift Outdated
@hewigovens
hewigovens force-pushed the handle-updated-managed-apps branch from 908ecd8 to 0d6f1ad Compare June 7, 2026 00:24
…ymlink

- On launch, silently refresh an already-installed ~/.local/bin CLI when it differs
  from the app's bundled CLI (byte comparison, so any change is detected); no-op when
  the CLI isn't installed.
- Show a Dock 'βeta' badge in DEBUG builds (follows ../jayjay's DebugBadge).
- 'just run' symlinks ./GhostTile.app to the debug build it launches; .gitignore
  ignores the symlink as well as the build directory.
@hewigovens
hewigovens force-pushed the handle-updated-managed-apps branch from 0d6f1ad to e8aebce Compare June 7, 2026 12:16
When an app update strips GhostTile's Mach-O patch, detect it and offer a one-click
re-add across the GUI, status bar, and CLI; refresh the backup so a later restore
can't overwrite the updated binary, and discard stale backups / orphaned dylibs
instead of restoring the wrong version.

Block App Store apps that declare com.apple.security.application-groups (macOS Tahoe's
AMFI kills them once re-signed) with an explicit 'Manage Anyway' override that strips
the identity/sandbox entitlements and runs the app unsandboxed. Risk-tinted prompts:
blue Continue Anyway (warnings), orange Manage Anyway (unsandbox), red Remove
(destructive); system-extension apps stay a hard block.

Also: extract GhosthidePatch (file-identity cache + mmap), show the managed app
version, bundle prepare flags into PrepareOptions, and run the sudo command in one
Terminal window with a close hint.

Bump version to 2.0.9 (26).
@hewigovens
hewigovens force-pushed the handle-updated-managed-apps branch from e8aebce to 50106a0 Compare June 8, 2026 01:59
@hewigovens
hewigovens merged commit ec83e6a into main Jun 8, 2026
1 check passed
@hewigovens
hewigovens deleted the handle-updated-managed-apps branch June 8, 2026 02:25
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.

1 participant