Skip to content

fix: resolve plugin system tech debt across 6 areas#219

Merged
datlechin merged 2 commits intomainfrom
fix/plugin-system-tech-debt
Mar 9, 2026
Merged

fix: resolve plugin system tech debt across 6 areas#219
datlechin merged 2 commits intomainfrom
fix/plugin-system-tech-debt

Conversation

@datlechin
Copy link
Copy Markdown
Collaborator

Summary

  • Team ID placeholder: replaced "YOURTEAMID" with actual team ID D7HJ5TFYCU so sideloaded plugin signature verification works
  • Bundle.unload() unreliable: added needsRestart flag and restart recommendation banner in Settings > Plugins after uninstalling a plugin
  • No hot-reload notification: added pluginStateDidChange notification posted when plugins are enabled/disabled, so other parts of the app can react
  • executeParameterized unsafe: rewrote default implementation with single-pass parser that skips ? inside quoted strings and escapes backslashes
  • No dependency resolution: added dependencies: [String] to TableProPlugin protocol (default []) with load-time validation that logs warnings for missing/disabled dependencies
  • Capabilities not enforced: registration now gated on declared capabilities with bidirectional mismatch warnings (plugin declares capability but doesn't conform, or conforms but doesn't declare)

Test plan

  • Verify existing plugins still load and register correctly (all 8 drivers + 5 exporters)
  • Toggle a plugin off/on in Settings > Plugins — confirm pluginStateDidChange fires
  • Uninstall a user plugin — confirm restart banner appears
  • Check Console.app for capability validation warnings (should be none for built-in plugins)
  • Run swiftlint lint --strict on changed files — 0 violations

@datlechin datlechin merged commit 08228d6 into main Mar 9, 2026
2 checks passed
@datlechin datlechin deleted the fix/plugin-system-tech-debt branch March 9, 2026 05:05
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