agentwheel 0.21.6 → 0.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -422,6 +422,50 @@ current directory, then fallback to the current directory. `--all-detected` is a
422
422
  for applying to every runtime marker found in the current directory or `--target-root`; `--all` remains
423
423
  reserved for configured agents.
424
424
 
425
+ ### Linux service-user targets
426
+
427
+ A named `local-run-as` agent installs into another non-root account's passwd home.
428
+ Run Agentwheel from the caller's workspace: sources, graph locks and receipts stay
429
+ with the caller; confined reads, writes, manifests and rollback run as the service.
430
+ A non-login account works with an explicitly configured noninteractive sudo grant.
431
+ Add the agent/profile to a workspace that already declares its source packages:
432
+
433
+ ```jsonc
434
+ {
435
+ "schemaVersion": 4,
436
+ "agents": {
437
+ "service": {
438
+ "adapter": "openclaw",
439
+ "root": "/home/example",
440
+ "transport": "local-run-as",
441
+ "runAs": "example",
442
+ "installationType": "user"
443
+ }
444
+ },
445
+ "profiles": { "service": { "runtimes": [{ "agent": "service" }] } }
446
+ }
447
+ ```
448
+
449
+ ```bash
450
+ agentwheel plan --local --profile service
451
+ agentwheel --reason "Install reviewed service profile" install --local --profile service
452
+ ```
453
+
454
+ Require durable journaling in the workspace mutation policy while retaining its
455
+ revision policy. Linux 5.6+ `openat2`, Python 3 and immutable worker/interpreter
456
+ paths are required. OpenClaw validation additionally needs Linux POSIX ACLs and a
457
+ trusted immutable OpenClaw package; includes, programmatic adapters, arbitrary
458
+ commands and runtime reloads are rejected. See the [transport requirements and
459
+ sudo example](docs/design/artifact-harness-compatibility.md#built-in-matrix).
460
+
461
+ Changing transport creates a distinct state identity. Inspect legacy claims with
462
+ `ownership recovery-plan`, then review the exact JSON plan from `adopt-legacy`,
463
+ `retire-stale`, `release-claim` or `handoff --dry-run --json`. Apply only with its
464
+ matching digest and revisions. These commands preserve runtime bytes and modes;
465
+ a caller-home manifest is never reused as service-home ownership evidence.
466
+ Same-fleet normalization is limited to one service endpoint. Cross-account
467
+ migration and runtime restarts are separate operations.
468
+
425
469
  ### Target state identity
426
470
 
427
471
  Graph-backed installs keep two target fingerprints with different purposes: