Add the close-out documentation for extension dialog support:
- docs/config.md (+ synchronized config.html): extensionDialogsTimeoutMs
in the config matrix, reload/restart guidance, the global config
example, and a new Extension dialogs key-detail section covering the
unattended-dialog safety valve (default 5 min, 0 = forever, effective
deadline is the sooner of the extension's own timeout and this knob).
- docs/plugins.md (+ synchronized plugins.html): new Pi extension
dialogs in PI WEB behavior note for extension authors — confirm/select/
input render inline in the transcript and resolve with the real answer,
answers use a dedicated daemon channel (never the prompt queue, so
tool_call hooks park safely), session_start dialogs are reachable
during create and open, reload rehydration, first-answer-wins across
tabs, abort/runtime-replacement settlement, and the reload-mid-startup
browser-local caveat.
- Add the extension-dialogs changeset (patch) for the release notes.
Rework the bundled Info plugin from a demo into an always-available
status view: running and installed versions, installation details,
release state, and per-service health rendered from host-provided
state, plus machine and workspace details. Replace the window.alert
demo action with a Copy PI WEB Diagnostics action that copies a
plain-text summary for bug reports.
Add state.selectedMachine to the stable plugin runtime state so
actions and other runtime callbacks can read the selected machine's
identity, and split the plugin into a copy-paste-friendly skeleton
(pi-web-plugin.ts) and replaceable internals (infoInternals.ts).
Relaxes the provider policy from 'global config only' to 'global sources':
providers registered by agent-dir (global) extensions are learned once at
daemon startup and allowed on the shared runtime; project-extension
registrations are still rejected with a session warning. Global extensions
load identically for every session, so their providers are daemon-consistent
and cannot leak project state (#76).
- Shim now allows allowlisted ids through and also covers Pi 0.81's native
provider path (registerNativeProvider), closing a bypass.
- Startup learning step loads only global extensions against a scratch cwd
and diffs the runtime's registered provider ids.
- Bumps @earendil-works/* dev/peer ranges to >=0.81.1 <0.82; adapts to the
Agent.streamFn -> streamFunction rename.
- Docs, changeset, unit and acceptance tests updated (global-extension allow
path, late re-registration a la pi-tensorx, native provider rule).