Skip to content

fix: binance note said "limited to testnet" nine days after mainnet went live - #3

Merged
namixai merged 4 commits into
mainfrom
fix/venue-notes-honesty
Aug 6, 2026
Merged

namixai merged 4 commits into
mainfrom
fix/venue-notes-honesty

Conversation

@namixai

@namixai namixai commented Aug 6, 2026 •

Copy link
Copy Markdown
Owner

Caught by Alex in the 0.4.0 release candidate, before publication.

The claim was nine days stale in the wrong direction

binance said "v0 limited to testnet until pilot graduates". That has been false since 2026-07-27, when the signer signed real orders with real money on Binance mainnet. Anyone reading this manifest to decide whether mainnet was usable got the wrong answer — and the release about to ship carried it forward.

The replacement says whose mainnet, deliberately:

Mainnet signing is exercised in production, with our own funds — founder dogfood since 2026-07-27. External design partners remain on testnet: this is NOT client traffic on mainnet. USD-M futures only — spot order signing is not implemented.

A blanket "mainnet-live" reads as "clients are trading live", which is a different and untrue claim. The spot clause is there for the same reason: "spot routes merged" is not "spot works".

okx: not stale, imprecise in the same direction

"v0 limited to testnet" implies testnet works. No OKX key is provisioned in the reference deployment, so it signs nowhere today — mainnet or testnet. Now stated plainly rather than implied away.

The other four were re-read, not assumed

asterdex, kucoin, bybit, and the two Hyperliquid entries carry no deployment-state claims — auth scheme and symbol format only, which is what a venue manifest should assert. Every venue listed also has a real handler in the enclave, checked against venue_for_action rather than taken on trust.

The pattern worth naming

Both defects are the same shape: a claim about deployment state written into an artefact that ships independently of the deployment. It goes stale the moment production moves, and nothing makes a noise when it does. That is the third instance this week — the Hyperliquid status, the published PCR0, and now this.

tsc clean · signer-mcp 90/90 · plugin-signer 31/31.

Publication is Alex's step, after merge.

Summary by CodeRabbit

  • Documentation

    • Updated release notes with deployment-status clarifications for Binance, OKX, and Hyperliquid.
    • Documented per-venue live and denied statuses, including Hyperliquid testnet availability and mainnet denial.
    • Clarified how venue and enclave-level denials are displayed.
    • Added verification notes for venue information and rendered status output.
  • Updates

    • Refined Binance and OKX deployment descriptions, including signing and testnet availability details.
    • Updated the package release version to 0.4.0.

namixai added 2 commits August 6, 2026 15:22
Minor, not patch: VenueEntry gained a REQUIRED field, the manifest gained an
entry, and the meaning of the list changed materially. A patch bump would
understate what a consumer is picking up.

Not published from here — the publish step is Alex's.
…nt live on mainnet

Alex caught it in the 0.4.0 release candidate, before publication.

The manifest told anyone deciding whether Binance mainnet was usable that it was
not. It has been since 2026-07-27, when the signer signed real orders with real
money. A user reading this to plan an integration got the wrong answer, and the
package that was about to ship carried the mistake forward.

The replacement says WHOSE mainnet, deliberately. A blanket "mainnet-live" reads
as "clients are trading live", and that is a different and untrue claim: this is
founder dogfood on our own funds, external design partners remain on testnet. It
also states USD-M futures only — spot order signing is not implemented, and
"spot routes merged" is not the same sentence.

okx said "limited to testnet" too. That one is not stale so much as imprecise in
the same direction: it implies testnet works. No OKX key is provisioned in the
reference deployment, so it signs nowhere today — mainnet or testnet. Said plainly.

The other four entries were re-read for the same defect. They carry no
deployment-state claims at all: auth scheme and symbol format only, which is what
a venue manifest should assert. Every venue listed also has a real handler in the
enclave — checked against venue_for_action rather than assumed.

The pattern is the one that keeps recurring: a claim about DEPLOYMENT STATE
written into an artefact that ships independently of the deployment. It goes
stale the moment production moves, and nothing makes a noise when it does.
@coderabbitai

coderabbitai Bot commented Aug 6, 2026 •

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

You’ve reached a temporary PR review limit under our Fair Usage Limits Policy.

Your recent review volume is higher than typical usage, so adaptive limits are currently applied.

Next review available in: 16 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 948eabd2-d64a-420a-954b-d4169a08eac9

📥 Commits

Reviewing files that changed from the base of the PR and between 7a10680 and 0b9c4c0.

⛔ Files ignored due to path filters (1)
  • package-lock.json is excluded by !**/package-lock.json
📒 Files selected for processing (2)
  • CHANGELOG.md
  • src/venues.ts
📝 Walkthrough

Walkthrough

The change corrects Binance and OKX deployment notes, updates the package version to 0.4.0, and adds changelog entries for versions 0.4.0 and 0.3.0.

Changes

Venue deployment notes release

Layer / File(s) Summary
Venue deployment note corrections
src/venues.ts
Binance notes distinguish internal mainnet use from external testnet traffic and unsupported spot signing. OKX notes state that no key is provisioned and signing is unavailable on either network.
Package release metadata
package.json, CHANGELOG.md
The package version changes from 0.2.0 to 0.4.0. The changelog adds entries for versions 0.4.0 and 0.3.0.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • namixai/plugin-signer#1: Updates the venue manifest and status notes that the current Binance and OKX changes refine.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately identifies the primary change: correcting Binance’s outdated testnet-only deployment note after mainnet signing became available.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches 💡 1
⚔️ Resolve merge conflicts 💡
  • Resolve merge conflict in branch fix/venue-notes-honesty
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/venue-notes-honesty

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@CHANGELOG.md`:
- Around line 24-25: Update the remaining-entry description in the changelog to
accurately reflect the five IDs left after binance and okx, including
deployment-state claims for the hyperliquid_* entries, or restrict the wording
to only the entries that describe auth scheme and symbol format.

In `@package.json`:
- Line 3: Synchronize the root package version in package-lock.json with the
0.4.0 version declared in package.json, updating the lockfile before publishing
while preserving all other dependency metadata.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: bfe41521-1275-4e2d-93d7-a21280390483

📥 Commits

Reviewing files that changed from the base of the PR and between f31b64a and 7a10680.

📒 Files selected for processing (3)
  • CHANGELOG.md
  • package.json
  • src/venues.ts

Comment thread CHANGELOG.md Outdated
Comment thread package.json
namixai added 2 commits August 6, 2026 20:06
The lockfile had never been bumped: package.json said 0.4.0 while
package-lock.json still declared 0.2.0, through two releases. Publishing that way
ships a tarball whose two version records disagree, and npm does not stop you.
Regenerated with --package-lock-only, so no dependency was resolved differently.

The changelog said "the remaining four entries". Five remain after binance and
okx, and lumping them together was wrong in substance as well as arithmetic: the
two hyperliquid_* entries DO carry deployment status, deliberately — that was the
whole point of the previous release. Split into the three that carry no status
claim and the two that carry one on purpose.

Merge conflict was package.json (0.4.0 vs 0.3.0 — ours, the newer) and the
changelog insertion point; both entries kept, newest first.
…s nowhere

CodeRabbit caught a contradiction inside my own fix, and it is the same defect
inverted: last release I made the manifest honest as DATA rather than prose, and
here I left okx as status "live" while rewriting its note to say it signs nowhere.
Prose honest, machine-readable field lying.

The proposed remedy — a third `unavailable` state — is where I disagree, because
it would make the root problem worse. "No key here" is a property of a
DEPLOYMENT. Encoding it in a constant shipped inside a package makes the manifest
wrong for every operator except one, and drifts the moment a key is provisioned.
That is precisely the failure this field was introduced to stop: a claim about
deployment state written into an artefact that ships independently of the
deployment.

So the contract stays two-state and is now documented as what it always should
have said: `status` describes the SIGNER RULES — `denied` means the enclave
refuses regardless of keys, `live` means it will sign given a provisioned key.
Whether a key exists is a question for the gateway, not for a constant.

The okx note is reworded on the same principle: what the enclave does, and
separately what Usenami hosted happens to have today, named as such rather than
stated as a property of the venue.

Also corrected: "the remaining four entries" — five remain after binance and okx,
and lumping them was wrong in substance too, since both hyperliquid_* entries do
carry status deliberately. And the lockfile was still declaring an old version
while package.json had moved; regenerated with --package-lock-only so no
dependency resolves differently.
@namixai
namixai merged commit eea0790 into main Aug 6, 2026
2 of 3 checks passed
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