Skip to content

Enable confined local service-user installs and recovery - #184

Merged
Yehonal merged 5 commits into
mainfrom
pr/local-run-as-apply
Oct 21, 2026
Merged

Yehonal merged 5 commits into
mainfrom
pr/local-run-as-apply

Conversation

@Yehonal

@Yehonal Yehonal commented Oct 21, 2026 •

Copy link
Copy Markdown
Contributor

Enable declarative installs, uninstalls and receipt-linked recovery for named local service accounts. Target I/O uses an isolated Python helper with Linux openat2 directory confinement; artifact bytes cross the boundary through bounded hash-checked staging, while backups and rollback remain service-side.

Reject programmatic adapters, semantic plugins, arbitrary commands and runtime reloads before writes. The only native command operation validates a caller-owned immutable OpenClaw config snapshot restricted by named-UID POSIX ACLs with a trusted immutable installation; includes and unsupported config syntax fail closed. Preserve existing local receipt digests.

Validation: typecheck, build and release metadata PASS; full suite 1043 passed/2 skipped; focused parser regressions 7 passed. Independent security review READY and private-context scan PASS across all 23 changed files. Disposable-container smoke PASS, including intended service read and unrelated-user known-path read/list denial for config snapshots. Final CI pending. CI adds a disposable nologin-account smoke covering the default sudo/Node/Python path, private sources, validation, manifest partitioning, ownership/modes and a no-op replan.

Requirements: Linux 5.6+ on supported 64-bit architectures, Python 3, explicit noninteractive sudo, and immutable code ancestors. Ownership adoption apply and Fleet normalization remain for the migration change.

@Yehonal
Yehonal merged commit b538389 into main Oct 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant