dev/zhi #1

Merged
hzhang merged 28 commits from dev/zhi into main 2026-03-05 19:08:00 +00:00
Contributor
No description provided.
hzhang added 28 commits 2026-03-05 19:07:55 +00:00
- Add pass_mgr Go binary with AES-256-GCM encryption
- Add pcexec TypeScript tool with password sanitization
- Add safe-restart module with state machine and API
- Add slash command handler with cooldown support
- Update README with usage documentation
- Update README.md to English version with language navigation
- Add README.zh-CN.md for Simplified Chinese
- Add language switcher links in both files
- Add install.mjs: unified installer with dependency check, build, install, config
- Update PROJECT_PLAN.md: add section 6 for installation script requirements
- Update AGENT_TASKS.md: add T-7001~T-7005 for installation tasks
- Support flags: --prefix, --build-only, --skip-check, --verbose
- Fix Go syntax error: use BoolVar for --username flag instead of string
- Fix TypeScript type errors: filter undefined values from process.env
- Fix TypeScript type error: add type assertion for fetch response
- Add .gitignore to exclude node_modules and build outputs
- 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
- 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
- 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 --key-path parameter requirement
- Add interactive password prompt (hidden input like sudo)
- Require password confirmation
- Password must be at least 6 characters
- Uses golang.org/x/term for secure password input
- 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
The plugins.load.paths configuration is automatically updated,
so this environment variable is not needed.
- Create ~/.openclaw/config.json if it doesn't exist
- Automatically add plugin path to config
- Simplify post-install steps (remove redundant 'add to profile' step)
- 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
- 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
- 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
- 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
- Add openclaw.plugin.json with plugin metadata
- Define tools: pcexec and safe_restart
- Add openclaw.plugin.json with proper configSchema
- Add index.js as plugin entry point
- Fix plugin id to 'padded-cell' to match manifest
- Change plugin id from 'padded-cell' to 'PaddedCell'
- Update manifest and install script
- OpenClaw infers plugin id from directory name
- Add writeFileSync import
- Create manifest file during install if not exists
- Create index.js entry point during install if not exists
- Plugin name: padded-cell (matches dist subdirectory)
- Install copies files to dist/padded-cell/
- Plugin path set to dist/padded-cell/ directory
- Follows Dirigent pattern: dist/<plugin-name>/
- Move --json flag to correct position (before value)
- Add explicit encoding and error handling
- OpenClaw validates plugin exists in load.paths before allowing it in allow list
- Reorder: 1) load.paths, 2) allow, 3) entries
- OpenClaw requires configSchema in plugin manifest
- Add root index.js as entry point (like Dirigent)
- Update install script to generate correct manifest
- 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
- Change index.js to export init() function that receives api
- Use api.registerTool() to dynamically register tools
- Remove tools array from manifest (not needed for dynamic registration)
- Add passMgrPath to configSchema
OpenClaw expects 'register' or 'activate' export, not 'init'
hzhang merged commit 9c70cc33a5 into main 2026-03-05 19:08:00 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: nav/PaddedCell#1