Skip to content

Commit a5671e9

Browse files
committed
Restore shell compatibility and skip converged scans
1 parent ed8e7ad commit a5671e9

8 files changed

Lines changed: 1078 additions & 91 deletions

File tree

CHANGELOG.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,19 @@ EXPERIMENTAL, so on-disk formats and the CLI may change without notice.
6060

6161
### Fixed
6262

63+
- **Remote shell upgrades remain mixed-version compatible.** Resumable shell
64+
sessions now use their own `fabric/shell/1` ALPN. The established
65+
`fabric/shell/0` ALPN keeps its original raw shell framing in both directions,
66+
and new clients explicitly fall back to it when an older peer does not
67+
advertise `shell/1`. Transport reconnect still resumes the same remote PTY,
68+
and signal exits restore the caller's exact terminal settings.
69+
70+
- **Converged periodic syncs no longer hash the full tree twice.** An inbound
71+
peer whose manifest exactly matches the local node can bypass both folder
72+
scans when the local content store is complete. Differing manifests, missing
73+
content, and every potentially mutating reconcile retain the guarded
74+
pre-merge and completion scans that protect local archive/delete intent.
75+
6376
- **Inherited catalog tombstones no longer leave folders divergent.** Under
6477
catalog policy, any surviving physical copy now advances an inherited
6578
Tombstone to a higher Present version and supplies its content over the wire,

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -694,7 +694,10 @@ fabric shell <peer>
694694
Open an interactive remote shell on a trusted peer over fabric. The server side
695695
must have been started with `fabric up --allow-shell`; a default `fabric up`
696696
refuses shell requests. The shell runs as the remote daemon's user and uses the
697-
remote user's `$SHELL`.
697+
remote user's `$SHELL`. Current peers negotiate resumable `fabric/shell/1`, so
698+
the same remote PTY survives a transient transport drop. A new client
699+
automatically falls back to the byte-compatible one-shot `fabric/shell/0`
700+
protocol when the peer is running an older Fabric release.
698701

699702
Enabling shell is a security-sensitive opt-in: every trusted peer in
700703
`peers.toml` can obtain a remote shell while `--allow-shell` is active. Keep the

0 commit comments

Comments
 (0)