152 of 384
Lesson 9 made the Pippa machine a role, and every move since has had data in it: sessions mirrored from every Mac, site originals, a built WebUI, the vault. For two years the way data crossed between Macs was ssh: a fresh connection, then rsync, scp, or a file printed to stdout. On 2026-11-09 a grid of Eagle thumbnails in Loomis, served from the service host and read from the workbench, lost 152 of 384 images, because each thumbnail opened its own ssh session and sshd's MaxStartups dropped the bursts. Nothing was wrong with any one file. The transport was not built for this, and it was not ours to fix. Dad said it the same morning:
ssh가 계속 문제가 되는 근본 원인은 '우리 것'이 아니기 때문이야. 데이터 주고 받는 우리 서비스를 만드는 게 가장 간단하면서도 scalable 한 방법이야. 그럼 모든 문제가 해결돼. 우리가 고치면 되니까.
("The root reason ssh keeps being a problem is that it isn't 'ours'. Building our own service for sending and receiving data is the simplest and most scalable way. Then every problem is solved, because we can fix it.") And then: Delta 로 가자 ("Let's go with Delta"). cwkDelta was born within the hour. Through Delta the same grid had zero failures: 1.94 seconds cold, against 32.6 seconds over ssh.
What Delta is
Delta has its own quest; these are the five ideas cwkPippa relies on.
- Shares. Every Mac's Delta serves its home (minus credentials and privacy-guarded folders) and any app share an app declares. Shares are read-only unless the share says otherwise.
- One engine per Mac, one gateway between them. An app talks only to its own Mac's Delta, on loopback with a local token; Delta talks to Delta over Thunderbolt, the house LAN or the tailnet, whichever it has verified.
- Verified and resumable. Large files move in chunks and small files in bundles; every piece is SHA-256 checked and a file lands by atomic rename. A stalled stream times out on its own progress, never on an overall deadline, and a job never ends as done on silence. An interrupted gigabyte at 560 MiB finished the rest in 0.17 seconds.
- The write call. An app share can accept writes, and Delta carries one request to the share's owner, which writes through its own canonical writer, keyed by a request id and sent at most once. Soul Vault was its first owner (memory track, lesson 13).
- The Local Network gate. Since macOS 26 a background agent is checked per process before it may reach the LAN, and a launchd service can never answer the prompt; a conda Python got
EHOSTUNREACHwhere the same code from a shell connected. Delta runs on the Python Apple ships, which macOS lets through, so an app's own Python never dials the LAN at all.
The rule, and what moved
The same day the rule went into every operator's instructions: Delta for reads, serving, copies and syncs; ssh for commands only (a restart, a git pull, one small write). The old benchmark that picked a bulk route by pushing 64 MiB through ssh per candidate became legacy; bulk now takes the route this Mac's Delta has already verified. Then the callers moved:
- The session mirror. Every ten minutes the Pippa machine used to probe each peer over ssh and run up to six rsync pulls per peer. Now each tree is one Delta sync, SQLite trees as two with their write-ahead logs first, and a pass opens no ssh connection at all. Its first day had a lesson of its own: eight named files that some Macs never have (one harness's index, one editor's WAL) failed every pass, putting about 1,150 false failures a day into Delta's log. The mirror now asks with a stat before it pulls a named file.
- Site originals. The site's source images converge between peers through each peer's Delta, matched by path, size and mtime, staged after a settle window and published atomically. Replaced files are kept, and a deletion at the source never propagates.
- The WebUI ship. Every file of a built WebUI moves with Delta; ssh carries only the commands (lesson 12).
- The vault pair. Lesson 9 described one two-way pair keeping the vault in step between the Pippa machine and the workbench. On 11-09 it moved to Delta, and on 11-10 it was retired: the soul vault lives in Soul Vault's store now, and the old folder never crosses between Macs. A guard refuses any copy of it.