* feat(plugins): unify source installation and simplify plugin settings * feat(plugins): install npm sources and review CLI updates Treat install selectors as one-time choices. Keep source identity separate from the installed revision, and resolve ordinary updates from the current upstream default. npm only acquires directories; plugin loading remains independent of npm. * fix(plugins): preserve CLI diagnostics and exercise reviewed updates Move new source capability coverage to real browser journeys. Update the requirements regression to exercise preview and apply, and preserve the existing duplicate-selector diagnostic across positional option scopes. * test(plugins): remove unused pending helper * test(plugins): pack registry fixtures with the Windows command runner * test(plugins): assert failed client contribution setup * docs(plugins): consolidate guides and document npm publishing * docs(plugins): introduce publishing choices before npm instructions * test(plugins): own browser journey cleanup in a fixture * feat(plugins): prepare scaffolded packages for publishing
1.4 KiB
Lifecycle logger
Registers all eleven server lifecycle hooks and logs their data as JSON. It observes agent creation, session opening, turns, permissions, archive, and workspace creation/archive. Before hooks return the request unchanged. Environment values are redacted; prompts and timeline content are logged.
Install it on a daemon where plugins are enabled:
paseo plugin install /absolute/path/to/plugin-examples/lifecycle-logger
paseo plugin logs lifecycle-logger
The same entries appear in the target daemon's daemon.log. The plugin log viewer retains a bounded
tail; use the daemon log for longer captures. Log lines are capped at 16 KiB, so a large timeline can
be truncated.
See the lifecycle reference for callback
shapes and delivery rules. The real-provider test in
packages/server/src/server/plugins/lifecycle.real.e2e.test.ts runs both examples on an isolated daemon
and saves evidence under .dev/lifecycle-proof/.
Run it from packages/server on Linux with Claude configured:
npx vitest run src/server/plugins/lifecycle.real.e2e.test.ts --bail=1
The test uses real provider calls and a temporary daemon home. Its failure check uses Linux /proc
to identify and terminate only its own Claude subprocess. The credits check asks the real agent to
emit the matching phrase; it does not exhaust an account's credits.