Expose plugin_persist storage in plugin v3 API

XMLWordPrintable

    • Type: New Feature
    • Resolution: Fixed
    • Priority: Normal
    • 3.0.0b9
    • Affects Version/s: None
    • Component/s: Plugins API
    • None

      Plugins currently have no official way to store volatile per-machine data (window positions, dialog geometry, last-used directory paths, dismissed warning flags, UI state).

      Today a plugin must either:
        
       - Use plugin_config — but this participates in profiles and gets synced, which is overkill for transient UI state
       - Reach into global_config.persist — undocumented, pollutes the global persist namespace, no isolation between plugins

      Proposal:
        
      Add api.plugin_persist to the plugin v3 API — a plain ConfigSection (no profile participation) namespaced under [plugin_persist.<uuid>],  with the same register_option() / [] access pattern as plugin_config:
        

        def enable(api):
            api.plugin_persist.register_option('last_directory', '')
            api.plugin_persist.register_option('dialog_dismissed', False)
        
            api.plugin_persist['last_directory'] = '/home/user/music'
            last_dir = api.plugin_persist['last_directory']

      This gives plugins a clean separation:
        

      • plugin_config: user-configurable settings (profile-aware, synced)
      • plugin_persist: volatile per-machine state (no profiles, disposable)
          
        Data in plugin_persist may be cleared during major version upgrades (same semantics as core persist).

            Assignee:
            Zas
            Reporter:
            Zas
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:

                Version Package
                3.0.0b9