fix(openwrt): close TollGate free-access gap, mint URL bug, and payout config #155
Closed
ssmithx
wants to merge 3 commits from
fix/tollgate-provisioning-gaps into main
pull from: fix/tollgate-provisioning-gaps
merge into: :main
:main
:fix/paid-content-payment-not-lost
:fix/mint-error-detail-swallowed
:investigate/framework-lnd-startup
:fix/minibits-already-redeemed
:cuprate-fixes
:feature/dojobay-app
:fix/bitcoin-core-tor-service-name
:docs/openwrt-gateway-setup
:cuprate-cpu-fix
:fix/cuprate-explicit-logging-levels
:companion/session-2026-08-31
:companion/0.5.28-deploy-handoff
:companion/0.5.28-ship
:companion/0.5.28
:app-bumps-mirror-pending
:cuprate-archyapp
:docs/todo-list
:companion/0.5.27-version-meta
:companion/0.5.27-ship
:companion/0.5.27-clipboard-qr-restart
:ux-at-last
:fix/mesh-send-content-inline-federation-fallback
:cashu-error-messages
:gsd/phase-13-aiui-functional-conversational-node-control-and-content-surf
:feat/podsteadr-app-package
:rotate-release-root
:chore/aiui-monorepo-migration
:wip/phase-13-p13-02
:wip/phase-13-p13-01
:fix/bitcoin-conf-conflict-crash-loop
:demo-build
:archy-hwconfig
:openwrt-enhancements
:a3-10-endpoint-fallback
:public-prelaunch
:release/1.7.115-prep
:fix/web-listener-ipv6
:fips-companion-5g-hardening
:fix/connection-accept-deadlock
:fix/demo-images-path-filter
:fix/companion-autologin-replay-intro
:networking-profits-dashboard
:identities-mobile-polish
:companion-qr-scan-fix
:companion-qr-pairing
:intro-reliability-video-perf
:login-bg-continuity
:audio-bottom-bar
:demo-intro-every-visit
:intro-entrance-fixes
:cloud-feedback-demo-content
:cloud-tabs-search
:ark-wallet-ui-demo
:demo-nginx-app-assets
:demo-ui-fixes
:ark-wallet-barkd
3
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
5f83fd1fee |
feat(openwrt): make TollGate payout Lightning address configurable
Archipelago never touched /etc/tollgate/identities.json — the "owner" payout identity was whatever the router's TollGate install happened to default to. Confirmed live against archy-x250-pa3: an unmodified upstream placeholder (tollgate@minibits.cash), meaning 79% of every customer payment would auto-payout to an address the operator never chose and doesn't control. Adds TollGateConfig.payout_address (opt-in — None leaves the router untouched), config::apply_payout_identity() to merge it into the "owner" entry of identities.json without disturbing the merchant keypair or the other profit-share identities, an RPC param on openwrt.provision-tollgate, and a status field + reconfigure-form input in the OpenWrt Gateway panel. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KTdMfVJChCwCCYF1ZTRQLc |
||
|
|
2b2a14c569 |
docs(tollgate-sweep): document two live-confirmed drain-CLI bugs
sweep_once() has never actually swept anything: `tollgate wallet drain cashu` (no flags) blocks on an interactive y/N confirmation that Router::run can never answer over a non-PTY SSH exec (empty stdin -> EOF -> defaults to N -> "Operation cancelled." with exit code 0), so the drain_code != 0 check can't catch it and every tick silently no-ops. The obvious fix isn't safe either: `--json` skips the prompt, but confirmed live against archy-x250-pa3 that on a wallet.db with a stale duplicate per-mint entry (trailing-slash leftover from before the mint_url fix), it completes a real swap against the good entry, then aborts on the second (empty, stale) entry and reports "success": false without ever printing or persisting the resulting token anywhere. 50 sats went from spendable balance to gone in that one call. Documented so nobody "fixes" this by wiring in --json before upstream fixes the partial-failure data loss. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KTdMfVJChCwCCYF1ZTRQLc |
||
|
|
f355ae753b |
fix(openwrt): close TollGate free-access gap and mint URL mismatch
Two bugs found live against archy-x250-pa3: TollGate-3458 (the upstream tollgate-module-basic-go installer's own default AP, rebranded from OpenWrt's factory default wireless.default_radioN sections) was left bound to `network=lan` — wide open, unmetered, and sharing the router's admin LAN — because install_ipk() runs the upstream package's own uci-defaults scripts but nothing reconciled the AP they create with the separate `tollgate` network/bridge/firewall this project's own provision_ssid() sets up for the "archipelago" SSID. Fixed by folding any default_radioN section left on `lan` onto the `tollgate` network right after it's created. Separately, a caller-supplied mint_url with a trailing slash (https://mint.minibits.cash/Bitcoin/) got written byte-for-byte into accepted_mints[0].url, which tollgate-wrt string-compares exactly against a token's embedded (slash-less) mint URL — rejecting every otherwise-valid token as an "untrusted mint". Fixed by trimming trailing slashes before the value is used anywhere. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KTdMfVJChCwCCYF1ZTRQLc |