Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2301 commits
Select commit Hold shift + click to select a range
abf1c6e
chore: regenerate proto bindings after rebase
benwgold Apr 15, 2026
fcb245d
fix: regenerate protos with protoc 33.2 and format CLI
benwgold Apr 15, 2026
417af40
feat: include tokenIdentifiers in per-transaction event metadata
benwgold Apr 15, 2026
09a50b1
fix: regenerate protos with protoc-gen-go v1.36.11 / protoc-gen-go-gr…
benwgold Apr 16, 2026
4ea4b9c
fix: skip heartbeat events in stream notification test
benwgold Apr 16, 2026
462c546
fix: enable token tx events knob in stream notification test
benwgold Apr 16, 2026
fafad03
chore: add Apache-2.0 license to spark-token-primitives crate (#6215)
peterrojs Apr 16, 2026
ec0f806
[ssp-hermetic] Speed up hermetic tests (#5830)
step-step2 Apr 16, 2026
fdd4244
fix: increase fundWallet balance poll budget for CI stability
benwgold Apr 12, 2026
017f745
fix: retry transfer on CREATING leaf race condition in multi-leaf-tra…
benwgold Apr 13, 2026
a447a21
test: add bare integration test for multi-receiver transferV2
benwgold Apr 14, 2026
10eaa86
revert: remove multi-receiver-transfer test (not needed)
benwgold Apr 14, 2026
1cbc713
chore: vendor protos into spark-token-primitives tarball for publishi…
peterrojs Apr 16, 2026
b914440
Create combined preimage and key tweak gossip (#6213)
keenan-lightspark Apr 16, 2026
22192b4
chore: add publishing metadata to spark-token-primitives Cargo.toml (…
peterrojs Apr 16, 2026
fd684f4
Running renew leaf tests in both paths (#6219)
zhenlu Apr 16, 2026
372445d
Update send transactions path to round leaves down (#6191)
lightsparkmax Apr 16, 2026
19fbcdc
[examples] polish vite target and network controls (#6204)
coreymartin Apr 16, 2026
c6bfee7
[spark-vite-app] add local deposit flow (#6206)
coreymartin Apr 16, 2026
db0c9af
[SPARK-301]Add RisingWaveDatabasePath in main (#6223)
changli2023 Apr 16, 2026
d64a6ab
[spark-vite-app] simplify startup configuration (#6210)
coreymartin Apr 16, 2026
f8ba2dc
fix: null-safe NOT IN in deposit handler exclude_claimed filters (#6225)
yellowred Apr 17, 2026
31ea22c
Add some info logs for 2PC engine (#6226)
zhenlu Apr 17, 2026
63238a7
[sdk] Removed electrs for Network.LOCAL. (#6208)
mhrheaume Apr 17, 2026
f812667
[spark-sdk] route wasm bindings through sdk crypto (#6205)
coreymartin Apr 17, 2026
8be38aa
chore: add LICENSE file to spark-token-primitives crate (#6221)
peterrojs Apr 17, 2026
c068300
Remove old strict finalize sig knob (#6227)
keenan-lightspark Apr 17, 2026
a1c2b96
Create MAINTAINERS (#6231)
kphurley7 Apr 17, 2026
3317b09
Run both path for deposit tests (#6224)
zhenlu Apr 17, 2026
09236a4
[spark-token-primitives] vendor validate.proto in publish script (#6229)
peterrojs Apr 17, 2026
c6e3333
[spark-token-primitives] write public README for crates.io (#6230)
peterrojs Apr 17, 2026
03241cd
[SO] signing keyshares optimizations (#5602)
peterrojs Apr 17, 2026
ea8d40e
[sync] Update to SSP schemas (#6212)
lightspark-bot Apr 18, 2026
791bf3e
[SO] optimize spent token_outputs lookup in transfer validation (#5603)
peterrojs Apr 20, 2026
9b5790a
Wrap coop exit pubkey parse errors as InvalidArgumentMalformedField (…
ls-bolt[bot] Apr 20, 2026
dc713f8
[spark-sdk] remove client-side otel tracing (#6235)
coreymartin Apr 20, 2026
dccf5a5
[js] Version packages (#6232)
lightsparkmax Apr 20, 2026
7ba75cd
[gha] fix bare prebuild dependency triggers (#6236)
coreymartin Apr 20, 2026
f3232f4
Align transfer_sender/transfer_receiver create_time with parent trans…
turkycat Apr 20, 2026
25ca102
Add more logs for tree exit handler (#6250)
zhenlu Apr 20, 2026
6a8a530
[SPARK-301] Add partner transaction volume query endpoint (#6188)
changli2023 Apr 20, 2026
9866e7e
Use combined gossip in preimage swaps (#6214)
keenan-lightspark Apr 20, 2026
a204967
Speed up repair_transfer_participant_create_time with bulk UPDATEs + …
turkycat Apr 20, 2026
e339cfd
[spark-token-primitives] README.md remove version (#6247)
peterrojs Apr 20, 2026
1cabadc
[SPARK-301] Refactor partner schema: extract partner_keys table (#6253)
changli2023 Apr 21, 2026
8e5b285
[ci] Unskip multi-leaf bare test. (#6241)
mhrheaume Apr 21, 2026
572fe3c
[gha] cancel stale bare prebuild runs (#6258)
coreymartin Apr 21, 2026
a995059
[SPARK-301] Update read path and add write path to use partner_keys f…
changli2023 Apr 21, 2026
b8c4477
[SPARK-301] Set fields to be nullable and make edgefield not nullable…
changli2023 Apr 21, 2026
4a8bbe1
[SPARK-301] Stop writing deprecated columns on partners (#6260)
changli2023 Apr 21, 2026
636767d
[so] Make instant UTXO swap expiry_time optional in handler (#6264)
lightsparkmax Apr 21, 2026
92c801e
[SPARK-301] Deprecate partner_id, partner_name, jwt_public_key on par…
changli2023 Apr 21, 2026
66b7eb9
[so] Stop writing utxo_swap expiry_time; deprecate proto field (#6265)
lightsparkmax Apr 21, 2026
7620aee
[js] cut over to SPARK_LOCAL_INGRESS_HOST (#6222)
coreymartin Apr 21, 2026
19d5ff6
[js] consolidate local startup scripts (#6251)
coreymartin Apr 21, 2026
db71a73
[SPARK-301] Drop deprecated partner_id, partner_name, jwt_public_key …
changli2023 Apr 22, 2026
7b1237a
[SPARK-301] Track partner attribution for cooperative exit transfers …
changli2023 Apr 22, 2026
6d841d0
[SPARK-301] Add static_deposit_address_partner table (#6268)
changli2023 Apr 22, 2026
2e6622d
[SPARK-301] Save partner for static deposit transfer (#6269)
changli2023 Apr 22, 2026
6660f39
[SPARK-301] Track partner for regular deposit addresses (#6279)
changli2023 Apr 22, 2026
dd624a1
[trivial] Fixed path for pr-template-reminder.sh. (#6284)
mhrheaume Apr 22, 2026
1da2e92
Remove invalid lock status that prevents tree from exiting. (#6286)
zhenlu Apr 22, 2026
1fec3cf
Add FlowExecution status and role enums (#6273)
zhenlu Apr 22, 2026
c335010
Validate leaves match transfer in FinalizeNodeSignatures (#6246)
keenan-lightspark Apr 22, 2026
3ebd218
[SPARK-301] Add COOPERATIVE_EXIT and DEPOSIT to partner query endpoin…
changli2023 Apr 22, 2026
674aa54
Clean up coop exit v2 knob (#6287)
zhenlu Apr 22, 2026
db4955a
proto: add flow_execution_id to ConsensusPrepareRequest (#6288)
zhenlu Apr 22, 2026
1766345
Revert "[SPARK-301] Track partner for regular deposit addresses" (#6289)
changli2023 Apr 22, 2026
f79a1d4
drop deposit_address_partners table (#6291)
changli2023 Apr 22, 2026
11301c5
Remove backfill_mimo_transfers scheduled task (#6301)
turkycat Apr 23, 2026
6b11e29
Remove repair_transfer_participant_create_time scheduled task (#6302)
turkycat Apr 23, 2026
3ea1f36
query_spark_transaction_volumes: optional network filter (#6300)
changli2023 Apr 23, 2026
f591808
query_spark_transaction_volumes: support multiple transaction_types (…
changli2023 Apr 23, 2026
f640aea
ci: add python token-primitives wheel auto-publish to s3 pypi (#6297)
peterrojs Apr 23, 2026
e94052f
[SP-2857] Add Spans to Lightning Handlers (#6304)
reverendken Apr 23, 2026
89abafe
Update window size and con window (#6299)
lightsparkmax Apr 23, 2026
a5d41e8
version packages (#6305)
lightsparkmax Apr 23, 2026
f0e44bc
Skip failing tests (#6295)
step-step2 Apr 24, 2026
37e09dc
[sdk] Respond with the trace-id in headers (#6148)
step-step2 Apr 24, 2026
f82b279
[sdk] Include trace_id in event stream proto messages (#6149)
step-step2 Apr 24, 2026
4101f4c
[sdk] log trace_id on method completion and stream events (#6150)
step-step2 Apr 24, 2026
3c1e9a2
Deprecate UtxoSwap.expiry_time Ent field (#6309)
lightsparkmax Apr 24, 2026
a52dcdf
Add dbseed — prod-scale synthetic data generator for local SO testing…
turkycat Apr 24, 2026
51dc21a
[grpc] Fix SO retry policy. (#6314)
mhrheaume Apr 24, 2026
c3ecc23
consensus: write coordinator FlowExecution row in Execute (#6290)
zhenlu Apr 24, 2026
7f6ee73
proto: add coordinator_index to ConsensusPrepareRequest (#6293)
zhenlu Apr 24, 2026
19496d5
consensus: implement ConsensusQueryOutcome RPC (#6307)
zhenlu Apr 24, 2026
270fdf1
test: rename insertParticipantRow to avoid handler package collision …
zhenlu Apr 24, 2026
6441edb
Fix SSP instant deposit integration tests (#6319)
k15z Apr 24, 2026
43722b4
Clear preimage_shares edge on transfer cancellation so retries can re…
keenan-lightspark Apr 27, 2026
b1c8943
Add partial indexes for MIMO query-rewrite pending/stuck paths (#6280)
turkycat Apr 27, 2026
0713e46
config: enable token tx events knob in dev template (#6308)
benwgold Apr 27, 2026
47a70d7
task: add flow_execution reconciliation and coordinator self-sweep (#…
zhenlu Apr 27, 2026
4dada7a
feat(spark-token-primitives): support execute_before on TransferBuild…
benwgold Apr 27, 2026
dc505d8
task: emit flow_execution.* metrics from reconciliation sweep (#6317)
zhenlu Apr 28, 2026
446b655
Drop UtxoSwap.expiry_time (Ent field + column) (#6312)
lightsparkmax Apr 28, 2026
2c2fc9d
test: end-to-end recovery test for reconcile task (#6320)
zhenlu Apr 28, 2026
b2b5c29
[tilt] Delete legacy minikube shell scripts. (#6326)
mhrheaume Apr 28, 2026
bf192f7
Apply MIMO data model to no-pubkey GetStuckTransfers (#6331)
turkycat Apr 28, 2026
5e62ede
Thread confirmation_threshold through UtxoSwapCompleted/RollbackUtxoS…
lightsparkmax Apr 28, 2026
1ab48d9
[SP-2907] Address Starvation in Cleanup Job for Old Keyshare Secrets …
reverendken Apr 28, 2026
dfb6b50
[SP-2906] Fix Chain Watcher Cleanup of Old Secrets (#6329)
reverendken Apr 28, 2026
837e3f2
[spark-sdk] Upgrade bare-fetch to 3 (#6346)
coreymartin Apr 28, 2026
87ccd57
Add RECEIVER_CLAIM_PENDING status and partial index (#6350)
turkycat Apr 28, 2026
96f99ab
handler: stale-replay guards on FinalizeRenew*; AlreadyExists-as-succ…
zhenlu Apr 29, 2026
cab0ae8
handler: use spark.RenewTimelockThreshold instead of literal 300 (#6355)
zhenlu Apr 29, 2026
3cf2b16
Phase 2a: tolerate RECEIVER_CLAIM_PENDING in receiver-status switches…
turkycat Apr 29, 2026
ae0a21b
Add `realistic_ssp` and `stuck_user` dbseed profiles (#6347)
turkycat Apr 29, 2026
abb5d68
task: gate flow_execution recovery on KnobFlowExecutionReconcileEnabl…
zhenlu Apr 29, 2026
eba2dc7
[spark-vite-app] Deploy to dev.dev.sparkinfra.net (#6322)
coreymartin Apr 29, 2026
0212630
[js] Version packages (#6348)
coreymartin Apr 29, 2026
6e3a9e4
Phase 2b: dual-write transfer_receivers to RECEIVER_CLAIM_PENDING (#6…
turkycat Apr 29, 2026
a8b3cbc
Add periodic task to retype SSP compensation transfers to COUNTER_SWA…
turkycat Apr 29, 2026
d36281f
[spark-token-primitives] version packages (#6360)
peterrojs Apr 29, 2026
09d4c37
consensus: CAS markCommitted/markRolledBack vs. self-sweep (#6359)
zhenlu Apr 29, 2026
bbc2a5a
Phase 3: Backfill transfer_receivers INITIATED → RECEIVER_CLAIM_PENDI…
turkycat Apr 29, 2026
45f93b0
Delete old comment (#6363)
DhruvPareek Apr 29, 2026
72bba9c
Seed `RECEIVER_CLAIM_PENDING` in dbseed profiles (SP-2923) (#6357)
turkycat Apr 29, 2026
55052f2
[grpc] Tag grpcweb requests in request context. (#6367)
mhrheaume Apr 29, 2026
85f3839
[grpc] Remove grpcListener.Close() after GracefulStop. (#6369)
mhrheaume Apr 29, 2026
dc19737
[grpc] Cancel SubscribeToEvents on shutdown for grpcweb. (#6368)
mhrheaume Apr 29, 2026
e9c0cec
[grpc] Cancel event streams on shutdown. (#6375)
mhrheaume Apr 30, 2026
ddf51a7
Update sdk tests to handle even and odd numbers for instant static de…
lightsparkmax Apr 30, 2026
62d261e
Remove monitor_receiver_status_mismatches task (#6364)
turkycat Apr 30, 2026
a46de95
[spark-sdk] Don't add leaves that bypass cross-SO consistency check (…
carsonp6 Apr 30, 2026
3733343
Make retype_ssp_compensation batch size knob-configurable (default 10…
turkycat Apr 30, 2026
3a20fbb
[spark-token-primitives] reword the README.md (#6381)
peterrojs Apr 30, 2026
4c43986
[SO] reuse loaded revocation keyshares in token secret exchange (#5604)
peterrojs Apr 30, 2026
8e71d62
default to use token primitives for SDK (#6382)
DhruvPareek Apr 30, 2026
aa4c586
Remove backfill_receiver_claim_pending task (#6379)
turkycat Apr 30, 2026
8b58508
handler: drop KnobUseConsensusPreimageShare and the legacy fanout (#6…
zhenlu Apr 30, 2026
1980c34
refactor: remove dead CooperativeExit handler and unused requireDirec…
zhenlu Apr 30, 2026
6ce378a
Drop `Sender` prefix from `TransferReceiverStatusSenderInitiated` (#6…
turkycat Apr 30, 2026
e94ad75
log: add tree_node id to lightning signature share validation errors …
zhenlu Apr 30, 2026
1cd8c3c
[spark-sdk] Auto method and request logging (#5570)
coreymartin Apr 30, 2026
a5550e7
[SP-2983] Fix Rollback After Successful Commit (#6390)
reverendken Apr 30, 2026
674414a
[spark-sdk] Add Node.js file logging (#6383)
coreymartin Apr 30, 2026
4b7e921
[fix] Fix Connection Churn (#6398)
reverendken May 1, 2026
ac3aa39
bump cursor version to perform sweep #2 (#6399)
turkycat May 1, 2026
8a5e165
Distinguish 0 conf transient lag from real failure (#6404)
keenan-lightspark May 1, 2026
d4a00e9
Add knob-gated MIMO-native `QueryPendingTransfers` (#6345)
turkycat May 1, 2026
b8982f0
fix variable name renamed upstream (#6406)
turkycat May 1, 2026
77418e4
Add caller-attribution logging to transfer query paths (#6362)
turkycat May 1, 2026
c1865bb
[spark-sdk] Add debug support breadcrumbs (#6405)
coreymartin May 1, 2026
cad4ec5
[grpc] Restore HTTP metrics in dual-port mode. (#6378)
mhrheaume May 1, 2026
e75d2eb
[SP-2987] Remove "Dirty" Transaction Logic (#6410)
reverendken May 1, 2026
bc4cfcc
New workflow jobs for Unilateral (#5817)
DhruvPareek May 1, 2026
3c04c81
[SP-2915] Cleanup dead code in unilateral exit sdk (#6400)
step-step2 May 1, 2026
566f656
[SP-2915] Use correct usedUtxo's for refund tx (#6401)
step-step2 May 1, 2026
d2bde90
[spark-sdk] Accept log level shorthand (#6413)
coreymartin May 2, 2026
e330cd3
[fix] Avoid edge join in validateOutputsMatchSenderAndNetwork (#6416)
akanter May 2, 2026
f72ce22
Remove `retype_ssp_compensation` task and associated knob (#6423)
turkycat May 4, 2026
b95e17e
Add pending_only label to transfer query histograms (#6422)
turkycat May 4, 2026
a952be3
[js] Version packages (#6415)
coreymartin May 4, 2026
9e06adf
Make coop exit key tweaking resumable (#6411)
keenan-lightspark May 4, 2026
86ee75a
Fix error classifications at RPC boundary (#6420)
keenan-lightspark May 4, 2026
8e74809
[SP-2915] Cleanup some re-used code (#6402)
step-step2 May 4, 2026
e8ceff4
Update cargo.lock file (#6425)
zhenlu May 4, 2026
c36d0a4
[SP-2988] Make coop exit key tweaking resumable with ephemeral tx reo…
reverendken May 4, 2026
a50f6dd
[spark-sdk] Limit file log sink close time (#6412)
coreymartin May 4, 2026
9b678f6
[SP-2923] Drop transitional INITIATED handling from MIMO claim path (…
turkycat May 5, 2026
de043d5
[SP-2923] Drop idx_transferreceiver_pending_pubkey_time (#6408)
turkycat May 5, 2026
f3384df
task: presume-abort participant rows when coordinator has no record (…
zhenlu May 5, 2026
82c2e81
[SP-2916] Consolidate MIMO code into spark/so/mimo package (#6434)
turkycat May 5, 2026
f619e3c
[spark-sdk] Add eslint config (#6424)
coreymartin May 5, 2026
f937749
task: alert via task-level error when stuck flow_execution rows are f…
zhenlu May 6, 2026
e8311d2
[spark-sdk] Expand lint rollout (#6426)
coreymartin May 6, 2026
e7504e3
fix(so): block reviving terminal-state tree nodes (SP-3049) (#6439)
zhenlu May 6, 2026
4590edb
[MIMO] Bind args.now into sender-pending SQL instead of NOW() (#6435)
turkycat May 6, 2026
18c2520
[spark-sdk] Enable lint for tests (#6427)
coreymartin May 6, 2026
fbd0598
[SP-2961] Guard coordinator coop-exit finalize on confirmation count …
yellowred May 6, 2026
460d026
broadcast: return COMMIT_PROCESSING on transient peer errors; unmute …
benwgold May 6, 2026
8f94747
consensus: detach 2PC engine bookkeeping from request session and ctx…
zhenlu May 6, 2026
23e98cf
[spark]Update RisingWave table name (#6445)
changli2023 May 6, 2026
72edb32
[SP-3055] Add OutgoingInFlightSenderStatuses + partial index (#6443)
turkycat May 6, 2026
7ac1b00
Migrate ecies to use k256 (#6421)
yellowred May 6, 2026
68357da
[errors] Improve error messaging in GetSigningCommitments (#6446)
step-step2 May 6, 2026
c13096b
[SP-3050] Add transfer_type column to transfer_senders/receivers (Pha…
turkycat May 6, 2026
c5279c5
[SP-3050] Dual-write transfer_type on edge row creation (Phase 1b) (#…
turkycat May 7, 2026
eea1534
[transfer] Preload TransferLeaves to avoid per-transfer N+1 (#6451)
turkycat May 7, 2026
3e6ccc5
[spark-token-primitives] version packages (#6455)
peterrojs May 7, 2026
04898aa
[gha] Run JS SDK checks in CI (#6444)
coreymartin May 7, 2026
7d1216f
[SP-3050] Add backfill_transfer_type scheduled task (Phase 1c) (#6450)
turkycat May 7, 2026
566afe6
[SP-2857][1/5] Add Basic Lightning Instrumentation (#6274)
reverendken May 7, 2026
a80a5e4
[issuer-sdk] Add initial lint coverage (#6462)
coreymartin May 7, 2026
a2446fb
fix(chain): reduce mainnet pollInterval from 60s to 15s (#6460)
lightsparkmax May 8, 2026
818c5d5
[issuer-sdk] Fix runtime lint violations (#6463)
coreymartin May 8, 2026
6664459
[issuer-sdk] Fix test lint violations (#6464)
coreymartin May 8, 2026
912a316
Pin create_time in TestBackfillTransferType_MultipleReceivers (#6474)
turkycat May 8, 2026
81b3a96
RPC error classificiation for pub key parsing (#6431)
keenan-lightspark May 8, 2026
28da57d
Replace has_pubkey with result_count_bucket on transfer-query metric …
turkycat May 8, 2026
fe05fd3
[spark-sdk] Secure Node signing operator TLS (#6441)
coreymartin May 8, 2026
4441864
bump npmMinimalAge to 3 days (#6467)
ch-brian May 8, 2026
a9d7bc1
[dbseed] Dual-write transfer_type onto edge tables (#6479)
turkycat May 8, 2026
c237a8d
Patch renew leaf flow (#6480)
DhruvPareek May 8, 2026
3b0201f
[spark-sdk] Distinguish same-wallet logger instances (#6477)
coreymartin May 8, 2026
fc5f469
[bare] Add lint coverage (#6478)
coreymartin May 8, 2026
b5c9e92
Set mise Node to 24.15.0 (#6481)
coreymartin May 9, 2026
fb41d73
[js] Version packages (#6482)
coreymartin May 11, 2026
a4f431f
[spark-token-primitives] Add React Native support via UniFFI (#6458)
peterrojs May 11, 2026
73b0f5e
[SP-2857][2/5] Add InitiatePreimageSwap Instrumentation (#6278)
reverendken May 11, 2026
71cc6fa
Return proper gRPC status codes instead of Internal for input validat…
kphurley7 May 11, 2026
1f20156
[SP-2857][5/5] Add GetPreimageShare Instrumentation (#6277)
reverendken May 11, 2026
d17ddf6
Reject nil Spark invoice queries (#6491)
kphurley7 May 11, 2026
decc6ae
[SP-2857][3/5] Add StorePreimageShareV2 Instrumentation (#6275)
reverendken May 11, 2026
ea12569
[SP-2857][4/5] Add ProvidePreimage Instrumentation (#6276)
reverendken May 11, 2026
d9667fc
Handle Spark invoices without sats transfers (#6492)
kphurley7 May 11, 2026
d3220ce
Validate signing commitments requests (#6504)
kphurley7 May 11, 2026
c64afa4
Reject nil token query requests (#6501)
kphurley7 May 11, 2026
52bc230
Remove a special case (#6499)
zhenlu May 11, 2026
c429ce4
handler: drop KnobUseConsensusRenew and KnobShutdownRenewNode (#6496)
zhenlu May 11, 2026
99376dd
Validate FROST signing request bounds (#6505)
kphurley7 May 12, 2026
9afde0d
Validate claim refund transfer state (#6514)
kphurley7 May 12, 2026
1b5665b
Validate transfer query pagination (#6508)
kphurley7 May 12, 2026
cad2cdb
Validate lightning request inputs (#6509)
kphurley7 May 12, 2026
4dfc1b7
Validate deposit request inputs (#6506)
kphurley7 May 12, 2026
afed9f7
Validate tree and wallet requests (#6510)
kphurley7 May 12, 2026
7e70791
Validate finalize deposit tree requests (#6502)
kphurley7 May 12, 2026
142c50a
Validate deposit UTXO cursor txid length (#6500)
kphurley7 May 12, 2026
94fa4f1
Fix Spark invoice explicit lookup limit (#6495)
kphurley7 May 12, 2026
f473beb
[SP-3050] Add transfer_type composite indexes (Phase 1d) (#6472)
turkycat May 12, 2026
7c415ef
[spark-token-primitives] Wire React Native SDK side for token primiti…
peterrojs May 12, 2026
d533d7c
[spark-sdk] Add SparkWallet.cleanup() as the preferred public cleanup…
coreymartin May 12, 2026
5695e1d
Add specialized handler for outgoing-in-flight sender queries (#6521)
turkycat May 12, 2026
430e5ae
Pin frost deps to frost-core/v3.0.0-ls tag (#6465)
zhenlu May 12, 2026
7c01426
Fix incorrect nil-check on keyshareInfo instead of err in StartTokenT…
akanter May 12, 2026
fdc9753
Limit QueryNodes ID lookups (#6531)
kphurley7 May 12, 2026
a34fc3f
Make ClaimTransferTweakKeys idempotent for receiver-side states (#5948)
kphurley7 May 12, 2026
c8c2152
Validate QueryUserSignedRefunds payment hash length (#5959)
kphurley7 May 12, 2026
511c406
[transfer] Extend leaf preload pattern to remaining list endpoints (#…
turkycat May 12, 2026
5acc188
[spark-sdk] Pass Node extra CA through Turbo (#6511)
coreymartin May 12, 2026
7a1054b
[js] Update Next.js example security patch (#6574)
coreymartin May 12, 2026
f8472fc
Limit QueryTransfers ID filters (#6532)
kphurley7 May 12, 2026
b5fc79c
Validate token output query network (#6515)
kphurley7 May 12, 2026
52b2330
Validate token revocation share input refs (#6503)
kphurley7 May 12, 2026
daff849
[js] Update React Native CLI security patch (#6576)
coreymartin May 12, 2026
ad7e98e
[transfer] Extend leaf preload to GetStuckTransfers / QueryStuckTrans…
turkycat May 12, 2026
9577a83
Validate finalize node signature inputs (#6517)
kphurley7 May 12, 2026
399b2cb
Validate deposit UTXO identifiers (#6518)
kphurley7 May 12, 2026
612747a
Validate static deposit refund transactions (#6519)
kphurley7 May 12, 2026
180ebb2
Validate provide preimage errors (#6523)
kphurley7 May 12, 2026
fadc9fd
Limit QueryHTLC filter inputs (#6535)
kphurley7 May 12, 2026
aa7b359
Validate counter swap network (#6573)
kphurley7 May 12, 2026
0d9a01d
Limit finalize node signature inputs (#6537)
kphurley7 May 12, 2026
fc94c4e
[js] Update transitive security patches (#6577)
coreymartin May 12, 2026
be88409
Validate transfer query errors (#6526)
kphurley7 May 12, 2026
7dedc21
Update dependencies past Socket.dev reported issues (#6569)
alexjweil May 12, 2026
3145c0b
Unify coop-exit confirmation default and add MIMO claim guards (#6579)
turkycat May 12, 2026
14b99c2
fix: use btcutil.DecodeAddress for Bitcoin address validation
vwinee21 May 13, 2026
8060073
fix: expire stale pending cooperative exits after configurable threshold
vwinee21 May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .agents/skills
5 changes: 5 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"name": "spark",
"description": "Spark repository development skills",
"skills": "./.claude/skills/"
}
4 changes: 4 additions & 0 deletions .claude/.session_state.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"active_worktrees": null,
"session_notes": "No active worktrees. Use /setup_worktrees to create new worktrees when needed."
}
884 changes: 884 additions & 0 deletions .claude/CLAUDE.md

Large diffs are not rendered by default.

234 changes: 234 additions & 0 deletions .claude/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,234 @@
# SparkClaude
Spark Claude Configuration

## Slash Command Workflow

This repository includes custom slash commands for working with implementation plans. Here's how to use them:

### Workflow tl;dr
First, edit your `.claude/spark_config.json` to set the path to your SSP (webdev) repository. The SO paths are automatically determined since this config is now inside the Spark repository. Additionally, this is not necessary, but you can edit your `.claude/settings.local.json` to allow Claude access to run commands, at a minimum I recommend at least adding all of the Bash & Read commands on this list, but modified to match your local file routes: https://github.com/kphurley7/SparkClaude/blob/main/.claude/settings.local.json.

Create new worktrees from which to have claude code operate and update them to latest
```bash
/setup_worktrees <branch_name> latest
````

Have Claude come up with a plan for what you'd like to accomplish
```bash
/create_plan <Describe what you'd like to accomplish>
```
This will write a thoughts file. You should review this and see if the plan is what you are expecting and if it makes sense for what you want to do. If it doesn't or you want to make changes to it, you will use:

```bash
/iterate_plan thoughts/shared/plans/2025-01-15-add-auth.md <Describe what changes you'd like>
```

Once you're happy with the plan, you can implement it:
```bash
/implement_plan thoughts/shared/plans/2025-01-15-add-auth.md
```

Now, verify the implementation matches its plan and verifies success criteria:

```bash
/validate_plan thoughts/shared/plans/2025-01-15-add-auth.md
```

Now, make sure the code is clean and the tests are working:
```bash
/clean_code both # Check both codebases
```

Optionally, you can do a security review of the flow you changed:
```bash
/spark_sec_review <Describe what you'd like to review>
```


### Planning Commands

#### `/create_plan` - Create a New Implementation Plan

Creates a detailed implementation plan through an interactive, iterative process.

**Usage:**
```bash
/create_plan
/create_plan thoughts/allison/tickets/eng_1234.md
/create_plan think deeply about thoughts/allison/tickets/eng_1234.md
```

**What it does:**
- Interactively gathers requirements and context
- Spawns research agents to understand the codebase
- Creates structured implementation phases
- Writes measurable success criteria (automated + manual)
- Outputs to `thoughts/shared/plans/YYYY-MM-DD-description.md`

**Variants:**
- `/create_plan` - Project-specific version with humanlayer references
- `/create_plan_generic` - Generic version for any project
- `/create_plan_nt` - No thoughts directory (doesn't use thoughts sync)

#### `/iterate_plan` - Modify an Existing Plan

Updates an existing implementation plan based on feedback.

**Usage:**
```bash
/iterate_plan thoughts/shared/plans/2025-01-15-add-auth.md
/iterate_plan thoughts/shared/plans/2025-01-15-add-auth.md - add phase for password reset
```

**What it does:**
- Reads the existing plan completely
- Researches code if changes require new technical understanding
- Makes surgical edits to the plan document
- Updates phases, success criteria, or scope
- Does NOT implement code - only updates the plan

**Key characteristics:**
- Planning-focused (editing the plan, not writing code)
- Research-driven (may spawn sub-tasks for new requirements)
- Surgical edits using Edit tool
- Interactive (confirms understanding before changes)

### Implementation Commands

#### `/implement_plan` - Execute an Approved Plan

Implements an approved technical plan step-by-step.

**Usage:**
```bash
/implement_plan thoughts/shared/plans/2025-01-15-add-auth.md
```

**What it does:**
- Reads the plan and any referenced files
- Implements each phase sequentially
- Runs automated verification (tests, linting, etc.)
- Checks off completed items in the plan
- Pauses for human manual verification after each phase

**Key characteristics:**
- Execution-focused (writing code, not changing the plan)
- Phase-by-phase (completes one phase before moving to next)
- Verification-heavy (runs success criteria checks continuously)
- Updates checkboxes in the plan as work completes

### Validation Commands

#### `/validate_plan` - Verify Implementation

Validates that an implementation matches its plan and verifies success criteria.

**Usage:**
```bash
/validate_plan thoughts/shared/plans/2025-01-15-add-auth.md
```

### Code Quality Commands

#### `/clean_code` - Run Code Quality Checks

Runs comprehensive code quality checks (linting, formatting, type-checking, tests) for SO and/or SSP.

**Usage:**
```bash
/clean_code so # Check SO codebase only
/clean_code ssp # Check SSP codebase only
/clean_code both # Check both codebases
```

**What it does:**
- **SO**: Runs `mise lint` and `mise test-go`
- **SSP**: Runs `ruff format`, `ruff check`, `pyre`, and `pytest`
- Reports success/failure for each check
- Provides clear summary of results

**When to use:**
- After making any code changes
- Before creating commits or PRs
- After resolving merge conflicts

### Other Workflow Commands

#### `/setup_worktrees` - Create Development Worktrees

Creates git worktrees for both SO and SSP codebases with branch suffixes.

**Usage:**
```bash
/setup_worktrees feature-auth
/setup_worktrees feature-auth latest
```

**What it does:**
- **Safety check**: Verifies both repos have no uncommitted changes (errors if dirty)
- Creates SO worktree with branch name `{branch}_so`
- Creates SSP worktree with branch name `{branch}_ssp`
- Optionally pulls latest from main if "latest" flag provided
- Places worktrees as siblings to main repositories

**Important:** Both repositories must be clean (no uncommitted changes) before running.

**Example:**
```bash
/setup_worktrees feature-auth latest
```
Creates worktrees with branch suffixes `_so` and `_ssp` as siblings to main repos (paths read from `spark_config.json`)

#### `/research_codebase` - Document Codebase

Documents the codebase as-is with historical context stored in thoughts directory.

#### `/commit` - Create Git Commits

Creates git commits with user approval (no Claude attribution).

#### `/describe_pr` - Generate PR Descriptions

Generates comprehensive PR descriptions following repository templates.

## Typical Workflow

The standard development workflow using these commands:

```
1. Create plan
/create_plan → generates initial implementation plan

2. Iterate plan (optional)
/iterate_plan → refine based on feedback

3. Implement plan
/implement_plan → execute the approved plan

4. Validate plan (optional)
/validate_plan → verify implementation matches plan

5. Commit & PR
/commit → create commits
/describe_pr → generate PR description
```

### Quick Reference

| Command | Purpose | Modifies Code? | Modifies Plan? |
|---------|---------|----------------|----------------|
| `/create_plan` | Generate new implementation plan | No | Creates new |
| `/iterate_plan` | Update existing plan | No | Yes |
| `/implement_plan` | Execute plan and write code | Yes | Updates checkboxes |
| `/validate_plan` | Verify implementation | No | No |

### Command Variants

**create_plan variants:**
- `create_plan.md` - Project-specific with humanlayer references
- `create_plan_generic.md` - Generic version for any project
- `create_plan_nt.md` - No thoughts directory integration

**iterate_plan variants:**
- `iterate_plan.md` - Project-specific with humanlayer references
- `iterate_plan_nt.md` - No thoughts directory integration
143 changes: 143 additions & 0 deletions .claude/agents/codebase-analyzer.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
---
name: codebase-analyzer
description: Analyzes codebase implementation details. Call the codebase-analyzer agent when you need to find detailed information about specific components. As always, the more detailed your request prompt, the better! :)
tools: Read, Grep, Glob, LS
model: sonnet
---

You are a specialist at understanding HOW code works. Your job is to analyze implementation details, trace data flow, and explain technical workings with precise file:line references.

## CRITICAL: YOUR ONLY JOB IS TO DOCUMENT AND EXPLAIN THE CODEBASE AS IT EXISTS TODAY
- DO NOT suggest improvements or changes unless the user explicitly asks for them
- DO NOT perform root cause analysis unless the user explicitly asks for them
- DO NOT propose future enhancements unless the user explicitly asks for them
- DO NOT critique the implementation or identify "problems"
- DO NOT comment on code quality, performance issues, or security concerns
- DO NOT suggest refactoring, optimization, or better approaches
- ONLY describe what exists, how it works, and how components interact

## Core Responsibilities

1. **Analyze Implementation Details**
- Read specific files to understand logic
- Identify key functions and their purposes
- Trace method calls and data transformations
- Note important algorithms or patterns

2. **Trace Data Flow**
- Follow data from entry to exit points
- Map transformations and validations
- Identify state changes and side effects
- Document API contracts between components

3. **Identify Architectural Patterns**
- Recognize design patterns in use
- Note architectural decisions
- Identify conventions and best practices
- Find integration points between systems

## Analysis Strategy

### Step 1: Read Entry Points
- Start with main files mentioned in the request
- Look for exports, public methods, or route handlers
- Identify the "surface area" of the component

### Step 2: Follow the Code Path
- Trace function calls step by step
- Read each file involved in the flow
- Note where data is transformed
- Identify external dependencies
- Take time to ultrathink about how all these pieces connect and interact

### Step 3: Document Key Logic
- Document business logic as it exists
- Describe validation, transformation, error handling
- Explain any complex algorithms or calculations
- Note configuration or feature flags being used
- DO NOT evaluate if the logic is correct or optimal
- DO NOT identify potential bugs or issues

## Output Format

Structure your analysis like this:

```
## Analysis: [Feature/Component Name]

### Overview
[2-3 sentence summary of how it works]

### Entry Points
- `api/routes.js:45` - POST /webhooks endpoint
- `handlers/webhook.js:12` - handleWebhook() function

### Core Implementation

#### 1. Request Validation (`handlers/webhook.js:15-32`)
- Validates signature using HMAC-SHA256
- Checks timestamp to prevent replay attacks
- Returns 401 if validation fails

#### 2. Data Processing (`services/webhook-processor.js:8-45`)
- Parses webhook payload at line 10
- Transforms data structure at line 23
- Queues for async processing at line 40

#### 3. State Management (`stores/webhook-store.js:55-89`)
- Stores webhook in database with status 'pending'
- Updates status after processing
- Implements retry logic for failures

### Data Flow
1. Request arrives at `api/routes.js:45`
2. Routed to `handlers/webhook.js:12`
3. Validation at `handlers/webhook.js:15-32`
4. Processing at `services/webhook-processor.js:8`
5. Storage at `stores/webhook-store.js:55`

### Key Patterns
- **Factory Pattern**: WebhookProcessor created via factory at `factories/processor.js:20`
- **Repository Pattern**: Data access abstracted in `stores/webhook-store.js`
- **Middleware Chain**: Validation middleware at `middleware/auth.js:30`

### Configuration
- Webhook secret from `config/webhooks.js:5`
- Retry settings at `config/webhooks.js:12-18`
- Feature flags checked at `utils/features.js:23`

### Error Handling
- Validation errors return 401 (`handlers/webhook.js:28`)
- Processing errors trigger retry (`services/webhook-processor.js:52`)
- Failed webhooks logged to `logs/webhook-errors.log`
```

## Important Guidelines

- **Always include file:line references** for claims
- **Read files thoroughly** before making statements
- **Trace actual code paths** don't assume
- **Focus on "how"** not "what" or "why"
- **Be precise** about function names and variables
- **Note exact transformations** with before/after

## What NOT to Do

- Don't guess about implementation
- Don't skip error handling or edge cases
- Don't ignore configuration or dependencies
- Don't make architectural recommendations
- Don't analyze code quality or suggest improvements
- Don't identify bugs, issues, or potential problems
- Don't comment on performance or efficiency
- Don't suggest alternative implementations
- Don't critique design patterns or architectural choices
- Don't perform root cause analysis of any issues
- Don't evaluate security implications
- Don't recommend best practices or improvements

## REMEMBER: You are a documentarian, not a critic or consultant

Your sole purpose is to explain HOW the code currently works, with surgical precision and exact references. You are creating technical documentation of the existing implementation, NOT performing a code review or consultation.

Think of yourself as a technical writer documenting an existing system for someone who needs to understand it, not as an engineer evaluating or improving it. Help users understand the implementation exactly as it exists today, without any judgment or suggestions for change.
Loading