#640 (#637) moves the framework state root of installed artifacts from <plugin root>/state to ~/.agent-bundle/state/<plugin>-<digest> ($XDG_STATE_HOME/agent-bundle/<plugin>-<digest>; AGENT_BUNDLE_STATE_ROOT overrides). #628 did the same for the per-server web data directory (~/.agent-bundle/web-data/<plugin>-<digest>/<server>).
The install surfaces still reason only about the legacy in-artifact location:
agent-bundle uninstall <host> --purge-data --confirm-purge (src/install/uninstall.ts, the emitted install.mjs --uninstall in src/install/surface.ts) purges <install>/state and host plugin-data, reports purged, and leaves the derived state root and web-data directory in the user's home.
agent-bundle doctor (src/install/doctor.ts inspectDurableState) inventories <pluginRoot>/state only, so the real SQLite kernel, notice ledger and lineage journal of a current install are invisible.
Wanted:
#640 (#637) moves the framework state root of installed artifacts from
<plugin root>/stateto~/.agent-bundle/state/<plugin>-<digest>($XDG_STATE_HOME/agent-bundle/<plugin>-<digest>;AGENT_BUNDLE_STATE_ROOToverrides). #628 did the same for the per-server web data directory (~/.agent-bundle/web-data/<plugin>-<digest>/<server>).The install surfaces still reason only about the legacy in-artifact location:
agent-bundle uninstall <host> --purge-data --confirm-purge(src/install/uninstall.ts, the emittedinstall.mjs --uninstallinsrc/install/surface.ts) purges<install>/stateand host plugin-data, reportspurged, and leaves the derived state root and web-data directory in the user's home.agent-bundle doctor(src/install/doctor.tsinspectDurableState) inventories<pluginRoot>/stateonly, so the real SQLite kernel, notice ledger and lineage journal of a current install are invisible.Wanted:
userDataStateRoot(installPath, env), honoringAGENT_BUNDLE_STATE_ROOTwhen the receipt/env declares one) and the web-data directory, lists them in--plan, removes them under--purge-data, and keeps the legacy<install>/statehandling for pre-feat(runtime): separate the framework state root from the plugin code root #640 installs.stateSource) and reports the legacy directory separately as retained pre-feat(runtime): separate the framework state root from the plugin code root #640 state.cli.mdx,installation.mdx) currently state thatuninstalldoes not remove the derived state root; update them with the new behavior.