teknium1
ad5c8e336e
fix: plugin host review findings (async ctx, caller session, restarts, per-profile dashboard)
...
Independent review of the plugin host found eight defects; each is fixed here and
the reproducible ones are covered by two new invariant tests (red on the previous
head, green now).
- Async plugin code: `await ctx.<facade>.<async method>` works (the facade probe
reports coroutine methods and the host returns a coroutine function), and ctx
calls made from coroutines keep the caller's session. The wire origin is now a
ContextVar carried onto host event-loop tasks, and the host's fallback context
starts empty instead of copying whichever caller created the host.
- Memory / context-engine / cron providers survive a host crash: proxies record
the host generation, and a category proxy reloads its plugin into the new host
on next use (bounded by the same restart budget). A proxy from an earlier host
can no longer address a recycled object id.
- Hosted provider objects no longer leak: the host imports a category plugin's
module once and drops objects whose Hermes proxies were collected.
- Every public attribute of a hosted object is read live (class-level defaults
included), and attributes Hermes assigns reach the plugin's object unless they
hold a live handle.
- A user memory provider's config_schema.py runs in the plugin host.
- Dashboard plugin APIs resolve the plugin in the requesting profile (its copy,
its plugins.enabled, its host) and keep repeated headers such as Set-Cookie.
- platform_actions coroutines run on the gateway loop their adapters use.
- Each incoming request gets its own thread (no pool exhaustion under nested
callbacks); a late close from a replaced host no longer triggers a reload; the
model-provider extraction cache is keyed by full path.
2026-10-03 10:15:11 -07:00
..
2026-10-02 01:05:58 +05:30
2026-10-03 02:25:26 -07:00
2026-10-02 13:21:56 -04:00
2026-10-03 16:29:17 +05:30
2026-10-03 16:36:00 +05:30
2026-10-03 21:15:17 +05:30
2026-09-29 20:57:17 -05:00
2026-09-29 14:36:55 +05:30
2026-09-29 16:47:48 +05:30
2026-10-02 04:39:28 -07:00
2026-10-02 02:31:03 +05:30
2026-09-28 10:21:41 -07:00
2026-09-29 20:24:19 -04:00
2026-09-29 07:44:13 +00:00
2026-09-28 03:37:09 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 12:43:03 -07:00
2026-09-29 18:47:44 -05:00
2026-10-03 16:30:59 +05:30
2026-09-29 20:24:19 -04:00
2026-10-03 16:30:59 +05:30
2026-10-03 16:30:59 +05:30
2026-09-29 07:44:13 +00:00
2026-10-01 01:50:16 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 23:54:34 +05:30
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-02 18:35:45 -05:00
2026-10-03 16:30:59 +05:30
2026-09-29 23:54:34 +05:30
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-02 22:47:50 -04:00
2026-10-01 13:23:12 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-03 19:21:54 +05:30
2026-09-30 14:23:52 -05:00
2026-09-30 22:30:35 -04:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-01 13:23:12 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 14:16:18 -07:00
2026-10-02 13:34:54 +05:30
2026-09-28 14:16:18 -07:00
2026-10-03 20:44:07 +05:30
2026-09-29 20:34:45 +05:30
2026-10-03 10:15:11 -07:00
2026-09-28 02:00:41 -07:00
2026-09-28 14:16:18 -07:00
2026-09-28 13:08:49 -07:00
2026-10-03 16:31:09 +05:30
2026-10-02 01:02:00 +05:30
2026-10-03 19:21:54 +05:30
2026-09-28 04:04:23 -07:00
2026-09-29 20:24:19 -04:00
2026-10-02 20:29:53 -05:00
2026-09-30 23:10:24 -05:00
2026-09-28 10:21:41 -07:00
2026-10-03 19:51:54 +05:30
2026-10-03 21:15:17 +05:30
2026-10-03 21:15:17 +05:30
2026-09-29 19:49:52 -05:00
2026-10-03 21:15:17 +05:30
2026-09-28 10:21:41 -07:00
2026-09-29 20:24:19 -04:00
2026-09-28 10:21:41 -07:00
2026-09-28 06:42:00 -07:00
2026-10-02 04:39:28 -07:00
2026-10-02 04:39:28 -07:00
2026-09-29 12:16:43 -04:00
2026-10-03 21:15:17 +05:30
2026-10-02 01:02:00 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 07:44:13 +00:00
2026-09-28 04:04:23 -07:00
2026-09-28 13:30:57 -07:00
2026-09-28 13:30:57 -07:00
2026-10-03 16:26:38 +05:30
2026-10-02 14:17:41 -07:00
2026-10-03 20:44:07 +05:30
2026-09-29 18:09:20 -05:00
2026-10-02 20:51:34 +00:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:43:03 -07:00
2026-10-01 04:50:26 -05:00
2026-10-02 22:58:26 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-10-03 16:31:23 +05:30
2026-10-02 22:21:27 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 16:31:23 +05:30
2026-09-28 03:37:09 -07:00
2026-09-28 03:37:09 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 12:24:52 -05:00
2026-09-29 21:48:25 -05:00
2026-09-28 04:44:29 -07:00
2026-10-02 23:30:18 +05:30
2026-09-28 06:42:00 -07:00
2026-09-29 15:45:52 +05:30
2026-09-28 14:16:18 -07:00
2026-10-03 19:51:54 +05:30
2026-09-28 12:43:03 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-02 04:39:28 -07:00
2026-10-02 04:39:28 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 05:37:55 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 12:43:03 -07:00
2026-10-02 21:43:17 -05:00
2026-09-29 12:55:46 -07:00
2026-10-02 22:40:31 -05:00
2026-10-02 20:24:37 -05:00
2026-10-02 22:58:26 -05:00
2026-10-02 21:43:17 -05:00
2026-10-01 23:55:54 +05:30
2026-09-28 10:21:41 -07:00
2026-10-01 16:22:28 +05:30
2026-09-28 10:21:41 -07:00
2026-09-29 18:33:44 +05:30
2026-09-28 10:21:41 -07:00
2026-10-01 10:46:45 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 10:15:11 -07:00
2026-09-28 12:43:03 -07:00
2026-10-01 12:41:57 -07:00
2026-10-01 12:41:57 -07:00
2026-09-28 14:16:18 -07:00
2026-10-03 10:15:11 -07:00
2026-09-28 14:16:18 -07:00
2026-10-03 10:15:11 -07:00
2026-10-02 04:09:57 -07:00
2026-10-03 10:15:11 -07:00
2026-10-02 03:40:17 -07:00
2026-09-28 09:22:11 -07:00
2026-10-03 10:15:11 -07:00
2026-09-28 14:16:18 -07:00
2026-10-02 04:09:57 -07:00
2026-09-29 22:57:48 -04:00
2026-10-01 16:22:28 +05:30
2026-10-01 22:35:29 -07:00
2026-09-27 21:29:39 -07:00
2026-09-29 20:24:19 -04:00
2026-10-02 01:29:41 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 16:29:29 +05:30
2026-09-28 04:04:23 -07:00
2026-10-03 19:02:12 +05:30
2026-09-29 20:57:57 -05:00
2026-10-02 14:37:54 +05:30
2026-10-02 14:37:54 +05:30
2026-09-28 12:43:03 -07:00
2026-10-03 16:30:27 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 04:44:29 -07:00
2026-09-28 03:34:07 -07:00
2026-09-28 10:21:41 -07:00
2026-10-03 19:21:54 +05:30
2026-09-28 15:54:01 +05:30
2026-09-28 21:03:09 -04:00
2026-09-27 20:49:04 +05:30
2026-10-03 19:21:54 +05:30
2026-09-28 08:33:43 +00:00
2026-09-28 12:43:03 -07:00
2026-09-28 12:33:01 -07:00
2026-10-02 02:58:18 +05:30
2026-09-30 21:15:08 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-10-02 23:30:18 +05:30
2026-09-28 21:02:35 -04:00
2026-10-01 00:15:05 -05:00
2026-10-01 22:35:29 -07:00
2026-09-28 10:21:41 -07:00
2026-09-29 15:28:19 -05:00
2026-10-01 22:03:11 -07:00
2026-10-01 22:27:03 -07:00
2026-09-28 19:02:20 +05:30
2026-09-28 10:21:41 -07:00
2026-09-28 14:16:18 -07:00
2026-09-27 23:53:40 -07:00
2026-10-02 21:23:30 -05:00
2026-10-03 16:29:54 +05:30
2026-10-02 18:06:40 +00:00
2026-09-27 14:09:15 -05:00
2026-10-02 11:41:19 -07:00
2026-09-29 20:58:24 -05:00
2026-09-29 21:50:16 -05:00
2026-09-29 18:49:58 -05:00
2026-09-28 10:21:41 -07:00
2026-09-28 05:33:25 -07:00
2026-09-28 04:44:29 -07:00
2026-09-28 12:43:03 -07:00
2026-10-02 11:41:19 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 04:44:29 -07:00
2026-09-29 21:50:16 -05:00
2026-09-29 20:58:59 -05:00
2026-09-28 05:33:25 -07:00
2026-09-28 21:02:29 -04:00
2026-09-27 14:09:15 -05:00
2026-10-01 22:35:29 -07:00
2026-09-28 12:43:03 -07:00
2026-09-28 10:21:41 -07:00
2026-09-28 16:23:22 +05:30
2026-09-29 11:40:36 -05:00
2026-10-03 16:54:59 +05:30
2026-10-02 04:39:28 -07:00
2026-10-03 10:15:11 -07:00
2026-10-03 12:08:23 -04:00
2026-09-28 12:18:58 -07:00
2026-09-29 19:06:35 -05:00
2026-10-01 23:27:08 -07:00
2026-09-28 12:18:58 -07:00
2026-10-03 19:51:54 +05:30
2026-09-28 12:18:58 -07:00
2026-10-03 19:51:54 +05:30
2026-10-03 19:51:54 +05:30
2026-10-02 02:54:18 +05:30
2026-09-28 10:21:41 -07:00
2026-10-02 10:42:07 -04:00
2026-10-02 10:42:07 -04:00
2026-10-03 22:03:44 +05:30
2026-10-03 22:03:44 +05:30