fix(plugins): close LA5 ownership races
This commit is contained in:
parent
fbe9c8a288
commit
f820eb258d
14 changed files with 467 additions and 107 deletions
|
|
@ -155,7 +155,11 @@ Field rules:
|
|||
for gui/guiSelect/probe.
|
||||
- `credential`: always `{ "provider": "standardInput", "reference":
|
||||
"session" }` for launcher-composed configs.
|
||||
- `plugins`/`loginCommands`/`loginCommandDelayMs`/`statusFile`: optional,
|
||||
- `plugins`: absent/null means load all discovered plugins (preserving the
|
||||
developer flow); explicit `[]` means load none. Launcher-composed
|
||||
normal-empty and probe sessions emit `[]` so they cannot load arbitrary
|
||||
machine-local plugins.
|
||||
- `loginCommands`/`loginCommandDelayMs`/`statusFile`: optional,
|
||||
omitted-when-unset (never null, never `[]` for empty). Absent
|
||||
`loginCommandDelayMs` means 500.
|
||||
|
||||
|
|
@ -297,7 +301,9 @@ are backed by Core-owned types already; only `Ui` (`BufferedUiRegistry`) is
|
|||
genuinely App-only. Headless has zero plugin hosting today (confirmed).
|
||||
|
||||
1. Session-config `Plugins` allow-list filters the discovery result on BOTH
|
||||
hosts (absent list = load all, preserving today's dev behavior).
|
||||
hosts (absent/null list = load all, preserving today's dev behavior;
|
||||
explicit `[]` = load none). Launcher-composed normal-empty and probe
|
||||
sessions emit `[]`.
|
||||
2. `HeadlessPluginHost : IPluginHost` in Headless over the same Core-owned
|
||||
`State`/`Events`/`Selection`; `Ui` is an explicit no-op behind a new
|
||||
capability flag on `IPluginHost` (e.g. `HasUi`) so plugins can detect
|
||||
|
|
|
|||
|
|
@ -168,7 +168,9 @@ Hand-editability is a property of the format, not a required workflow.
|
|||
`HeadlessConfiguration` shape extended with:
|
||||
|
||||
- `Plugins: string[]` — plugin names to load from the standard
|
||||
`PluginsDirectory`; hosts load exactly this set.
|
||||
`PluginsDirectory`; absent/null loads all discovered plugins, while an
|
||||
explicit empty array loads none. Launcher-composed normal-empty and probe
|
||||
sessions emit the empty array.
|
||||
- `LoginCommands: string[]` — ordered chat-typed strings.
|
||||
- Graphical host: `Character` selector may be ABSENT → character-select
|
||||
screen instead of auto-enter.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue