Before processing a request, Metnos needs to know who is speaking and which resources belong to them. It therefore pairs the user, channel, web session, and remote computer separately. Writing “I am Roberto” is not enough to become Roberto.
| Object | What it represents | Example |
|---|---|---|
| User | The Metnos identity that owns a role, autonomy level, preferences, and resources. | The owner or a guest. |
| Channel | A verified address through which that user can talk to Metnos. | A Telegram chat or paired browser. |
| Web session | The browser that currently has write access to a particular conversation. | A phone that has taken over from a laptop. |
| Remote computer | One of the user's machines on which Metnos may run compatible executors. | The Windows PC called OFFICE-LAPTOP. |
The four pairings have different effects. Pairing Telegram does not authorise the phone to run executors. Opening chat in a new browser does not turn that computer into a remote device. Transferring a conversation does not change who owns a device.
An installation has one owner with the host role and may have
several guests. Every user has a stable technical identifier, a unique name, a
role, and an autonomy level.
| Level | General meaning |
|---|---|
read_only | Allows admitted informational use only; it does not start operational actions. |
restricted | Allows actions within narrow limits and with required confirmations. |
full | Allows the broadest autonomy supported by the instance, without bypassing policy or contracts. |
An autonomy level is not a free pass. Every action must still pass the
executor contract, policy, Vaglio, placement, and applicable confirmations. A
guest with full autonomy does not become the owner or inherit other
users' resources.
The language belongs to the instance and is shared by its users. Conversations, pending dialogues, channels, and devices remain separated by user.
/start <code>.The code is random, expires after one hour, and can be consumed only once.
Two concurrent attempts cannot both pair with the same code. The
/start command completes the pairing but does not execute a request;
the next message starts a new turn.
Metnos stores the technical Telegram address alongside the user. Later messages are attributed through that pairing, not through the display name in the Telegram profile or a claim written in the message.
/pair codeA lower-level flow also exists, using an Ed25519-signed code for technical channel administration. The code declares its expiry and autonomy level, normally lasts five minutes, and can be used once. To pair a user who already exists, the Settings › System › Users flow is simpler and preserves the logical identity explicitly.
The pairing code expires after one hour. The cookie may last for up to 90
days and uses the browser's standard protections (HttpOnly and, over
HTTPS, Secure). On every request, the server checks that the pairing
still exists. If the administrator removes the HTTP channel, a cookie left in
the browser is not enough to sign in.
Administrative access. A user cookie allows chat and the surfaces admitted for that role. It does not replace an administrator session or automatically grant access to Settings.
Only one web session may write for the same user and web channel at a time. If you open chat on a second device while the first is still active, Metnos offers three choices:
| Choice | Result |
|---|---|
| Continue the previous session | Moves the previous conversation to the current device and revokes the old browser's write access. |
| Make this session active | Keeps the new device's local conversation and makes the old browser read-only. |
| Cancel | Changes nothing; the new device remains unable to write. |
The transfer is atomic and applies only to the authenticated user. The conversation belongs to the user, not the browser. When connected, the old device receives a revocation notice and can no longer send messages with its previous write authority.
This pairing is different from browser pairing. It installs a component on the computer that can receive and perform authorised actions.
The guided link normally lasts 30 minutes; the manual code lasts 10 minutes. Both are single-use. Presenting the same code again with the same key returns the same device without duplication; using a different key is rejected.
The page shows latest heartbeat and latest work request separately. The first says that the client process is communicating; the second says that the operational loop is actually polling the server. Availability requires both to be recent and is not inferred from the heartbeat alone.
For verified bundles, caching, sandboxing, and results, see Remote executors.
| What you revoke | Where | What happens |
|---|---|---|
| Telegram or HTTP channel | Settings › System › Users | That address no longer identifies the user; the related web cookie fails the pairing check. |
| Web session | Sign out or transfer to another device | The old browser loses write access; the conversation remains owned by the user. |
| Remote computer | Settings › System › Devices | New work requests, results, and heartbeats are rejected; the record remains for audit. |
Revoking one object does not silently change the others. Removing Telegram does not revoke a remote computer; revoking a computer does not close the web session. This separation makes it clear which access is being removed.
For everyday channel use, continue with Conversation channels. To understand what a paired user may authorise, see Policy and authority.