Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2438 commits
Select commit Hold shift + click to select a range
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
d957ade
task: purge terminal flow_execution rows on a weekly cadence (#6582)
zhenlu May 13, 2026
e80b1d6
consensus: plumb send_transfer 2PC op type (PR 1/3) (#6528)
zhenlu May 13, 2026
e00a6d7
Validate cooperative exit requests (#6524)
kphurley7 May 13, 2026
fdadcd0
Validate lightning query errors (#6525)
kphurley7 May 13, 2026
a32ae80
Validate counter swap primary type (#6575)
kphurley7 May 13, 2026
f055255
Validate refund destination matches leaf owner signing pubkey (#6597)
turkycat May 13, 2026
f78a10c
Fix apply-sender-key-tweaks applying-state recovery (#6028)
kphurley7 May 13, 2026
6baa1b5
Reject duplicate leaf IDs in ClaimTransferTweakKeys (#5960)
kphurley7 May 13, 2026
2b690b7
Make transfer_type NOT NULL on transfer_senders/receivers (#6598)
turkycat May 13, 2026
bfe3bf0
[spark-sdk] Prevent background tasks from keeping processes alive (#6…
coreymartin May 13, 2026
c69bd40
Set TransferType on test fixtures missed by #6598 (#6639)
turkycat May 13, 2026
5256954
[sdk] HTLC receiver claim pays receiver. (#6483)
mhrheaume May 13, 2026
59c5791
[SO] coordinated output IDs (#6625)
peterrojs May 13, 2026
eb992e2
Reject incomplete renew signing jobs (#6644)
kphurley7 May 13, 2026
3695a7c
Reject malformed sender key tweak proofs (#6657)
kphurley7 May 13, 2026
ed38b29
Validate sync tree operator IDs (#6632)
kphurley7 May 13, 2026
8e8de86
Limit token metadata query filters (#6536)
kphurley7 May 13, 2026
80fa458
Cover FROST retry fingerprint binding (#6601)
kphurley7 May 13, 2026
fa24649
Bind instant UTXO save to swap ID (#6600)
kphurley7 May 13, 2026
fd3fdf1
Guard counter transfer request shape (#6604)
kphurley7 May 13, 2026
113115e
Reject duplicate token withdrawal vouts (#6668)
kphurley7 May 13, 2026
57e5da3
Reject unsafe mark-used keyshare requests (#6664)
kphurley7 May 13, 2026
80d8de6
Validate partial token outputs (#6624)
kphurley7 May 13, 2026
1448113
Validate preimage swap job entries (#6619)
kphurley7 May 13, 2026
ae45457
Validate transfer package refund jobs (#6618)
kphurley7 May 13, 2026
ba42a2b
Clean up MIMO queryTransfers knob; rename to multi-participant format…
turkycat May 13, 2026
312b6c9
Bind connector_tx parent to exit_txid in cooperative exit (#6593)
changli2023 May 13, 2026
1349715
Reject nil claim key tweak proofs (#6658)
kphurley7 May 13, 2026
e49c949
Update mise to 2026.5.7 (#6646)
akanter May 13, 2026
1168798
consensus: implement send_transfer 2PC flow body (PR 2/3) (#6560)
zhenlu May 14, 2026
afb5855
dbseed: align type distributions with prod (#6724)
turkycat May 14, 2026
728e03b
[spark-sdk] Enable token primitives bindings on React Native by defau…
peterrojs May 14, 2026
6e5307c
Add has_transfer_ids attribute to transfer-query metric (#6707)
turkycat May 14, 2026
f07d76f
spark-cli: mute token balance update logs (#6753)
peterrojs May 14, 2026
86bcc44
Reject refundless finalize tree leaves (#6636)
kphurley7 May 14, 2026
583b2a5
Reject duplicate encrypted key tweaks (#6637)
kphurley7 May 14, 2026
45ce2b0
Reject missing FROST signing keyshares (#6662)
kphurley7 May 14, 2026
093d964
Reject malformed legacy transfer leaves (#6682)
kphurley7 May 14, 2026
bdae0eb
Reject ineligible tree split parents (#6697)
kphurley7 May 14, 2026
73434ab
Bind CreateTree UTXO raw transaction (#6698)
kphurley7 May 14, 2026
13ba8a7
Validate lightning refund output values (#6723)
kphurley7 May 14, 2026
26c0376
Cover duplicate token withdrawal outputs (#6714)
kphurley7 May 14, 2026
09e1bbb
Guard pregenerated signing commitments (#6702)
kphurley7 May 14, 2026
5f88a64
Guard finalize transfer leaf states (#6746)
kphurley7 May 14, 2026
4e76284
Prevent duplicate CreateTree parent splits (#6701)
kphurley7 May 14, 2026
829185e
Bind renew split nodes to leaf tree (#6638)
kphurley7 May 14, 2026
9979b1a
Cover renewal after repeated transfers (#6761)
kphurley7 May 14, 2026
d6c2c70
Validate pregenerated signing commitments (#6722)
kphurley7 May 14, 2026
5b2be1d
Return FailedPrecondition for finalize transfer state mismatch (#6770)
zhenlu May 14, 2026
76143e0
Fix ambiguous StartDepositTreeCreation query (#6759)
alexjweil May 14, 2026
9621146
Guard preimage swap key tweak commits (#6656)
kphurley7 May 14, 2026
e9ecbeb
Reject duplicate finalize transfer nodes (#6635)
kphurley7 May 14, 2026
95ad770
Add specialized queryByTypes handler for QueryAllTransfers (#6711)
turkycat May 14, 2026
96ef7c2
Add validation to the coop exit flow. (#6663)
lightsparkmax May 14, 2026
a8cb974
[bugfix] Spark signing commitment job bug (#6497)
step-step2 May 14, 2026
da6cd21
Unify pendingParticipantRole into shared participantRole (#6721)
turkycat May 15, 2026
4ee8608
Revert "Reject refundless finalize tree leaves (#6636)" (#6792)
mhrheaume May 15, 2026
166503c
Revert "[SO] coordinated output IDs (#6625)" (#6782)
peterrojs May 15, 2026
0c5c662
Remove getSSPCounterSwapFilter and filter knob (#6763)
turkycat May 15, 2026
1dd6562
Remove stale KnobFilterSSPCounterSwapAsTransfer reference in ctxForBy…
turkycat May 15, 2026
aa49eec
[docs] Clarify missing RawRefundTx in FinalizeTreeCreation. (#6833)
mhrheaume May 15, 2026
57b14a4
Validate exit trees request shape (#6814)
kphurley7 May 15, 2026
f34348e
Reject unsupported renew sequence high bits (#6732)
kphurley7 May 15, 2026
05d622c
Require fresh static refund retry signatures (#6841)
kphurley7 May 15, 2026
6125e58
Reject overflowing multi-input deposit totals (#6839)
kphurley7 May 15, 2026
4a861ba
Reject duplicate lightning refund leaves (#6838)
kphurley7 May 15, 2026
bace456
[logs] Expand DKG diagnostics: per-peer errors + confirmation timing …
reverendken May 15, 2026
9567bbb
Document LNURL preimage share ownership (#6783)
kphurley7 May 15, 2026
876adee
Validate resign subtree request shape (#6813)
kphurley7 May 15, 2026
eb31504
Validate fix keyshare request shape (#6815)
kphurley7 May 15, 2026
5f1f25f
Validate deposit cleanup request shape (#6816)
kphurley7 May 15, 2026
f04c297
Validate renew finalize request shape (#6817)
kphurley7 May 15, 2026
f4f374c
Validate internal deposit request shape (#6818)
kphurley7 May 15, 2026
687a216
Scope tree creation by vout (#6822)
kphurley7 May 15, 2026
951124a
claim_transfer 2pc: plumbing (#6669)
zhenlu May 15, 2026
9a1b6bf
Reject changed transfer refund signing retries (#6843)
kphurley7 May 15, 2026
ea1493d
Validate static deposit internal request shape (#6610)
kphurley7 May 15, 2026
dbf9990
Reject exited trees for exit signing (#6840)
kphurley7 May 15, 2026
dc732f6
Update MAINTAINERS (#6868)
zhenlu May 15, 2026
9b73919
[logging] Omit responses for high-volume queries. (#6869)
mhrheaume May 15, 2026
c800ca7
Validate SSP query request shape (#6819)
kphurley7 May 15, 2026
25c28d0
Revert "Bind instant UTXO save to swap ID" (#7217)
lightsparkmax May 18, 2026
b504067
feat(spark-token-primitives): add hash_final_token_transaction (#7258)
peterrojs May 18, 2026
0ac5ffe
Add specialized queryReceiverByTypeStatus handler for QueryAllTransfe…
turkycat May 18, 2026
b377f00
Validate pubkey_shares_tweak against secret_share_tweak proofs (#6867)
zhenlu May 18, 2026
d7a94d5
feat(tokens): add killswitch knob blocking L1 exit withdrawal process…
akanter May 18, 2026
32ba5c9
[spark-token-primitives] version packages (#7298)
peterrojs May 18, 2026
f81244a
version packages (#7297)
lightsparkmax May 19, 2026
23cfbda
Reject nil token revocation secrets (#7288)
kphurley7 May 19, 2026
db336a5
[security] Reject nil synced tree parents (#7267)
kphurley7 May 19, 2026
4fb5e9d
[security] Require canonical preimage length (#7123)
kphurley7 May 19, 2026
6f01651
Fix race in claim_transfer 2PC: split early-commit + atomic settle (#…
zhenlu May 19, 2026
b2dd228
[artillery] add base lint config (#7301)
coreymartin May 19, 2026
58e3260
[spark-sdk] progressively drain pending transfer claims (#6306)
coreymartin May 19, 2026
5375837
Fix tx-abort cascade when concurrent tree-node create is swallowed (#…
turkycat May 19, 2026
f30f22a
[SP-3127][1/2] Add Index to Support Backfilling Ephemeral Database Se…
reverendken May 19, 2026
4f77f08
Add TransferReceiver.status for per-receiver state in V3 transfers (#…
turkycat May 19, 2026
37b96a2
Guard token error formatting nil outputs (#6866)
kphurley7 May 19, 2026
e2cda5a
Guard token proto conversion nil entries (#6864)
kphurley7 May 19, 2026
062e121
Add RenewLeaf raw transaction mismatch coverage (#6863)
kphurley7 May 19, 2026
242e7f9
Reject nil RenewLeaf requests (#6862)
kphurley7 May 19, 2026
4130fd9
Bind token internal signing hash (#6715)
kphurley7 May 19, 2026
217a14c
Bind token withdrawals to network (#6690)
kphurley7 May 19, 2026
3290abe
[spark-cli] add base lint config (#7304)
coreymartin May 19, 2026
353837e
Reject nil lightning refund jobs (#6680)
kphurley7 May 19, 2026
9ba42e4
[create-spark-app] add base lint config (#7306)
coreymartin May 19, 2026
c369b54
Add specialized queryCounterSwap handler for QueryAllTransfers (#7300)
turkycat May 19, 2026
d62952e
[SP-3143] Explicitly Set Keepalive Enforcement Policy (#7308)
reverendken May 19, 2026
1279346
[lrc20-l1-announcer] add base lint config (#7307)
coreymartin May 19, 2026
a63237e
[interactive-cli] Remove workspace (#7309)
coreymartin May 19, 2026
6905b80
Use the faucet bitcoin wallet to send funds (#7311)
yellowred May 20, 2026
1cf132b
Fix ValidateShare to reject VSS proof counts that don't match thresho…
kphurley7 May 20, 2026
5ef56ef
Fix: cross-verify PubkeySharesTweak equals SecretShareTweak * G (#6487)
kphurley7 May 20, 2026
d67c1d8
Validate create tree transaction outpoints (#6551)
kphurley7 May 20, 2026
d61305f
Bind SendTransfer refund signing inputs (#6709)
kphurley7 May 20, 2026
498854e
[spark-sdk] force protobufjs 8.0.1 to fix GHSA-xq3m-2v4x-88gg (#7313)
peterrojs May 20, 2026
703af99
[security] Recheck tree exit status before signing (#7263)
kphurley7 May 20, 2026
ea0a6a3
[security] Fail closed for legacy multi receiver claims (#7182)
kphurley7 May 20, 2026
e00b167
[security] Require threshold VSS proof sets (#7058)
kphurley7 May 20, 2026
adfd04c
Remove integration tests from unit testing (#7314)
keenan-lightspark May 20, 2026
3abad45
Add TransferSender + leaf-receiver association to spark proto (#7310)
turkycat May 20, 2026
fbbc869
fix(lightning): ReturnStuckTransfers atomically cancels sibling Preim…
kphurley7 May 20, 2026
562f3ed
Validate swap direct refund transactions (#6706)
kphurley7 May 20, 2026
540aec5
Require CreateTree owner authorization (#6751)
kphurley7 May 20, 2026
b3b611f
consensus: route StartTransferV3 through 2PC engine (PR 3/3) (#6568)
zhenlu May 20, 2026
0a707e4
[SP-3127][2/2] Backfill Job for Signing Keyshare Secrets (#6844)
reverendken May 20, 2026
ce8b9a0
Sanitize CONCURRENT_CLAIM_CONFLICT error + attach RetryInfo (#7317)
turkycat May 20, 2026
bc578cd
GetSigningCommitments: reject requests for unknown node IDs (#7318)
turkycat May 20, 2026
1ff07cd
Guard StorePreimage against validate-store race (SP-3105) (#7320)
yellowred May 20, 2026
3f23a74
Fix: add regression tests for refund timelock lower bound in renew le…
kphurley7 May 20, 2026
3c2d3df
Add by-participant fallback to QueryAllTransfers + slow-caller log (#…
turkycat May 21, 2026
903dec1
[db] Update Ephemeral DB Backfill Time Budget (#7324)
reverendken May 21, 2026
a6978ec
Fix claim_transfer wedged-RKT recovery (#7325)
zhenlu May 21, 2026
62b1705
[fix] Hydrate Keyshares in Token Handler (#7328)
reverendken May 21, 2026
bd8e0ab
[docs] Tell Agents Not to Directly Access the SecretShare Column (#7329)
reverendken May 21, 2026
e3450e3
[spark-vite-app] Add lint (#7326)
coreymartin May 21, 2026
9507cc0
[metrics] Extend gRPC duration histogram buckets to surface 10s+ tail…
step-step2 May 22, 2026
835e8ff
[spark-frost-bare-addon] Add lint (#7330)
coreymartin May 22, 2026
4b48ade
Update LightningReceiveRequestStatus.ts
TwistedHardware May 22, 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