Juan Denis and Claude Opus 4.8
ffc1fd7728
feat(extensions): deliver runtime ESM frontends to production panels ( #39 )
...
Wire the server half of runtime-frontend delivery: get_active_contributions()
now emits panel sdk_version and a 'frontends' descriptor map {slug: {entry,
hashes, sdk_version}} for every active extension whose frontend_entry is a .mjs
ESM bundle. The bundle sha256 is pinned at install time into the plugin config
under the reserved _frontend_hashes key (no migration — reuses config_json);
update_plugin_config() and the config API preserve/hide reserved keys. Add the
extensions.runtime_frontend kill switch (default on). The client loader already
consumed this shape, so an installed extension's UI now renders on a pre-built
panel with no Vite rebuild. Un-skips the restored plan-25 recovery suites.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com >
2026-07-22 17:24:36 -04:00
..
2026-01-17 04:22:12 -05:00
2026-07-01 00:27:30 -04:00
2026-03-23 02:15:16 -04:00
2026-03-23 02:08:00 -04:00
2026-07-18 01:23:47 -04:00
2026-06-01 02:39:05 -04:00
2026-03-07 12:15:02 -05:00
2026-06-23 18:23:47 -04:00
2026-07-08 02:05:50 -04:00
2026-07-21 22:57:33 -04:00
2026-07-18 00:59:19 -04:00
2026-06-24 14:27:08 -04:00
2026-07-07 20:29:31 -04:00
2026-06-23 18:49:04 -04:00
2026-07-22 16:37:08 -04:00
2026-07-01 01:35:44 -04:00
2026-07-08 02:05:50 -04:00
2026-07-18 01:23:47 -04:00
2026-07-08 02:05:50 -04:00
2026-07-03 14:24:03 -04:00
2026-07-18 00:51:21 -04:00
2026-07-08 02:05:50 -04:00
2026-07-22 16:37:08 -04:00
2026-07-07 20:29:31 -04:00
2026-07-09 04:50:16 -04:00
2026-07-03 23:18:08 -04:00
2026-06-23 00:34:55 -04:00
2026-06-24 01:43:29 -04:00
2026-03-04 01:53:46 -05:00
2026-07-03 15:21:09 -04:00
2026-07-08 02:05:50 -04:00
2026-07-08 02:05:50 -04:00
2026-06-23 19:33:44 -04:00
2026-03-04 01:53:46 -05:00
2026-06-15 10:21:39 -04:00
2026-07-03 14:23:11 -04:00
2026-03-24 06:10:58 -04:00
2026-05-01 00:37:48 -04:00
2026-07-08 02:05:50 -04:00
2026-07-03 15:22:05 -04:00
2026-07-07 20:29:31 -04:00
2026-03-04 02:34:49 -05:00
2026-07-08 23:01:12 -04:00
2026-07-22 00:35:33 -04:00
2026-06-21 02:11:47 -04:00
2026-07-03 14:24:15 -04:00
2026-07-09 03:05:08 -04:00
2026-07-09 01:43:34 -04:00
2026-02-08 23:14:13 -05:00
2026-03-04 01:37:22 -05:00
2026-03-24 06:10:58 -04:00
2026-07-01 21:34:54 -04:00
2026-06-21 02:11:47 -04:00
2026-03-23 02:19:33 -04:00
2026-06-21 02:11:47 -04:00
2026-07-09 04:55:53 -04:00
2026-07-18 01:23:47 -04:00
2026-06-21 20:44:12 -04:00
2026-06-21 02:11:47 -04:00
2026-07-22 17:24:36 -04:00
2026-07-07 20:29:31 -04:00
2026-07-08 02:05:50 -04:00
2026-06-21 02:11:47 -04:00
2026-06-23 19:33:44 -04:00
2026-06-23 20:57:40 -04:00
2026-07-08 02:05:50 -04:00
2026-06-22 01:16:00 -04:00
2026-06-15 09:19:56 -04:00
2026-07-11 00:26:40 -04:00
2026-06-22 01:45:15 -04:00
2026-07-08 02:05:50 -04:00
2026-03-23 02:11:16 -04:00
2026-07-08 02:06:01 -04:00
2026-07-07 20:29:23 -04:00
2026-06-23 23:19:41 -04:00
2026-07-07 20:29:26 -04:00
2026-07-08 02:05:50 -04:00
2026-07-10 23:06:09 -04:00
2026-07-03 14:23:29 -04:00
2026-06-21 02:11:47 -04:00
2026-05-03 15:57:02 -04:00
2026-07-03 15:21:22 -04:00
2026-07-07 20:29:24 -04:00
2026-07-07 20:29:31 -04:00
2026-06-21 20:19:57 -04:00
2026-07-10 02:38:46 -04:00
2026-07-20 22:26:19 -04:00
2026-07-18 00:59:19 -04:00
2026-01-17 13:37:40 -05:00
2026-07-07 20:29:31 -04:00
2026-06-23 19:33:44 -04:00
2026-07-07 20:29:22 -04:00