Expand description
The buffer-backed plugin boundary-trace views: plugin-trace-mode and the
:plugin-trace ex-command (PO.4).
A pure PROVIDER crate (the lattice-plugin-manager shape): it owns
plugin-trace-mode (major, read-only) + the :plugin-trace ex-command, and
reads the host’s PluginTracer (PO.1/PO.3) via the PluginTracerHandle
service at activation. Everything wires through the generic SubsystemBoot
seam, so adding it to the editor is one line in the host’s Phase-B install
list and zero host internals — no Editor:: method, no host Action
variant (the mode-ownership acid test).
Open flow, all generic primitives (no provider-specific host code):
:plugin-trace(registered here) returnsEffect::OpenSyntheticBuffer{ name: "*plugin-trace*", mode_id: "plugin-trace-mode" }.- The host generically ensures that buffer under
plugin-trace-mode+ activates it (Editor::open_synthetic_buffer). PluginTraceMode::on_activateseeds from the tracer ring + subscribes toPluginTracePushedfor the live tail (off-thread).
The per-plugin *plugin-trace:<name>* view + the :plugins manager t
drill-in land in PO.4.2; the live plugin.trace-level option in PO.4.3.
Design: docs/dev/architecture/plugin-observability.md §6.
Structs§
- Plugin
Trace Mode - The
*plugin-trace*/*plugin-trace:<name>*buffers’ major mode.
Constants§
- SHARED_
BUFFER_ NAME - The shared synthetic buffer name + the major mode that owns the trace views.
- TRACE_
MODE_ ID
Functions§
- format_
trace_ line - Format one record into a single line (no trailing newline — the drain joins
with
\n). - install
- Install the plugin-trace views: register
plugin-trace-mode+ the:plugin-traceex-command. Seated in the host’s Phase-B install list (before the registry freeze), so it registers directly viaboot.modes_mut()/boot.commands_mut(). - parse_
per_ plugin_ name - The plugin name inside a
*plugin-trace:<name>*buffer name, orNonefor the shared*plugin-trace*(or any non-trace name). Inverse ofper_plugin_buffer_name. - per_
plugin_ buffer_ name - The per-plugin buffer name for
plugin(*plugin-trace:<name>*) — the managertdrill-in target (PO.4.2). Single-sources the naming scheme withparse_per_plugin_nameso the manager (producer) and the mode (consumer) can’t drift.