Rename the project: PeerMesh → Stormo #major - #14
Merged
Conversation
The rebased rename carried a transposition typo ("Stromo") through
every identifier, and left the Sources/Tests directories and the CLI
file names unrenamed (SPM infers target paths from target names, so
the package could not build). Also:
- STORMO_NO_P2P restores the all-caps env-var convention
(sed had produced Stromo_NO_P2P); CI matches.
- stormo-cli lowercased (binary-name convention).
- Reverse-DNS strings lowercased: dev.securityunion.stormo.{identity,
tls,quic} — keychain tags and dispatch-queue labels.
- signal.fbs regen comment re-fixed: pointed at a pre-move Generated
path already stale on main.
- Generated FlatBuffers sources verified byte-identical to a fresh
regen with the pinned flatc 25.2.10 (namespace Stormo.Wire).
Verified: swift build clean; 72/72 tests in 17 suites;
Scripts/e2e-cli.sh cross-process exchange + heartbeat death
detection PASS.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Two independent failures surfaced after the repo rename: 1. CI macOS: "PCH was compiled with module cache path .../PeerMesh/PeerMesh". The SwiftPM cache restore-keys prefix matched pre-rename caches, whose PCHs embed the old workspace path — clang rejects them at the new /Stormo/Stormo checkout. The cache key now carries a 'stormo' salt so no pre-rename cache can restore. 2. macOS xcodebuild: "Sub-cap messages" expected dedicatedOpened == openedBefore+2 but read 16. The churn suite and the loopback-QUIC mesh suite both move the process-global dedicated-stream counters; each was .serialized internally but they ran concurrently with each other, so the mesh triangle's ladder (which crosses channelMaxPayload) polluted the churn suite's exact-delta assertions. Both suites now nest under a shared .serialized umbrella (DedicatedStreamCounterSuites) — the trait applies recursively, so counter-moving suites can never overlap. Verified: swift test 72/72 (18 suites); xcodebuild test -scheme Stormo-Package -destination platform=macOS SUCCEEDED (was the repro). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
"PeerMesh" collides with several existing projects. Stormo (Italian: a flock of birds — independent peers moving as one) came out cleanest from a ~75-name collision sweep: zero GitHub repos, no software product, no networking/P2P brand near it.
What changed
PeerMeshProtocol→StormoProtocol,PeerMesh→Stormo,PeerMeshUI→StormoUI,PeerMeshTestKit→StormoTestKit,PeerMeshCLI→StormoCLI.MPCCompatkeeps its name.peermesh-cli→stormo-cli; xcodebuild schemeStormo-Package.PEERMESH_NO_P2P→STORMO_NO_P2P(CI updated).Stormo.Wire(generated symbols only, wire bytes unchanged). Generated sources are byte-identical to a fresh regen with the pinned flatc 25.2.10.dev.securityunion.stormo.{identity,tls,quic}(keychain tags + queue labels, lowercased per convention).Stromo_NO_P2P/Stromo-clicasing, and didn't move theSources//Tests/directories (SPM infers paths from target names, so it couldn't build). All fixed.Scripts/e2e-cli.sh,flake.nix, CI updated throughout; stale pre-move regen-path comment insignal.fbsfixed.Breaking (#major)
import PeerMeshbreaks (remote-shutter's migration branch must bump).dev.securityunion.peermesh.*will not be found — existing installs mint a fresh identity, so theirPeerIDchanges. Fine pre-rollout; worth a release-note line.Verification
swift buildclean;swift test72/72 across 17 suites../Scripts/e2e-cli.sh: cross-process Bonjour+QUIC exchange PASS + heartbeat dead-peer detection PASS.Generated/: identical (CI drift check will pass).git grep -i "peermesh\|stromo"returns nothing.🤖 Generated with Claude Code