Skip to content

bench 308's copy assumed a coin could not fall below one maker - #3315

Merged
Flotapponnier merged 3 commits into
devfrom
fix/privacy-coin-books-copy
Oct 27, 2026
Merged

Flotapponnier merged 3 commits into
devfrom
fix/privacy-coin-books-copy

Conversation

@Flotapponnier

Copy link
Copy Markdown
Collaborator

Follow-up to #3314, which is the PR that made this wrong.

Before that fix, a coin with nothing on the book kept its last gauge value, so the smallest number this board could ever publish was whatever the coin had on its last good day. The copy was written against that floor:

  • intro: "One coin has dozens of makers; several have exactly one."
  • finding 2: "Several coins on this board have exactly one maker."
  • FAQ 1: "Several coins on this board have exactly one maker, which means their market is one person."

Within minutes of #3314 shipping, three of the seven rows read 0:

basicswap  dash 0   firo 0   pivx 0   part 2   part-blind 1   wow 6   xmr 52
unstoppableswap  xmr 8

Verified against an independent read of the BasicSwap feed at the same moment: Dash, Firo and PIVX have no live offer, expired or otherwise. The three rows are correct and the copy around them was not.

The copy now says what the board can show, without hard-coding which coins are where: dozens, one, or none. The headline numbers still come from {{best_name}} / {{worst_name}} tokens.

Gate: pnpm validate 257 specs valid.

Needs a worker rebuild and a mat-reset.sh privacy-coin-books after merge, same as #3314.

Flotapponnier and others added 3 commits October 27, 2026 16:16
All three providers on privacy-round-trip query asset="ZEC.ZEC", so the
seo_title "Zcash and Dash in and out" named an asset the table does not
carry. The harness does measure Dash, but only on Maya: THORChain and
NEAR Intents do not quote it, and this board's rows are rails, so a Dash
row would be one rail wide. The title now says what the board shows and a
methodology bullet says why it is one asset wide, pointing at the exit
cost board for the asset comparison.

307's title was correct but read as arbitrary: nothing on the page said
why Zcash. It is the only asset measured that HAS a shielded address
format, Monero being private by default and Dash offering optional mixing
over ordinary addresses. Added as a bullet.

THORChain shipped without a mark and rendered as a letter tile. The logo
is the 180x180 icon thorchain.org declares in its own head, shape checked
before it was kept.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ere blank

Four defects, each measured against the live feeds rather than read off the
code.

A gauge that is never Set keeps its last value for as long as the process
lives. probeBasicSwap only published the coins it found on the book, so a
coin whose makers left kept republishing the market it used to have. Firo
sat at one maker for a full day on 2026-10-27 while the feed carried no Firo
offer at all, which is the exact row the abstract says this bench refuses.
Every coin in the cohort is now published every tick, zero included, and
zero_is_a_value goes with it so the row reads 0 instead of being deleted.

The Pairs column over-counted. The feed carries an offer as an ordered pair,
so XMR->BTC and BTC->XMR were two "distinct pairs" for one market: Monero
published 8 where the book held 5, Dash 3 where it held 2, Wownero 5 where
it held 4. The key is now undirected and the column is called Markets.

Both companion panels rendered empty. A panel is queried as
`<metric>{coin="<provider slug>"}` with no normalisation, and the gauges
were labelled XMR while the rows are called xmr, so nothing matched and
nothing said so. The harness now labels by slug and the provider queries
follow.

sample_size was the live offer count, which put "3 samples" under PIVX
because PIVX has three offers. It is now the number of scrapes behind the
row.

Two additions that follow from the above: a Coins on offer column, because
the findings already claim one maker can offer thousands and no column
showed it, and a dedupe by peerId on the Monero maker directory, which has
no duplicates today and no guard against one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
It could not, before: a coin with nothing on the book kept its last gauge
value, so the lowest number the board could ever show was whatever the
coin had on its last good day. Three of the seven rows read 0 within
minutes of the fix shipping, verified against an independent read of the
feed, and the intro, the second finding and the first FAQ answer all
promised a floor of one.

The copy now says what the board can show: dozens, one, or none.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Flotapponnier
Flotapponnier merged commit 22f644e into dev Oct 27, 2026
2 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