Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
318 commits
Select commit Hold shift + click to select a range
edf7952
fix(tbtc/signer): bound interactive session registry and validate thr…
mswilkison Jun 13, 2026
e45b975
docs(tbtc/signer): scope the sidecar secret-boundary claim to signing
mswilkison Jun 13, 2026
289df95
fix(tbtc/signer): resolve interactive key material from DKG state, no…
mswilkison Jun 13, 2026
4940a9c
fix(tbtc/signer): quarantine the full Round2 subset; reject phantom i…
mswilkison Jun 13, 2026
e4a8734
feat(tbtc/signer): Phase 7.1 hardened interactive signing session (#4…
mswilkison Jun 13, 2026
472dfa6
docs(tbtc/signer): Phase 7.0 sidecar transport addendum (#4050)
mswilkison Jun 13, 2026
f3ab6b5
feat(tbtc/signer): Phase 7.2a InteractiveAggregate with attributable …
mswilkison Jun 13, 2026
24f4eb2
fix(tbtc/signer): defer attributable aggregate blame until inputs are…
mswilkison Jun 13, 2026
312e106
docs(tbtc/signer): align aggregate FFI/API contract with fail-closed …
mswilkison Jun 13, 2026
f5a08a6
fix(tbtc/signer): sweep expired interactive state in InteractiveAggre…
mswilkison Jun 13, 2026
f96a54c
feat(tbtc/signer): Phase 7.2a InteractiveAggregate (tweaked, self-ver…
mswilkison Jun 13, 2026
33f673c
test(tbtc/signer): make the test lock poison-resilient and env hermetic
mswilkison Jun 13, 2026
d474a4f
fix(tbtc/signer): iterate env with vars_os in the test baseline reset
mswilkison Jun 13, 2026
a7c1c33
test(tbtc/signer): poison-resilient test lock + hermetic env baseline…
mswilkison Jun 13, 2026
a9a08c4
docs(tbtc/signer): Phase 7.2b design note - package envelopes + bound…
mswilkison Jun 13, 2026
53b23b4
docs(tbtc/signer): Phase 7.2b open-questions discussion doc for revie…
mswilkison Jun 13, 2026
479b58b
docs(tbtc/signer): resolve 7.2b open questions per Gemini+Codex review
mswilkison Jun 13, 2026
22bfa04
docs(tbtc/signer): fold in Codex re-review P1s + review-consistency f…
mswilkison Jun 13, 2026
4b1bf46
docs(tbtc/signer): pin AllCheaters aggregate + clear stale refs (review)
mswilkison Jun 13, 2026
1546239
docs(tbtc/signer): elected-coordinator + retain-on-reject + tweak-awa…
mswilkison Jun 13, 2026
50bdbac
docs(tbtc/signer): §3 wording — retain on receipt, not on signing
mswilkison Jun 13, 2026
7f78618
docs(tbtc/signer): context-bound share auth + group key in verify-share
mswilkison Jun 13, 2026
94eba3b
docs(tbtc/signer): verify-share selector + durable key source
mswilkison Jun 13, 2026
2b87a25
docs(tbtc/signer): record Phase 7.2b sign-off + durable-retention con…
mswilkison Jun 13, 2026
b74f209
feat(tbtc/signer): Phase 7.2b-1 InteractiveAggregate completion marker
mswilkison Jun 13, 2026
131c642
fix(tbtc/signer): make InteractiveAggregate idempotent (Codex P2)
mswilkison Jun 13, 2026
87b579c
docs(tbtc/signer): Phase 7.2b §6 idempotent aggregate re-emission
mswilkison Jun 13, 2026
c50ac59
fix(tbtc/signer): return persisted signature on aggregate race (Codex…
mswilkison Jun 13, 2026
e2e7fb2
docs(tbtc/signer): resolve Phase 7.2b doc review nits (Codex/Gemini P3)
mswilkison Jun 13, 2026
8bca31e
fix(tbtc/signer): validate completion record against request on re-em…
mswilkison Jun 13, 2026
d115781
docs(tbtc/signer): §6 validate aggregate re-emission against the request
mswilkison Jun 13, 2026
77a16a2
fix(tbtc/signer): reject empty attempt_id in InteractiveAggregate (Co…
mswilkison Jun 13, 2026
a07e8dc
docs(tbtc/signer): drop second stale pending-sign-off note (Codex P3)
mswilkison Jun 13, 2026
2e062ff
refactor(tbtc/signer): simplify 7.2b-1 to completion marker + reject
mswilkison Jun 13, 2026
3d690bb
docs(tbtc/signer): revert 7.2b-1 design to completion marker + reject
mswilkison Jun 13, 2026
9d0accf
docs(tbtc/signer): Phase 7.2b design note — package envelopes + bound…
mswilkison Jun 14, 2026
d57237d
feat(tbtc/signer): Phase 7.2b-1 InteractiveAggregate completion marke…
mswilkison Jun 14, 2026
2d0a37a
feat(tbtc/signer): Phase 7.2b-3 candidate-culprit detection in Intera…
mswilkison Jun 15, 2026
16b0483
fix(tbtc/signer): redact secret material in persisted-struct Debug
piotr-roslaniec Jun 15, 2026
e8e2498
fix(tbtc/signer): stop reflecting raw panic payloads across FFI in pr…
piotr-roslaniec Jun 15, 2026
3d4ddc3
fix(tbtc/signer): canonicalize interactive message_hex casing for ide…
piotr-roslaniec Jun 15, 2026
ad04c42
fix(tbtc/signer): count interactive abort success only on real aborts
piotr-roslaniec Jun 15, 2026
54d0958
refactor(tbtc/signer): assert (not re-test) the differing-attempt inv…
piotr-roslaniec Jun 15, 2026
8cc3071
fix(tbtc/signer): omit absent script_tree_hex in BuildTaprootTxRequest
piotr-roslaniec Jun 15, 2026
13a1e0f
docs(tbtc/signer): fix stale key_package_hex comment in open fingerprint
piotr-roslaniec Jun 15, 2026
fa26cc3
docs(tbtc/signer): document Phase 7 interactive signing endpoints in …
piotr-roslaniec Jun 15, 2026
4867b25
fix(tbtc/signer): use parseable placeholder for sample override trust…
piotr-roslaniec Jun 15, 2026
cbb9d58
docs(tbtc/signer): repoint mirrored doc paths to keep-core layout
piotr-roslaniec Jun 15, 2026
e34291d
docs(tbtc/signer): correct spec-freeze section 4 to match the shipped…
piotr-roslaniec Jun 15, 2026
8d7d661
ci(tbtc/signer): add blocking cargo-deny advisory gate
piotr-roslaniec Jun 15, 2026
bd73bad
test(tbtc/signer): fix env-race flake in interactive FFI roundtrip test
piotr-roslaniec Jun 15, 2026
dde5e79
fix(tbtc/signer): harden admission override replay registry
piotr-roslaniec Jun 15, 2026
65a678e
docs(tbtc/signer): frame the domain tag in roast phase 0 attempt-id f…
piotr-roslaniec Jun 15, 2026
5123dc3
test(tbtc/signer): pin int31n_fast rejection branch against Go math/rand
piotr-roslaniec Jun 15, 2026
ea29834
docs(tbtc/signer): mark TEE/rollout TLA models as planned, not shipped
piotr-roslaniec Jun 15, 2026
3524089
docs(tbtc/signer): clarify crate is unconsumed; add activation re-rev…
piotr-roslaniec Jun 15, 2026
b8407f6
fixup(tbtc/signer): align candidate culprits to u16 member ids + mult…
mswilkison Jun 15, 2026
023b058
Phase 7.2b-3: candidate-culprit detection in InteractiveAggregate (#4…
mswilkison Jun 15, 2026
b8b84dc
docs(tbtc/signer): record D1 exclusion-trust assumption at the activa…
piotr-roslaniec Jun 15, 2026
b0677c3
feat(tbtc/signer): Phase 7.2b-4 engine verify_signature_share FFI (ba…
mswilkison Jun 15, 2026
de93bc4
Fold #4068 review: header prototype + in-band Indeterminate for bad t…
mswilkison Jun 15, 2026
7332303
Fold #4068 review: sweep expired interactive state in verify_signatur…
mswilkison Jun 15, 2026
6af4d14
Fold #4068 review: judge share bytes only after membership context is…
mswilkison Jun 15, 2026
0e6f358
Fold #4068 review: require package membership before blaming malforme…
mswilkison Jun 16, 2026
129830d
Phase 7.2b-4: engine verify_signature_share FFI (backs Go Round2Share…
mswilkison Jun 16, 2026
43b649d
Phase 7.2b-4: tweaked-root (script-path) verify_signature_share equiv…
mswilkison Jun 16, 2026
2bd81fa
Phase 7.2b-4: tweaked-root verify_signature_share equivalence test (#…
mswilkison Jun 16, 2026
d12909a
frost(7.3): engine-side DeriveInteractiveAttemptContext helper
mswilkison Jun 17, 2026
7ad5fa5
frost(7.3): declare derive helper in the C header + clarify threshold…
mswilkison Jun 17, 2026
f87fc77
frost(7.3): reject zero threshold in the derive helper (Codex re-review)
mswilkison Jun 17, 2026
0fdea53
frost(7.3): mirror session-open front-door checks in the derive helper
mswilkison Jun 17, 2026
9fd9845
Phase 7.3: engine-side DeriveInteractiveAttemptContext helper (#4077)
mswilkison Jun 17, 2026
e9075ac
feat(tbtc/signer): member-key interactive signing state for multi-sea…
mswilkison Jun 20, 2026
2684dde
fix(tbtc/signer): refuse Round2 for an already-aggregated attempt (re…
mswilkison Jun 20, 2026
797aa71
fix(tbtc/signer): bind the interactive completion marker to the messa…
mswilkison Jun 20, 2026
6b2e2d0
fix(tbtc/signer): honor legacy bare aggregate completion markers (re-…
mswilkison Jun 20, 2026
73fabaf
fix(tbtc/signer): bind the taproot root into the completion marker (r…
mswilkison Jun 20, 2026
49fdcbc
fix(tbtc/signer): free finalized non-signing siblings on aggregate (r…
mswilkison Jun 20, 2026
d857577
fix(tbtc/signer): bind the aggregate-cleanup filter to the message to…
mswilkison Jun 20, 2026
ca6ee3b
feat(tbtc/signer): member-key interactive signing state for multi-sea…
mswilkison Jun 20, 2026
13a8103
test(tbtc/signer): multi-seat capacity new-vs-replacement + abort-by-…
mswilkison Jun 20, 2026
83b7bff
test(tbtc/signer): multi-seat capacity new-vs-replacement + abort-by-…
mswilkison Jun 21, 2026
25e4f27
feat(tbtc/signer): export a structured FFI contract version (frost_tb…
mswilkison Jun 22, 2026
6e3718b
fix(tbtc/signer): declare frost_tbtc_abi_version in the public C header
mswilkison Jun 22, 2026
d7d96bf
feat(tbtc/signer): export a structured FFI contract version (frost_tb…
mswilkison Jun 22, 2026
cbc5e37
fix(tbtc/signer): validate incoming attempt context before clearing a…
mswilkison Jun 26, 2026
3b481ad
fix(tbtc/signer): fail closed on unknown profile and degenerate signi…
mswilkison Jun 26, 2026
588cc4b
ci(tbtc/signer): pin cargo dependency resolution with --locked
mswilkison Jun 26, 2026
921b009
fix(tbtc/signer): validate incoming attempt context before clearing a…
mswilkison Jun 26, 2026
95ecec4
fix(tbtc/signer): fail closed on unknown profile and degenerate signi…
mswilkison Jun 26, 2026
b548ac4
ci(tbtc/signer): pin cargo dependency resolution with --locked (#4113)
mswilkison Jun 26, 2026
4b40a5a
perf(tbtc/signer): resolve state-encryption key off-lock, deferring t…
mswilkison Jun 26, 2026
77488ee
fix(tbtc/signer): resolve the state key under the ENGINE_STATE guard,…
mswilkison Jun 27, 2026
a1232c7
fix(tbtc/signer): resolve the state-encryption key under the ENGINE_S…
mswilkison Jun 27, 2026
501dffb
fix(signer): defer sign-round clear + persist before idempotent serve
mswilkison Jun 28, 2026
f0ae82f
fix(signer): clear sign-round persist marker on any successful persist
mswilkison Jun 28, 2026
396a80e
fix(signer): scope sign-round persist-pending marker per session
mswilkison Jun 28, 2026
4587081
fix(signer): defer sign-round clear + persist before idempotent serve…
mswilkison Jun 28, 2026
af1cc10
fix(tbtc/signer): gate plaintext state, zeroize FFI buffers, allow pe…
mswilkison Jun 30, 2026
ede5c9e
feat(tbtc/signer): enforce signing-policy firewall in production with…
mswilkison Jun 30, 2026
6d2a4df
fix(tbtc/signer): address self-review findings on the review-fix PR
mswilkison Jun 30, 2026
816be16
docs(tbtc/signer): document firewall production force-on + built-in d…
mswilkison Jun 30, 2026
8d873e7
feat(tbtc/signer): enforce signing-policy firewall in production with…
mswilkison Jun 30, 2026
07238e6
fix(tbtc/signer): gate plaintext rollback-path tests to debug builds
mswilkison Jun 30, 2026
cba4cd1
fix(tbtc/signer): wire plaintext rollback opt-in through init config
mswilkison Jun 30, 2026
39bed8b
fix(tbtc/signer): backfill legacy refresh fingerprint before overwriting
mswilkison Jun 30, 2026
c46adba
fix(tbtc/signer): preserve total refresh count across history pruning
mswilkison Jun 30, 2026
3efa362
fix(tbtc/signer): backfill refresh_count from history on legacy state…
mswilkison Jun 30, 2026
b32f515
fix(tbtc/signer): harden signer FFI (secret fields, panic hook, quara…
mswilkison Jun 30, 2026
6f92479
fix(tbtc/signer): synthesize refresh fingerprint record for legacy em…
mswilkison Jun 30, 2026
4899108
fix(tbtc/signer): canonicalize StartSignRound message hex + seed benc…
mswilkison Jul 1, 2026
98f58e1
fix(tbtc/signer): preserve legacy mixed-case message fingerprints
mswilkison Jul 1, 2026
3cd2de1
fix(tbtc/signer): preserve legacy refresh fingerprint without a cache…
mswilkison Jul 1, 2026
01e274b
fix(tbtc/signer): gate plaintext state, zeroize FFI buffers, allow pe…
mswilkison Jul 1, 2026
f9cf110
fix(electrum): refresh fulcrum integration endpoint
mswilkison Jul 1, 2026
59823fe
ci(tbtc/signer): pin workflow actions to commit SHAs; disable checkou…
mswilkison Jul 1, 2026
13b04ec
hardening(signer): fail closed on stateless nonce primitives in produ…
mswilkison Jul 1, 2026
3010172
ci(tbtc/signer): make Setup Rust toolchain explicit (toolchain: stable)
mswilkison Jul 2, 2026
911f3b6
ci(tbtc/signer): pin workflow actions to commit SHAs; disable checkou…
mswilkison Jul 2, 2026
3730815
hardening(signer): fail closed on stateless nonce primitives under th…
mswilkison Jul 2, 2026
d1ab4dc
feat(tbtc/signer): persist a distributed DKG key package as signing m…
mswilkison Jul 7, 2026
af5a306
fix(tbtc/signer): accumulate distributed DKG key packages under one s…
mswilkison Jul 7, 2026
a491df8
fix(tbtc/signer): gate distributed-DKG persist behind provenance; add…
mswilkison Jul 7, 2026
4ac6bb7
fix(tbtc/signer): admission gate, key-package consistency, ABI bump f…
mswilkison Jul 8, 2026
d6f293c
fix(tbtc/signer): validate participant count + reject non-canonical I…
mswilkison Jul 8, 2026
228073e
fix(tbtc/signer): verify signing share derives to public share; match…
mswilkison Jul 8, 2026
70f8bba
fix(tbtc/signer): enforce operator quarantine before persisting distr…
mswilkison Jul 8, 2026
1841747
fix(signer): resolve DKG key material by key_group so signing works a…
mswilkison Jul 8, 2026
8dd9401
fix(signer): re-check emergency-rekey/finalize gates from the WALLET …
mswilkison Jul 8, 2026
5a88e9a
fix(signer): CI green (rustfmt, RUSTSEC-2026-0204) + harden emergency…
mswilkison Jul 8, 2026
82cffed
fix(signer): enforce the total-session cap when Open creates a cross-…
mswilkison Jul 8, 2026
a5762aa
fix(signer): scrub serde-owned secret request Strings + SigningShare …
mswilkison Jul 8, 2026
0d2ebcb
fix(signer): a session belongs to one key_group for life; scrub secre…
mswilkison Jul 8, 2026
1d6f946
fix(signer): persist bound_key_group so cross-session signing survive…
mswilkison Jul 8, 2026
4ac4a42
style(signer): satisfy clippy -D warnings (unnecessary_map_or, clone_…
mswilkison Jul 8, 2026
c7dcd55
feat(tbtc/signer): persist distributed DKG material and make it signa…
mswilkison Jul 8, 2026
386bd36
fix(signer): update pinned TLA tools checksum
mswilkison Jul 9, 2026
0172c6d
feat(signer)!: delete transitional coarse-FROST signing path (Phase 7…
mswilkison Jul 9, 2026
3c60e2d
feat(signer)!: delete transitional coarse-FROST signing path (Phase 7…
mswilkison Jul 9, 2026
6cc2351
ci(signer): re-pin tla2tools.jar checksum to the current v1.8.0 relea…
mswilkison Jul 9, 2026
680cdc2
fix(tbtc/signer)!: bind policy to BIP-341 sighashes
mswilkison Jul 11, 2026
84c3b84
fix(tbtc/signer): make state transitions crash-durable
mswilkison Jul 11, 2026
ac2f32a
fix(tbtc/signer): restore rollout assurance gates
mswilkison Jul 11, 2026
6e0fa97
Preserve signer latency metric ABI semantics
mswilkison Jul 12, 2026
e487a04
fix(tbtc/signer)!: bind policy to BIP-341 sighashes (#4147)
mswilkison Jul 12, 2026
0e46315
fix(tbtc/signer): make state transitions crash-durable (#4148)
mswilkison Jul 12, 2026
b7281da
fix(tbtc/signer): restore rollout assurance gates (#4149)
mswilkison Jul 12, 2026
f21ca10
docs(tbtc/signer): retire stale rollout benchmark gate
mswilkison Jul 13, 2026
9945155
fix(tbtc/signer): preserve canary recovery bookkeeping
mswilkison Jul 13, 2026
400a7c9
docs(tbtc/signer): retire stale rollout benchmark gate (#4151)
mswilkison Jul 13, 2026
36e8c05
fix(tbtc/signer): preserve canary recovery bookkeeping (#4154)
mswilkison Jul 13, 2026
c2d187d
fix(tbtc/signer): fail closed on unsafe share refresh
mswilkison Jul 13, 2026
a4ead31
fix(tbtc/signer): bump ABI for refresh rejection
mswilkison Jul 13, 2026
3a440ee
fix(tbtc/signer): mark unanchored legacy refresh overdue
mswilkison Jul 13, 2026
07b4190
fix(tbtc/signer): reject empty attestation statuses
mswilkison Jul 13, 2026
43a0d25
fix(tbtc/signer): fail closed on unsafe share refresh (#4155)
mswilkison Jul 13, 2026
1679a60
fix(tbtc/signer): reject empty attestation statuses (#4156)
mswilkison Jul 13, 2026
af31d1a
Merge remote-tracking branch 'origin/main' into fix/pr4005-electrum-f…
mswilkison Jul 13, 2026
00cb7de
fix(electrum): propagate embedded test networks
mswilkison Jul 13, 2026
01bbaaf
fix(tbtc/signer): bound aggregate IDs and reclaim sessions
mswilkison Jul 14, 2026
c2ec8a4
fix(tbtc/signer): harden session retirement
mswilkison Jul 14, 2026
a9d64e9
fix(tbtc/signer): preserve aggregate liveness
mswilkison Jul 14, 2026
43050d3
ci(tbtc/signer): refresh TLA tools checksum
mswilkison Jul 14, 2026
616e4ab
fix(tbtc/signer): make session retirement rollback-safe
mswilkison Jul 14, 2026
134727f
fix(tbtc/signer): retire repaired aggregate sessions
mswilkison Jul 15, 2026
c717a5a
fix(tbtc/signer): zeroize DKG wire secrets
mswilkison Jul 14, 2026
136e85c
fix(tbtc/signer): serialize initial state loading
mswilkison Jul 14, 2026
19a9fa8
fix(tbtc/signer): serialize initial state loading (#4159)
mswilkison Jul 15, 2026
bcdd852
fix(tbtc/signer): zeroize DKG wire secrets (#4158)
mswilkison Jul 15, 2026
1ef344c
fix(tbtc/signer): bound interactive session persistence (#4157)
mswilkison Jul 15, 2026
5e49300
fix(tbtc/signer): harden state-path and rollback durability
mswilkison Jul 15, 2026
b553a04
fix(tbtc/signer): reject unknown admission policy fields
mswilkison Jul 15, 2026
90a1b00
fix(tbtc/signer): track interactive inactivity monotonically
mswilkison Jul 15, 2026
72897cb
fix(tbtc/signer): harden state-path and rollback durability (#4160)
mswilkison Jul 15, 2026
eb1277b
fix(tbtc/signer): reject unknown admission policy fields (#4161)
mswilkison Jul 15, 2026
b49065f
fix(tbtc/signer): track interactive inactivity monotonically (#4162)
mswilkison Jul 15, 2026
cbf76eb
Merge remote-tracking branch 'origin/main' into codex/reconcile-frost…
mswilkison Jul 25, 2026
c494e8a
ci(tbtc/signer): refresh verified TLA tools checksum
mswilkison Jul 25, 2026
8f50f80
fix(tbtc/signer): review-driven hardening across crypto, FFI, supply-…
piotr-roslaniec Aug 17, 2026
3f7b531
style(tbtc/signer): rustfmt (CI formatting gate)
piotr-roslaniec Aug 17, 2026
0f7cea5
ci(tbtc/signer): drop unsupported --all from cargo-deny check bans
piotr-roslaniec Aug 17, 2026
4d2d241
fix(tbtc/signer): clippy doc_lazy_continuation + useless_vec + dead_code
piotr-roslaniec Aug 17, 2026
3060c26
ci(tbtc/signer): refresh verified TLA tools checksum
piotr-roslaniec Aug 17, 2026
555f2c5
fix(tbtc/signer): AEAD ciphertext upper bound in persistence decode
piotr-roslaniec Aug 17, 2026
5f74acd
docs(tbtc-signer): FROST share refresh/recovery design-spike RFC
piotr-roslaniec Aug 18, 2026
0c8f5ac
docs(tbtc-signer): operator SOP for staged FROST shadow-mode rollout
piotr-roslaniec Aug 18, 2026
ae85d99
fix(tbtc-signer): validation & bounds hardening on FFI-adjacent inputs
piotr-roslaniec Aug 18, 2026
584a57b
fix(tbtc-signer): log hygiene and panic-hook restoration fixes
piotr-roslaniec Aug 18, 2026
9e20599
perf(tbtc-signer): avoid double-clone of pending session ids per reti…
piotr-roslaniec Aug 18, 2026
4161f8c
docs(tbtc-signer): fix doc drift and stale/unclear comments
piotr-roslaniec Aug 18, 2026
aa67db8
docs(tbtc-signer): record crypto/security investigation findings
piotr-roslaniec Aug 18, 2026
20b11c6
feat(tbtc-signer): bounded n-t+1 concurrent interactive attempts (#4251)
piotr-roslaniec Aug 18, 2026
3e833de
spec(frost-signer): collapse interactive-session entry points
piotr-roslaniec Aug 18, 2026
d606e3c
spec(frost-signer): funnel the policy reject_* family
piotr-roslaniec Aug 18, 2026
59b95a3
spec(frost-signer): carve persistence into seams
piotr-roslaniec Aug 18, 2026
1a4d3fe
spec(frost-signer): split SessionState into 6 substructures
piotr-roslaniec Aug 18, 2026
f03d2db
spec(frost-signer): macro the FFI entry-point pattern
piotr-roslaniec Aug 18, 2026
f6c83a6
feat(frost-signer): macro the FFI entry-point pattern
piotr-roslaniec Aug 18, 2026
e35076b
feat(frost-signer): collapse interactive-session entry points
piotr-roslaniec Aug 18, 2026
a257104
feat(frost-signer): funnel the policy reject_* family
piotr-roslaniec Aug 18, 2026
94cbafb
feat(frost-signer): carve persistence into seams
Aug 18, 2026
2d23dd7
feat(frost-signer): split SessionState into 6 substructures
piotr-roslaniec Aug 18, 2026
84b794c
fix(frost-signer): drop unused parse_request import after macro refactor
piotr-roslaniec Aug 18, 2026
a820f34
docs(tbtc-signer): document mutex invariant behind pending_session_id…
piotr-roslaniec Aug 19, 2026
5a71f15
docs(tbtc-signer): correct canary promotion gate fields and add step-…
Aug 19, 2026
74d0eb9
test(tbtc-signer): cover reason-normalization match/mismatch branches
piotr-roslaniec Aug 19, 2026
68cbe90
fix(tbtc/signer): drop unused session_id and mut from interactive-ses…
piotr-roslaniec Aug 19, 2026
c77db93
docs(frost-signer): correct false claims in persistence split spec
Aug 19, 2026
70b09a0
docs(rfc): fix Option B governance-keys premise and citation
Aug 19, 2026
1fb8189
docs(specs): correct drifted references in interactive-session deepen…
piotr-roslaniec Aug 19, 2026
035f0bf
fix(frost-signer): land C6 DoD items (header narrative, regression te…
piotr-roslaniec Aug 19, 2026
8067638
test(frost-signer): pin retirement invariant and capacity_pins round-…
piotr-roslaniec Aug 19, 2026
cf8e33f
test(tbtc-signer): regression coverage for bounded-attempt fixes
piotr-roslaniec Aug 19, 2026
7a0fb00
fix(tbtc-signer): test coverage, map entry cap, ASCII check, error-re…
piotr-roslaniec Aug 19, 2026
b5b1a04
fix(frost-signer): correct PR framing, spec doc, and add kill-switch …
Aug 19, 2026
26711b4
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
28ce2d4
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
a86285d
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
28647c5
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
4c70e30
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
497bb01
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
ca846d3
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
7295c58
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
6d79ee2
style(tbtc-signer): cargo fmt + clippy -D warnings compliance
piotr-roslaniec Aug 19, 2026
6275366
docs(tbtc-signer): FROST share refresh/recovery design-spike RFC (#42…
piotr-roslaniec Aug 20, 2026
cb3073f
docs(tbtc-signer): operator SOP for staged FROST shadow-mode rollout …
piotr-roslaniec Aug 20, 2026
4826696
fix(tbtc-signer): log hygiene and panic-hook restoration fixes (#4255…
piotr-roslaniec Aug 20, 2026
a09d9b5
perf(tbtc-signer): avoid double-clone of pending session ids per reti…
piotr-roslaniec Aug 20, 2026
4715b11
docs(tbtc-signer): fix doc drift and stale/unclear comments (#4255 cl…
piotr-roslaniec Aug 20, 2026
aee02d9
docs(tbtc-signer): record crypto/security investigation findings (#42…
piotr-roslaniec Aug 20, 2026
38f9f32
C1 — Collapse interactive-session entry points (#4266)
piotr-roslaniec Aug 20, 2026
76efd0c
C6 — Macro the FFI entry-point pattern (#4270)
piotr-roslaniec Aug 20, 2026
acde3ff
Merge remote-tracking branch 'origin/extraction/frost-signer-mirror-2…
piotr-roslaniec Aug 20, 2026
4a41fac
fix(tbtc-signer): validation & bounds hardening on FFI-adjacent input…
piotr-roslaniec Aug 20, 2026
17f34a2
Merge remote-tracking branch 'origin/extraction/frost-signer-mirror-2…
piotr-roslaniec Aug 20, 2026
ecdece4
feat(tbtc-signer): bounded n-t+1 concurrent interactive attempts (#42…
piotr-roslaniec Aug 20, 2026
08f7cf0
merge: resolve modify/delete conflict on persistence.rs split (port #…
piotr-roslaniec Aug 20, 2026
885ad5e
C2 — Carve persistence into seams (#4267)
piotr-roslaniec Aug 20, 2026
8f78be9
merge: resolve SessionState-split conflicts against #4258/#4261/#4267…
piotr-roslaniec Aug 20, 2026
7b886e0
C5 — Split `SessionState` into 6 named substructures (#4269)
piotr-roslaniec Aug 20, 2026
19a2869
Merge remote-tracking branch 'origin/extraction/frost-signer-mirror-2…
piotr-roslaniec Aug 20, 2026
7c45d5c
C4 — Funnel the policy `reject_*` family (#4268)
piotr-roslaniec Aug 20, 2026
2242826
fix(signer): pin verified GitHub Action SHAs and disable checkout cre…
piotr-roslaniec Aug 20, 2026
ca76e55
fix(signer): run cargo-deny sources/licenses checks and block yanked …
piotr-roslaniec Aug 20, 2026
6eb6a6b
fix(signer): validate DKG public key package shares via Lagrange inte…
piotr-roslaniec Aug 20, 2026
dc2c9b6
fix(signer): make quarantine enforcement honest and remove dead harde…
piotr-roslaniec Aug 20, 2026
5169e0c
fix(signer): bind state to an anti-replay generation, distinguish con…
piotr-roslaniec Aug 20, 2026
954065b
fix(signer): zeroize secret material reliably across FFI serializatio…
piotr-roslaniec Aug 20, 2026
84d65e3
docs(signer): correct stale FFI-surface, quarantine, and canary-runbo…
piotr-roslaniec Aug 20, 2026
b843c87
test(signer): cover the anti-replay generation, config-regression, an…
piotr-roslaniec Aug 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
57 changes: 57 additions & 0 deletions .github/workflows/tbtc-signer-formal.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: tBTC Signer Formal Verification

on:
pull_request:
paths:
- pkg/tbtc/signer/**
- .github/workflows/tbtc-signer-formal.yml
schedule:
- cron: "23 5 * * *"
workflow_dispatch:

permissions:
contents: read

concurrency:
group: tbtc-signer-formal-${{ github.ref }}
cancel-in-progress: true

jobs:
signer-formal-invariants:
name: Signer formal invariants
runs-on: ubuntu-latest
timeout-minutes: 30
steps:
- name: Checkout
uses: actions/checkout@v4
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated
Comment thread
coderabbitai[bot] marked this conversation as resolved.
Outdated

- name: Setup Rust
uses: dtolnay/rust-toolchain@stable

- name: Run signer formal invariant tests
# Filters cargo test by the formal_verification_ prefix so only
# the formal-invariant test cases run (faster + clearer signal
# than the full suite). Matches the convention used in the
# source monorepo's ci-formal-verification.yml.
run: cargo test --manifest-path pkg/tbtc/signer/Cargo.toml formal_verification_

tla-model-checks:
name: TLA model checks
runs-on: ubuntu-latest
timeout-minutes: 20
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: "17"

- name: Run TLA model checks
# Iterates over every .cfg under pkg/tbtc/signer/docs/formal/models/
# and runs TLC against the matching .tla module. MODELS_PATH defaults
# to the canonical signer-relative path; override via env var for
# alternate environments (set in extraction/frost-signer-mirror PR).
run: pkg/tbtc/signer/scripts/formal/run_tla_models.sh
1 change: 1 addition & 0 deletions pkg/tbtc/signer/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
target/
Loading
Loading