Skip to content

Version 4.0.0 - #10

Merged
aaroncox merged 27 commits into
masterfrom
dev
Sep 23, 2026
Merged

aaroncox merged 27 commits into
masterfrom
dev

Conversation

@aaroncox

Copy link
Copy Markdown
Member

Packages changed: light-api, session, wallet-plugin-tacklebox.
Shared build changes: bun.lock, rolldown.config.mjs, scripts/release.ts.

includenull and others added 27 commits July 18, 2026 01:07
A WalletPlugin for @wharfkit/session that logs in and signs transactions
with TackleBox over the anchor-link protocol it speaks: ESR identity
requests presented paste-first (QR, copy button and esr: link), buoy
callbacks, and sealed transaction requests pushed straight into the
wallet's announced channel, with a manual QR/paste fallback when no
channel exists.

Based on the wharfkit/wallet-plugin-template structure and modeled on
wharfkit/wallet-plugin-anchor (BSD-3-Clause, Greymass Inc).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
protocol-esr's isKnownMobile dereferences navigator, which only exists as
a global from Node 21 - guard it so SSR and Node 18/20 work. Clamp the
expiry timer below the 2^31-1ms setTimeout ceiling so far-future
expirations do not fire immediately. The sign suite now pins Date to the
recorded chain head so TAPOS-derived expirations stay in the future no
matter when the tests run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vite + web-renderer + the plugin from file:../..: login, self-transfer
on the linked chain, session restore and logout. Verified in a browser
that the real WebRenderer renders the paste-first login prompt (QR,
copy button with copied-feedback re-prompt, esr: link) exactly as the
mocked UI tests describe.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Login now fires a tacklebox://request/<payload> deep link that opens the
wallet with the identity request (channel-less signing does the same);
the prompt keeps a Launch TackleBox link, the QR code and copy-paste as
fallbacks, and a disableAutoLaunch option opts out. The wallet's own
scheme is used because esr: may belong to Anchor on the same machine -
verified live against an Anchor install. Channel signing does not
navigate; TackleBox raises its own window when the push arrives.

While a TackleBox prompt is up, the session modal wears the wallet's
theme - deep-void navy, cyan light lines, restrained glow - via a
stylesheet injected into the web renderer's shadow root, scoped behind a
host attribute so other wallets' prompts keep the stock look, and
feature-detected so non-web-renderer UIs are untouched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This repository is the upstream source; the plugin is meant to be
forked into the official Wharfkit plugin collection, which is where an
npm package would be published.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The angular navy tacklebox with teal lid, cyan circuit accents and hook
emblem replaces the placeholder mark: plugin logo (both variants),
README header, example dapp favicon, and the SVG source in assets/.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Wallet metadata (homepage/download), docs and test expectations now
point at github.com/doyen-games; this plugin repository itself stays
put, destined for the Wharfkit collection.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Upstream review (Greymass) is right that a wallet plugin should have no
idea what is rendering it: the theme injection reached into
web-renderer's shadow root through unsupported fields, silently
no-opped under wharfkit/web-ui or custom UIs, and collided with any
theming the integrating dapp does. Removed entirely - the plugin now
speaks only the abstract UserInterface contract, and TackleBox's
presence in the modal comes through its logo and prompt content.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@aaroncox
aaroncox merged commit 756e80d into master Sep 23, 2026
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.

3 participants