Skip to content

Rename the project: PeerMesh → Stormo #major - #14

Merged
darioalessandro merged 3 commits into
mainfrom
rename-to-stromo
Jul 28, 2026
Merged

Rename the project: PeerMesh → Stormo #major#14
darioalessandro merged 3 commits into
mainfrom
rename-to-stromo

Conversation

@darioalessandro

@darioalessandro darioalessandro commented Jul 28, 2026

Copy link
Copy Markdown
Member

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

  • Modules: PeerMeshProtocolStormoProtocol, PeerMeshStormo, PeerMeshUIStormoUI, PeerMeshTestKitStormoTestKit, PeerMeshCLIStormoCLI. MPCCompat keeps its name.
  • Binary/scheme: peermesh-clistormo-cli; xcodebuild scheme Stormo-Package.
  • Env var: PEERMESH_NO_P2PSTORMO_NO_P2P (CI updated).
  • Wire schema: FlatBuffers namespace → Stormo.Wire (generated symbols only, wire bytes unchanged). Generated sources are byte-identical to a fresh regen with the pinned flatc 25.2.10.
  • Reverse-DNS identifiers: dev.securityunion.stormo.{identity,tls,quic} (keychain tags + queue labels, lowercased per convention).
  • Typo repair: the first pass of this branch spelled it "Stromo" throughout, left Stromo_NO_P2P/Stromo-cli casing, and didn't move the Sources//Tests/ directories (SPM infers paths from target names, so it couldn't build). All fixed.
  • Docs, Scripts/e2e-cli.sh, flake.nix, CI updated throughout; stale pre-move regen-path comment in signal.fbs fixed.

Breaking (#major)

  • All library/module names change — downstream import PeerMesh breaks (remote-shutter's migration branch must bump).
  • Keychain application tags change: identities stored under dev.securityunion.peermesh.* will not be found — existing installs mint a fresh identity, so their PeerID changes. Fine pre-rollout; worth a release-note line.

Verification

  • swift build clean; swift test 72/72 across 17 suites.
  • ./Scripts/e2e-cli.sh: cross-process Bonjour+QUIC exchange PASS + heartbeat dead-peer detection PASS.
  • flatc 25.2.10 regen diffed against committed Generated/: identical (CI drift check will pass).
  • git grep -i "peermesh\|stromo" returns nothing.

🤖 Generated with Claude Code

darioalessandro and others added 2 commits July 28, 2026 00:14
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>
@darioalessandro darioalessandro changed the title Rename to stromo Rename the project: PeerMesh → Stormo #major Jul 28, 2026
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>
@darioalessandro
darioalessandro merged commit 5316a08 into main Jul 28, 2026
4 checks passed
@darioalessandro
darioalessandro deleted the rename-to-stromo branch July 28, 2026 07:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant