Specify retained terminal presentation
This commit is contained in:
parent
982395bb28
commit
ea463a6ca7
1 changed files with 38 additions and 1 deletions
|
|
@ -614,6 +614,42 @@ Interactive terminal control requires:
|
||||||
Disconnected Client Sessions close rather than reattach to an unbounded scrollback
|
Disconnected Client Sessions close rather than reattach to an unbounded scrollback
|
||||||
owned by the coordinator.
|
owned by the coordinator.
|
||||||
|
|
||||||
|
#### Retained terminal presentation
|
||||||
|
|
||||||
|
The application model owns terminal-route transitions. Their retained-screen
|
||||||
|
physical refinement is:
|
||||||
|
|
||||||
|
```mermaid
|
||||||
|
flowchart LR
|
||||||
|
Guest[Sandbox PTY output]
|
||||||
|
Buffer[Kernel PTY buffering]
|
||||||
|
Screen[HC retained screen]
|
||||||
|
Client[Paired Client terminal]
|
||||||
|
Trusted[Prompt or HostProcess presentation]
|
||||||
|
|
||||||
|
Guest -->|Sandbox route| Screen
|
||||||
|
Screen -->|derived rendering| Client
|
||||||
|
Guest -.->|Prompt or HostProcess route: reads paused| Buffer
|
||||||
|
Trusted --> Client
|
||||||
|
Trusted -->|return to Sandbox| Restore[redraw retained screen]
|
||||||
|
Restore --> Client
|
||||||
|
Buffer -->|resume in byte order| Screen
|
||||||
|
```
|
||||||
|
|
||||||
|
- The retained screen belongs to the existing fixed Host Coordinator and Client
|
||||||
|
Session pair. Existing Session Terminal cleanup discards it and any partial
|
||||||
|
input-decoder state; another Client cannot attach to or adopt it.
|
||||||
|
- Prompt and HostProcess presentation does not mutate the retained sandbox
|
||||||
|
screen. Returning to `Sandbox` restores that screen without guest input,
|
||||||
|
signals, resize, or application redraw.
|
||||||
|
- Requester-controlled bytes render inertly with argument boundaries preserved.
|
||||||
|
Approval defaults to denial and uses a bounded, fragmentation-independent
|
||||||
|
escape-sequence interval; incomplete, ambiguous, pre-prompt, interrupted, or
|
||||||
|
lost input cannot approve.
|
||||||
|
- The guest terminal profile exposes only qualified parser, renderer,
|
||||||
|
key-translation, and terminal-reply behavior. Replies derive from retained
|
||||||
|
state rather than the physical Client terminal.
|
||||||
|
|
||||||
The session connection carries the terminal events and messages described by
|
The session connection carries the terminal events and messages described by
|
||||||
this refinement. Interactive sessions negotiate `lazaret-control/2` through
|
this refinement. Interactive sessions negotiate `lazaret-control/2` through
|
||||||
TLS ALPN before any version-specific record is decoded. A new Client refuses an
|
TLS ALPN before any version-specific record is decoded. A new Client refuses an
|
||||||
|
|
@ -1224,6 +1260,7 @@ not duplicated here.
|
||||||
| **FR-20** | Physical network readiness shall use product-owned known-live targets. DNS, public egress, and configured destination availability shall not gate it. |
|
| **FR-20** | Physical network readiness shall use product-owned known-live targets. DNS, public egress, and configured destination availability shall not gate it. |
|
||||||
| **FR-21** | The Domain Store and Storage Catalog shall preserve the independently recoverable ownership, identities, and authority relationships described by the durable-generation and prepared-lower refinements. |
|
| **FR-21** | The Domain Store and Storage Catalog shall preserve the independently recoverable ownership, identities, and authority relationships described by the durable-generation and prepared-lower refinements. |
|
||||||
| **FR-22** | Preparation shall use a supported OCI-aware preparer that materialises a Lazaret-owned immutable rootfs with source identity and prepared-artifact ID. |
|
| **FR-22** | Preparation shall use a supported OCI-aware preparer that materialises a Lazaret-owned immutable rootfs with source identity and prepared-artifact ID. |
|
||||||
|
| **FR-23** | Each interactive Client Session shall use the retained-screen refinement defined in **Retained terminal presentation**. |
|
||||||
|
|
||||||
### 4.3 Developer-Experience Requirements
|
### 4.3 Developer-Experience Requirements
|
||||||
|
|
||||||
|
|
@ -1232,7 +1269,7 @@ not duplicated here.
|
||||||
| **DX-1** | `lazaret <profile>` shall launch the explicitly named Agent Profile in the current workspace and start `/bin/bash` as a new interactive Client Session. A trailing `-- <command> [arguments...]` shall replace that default with the exact supplied argument vector. |
|
| **DX-1** | `lazaret <profile>` shall launch the explicitly named Agent Profile in the current workspace and start `/bin/bash` as a new interactive Client Session. A trailing `-- <command> [arguments...]` shall replace that default with the exact supplied argument vector. |
|
||||||
| **DX-2** | Tools installed in configured persistent sandbox paths and dependencies stored in Ignored Workspace State shall remain available on later launches of the same Domain. |
|
| **DX-2** | Tools installed in configured persistent sandbox paths and dependencies stored in Ignored Workspace State shall remain available on later launches of the same Domain. |
|
||||||
| **DX-3** | Normal source editing, `git status`, staging, committing, and reference updates shall work from inside the Agent Sandbox. |
|
| **DX-3** | Normal source editing, `git status`, staging, committing, and reference updates shall work from inside the Agent Sandbox. |
|
||||||
| **DX-4** | Escalation prompts shall identify the requesting profile, session, command, and justification without mixing terminal input or output between sessions. |
|
| **DX-4** | Escalation prompts shall show the requester, command, and justification, with explicit approve and deny actions. |
|
||||||
| **DX-5** | Failures shall report actionable diagnostics and shall not leave the developer's terminal in a corrupted mode. |
|
| **DX-5** | Failures shall report actionable diagnostics and shall not leave the developer's terminal in a corrupted mode. |
|
||||||
| **DX-6** | State inspection shall provide human-readable and machine-readable output without exposing persisted file contents by default, and reset shall show its resolved Domain and exact scope before confirmation. |
|
| **DX-6** | State inspection shall provide human-readable and machine-readable output without exposing persisted file contents by default, and reset shall show its resolved Domain and exact scope before confirmation. |
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue