Allow Remote sessions to outlive connection forms
This commit is contained in:
1 parent
b60cf5d5f2
commit
b4896a2eb4
10 files changed
+233
-16
No files matched your search
@@ -117,11 +117,13 @@ speech-owner mutex as observed utterances. An older delivery generation cannot
|
||||
publish behind that cancel. Remote publication never performs pipe, relay or
|
||||
backend I/O in the input loop. Incoming cancellation ownership remains pending.
|
||||
|
||||
The source command still holds a modal status form for its connection lifetime.
|
||||
That form captures local keys and suppresses ordinary application presentation;
|
||||
this increment does not detach it or provide an ordinary desktop workflow.
|
||||
Keep relay-testing warnings until that UI lifetime and incoming speech ownership
|
||||
are implemented and live acceptance is recorded.
|
||||
The source command now offers an explicit Return to desktop action after its
|
||||
reader lease opens. It closes status and releases local input capture while the
|
||||
original lease and heartbeat worker remain active. The Remote shortcut reopens
|
||||
status/Disconnect. Lock/handoff, expiry and process loss still revoke the lease.
|
||||
See [the terminal interaction contract](tentacle-sessions.md#reader-owned-consent-interactions).
|
||||
Incoming speech ownership and live acceptance remain pending; relay-testing
|
||||
warnings remain in place.
|
||||
|
||||
## Verification and remaining work
|
||||
|
||||
@@ -160,7 +162,8 @@ speech/Remote/Tentacle race checks, affected-package vet, a separate reader
|
||||
build, the existing speech regression harness and Tentacles `make check`.
|
||||
|
||||
Next: add incoming speech ownership, delivery-time policy, local priority and
|
||||
remote-only cancellation, and detach connection status from desktop capture.
|
||||
remote-only cancellation. Explicit status detachment is implemented; physical
|
||||
input capture/release and ordinary reading while connected still need acceptance.
|
||||
Review remaining output producers before assigning exportable origins.
|
||||
Atomic IPC assembly is implemented; it does not establish backend
|
||||
priority/cancel behavior or audible delivery.
|
||||
|
||||
@@ -114,6 +114,29 @@ cleanup context, so pre-lease inspection does not depend on a revocation event.
|
||||
No form values accompany that cleanup. Session failure/disable still uses
|
||||
normal process supervision. Existing non-remote interactions keep their path.
|
||||
|
||||
An explicit return-to-desktop action may instead finish with:
|
||||
|
||||
```json
|
||||
{"remote_background":{"lease":"0123456789abcdef0123456789abcdef","epoch":1},"done":true}
|
||||
```
|
||||
|
||||
This terminal result requires an already-open, unexpired lease belonging to the
|
||||
requesting process session. If this interaction approved an epoch, it must match
|
||||
the requested lease. Forms, continuations, polling, clipboard, reader/consent
|
||||
requests and uninterruptible speech cannot accompany it; ordinary speech/Braille
|
||||
presentation is allowed. A polling response cannot detach a form. Go exposes
|
||||
`Interaction.RemoteBackground`; Python uses the dictionary above.
|
||||
|
||||
On success, core releases the interaction/result slots without invoking child
|
||||
cancellation or revoking that epoch. The original policy/session lease remains
|
||||
its owner: heartbeats, expiry, lock, handoff, disconnect, replacement, disable,
|
||||
update and process loss retain their existing behavior. This result neither
|
||||
renews authority nor starts networking. The Tentacle must offer an explicit
|
||||
status/disconnect command; reopening status needs no new consent, while a new
|
||||
connection still does. Ordinary cancellation and form closure retain their
|
||||
existing cleanup behavior. `RemoteLeaseContext` checks identity/lifetime only;
|
||||
desktop effects still require `RemoteContext` with their specific grant.
|
||||
|
||||
This addition requires the matching updated reader; protocol 1.1 by itself does
|
||||
not imply that an older reader accepts the new interaction field. Remote still
|
||||
has no release manifest advertising a minimum supported reader version.
|
||||
|
||||
Reference in new issue
Block a user