mirror of
https://github.com/penpot/penpot.git
synced 2026-06-19 22:02:03 +00:00
* 🐛 Fix race condition between MCP init and plugin runtime Add promise-based synchronization to ensure MCP initialization waits for plugin runtime to be ready before calling global.ɵloadPlugin. - Add runtime-ready-promise in app.plugins that resolves when init-plugins-runtime completes - Add wait-for-runtime function for other modules to await readiness - MCP init now waits for runtime via rx/from before starting plugin - Add defensive guards in start-plugin!, load-plugin!, close-plugin! to check if plugin APIs exist before calling - Rename init-plugins-runtime! to init-plugins-runtime Fixes: global.ɵloadPlugin is not a function error when MCP plugin starts before async plugin runtime initialization completes. * 📎 Add 'create-pr' opencode skill
29 lines
859 B
Clojure
29 lines
859 B
Clojure
;; This Source Code Form is subject to the terms of the Mozilla Public
|
|
;; License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
;;
|
|
;; Copyright (c) KALEIDOS INC Sucursal en España SL
|
|
|
|
;; This namespace is only to export the functions for toggle features
|
|
(ns features
|
|
(:require
|
|
[app.main.features :as features]
|
|
[app.main.store :as st]
|
|
[app.plugins :as plugins]
|
|
[app.util.timers :as tm]))
|
|
|
|
(defn ^:export grid []
|
|
(tm/schedule-on-idle #(st/emit! (features/toggle-feature "layout/grid")))
|
|
nil)
|
|
|
|
(defn ^:export get-enabled []
|
|
(clj->js features/global-enabled-features))
|
|
|
|
(defn ^:export get-team-enabled []
|
|
(clj->js (get @st/state :features)))
|
|
|
|
(defn ^:export plugins []
|
|
(st/emit! (features/enable-feature "plugins/runtime"))
|
|
(plugins/init-plugins-runtime)
|
|
nil)
|