Skip to content

deps: repin MyOwnMesh to v0.3.2 + cut 0.2.48#195

Merged
mrjeeves merged 2 commits into
mainfrom
claude/allmystuff-cecsupport-deps-7og0uu
Jul 25, 2026
Merged

deps: repin MyOwnMesh to v0.3.2 + cut 0.2.48#195
mrjeeves merged 2 commits into
mainfrom
claude/allmystuff-cecsupport-deps-7og0uu

Conversation

@mrjeeves

Copy link
Copy Markdown
Owner

Moves the daemon pin onto MyOwnMesh v0.3.2 and bumps the manifests to 0.2.48 so that tag can be minted — CEC Support pins this release by tag.

Why the daemon pin has to move

v0.3.2 is the handshake/admission hardening cut (MyOwnMesh #104), and both halves change behaviour the node engine sits on top of:

  • DTLS channel binding in the ed25519 handshake. The signer folds the fingerprint of the certificate it presents into the signed payload; the verifier reconstructs it from the fingerprint it observes. A MITM on the (unauthenticated) Nostr/mDNS signaling path can no longer terminate DTLS on each leg and relay the auth handshake while both ends authenticate cleanly. The signed payload changed — a node built against this pin and a pre-v0.3.2 daemon do not agree on the handshake, so the pin can't lag.
  • Pre-admission dispatch gate. Inbound application / RPC / reliable-delivery / governance / capability / shelve frames are dropped until the peer is authenticated and Active/Shelved, and the Active transition now requires authenticated.

The AllMyStuff side of that same boundary already landed here in #189 (media-capture offers authorized against consent grants, unsolicited OwnershipControl::Claimed guarded). This pin moves the daemon under it so the stack is aligned.

Changes

deps: repin MyOwnMesh to v0.3.2 — the two pin sites, only one of which is a .rev file:

Site Role
.myownmesh-rev The bundled/managed daemon sidecar. node/build.rs bakes it as MYOWNMESH_PIN for the runtime version gate (an older daemon on the box is asked to self-update); gui/src-tauri/build.rs reads the same file to bundle the matching sidecar.
gui/mobile/Cargo.toml The mobile shell embeds myownmesh-core in-process (iOS can't spawn the daemon), so it carries its own git tags outside .rev. Bumped in lockstep.

chore(release): 0.2.48 — version-only, produced by scripts/bump-version.sh 0.2.48: the workspace root plus the three excluded sub-workspaces (gui/src-tauri, node, gui/mobile) and their locks/package.json/tauri.conf.json. Diff is 32 identical 0.2.470.2.48 lines, the same shape as the v0.2.47 bump.

Notes

  • Cutting the tag stays a maintainer step. The bump is here only so v0.2.48 is mintable — release.yml's "verify tag matches manifest versions" gate fails unless the manifests already claim the version being tagged. After this merges, just release 0.2.48 is a no-op on the manifests and goes straight to tag + push.
  • The v0.3.2 tag is already published upstream, so the mobile git deps resolve.
  • gui/mobile/Cargo.lock's myownmesh git-source entry is left alone per repo convention (it was already at v0.3.0 after the v0.3.1 repin) — it refreshes on the next real mobile build.
  • No code change: nothing in the node-control contract moved in this cut, the pin bump is the whole of it.
  • Verified cargo metadata --no-deps parses all four manifests and reports 0.2.48.

🤖 Generated with Claude Code

https://claude.ai/code/session_019xdiiiYN3ThDwnuHfqQnEy


Generated by Claude Code

claude added 2 commits July 24, 2026 23:54
v0.3.2 is the handshake/admission hardening cut, and both halves of it
change behaviour the node engine depends on:

  * The ed25519 auth handshake now folds the DTLS certificate fingerprint
    into the signed payload (channel binding), so a signaling-path MITM
    that swaps in its own fingerprint no longer survives mutual auth. The
    signed payload changed, so a node built against this pin and a daemon
    older than v0.3.2 do not agree on the handshake.
  * Inbound frames are gated on peer admission (authenticated + Active/
    Shelved). Application, RPC, reliable-delivery, governance, capability
    and shelve frames are dropped before any state moves, and `Active` now
    requires `authenticated`.

The AllMyStuff side of that boundary already landed here (PR #189 —
media-capture offers authorized, unsolicited `Claimed` guarded); this pin
moves the daemon under it so the stack is aligned.

Two pin sites, as always — only one is a .rev file:
  * .myownmesh-rev — the bundled/managed daemon sidecar. node/build.rs
    bakes it as MYOWNMESH_PIN for the runtime version gate (an older
    daemon on the box is asked to self-update), and gui/src-tauri/build.rs
    reads the same file to bundle the matching sidecar.
  * gui/mobile/Cargo.toml — the mobile shell embeds myownmesh-core
    in-process (iOS can't spawn the daemon), so it carries its own git
    tags outside .rev; bumped in lockstep.

The v0.3.2 tag is already published upstream. gui/mobile/Cargo.lock is
left alone per repo convention — it refreshes on the next real mobile
build.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xdiiiYN3ThDwnuHfqQnEy
Version-only bump produced by `scripts/bump-version.sh 0.2.48` — the same
edit `just release 0.2.48` makes before tagging (workspace + the three
excluded sub-workspaces: gui/src-tauri, node, gui/mobile).

Done here so v0.2.48 can be minted from this branch's merge: CEC Support
pins the AllMyStuff sidecar and its three linked crates by tag, and
release.yml's "verify tag matches manifest versions" gate fails unless
the manifests already claim the version being tagged.

Cutting the tag stays a maintainer step — `just release 0.2.48` after
this merges is a no-op on the manifests and goes straight to tag + push.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019xdiiiYN3ThDwnuHfqQnEy
@mrjeeves
mrjeeves merged commit b04faf3 into main Jul 25, 2026
14 checks passed
@mrjeeves
mrjeeves deleted the claude/allmystuff-cecsupport-deps-7og0uu branch July 25, 2026 00:02
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.

2 participants