When the installer runs as root and the agent runs as the named user
(via daemon -u), runtime dirs (data/, logs/, groups/) were created
root-owned causing EACCES on first write. Now pre-created and
chown -R agentName:agentName'd during setup.
Also resolves the su -m build subprocess PATH issue: getNpmPath()
resolves the absolute npm binary path at setup time, so the su
subprocess doesn't rely on PATH inheritance from the sudo environment.
Also drops the unused `os` import and fixes a variable ordering bug
(homeDir referenced agentName before it was declared).
Removes docs/internal/MEVY-PRIVILEGE-FIX.md — all follow-up items
addressed.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---
Build: pass | Tests: FAIL — Tests 1525 passed (1525)
- src/jail-config.ts: full rewrite — drop WARDEN_*/controlplane, introduce
AGENT_BRIDGE_NAME=clawdie0, AGENT_JAIL_PROFILES, AGENT_SUBNET_*, AGENT_GATEWAY_IP,
getWorkerBastillePlan(), getDefaultJailConfigForProfile(); all jail names
derive from process.env.AGENT_NAME (default: clawdie)
- src/jail-config.test.ts: rewrite tests to match new AGENT_* API
- setup/jails.ts: new step replacing jail.ts; creates {AGENT_NAME}-worker jail
via Bastille using shared clawdie0 bridge
- setup/jail.ts: deleted (replaced by jails.ts)
- setup/index.ts: replace 'jail' step with 'jails', add 'pi-config',
remove 'network'/'setup-wizard'/'telegram-auth' steps
- setup/platform.ts: add isDesktop() and hasBrowser()
- setup/platform.test.ts: add tests for new functions
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(db): remove unique constraint on folder to support multi-channel agents
* ci: implement automated skill drift detection and self-healing PRs
* fix: align registration logic with Gavriel's feedback and fix build/test issues from Daniel Mi
* style: conform to prettier standards for CI validation
* test: fix branch naming inconsistency in CI (master vs main)
* fix(ci): robust module resolution by removing file extensions in scripts
* refactor(ci): simplify skill validation by removing redundant combination tests
* style: conform skills-engine to prettier, unify logging in index.ts and cleanup unused imports
* refactor: extract multi-channel DB changes to separate branch
Move channel column, folder suffix logic, and related migrations
to feat/multi-channel-db-v2 for independent review. This PR now
contains only CI/CD optimizations, Prettier formatting, and
logging improvements.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Setup scripts are standalone CLI tools run via tsx with no runtime
imports from the main app. Moving them out of src/ excludes them from
the tsc build output and reduces the compiled bundle size.
- git mv src/setup/ setup/
- Fix imports to use ../src/logger.js and ../src/config.js
- Update package.json, vitest.config.ts, SKILL.md references
- Fix platform tests to be cross-platform (macOS + Linux)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>