deviant/shells
Local Dev 31273686a5 feat(anthemus.dex): live cross-nav + BCH/USD/EUR chips + sequential PIN
Three fixes in one turn.

CROSS-NAV — Artemision · Katalogos · Listing · Swap · Deposit all
now actually land somewhere.
- New deep-link protocol: hash form (#tab=… &sub=… &view=…) instead
  of query string. The BNS gateway strips ?query from path-key
  resolution so `wallet/?tab=agora` falls back to the name-root
  landing; hash never hits the gateway.
- src/deepLink.ts::deepLinkParam(name) reads hash first, query second.
  All wallet-side sniffers switched to it (App.tsx tab · AgoraScreen
  panel · AnthemusScreen view · ArtemisionScreen sub · KatalogosPanel
  open=publish).
- ExchangePanel takes a `routes` + `linkTarget` prop; AnthemusKiosk
  populates it with wallet URLs opening in a new tab
  (deviant.x/wallet/#tab=…). Wallet-embedded ExchangePanel keeps
  the old hash-only defaults.
- KatalogosPanel opens the Pinax registration modal automatically
  when the deep link carries open=publish, so the Listing link lands
  on the "add asset" form instead of the readonly directory.

ASSET CHIPS — Favorites/All/Fiat replaced with ★ · BCH · USD · EUR
per user request (Binance-style compact chips).
- Single-select with click-again-to-clear; no active chip = show all.
- ★ chip is icon-only, gold when active; currency chips filter pairs
  whose base OR quote ticker matches. Counts render next to each
  chip and update as favorites change.
- Persists to deviant.anthemus.assetChip; retired the assetTab key.

PIN ENTRY — two pads on one screen is fixed. Set-a-PIN now walks
choose → confirm sequentially: single pad on screen, "Next" advances
after ≥ 4 digits, "Back" returns to edit the first without clearing.
Same PinPad component, two-step state (pinStep) inside Onboarding.

ASSET-BASE FIX — the BNS gateway injects `<base href="/bns/<name>/">`
into every served HTML, which broke the subpath deploy: assets at
`/bns/deviant.x/wallet/assets/…` were resolved against the name root
and 404'd. Now building with DEVIANT_BASE=/bns/deviant.x/wallet/ so
all asset paths are absolute — the gateway's injected base becomes
irrelevant. Cross-bucket loads (anthemus.dex → wallet's assets)
work by design because the origin is the same.

Deployed to bns/deviant.x/wallet/ + bns/deviant.x/anthemus/. Verified
end to end: wallet boots at deviant.x/wallet/, kiosk fires at
anthemus.dex/, chips filter correctly (USD→2 rows, ★→favorites only),
PIN flow shows one pad at a time.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-09-19 21:38:48 +02:00
..
app feat(anthemus.dex): live cross-nav + BCH/USD/EUR chips + sequential PIN 2026-09-19 21:38:48 +02:00
mobile chore: initial project baseline — full Deviant codebase under version control 2026-06-13 20:38:07 +02:00