Skip to content

Release 2.10.0: the gate fails closed when it cannot confirm an approval - #119

Merged
vvillait88 merged 1 commit into
mainfrom
release/2.10.0
Aug 28, 2026
Merged

Release 2.10.0: the gate fails closed when it cannot confirm an approval#119
vvillait88 merged 1 commit into
mainfrom
release/2.10.0

Conversation

@vvillait88

Copy link
Copy Markdown
Contributor

Summary

Version bump for the fail-closed change merged in #118, plus the PolicyBlock documentation from #117.

Minor rather than patch, because runtime behavior changes for merchants. A response the gate cannot read as an approval is now refused where it was previously allowed: a missing or null decision, an unrecognised decision value, and an allow whose policy_result did not pass on a request that sent a policy.

Type of change

  • Bug fix (no breaking change)
  • New feature (no breaking change)
  • Breaking change (existing callers must update)
  • Docs, tests, or internal maintenance only

The version bump itself is maintenance; the behavior it releases landed in #118 and is classified there.

Public API

No exported type, signature or wire-format changes.

Behavior changes for three response shapes that should not occur against a current API, all of which now deny where they previously allowed. Nothing to migrate: a merchant seeing any of them in production has a real problem the gate was hiding, and failOpen still applies to the unreadable-response case, which is the only one of the three that is an availability question rather than a compliance one.

Test plan

bun run lint, bun run typecheck (including the examples project) and bun run test all clean on the bumped tree: 119 files, 1824 tests passing, 4 skipped.

The behavior itself is verified in #118, including drills that reintroduce each guard's removal and confirm the tests fail.

Checklist

  • Tests cover the new behavior, and the suite passes locally
  • Lint, format, and type checks pass
  • Docs and README examples updated if the public surface changed
  • No secrets, credentials, or personal data in the diff or the tests

Minor rather than patch because runtime behavior changes for merchants. A
response the gate cannot read as an approval is now refused where it was
previously allowed: a missing or null decision, an unrecognised decision value,
and an allow whose policy_result did not pass on a request that sent a policy.

No exported surface changes, so nothing to migrate. A merchant seeing any of
those shapes in production has a real problem the gate was hiding, and the
availability escape hatch for the unreadable-response case is still failOpen.
@vvillait88
vvillait88 merged commit 3fba656 into main Aug 28, 2026
6 checks passed
@vvillait88
vvillait88 deleted the release/2.10.0 branch August 28, 2026 00:46
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