Release the first onchain version as 0.1.0, renamed to nexus-proxy - #16
Merged
Conversation
This package has never been published to the APM registry, so the registry expects its first onchain version to be 0.1.0. The 0.1.x and 0.2.0 tags in this repository were GitHub releases only; renumbering here lines the manifest up with what the first real publish will claim. Also moves the SDK pin from d226fca to 2199773. d226fca only ever existed on the feat/dynamic-trust-policy branch; main squash-merged that work as 2199773 (PR #8). The Dockerfile fetches the pinned SHA exactly, so a pin to a PR branch breaks every build the moment that branch is deleted. 2199773 is current SDK main and contains the same dynamic trust policy. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The repository is now dappnode/DNP_NEXUS_PROXY, following the DNP_<NAME> convention every core package uses. This brings the package identity in line with it: nexus-local-proxy.dnp.dappnode.eth -> nexus-proxy.dnp.dappnode.eth which is what DNP_BIND -> bind.dnp.dappnode.eth and DNP_DAPPMANAGER -> dappmanager.dnp.dappnode.eth already do. The compose service and mainService follow, so the internal DNS name becomes nexus-proxy.dappnode.private:3301. The container prefix moves to DAppNodeCore- as well. The manifest has declared type: dncore since 0.2.0, so DAppNodePackage- was already contradicting it. This rides on the 0.1.0 renumbering rather than landing separately because both are only free before the first onchain publish. A dnpName is the package's identity on the registry: changing it after publication means a new package and a migration for anyone who installed the old one. Doing it now costs nothing. Repository and issue URLs follow the rename, and the docs use the new hostname. Co-Authored-By: Claude Opus 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
Two things that are only free before the first onchain publish, so they ride together.
1. First onchain version must be
0.1.0. This package has never been published to the APM registry. The registry expects a first version of0.1.0, but the manifest claimed0.2.0— the0.1.x/0.2.0tags here were GitHub releases only, and have been deleted.2. The package name now follows core convention. The repository is
dappnode/DNP_NEXUS_PROXY, matching theDNP_<NAME>convention every core package uses, so the package identity follows:exactly as
DNP_BIND -> bind.dnp.dappnode.ethandDNP_DAPPMANAGER -> dappmanager.dnp.dappnode.eth. A dnpName is the package's identity on the registry: renaming after publication means a new package plus a migration for everyone who installed the old one. Now it costs nothing.Changes
0.2.00.1.0nexus-local-proxy.dnp.dappnode.ethnexus-proxy.dnp.dappnode.ethnexus-local-proxynexus-proxyDAppNodePackage-…DAppNodeCore-…nexus-local-proxy.dappnode.private:3301nexus-proxy.dappnode.private:3301d226fca2199773The container prefix moves to
DAppNodeCore-because the manifest has declaredtype: dncoresince 0.2.0, soDAppNodePackage-was already contradicting it.Why the SDK pin moved
d226fcaonly ever existed on thefeat/dynamic-trust-policybranch; main squash-merged that work as2199773(#8). The Dockerfile fetches the pinned SHA exactly:git fetch --depth=1 origin "${UPSTREAM_VERSION}"so pinning a PR-branch commit breaks every build the moment that branch is deleted.
Verification
Built from this branch and run against the live TEE Gateway:
Manifest + compose pass the dappmanager schema validation after the rename.
This is the fix for a live failure: the proxy deployed on a DAppNode right now is package
0.1.2, pinned by static policy to Gatewayv0.1.58. The Gateway moved tov0.1.61on 2026-09-03, so it has been failing closed ever since — 6971 restarts — withattested source_revision is not a pinned Gateway release. Correct fail-closed behaviour, and exactly what--trust-policy-updatesexists to prevent.The image also now builds with no GitHub token, since
dappnode-nexus-sdkis public.Follow-up
The Hermes package hardcodes the old hostname; dappnode/DAppNodePackage-Hermes-agent#48 needs the matching
nexus-proxy.dappnode.privateupdate before either lands in front of users.🤖 Generated with Claude Code