Name the mixnet proxy component for the mixnet - #1293
Open
zancas wants to merge 3 commits into
Open
Conversation
ADR 0005 was ratified on 2026-08-19 but never committed. It is the decision this branch implements, so it lands here as the first commit. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
ADR 0005 ruled that the crate is `mixnet-proxy`, that the component namespace is `mixnet_proxy`, and that the word "shim" leaves this repository's vocabulary. This carries that out and nothing else. No behaviour changes. The namespace, the built library, and the exported symbols all follow the Cargo package name through `uniffi::setup_scaffolding!`, so renaming the package moves `uniffi.zingo_nym_proxy_ffi` to `uniffi.mixnet_proxy`, `libzingo_nym_proxy_ffi.so` to `libmixnet_proxy.so`, and `ffi_zingo_nym_proxy_ffi_*` to `ffi_mixnet_proxy_*` by itself. What needed hand-editing were the copies: six staging paths that write the library file name, the two workbench binaries whose file names are their binary names, the Gradle source and golden directories, the Xcode project, the gitignore entries, and the CI workflows. Three names the ADR left open are settled here. The iOS xcframework becomes `MixnetProxy.xcframework`. The dependency alias `uniffi_shim` becomes `uniffi_proxy`. The `--shim-library` flag becomes `--proxy-library`, and both sides of that contract move together because the script exits on an unknown flag. The lint suppression for the old binding path is deleted rather than renamed. It pointed at `android/app/src/main/java/uniffi/`, which PR #1291 stopped producing, so it suppressed nothing and renaming it would have preserved a fiction. ADR 0004 is renamed, since its own file name carried the retired word, and its prose follows without touching its decision. ADR 0005 gains a status amendment recording that the rename landed, and correcting its claim that checked-in bindings would move: PR #1291 had already removed them. The wallet component keeps the name `zingo`, and `NymTransportModule` keeps its name. ADR 0005 rules both as separate decisions. Verified on Linux: cargo check, clippy, fmt, and 14 nextest tests in the renamed crate; the parent workspace still checks with its new exclude; the x86_64 build stages `libmixnet_proxy.so` and generates `uniffi/mixnet_proxy/mixnet_proxy.kt`; the Kotlin golden wire contract suite runs its three tests under the new namespace rather than silently vanishing; and `assembleBetaDebug` succeeds. iOS rests on its CI lanes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Three job and step names kept the retired word, and one gained a duplicated one. ripgrep skips hidden directories by default, so the verification sweep for the rename never looked inside .github. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
dorianvp
approved these changes
Aug 21, 2026
dorianvp
left a comment
Member
There was a problem hiding this comment.
utACK! Waiting for checks...
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.
This carries out ADR 0005 and nothing else. There is no behaviour change.
The crate becomes
mixnet-proxy. The component namespace becomesmixnet_proxy, so Kotlin importsuniffi.mixnet_proxy. The word "shim" leaves this repository's vocabulary, in prose, in file names, and in identifiers.ADR 0005 itself was never committed. It lands here as the first commit, because it is the decision this branch implements.
What renames itself
The namespace, the built library, and the exported symbols all follow the Cargo package name through
uniffi::setup_scaffolding!. Renaming the package moves all three by itself. No source file names a symbol prefix.What needed hands
Copies of the library file name, in six staging paths. The two workbench binaries, whose file names are their binary names. The Gradle source and golden directories. The Xcode project. The gitignore entries. The CI workflows.
Three names ADR 0005 left open
The iOS xcframework becomes
MixnetProxy.xcframework. The dependency aliasuniffi_shimbecomesuniffi_proxy. The flag--shim-librarybecomes--proxy-library, and both sides of that contract move together, because the script exits on an unknown flag.One deletion rather than a rename
The lint suppression for
android/app/src/main/java/uniffi/is deleted. PR #1291 stopped producing that path, so the entry suppressed nothing. Renaming it would have preserved a fiction.ADRs
ADR 0004 is renamed, because its own file name carried the retired word. Its prose follows. Its decision is untouched. ADR 0005 gains a status amendment: the rename landed, and its Consequences overstated the work, because PR #1291 had already stopped checking the bindings into git.
Verification
Run on Linux:
cargo check,clippy,fmt --check, and 14nextesttests pass in the renamed crate.exclude.yarn rust:android-local x86_64stageslibmixnet_proxy.soand generatesuniffi/mixnet_proxy/mixnet_proxy.kt. No file namednym_proxy_ffisurvives on disk.uniffi.mixnet_proxy.contract.GoldenWireContractTest. Gradle does not fail on a missing source directory, so this was checked by test count, not exit code.assembleBetaDebugsucceeds.127.0.0.1:45105, and logcat carried the renamed module path. This is the only check that catches a missed library name, which otherwise installs cleanly and never works.iOS rests on its CI lanes.
yarn rust:iosneeds macOS.One thing for the maintainer
nym-proxy-ffi-checkandnym-proxy-ffi-liveare branch-protection required checks, and they are nowmixnet-proxy-checkandmixnet-proxy-live. This pull request's required checks read as missing until the repository settings name the new jobs.Out of scope
The wallet component keeps the name
zingo.NymTransportModulekeeps its name. ADR 0005 rules both as separate decisions.🤖 Generated with Claude Code