* fix(sessions): preserve spawn/fork lineage across implicit daily/idle rollover * refactor(sessions): canonical creation model with forkSource ancestry and generation chain * feat(sessions): stamp creation provenance across all creation paths and emit created events * refactor(gateway): lock lineage patching, split control from navigation, add typed session-row contract * docs(gateway): document creation provenance stamping and lineage patch tightening * fix(sessions): keep provenance proof-only on wire fallbacks and strip node-local lineage from cron continuations * fix(gateway): never journal a created event for session adoption * fix(gateway): keep post-create work on adoption while gating the created event * fix(sessions): restore trusted ensure-main provenance and stamp navigation parent at spawn * fix(sessions): allow parentSessionKey through the direct child spawn patch * fix(ci): break type cycles, satisfy export scan, regenerate Swift protocol models * refactor(sessions): replace createdBy with createdActor * fix(protocol): export session row type * fix(sessions): preserve proven creation provenance * fix(sessions): close lineage creation gaps * test(sessions): align atomic spawn lineage coverage * test(sessions): widen transcript search reconcile wait * fix(sessions): stamp reset-created rows * test(sessions): keep reset provenance coverage focused * fix(sessions): journal chat-created rows * test(ci): anchor release skill reads to repo * test(ci): avoid cached module paths
2.3 KiB
summary, read_when, title
| summary | read_when | title | |||
|---|---|---|---|---|---|
| How session ownership and presence work when several people operate one agent |
|
Multi-user mode |
Multi-user mode lets several trusted people operate the same OpenClaw agent. It adds session ownership, live presence, and creator filtering so a team can tell who started work and who is currently watching it.
Trust boundary
Everyone who can operate an agent can make it do anything that agent can do. Session ownership, visibility in the sidebar, and presence indicators are usability features, not security boundaries.
If people must not access each other's sessions, tools, credentials, or files, give them separate agents or separate gateway/host trust boundaries. Do not rely on owner avatars or filters for isolation.
Ownership and presence
New sessions record a write-once createdActor when the creation path can prove who caused it. Authenticated people use their durable Gateway profile id; requesting agents and system paths use the same actor field. Sessions created without a proven actor remain unattributed.
Human display names are resolved from the current Gateway profile when session rows are returned. OpenClaw does not store labels on session entries, so changing a profile name updates the ownership UI without rewriting session history.
The web app keeps ownership and presence visually distinct:
- A solid owner avatar is permanent for the lifetime of that session.
- Ringed or translucent presence avatars show people who are currently connected or watching.
- The sidebar's person filter shows sessions created by one identity while preserving the existing custom groups.
When fewer than two distinct creators appear in the loaded session list, OpenClaw hides all ownership and person-filter chrome. A single-user gateway therefore looks unchanged.
Turn attribution
Turn sender attribution is best-effort. Steering can merge input into an active turn, so the transcript cannot always represent each person's contribution as a separate turn.