docs: nightly doc-gardening sweep 2026-06-28 - #810
Conversation
Automated sweep via .claude/skills/doc-gardening. Updates per-package CLAUDE.md/AGENTS.md, docs/index.md entries, and ARCHITECTURE.md as needed. New packages documented (from wasm-wallet-bindings PR #803): - cmd/walletdk-wasm: browser WASM entry point over mobile facade - sdk/walletdk/mobile: gomobile-safe JSON facade over sdk/walletdk New packages documented (pre-existing, missing docs): - chainfees: chainfee.Estimator implementations and combinators - coinselect: coin-type-agnostic largest-first selector - internal/sqlbase: WASM-only SQL walletdb backend for lwwallet Updated stale packages: - sdk/walletdk: add GetExitPlan, SweepWallet RPC methods; new Entry DTOs (EntryPhase, EntryProgress, EntryRequest, EntryFailureCode, FailureCode field); error reconstruction mechanism via errmap.go - oor: add ErrOutputPolicyViolation, ErrUserBalanceExceeded typed submit errors (PR #807) Infra: - db: sync AGENTS.md to CLAUDE.md (pre-existing drift) - ARCHITECTURE.md: add five new packages to layer tables - docs/index.md: add walletdk_mobile.md entry
There was a problem hiding this comment.
Code Review
This pull request introduces several new packages and documentation files, including a coin-type-agnostic coin-selection algorithm (coinselect), reusable chain fee estimators (chainfees), a WASM-only SQL database backend (internal/sqlbase), and a gomobile-safe facade over the wallet SDK (sdk/walletdk/mobile) with its browser/WASM entry point (cmd/walletdk-wasm). The reviewer feedback highlights minor inconsistencies in the newly added documentation, specifically regarding the chronological ordering of migration notes in db/AGENTS.md and signature discrepancies for certain JSON RPC verbs in sdk/walletdk/mobile/AGENTS.md and sdk/walletdk/mobile/CLAUDE.md.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| - `000021_vhtlc_recovery_job_generations` — rebuilds `vhtlc_recovery_jobs` | ||
| to widen the uniqueness key from `(swap_id, action)` to | ||
| `(swap_id, action, vtxo_txid, vtxo_vout)`, so a refreshed vHTLC (new | ||
| outpoint) arms a new recovery "generation" instead of colliding with the | ||
| prior job. SQLite cannot widen a UNIQUE constraint in place, so the table | ||
| is recreated, rows are copied, and the state / swap-action / unroll-target | ||
| indexes are rebuilt. The down migration collapses each `(swap_id, action)` | ||
| to its newest row before restoring the narrower constraint. |
There was a problem hiding this comment.
The migration notes are listed in descending chronological order (from highest migration number to lowest). However, 000021_vhtlc_recovery_job_generations has been placed below 000020_accounting_wallet_sweeps. To maintain the correct descending order, please move the 000021 migration note to the very top of the 'Migration notes' section (above 000020).
| All verbs take a JSON request body (`[]byte`, nil treated as zero request) and | ||
| return a JSON response body. Host apps marshal/unmarshal with their native JSON | ||
| library. |
There was a problem hiding this comment.
There is a minor inconsistency here: the text states that 'All verbs take a JSON request body ([]byte...)', but the table below lists GetInfo(), Balance(), and Status() with empty signatures, indicating they do not accept any arguments. Please update the description to clarify that some verbs do not take a request body, or update the signatures if they actually do accept a []byte parameter.
| All verbs take a JSON request body (`[]byte`, nil treated as zero request) and | ||
| return a JSON response body. Host apps marshal/unmarshal with their native JSON | ||
| library. |
There was a problem hiding this comment.
There is a minor inconsistency here: the text states that 'All verbs take a JSON request body ([]byte...)', but the table below lists GetInfo(), Balance(), and Status() with empty signatures, indicating they do not accept any arguments. Please update the description to clarify that some verbs do not take a request body, or update the signatures if they actually do accept a []byte parameter.
|
Superseded by tonight's doc-gardening sweep. |
Automated nightly doc-gardening sweep for 2026-06-28.
Changes
New
CLAUDE.md/AGENTS.mdpairs created:cmd/walletdk-wasm— browser/WASMsyscall/jsbridge oversdk/walletdk/mobile(PR walletdk: browser (js/wasm) wallet bindings #803)sdk/walletdk/mobile— gomobile-safe JSON facade oversdk/walletdk(PR walletdk: browser (js/wasm) wallet bindings #803)chainfees—chainfee.Estimatorimplementations (WalletKitEstimator,MempoolSpaceEstimator,MinEstimator)coinselect— coin-type-agnostic largest-first selector (generic, no wallet dependencies)internal/sqlbase— WASM-only SQLwalletdbbackend forlwwallet(js && wasmbuild tag)Updated
CLAUDE.md/AGENTS.md:sdk/walletdk— addGetExitPlan/SweepWalletRPC methods, new Entry sub-types (EntryPhase,EntryProgress,EntryRequest,EntryFailureCode,FailureCodefield), error reconstruction mechanism (errmap.go)oor— addErrOutputPolicyViolationandErrUserBalanceExceededtyped submit errors (PR oor: add OOR_REJECT_USER_BALANCE typed reject code + classifier #807)db— syncAGENTS.mdtoCLAUDE.md(pre-existing migration-entry ordering drift)Infrastructure:
ARCHITECTURE.md— add five new packages to layer tablesdocs/index.md— addwalletdk_mobile.mdentryReview
Please check the updated
CLAUDE.md/AGENTS.mddiffs and theARCHITECTURE.mdlayer table additions for accuracy.Generated by the nightly doc-gardening workflow.