Skip to content

feat(plugins): update installed registry plugins after TablePro updates - #3507

Merged
datlechin merged 6 commits into
mainfrom
feat/plugin-update-pass
Oct 18, 2026
Merged

datlechin merged 6 commits into
mainfrom
feat/plugin-update-pass

Conversation

@datlechin

@datlechin datlechin commented Oct 18, 2026 •

Copy link
Copy Markdown
Member

Why

Registry plugins only updated when someone clicked Update, and Activate Now kept running the old build: a loaded Swift bundle cannot be unloaded, and Bundle(url:) returns the cached instance for the same path.

Change

  • After a TablePro update, user-installed registry plugins older than the app update by themselves. A rejected plugin installs and loads at once; a loaded one downloads to PluginStaging/Updates/<id> and is swapped in at the next launch, before discovery.
  • The row reads "Updates when TablePro restarts" until then. A file installed over a registry plugin stages the same way and drops its registry sidecar.
  • No newer build yet retries at 30 s, 300 s, 600 s, 5 attempts. Debug builds never run the pass. A connection waits only for the pass's rejected-plugin repairs.
  • Removed the update badge, Update, Activate Now, On Quit, the network monitor and PluginManager.init's unused userDefaults.

Verified

PluginRegistryUpdatePassTests, renamed from PluginManagerReconciliationTests, runs the pass against a stubbed manifest and installer. Changed on purpose: DebugUpdateGateTests (no network monitor), and ensurePluginReadyNoopForUnknownType dropped (a no-op in Debug). Deleted with their code: PluginInstallTrackerStagedTests, PluginInstallerCoalescingTests, the PluginBundleVersionTests hot-swap and bundleShortVersion cases.

Not in this PR

@datlechin
datlechin marked this pull request as ready for review October 18, 2026 08:48
@datlechin
datlechin merged commit 2996dc2 into main Oct 18, 2026
8 checks passed
@datlechin
datlechin deleted the feat/plugin-update-pass branch October 18, 2026 08:58
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