Skip to content

fix(frost/signing): gate RFC-21 Phase 1B binding with frost_native build tag#3965

Merged
mswilkison merged 1 commit into
feat/frost-schnorr-migration-scaffoldfrom
fix/frost-readiness-phase1b-test-build-tag-2026-05-22
May 22, 2026
Merged

fix(frost/signing): gate RFC-21 Phase 1B binding with frost_native build tag#3965
mswilkison merged 1 commit into
feat/frost-schnorr-migration-scaffoldfrom
fix/frost-readiness-phase1b-test-build-tag-2026-05-22

Conversation

@mswilkison

Copy link
Copy Markdown
Contributor

Summary

Forward-fix for #3866 CI: the Phase 1B binding file and test
referenced message types defined in `//go:build frost_native`
files but were themselves untagged. Untagged staticcheck on
the integration branch (#3866) then reported
`undefined: nativeFROSTRoundOneCommitmentMessage` and the
client-lint job failed.

Adds `//go:build frost_native` to:

  • `pkg/frost/signing/attempt_context_binding.go`
  • `pkg/frost/signing/attempt_context_binding_test.go`

The helpers and tests are only exercised by gated code paths
(the three message-type methods all live behind `frost_native`),
so the build tag is the right locus.

Why now

PRs #3963 (Phase 1A) and #3964 (Phase 1B) were merged into the
`feat/frost-schnorr-migration-scaffold` branch before #3866's
integration CI ran. Once the merges landed, #3866's
`client-lint` job rebuilt under the untagged staticcheck pass
and exposed the missing tag. This PR is the smallest possible
fix.

Verification

Locally with module-pinned staticcheck 2025.1.1:

```
go build ./...
go build -tags 'frost_native frost_tbtc_signer' ./pkg/frost/...
go test -tags 'frost_native frost_tbtc_signer' ./pkg/frost/signing/
staticcheck -checks "-SA1019" ./... # whole repo, silent
staticcheck -checks "-SA1019" ./pkg/frost/signing # silent
```

Test plan

  • CI green: client-lint, client-vet, client-scan,
    client-build-test-publish all pass.
  • FROST/ROAST readiness branch #3866 lint job recovers once this merges into
    `feat/frost-schnorr-migration-scaffold`.

…ild tag

The Phase 1B helpers and tests reference the three protocol-message
structs (nativeFROSTRoundOneCommitmentMessage,
nativeFROSTRoundTwoSignatureShareMessage,
buildTaggedTBTCSignerRoundContributionMessage) which are themselves
declared in files with //go:build frost_native. Without a matching
build tag, the untagged staticcheck pass on the integration branch
reports "undefined: nativeFROSTRoundOneCommitmentMessage" etc., and
the lint job fails.

Add //go:build frost_native to both the binding implementation file
and its test. The helpers were only ever exercised from gated code
paths, so the gate is the correct locus.

Verified locally:
* go build ./...
* go build -tags 'frost_native frost_tbtc_signer' ./pkg/frost/...
* go test  -tags 'frost_native frost_tbtc_signer' ./pkg/frost/signing/
* staticcheck -checks "-SA1019" ./... (silent)

This is a forward-fix for #3866 CI after the rapid merge train of
#3963 and #3964.
@mswilkison mswilkison merged commit ea16280 into feat/frost-schnorr-migration-scaffold May 22, 2026
14 checks passed
@mswilkison mswilkison deleted the fix/frost-readiness-phase1b-test-build-tag-2026-05-22 branch May 22, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant