feat: #61 Plugin system — backend API, sandboxed Web Worker, hooks wired to real app flow, user guide, 47+21 tests
CI / lint (push) Failing after 30s
CI / test (push) Skipped
CI / build (push) Skipped
CI / e2e (push) Skipped
CI / security (push) Successful in 35s
Desktop Build / build-windows (push) Canceled after 0s
Desktop Build / build-linux (push) Canceled after 0s

This commit is contained in:
2026-09-10 09:01:38 -04:00
parent ac16fc1f0e
commit 30f2df3004
19 changed files with 2436 additions and 41 deletions
+32 -2
View File
@@ -460,6 +460,7 @@
"config.section_watcher": "Auto sync",
"config.section_webhooks": "🔗 Webhooks",
"config.section_push": "🔔 Push notifications",
"config.section_plugins": "🧩 Plugins",
"config.section_workflow-recommande": "Recommended workflow",
"config.section_zone-de-contenu": "Zone de contenu",
"config.server_config": "Server config",
@@ -486,6 +487,8 @@
"config.webhook_url_placeholder": "URL",
"config.webhooks": "Webhooks",
"config.webhooks_desc": "HTTP notifications to external services on file changes.",
"config.plugins": "Plugins",
"config.plugins_desc": "Manage installed plugins for this vault.",
"config.workers_label": "Search workers",
"confirm.delete_dir": "Delete this folder and all its contents?",
"confirm.delete_dir_named": "Delete \"{path}\" and ALL its contents?",
@@ -1072,6 +1075,7 @@
"help.nav_tags": "🏷️ Tags",
"help.nav_tips": "💡 Tips",
"help.nav_webhooks": "🪝 Webhooks",
"help.nav_plugins": "🧩 Plugins",
"help.new_file": "New file",
"help.new_folder": "New folder",
"help.nights": "sleepless nights 😅",
@@ -1338,6 +1342,7 @@
"settings.search_placeholder": "Search...",
"settings.sync": "🔄 Sync",
"settings.themes": "🎨 Themes",
"settings.plugins": "🧩 Plugins",
"share.copied": "Link copied!",
"share.copy_link": "Copy link",
"share.create": "Create share link",
@@ -1614,5 +1619,30 @@
"mfa.webauthn_prompt": "Present your security key or confirm with Windows Hello.",
"mfa.webauthn_btn": "Verify with my key",
"mfa.webauthn_cancelled": "WebAuthn ceremony cancelled.",
"mfa.webauthn_no_key": "No security key registered for this account."
}
"mfa.webauthn_no_key": "No security key registered for this account.",
"plugins.title": "🧩 Plugins",
"plugins.description": "Extend ObsiGate with custom renderers, search filters, and editor actions.",
"plugins.install": "Install Plugin",
"plugins.template": "View Template",
"plugins.none": "No plugins installed.",
"plugins.manifest_json": "Manifest (plugin.json)",
"plugins.code": "Plugin Code (main file)",
"plugins.view_code": "View Code",
"plugins.uninstall": "Uninstall",
"plugins.enable": "Enable",
"plugins.disable": "Disable",
"plugins.enabled": "Plugin '{name}' enabled.",
"plugins.disabled": "Plugin '{name}' disabled.",
"plugins.installed": "Plugin '{name}' installed successfully.",
"plugins.uninstalled": "Plugin '{name}' uninstalled.",
"plugins.confirm_uninstall": "Uninstall plugin '{name}'? This cannot be undone.",
"help.plugins_title": "🧩 Plugins",
"help.plugins_intro": "ObsiGate supports a plugin system to extend its functionality. Plugins can add custom renderers, search filters, editor actions, and UI elements.",
"help.plugins_install": "Installation",
"help.plugins_manage": "Management",
"help.plugins_develop": "Development",
"help.plugins_dev_intro": "A plugin is a folder or ZIP containing:",
"help.plugins_hooks_desc": "Available hooks: <code>onFileRender</code>, <code>onSearchFilter</code>, <code>onEditorAction</code>, <code>onSidebarItem</code>, <code>onFileCreate</code>, <code>onFileDelete</code>, <code>onVaultMount</code>.",
"help.plugins_security": "<strong>Security:</strong> each plugin runs in an isolated Web Worker sandbox, with no DOM, localStorage, or network access unless explicitly granted via permissions.",
"help.plugins_template": "Use the <strong>Template</strong> button in Settings > Plugins to generate a valid starter plugin."
}