mirror of
https://github.com/l0ng-ai/tty7.git
synced 2026-09-23 00:02:27 +00:00
Clients stopped sending WorkspaceList/Get/Put/Delete when the tree migration landed, so the coexistence scaffolding comes out: - core::workspace_store is deleted. Attachment and the data-directory resolution (TTY7_DATA_DIR, XDG fallback chain) move into core::machine, which was already their only consumer; Attachment loses its vestigial serde derives (it never crosses disk or wire). - The control dialect drops the four record verbs, the ReplyOk::Json payload they answered with, and the WorkspaceChanged event. Their serde names (and the workspace-store capability bit) are recorded as burned rather than reserved by any mechanism — the dialect has no numbered slots to hold, so a comment at each site is the guard, plus the handshake test asserting the bit never reappears. - host::server loses Services.workspaces, the verb arms, the per-connection store subscription and its WorkspaceChanged forwarder, and the store half of attach/detach/teardown. Attachment data now lives solely in the tree: a workspace the tree does not list records no data half (the registry's live handles still move, so takeover behaviour is unchanged), and it appears the moment the workspace does. Services::with_workspaces/and_machine collapse into with_machine; control_services becomes a single match. - The attach/takeover tests move onto MachineStore wholesale, attaching to workspaces created in a real tree; the record-store round-trip and fan-out tests go (tests/machine_tree.rs has carried the tree equivalents since the verbs landed), and tests/workspace_store.rs is deleted with the serde_json dev-dependency that existed only for it. machine.rs gains the two guarantees the old suite held uniquely: an attachment dies with its workspace structurally, and the default path resolution ends at the documented file. - The GUI's dead WorkspaceChanged arm and every stale doc reference go.
31 lines
1.1 KiB
TOML
31 lines
1.1 KiB
TOML
[package]
|
|
name = "tty7-server"
|
|
version.workspace = true
|
|
edition.workspace = true
|
|
description = "tty7's headless session server: the persistent terminal daemon, with no GUI attached"
|
|
repository = "https://github.com/l0ng-ai/tty7"
|
|
license = "Apache-2.0"
|
|
publish = false
|
|
|
|
[[bin]]
|
|
name = "tty7-server"
|
|
path = "src/main.rs"
|
|
|
|
# One dependency, on purpose. This binary exists to prove — and keep proving —
|
|
# that everything a tty7 session needs runs without gpui: if it ever grows a
|
|
# second dependency that the GUI also needs, that dependency belongs in
|
|
# `tty7-core` instead.
|
|
[dependencies]
|
|
tty7-core = { path = "../tty7-core" }
|
|
|
|
# The end-to-end proof (`tests/stdio_conformance.rs`) runs `tty7-core`'s shared
|
|
# `Host` conformance suite against a *real* `tty7-server --stdio` child process.
|
|
# It has to live in this crate because that is the crate that owns the binary —
|
|
# `CARGO_BIN_EXE_tty7-server` only exists for its own tests.
|
|
[dev-dependencies]
|
|
# Sandboxes for the suite: an empty directory per case, removed on drop. The
|
|
# server is on this machine, so a local temp dir is a path in its namespace.
|
|
tempfile = "3"
|
|
[lints]
|
|
workspace = true
|