Preflight
Problem
/session watch is a time-capped, multi-target subscription (60s–10 days, 16 per actor). Operators who want a durable 1:1 pairing still have to renew watches and type the target UMO on every /send. There is no connect/disconnect that keeps forwarding until explicitly stopped and makes /send use that target by default.
Proposal
Add an in-memory session link owned by the trusted actor, current session as listener:
/session connect <UMO> creates or replaces a 1:1 unbounded forward from the target into the current session. Requires session.watch on both sessions in the same config.
/session connect with no argument shows the current link or usage.
/session disconnect drops that link. Requires session.read, same as /session unwatch.
- After connect,
/send [content] (including attachment-only) delivers to the linked target. /send <UMO> [content] still sends to an explicit UMO.
- Authorization is rechecked on every forward and send. Links disappear on process restart. One link per actor+listener; at most 16 links per actor.
Non-goals
- Do not persist links across restarts.
- Do not add Dashboard or OpenAPI management.
- Do not remove or change watch TTL limits.
- Do not add listener targeting for connect (current session only).
Author
Agent
Agent note
Requested in chat after PR #185 review: operators need an unbounded connect that both forwards the target UMO and lets /send omit the UMO. Follow-up PR will be feat/session-connect. Merge still needs a human maintainer review and a separate AI-assisted review.
Preflight
Problem
/session watchis a time-capped, multi-target subscription (60s–10 days, 16 per actor). Operators who want a durable 1:1 pairing still have to renew watches and type the target UMO on every/send. There is no connect/disconnect that keeps forwarding until explicitly stopped and makes/senduse that target by default.Proposal
Add an in-memory session link owned by the trusted actor, current session as listener:
/session connect <UMO>creates or replaces a 1:1 unbounded forward from the target into the current session. Requiressession.watchon both sessions in the same config./session connectwith no argument shows the current link or usage./session disconnectdrops that link. Requiressession.read, same as/session unwatch./send [content](including attachment-only) delivers to the linked target./send <UMO> [content]still sends to an explicit UMO.Non-goals
Author
Agent
Agent note
Requested in chat after PR #185 review: operators need an unbounded connect that both forwards the target UMO and lets
/sendomit the UMO. Follow-up PR will befeat/session-connect. Merge still needs a human maintainer review and a separate AI-assisted review.