Two new openclaw tools that let an agent reclaim ctx tokens consumed by
past tool results once it has extracted what it needs:
list-tool-results — enumerates past toolResults in the agent's own
session jsonl (size, tool name, turns-ago, args summary, already-
trimmed flag); does NOT return content body
trim-tool-result — replaces a past toolResult's content[].text with a
short sentinel-tagged replacement, identified by tool_call_id
The actual file rewrite is deferred to the `agent_end` hook (drained
from an in-memory queue) because writing during tool execute() trips
openclaw's session-file fence (EmbeddedAttemptSessionTakeoverError) —
the fingerprint check around releaseForPrompt rejects third-party
writes. By agent_end the lock window is closed and the next turn's
fence baseline picks up our mutation cleanly.
Queue-time validation rejects bad tool_call_ids up-front so weak
models that confuse opaque call_function_*_N ids with topic/fact
numeric ids get a clear error instead of a silent skip at drain time.
install.mjs now auto-sets plugins.entries.padded-cell.hooks.
allowConversationAccess=true (required for the agent_end hook on
non-bundled plugins; without it the drain never fires and queued
trims rot in memory).
Sim-verified end-to-end: model dispatches trim, drain fires on
agent_end, next turn's list shows already_trimmed=true.
Reading the entire plugins tree via openclaw config get returns redacted
values for sensitive fields. Writing it back overwrites real secrets with
the __OPENCLAW_REDACTED__ sentinel. Changed to set individual leaf paths
only when missing.
- Restructure: pcexec/ and safe-restart/ → plugin/{tools,core,commands}
- New pcguard Go binary: validates AGENT_VERIFY, AGENT_ID, AGENT_WORKSPACE
- pcexec now injects AGENT_VERIFY env + appends openclaw bin to PATH
- plugin/index.ts: unified TypeScript entry point with resolveOpenclawPath()
- install.mjs: support --openclaw-profile-path, install pcguard, new paths
- README: updated structure docs + security limitations note
- Removed old root index.js and openclaw.plugin.json
- Add index.js to project root as source
- Add configSchema to openclaw.plugin.json
- Install script now copies these files from source to dist/
- Ensures dist/ is reproducible from source
- Use 'openclaw config get/set' commands (like Dirigent)
- Keep plugin in current directory, don't copy to plugins/
- Plugin path is relative to script location (__dirname)
- Only copy pass_mgr binary to ~/.openclaw/bin/
- Keep 6-step install flow with all original features
- Plugin name changed to 'padded-cell' (in OpenClaw)
- Install to ~/.openclaw/plugins/padded-cell/ instead of skills
- Add plugins.entries.padded-cell configuration
- Add to plugins.allow list
- Use --install and --uninstall flags
- Follow Dirigent's delta tracking pattern
- Remove creation of paddedcell.env file
- Update post-install instructions to use full pass_mgr path
- Simplify to 6 steps (remove verification step)
- Update uninstall to not reference env file
- Use 'openclaw config get/set --json' instead of direct file manipulation
- Correctly remove plugin path from OpenClaw config during uninstall
- Remove pass_mgr binary during uninstall
- Fix duplicate .openclaw in env file path
- Use consistent installDir variable throughout
- Fix skills path in OpenClaw config update
- Fix fallback path in uninstall function
- pass_mgr admin init now requires --key-path parameter
- Password must be at least 6 characters long
- Install script now updates OpenClaw plugins.load.paths config
- Falls back to manual instructions if config file not found
- Remove automatic pass_mgr admin init during installation
- Users must manually run 'pass_mgr admin init' after install
- Update install summary to show initialization as a required step
- This allows non-interactive installation
- Add --uninstall flag to remove installed components
- List items to be removed before confirmation
- Remove pass_mgr binary, skills modules, and env config
- Preserve admin key directory (warns user to remove manually)
- Update PROJECT_PLAN.md with uninstall usage