Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,10 @@ A share carries one of two permissions.
- **`READ_ONLY`**: The holder can read the conversation. kagent refuses any call that is not a read before the request reaches the service.
- **`READ_WRITE`**: The holder can also send messages to the Session.

A client that creates a share can set `CreateSessionShareRequest.ttl` to a positive lifetime that starts when the share is created. When the lifetime ends, the token no longer grants access, and token lookup returns not found. The owner still sees the expired share in `ListSessionShares`, so the owner can revoke it.

The returned `SessionShare.expiresAt` field records when the token stops granting access. When `expiresAt` is unset, the share remains valid until it is revoked or the Session is deleted. An operator can cap share lifetimes with `controller.sessionShareMaxTTL`. For more information, see [Expire idle conversations]({{< link path="operations/operational-considerations#expire-idle-conversations" >}}).

A share widens what the holder can reach to what the owner can see, and the underlying record is read as the owner rather than as the visitor. Revoking the share withdraws that access.

## The Agent Substrate plane
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ A leader-only worker sweeps once a minute and deletes every Session whose idle c
| Value | Default | Description |
| ----- | ------- | ----------- |
| `controller.sessionIdleTTL` | `168h` | How long a Session can be idle before the worker deletes it, as a Go duration. `0` turns the worker off, retries included. A negative value is rejected. |
| `controller.sessionShareMaxTTL` | `0` | Longest lifetime that a Session share can request, as a Go duration. A positive value caps `CreateSessionShareRequest.ttl`. A request that exceeds the cap fails. If the request omits `ttl`, the share uses the cap. `0` leaves shares unbounded unless the client request sets `ttl`. A negative value is rejected at startup. |

The `168h` default is seven days. There is no per-agent override and no maximum, so this one value governs every conversation in the installation.

Expand Down