Round 5 targeted follow-up: reviewed release-source validation and webhook recovery aging, with unchanged SDK runtime and wallet code. Round 4 broad validation remains historical evidence, not a new full-suite run. All 14 targeted database, migration and webhook tests passed after Docker recovered. Scores remain 96/95 because the remaining category deductions are still open.
Scores are engineering judgments against the same 30/25/20/15/10 rubric. They are not percentages of bug-free code or a security certification. Historical scores are preserved.
Category
Maximum
TrustWeave
SaaS
Security
30
29
29
Correctness
25
24
24
Architecture
20
19
19
Testing
15
15
14
Experience
10
9
9
Remaining deductions
trustweave
Security -1: browser custody lacks hardware/user-presence signing and remains exposed to trusted-bundle compromise.
Correctness -1: issuer/disclosure profiles and hosted provider behavior remain limited or unvalidated.
Architecture -1: provider maturity and legacy storage boundaries remain uneven.
Experience -1: holder-key loss requires reissuance; physical mobile camera coverage remains outstanding.
Testing receives full local-validation credit for the full JVM suite, lint, database/HTTP contracts and production browser regressions. This does not certify optional hosted providers; those limitations remain in correctness/architecture.
trustweave-saas
Security -1: SDK pin is repaired locally, but publication, exact-pair remote Linux CI and staging failure-boundary evidence remain outstanding.
Correctness -1: live Accountly/PSP and supported legacy invoice behavior remain incomplete.
Architecture -1: release coupling and hosted recovery/alert integration remain outstanding.
Testing -1: two live-contract skips and no exact-pair remote Linux/staging evidence.
Experience -1: operator-heavy recovery and limited credential-format support.
Validation evidence
Area
Result
Scope and limits
Release source guard
2 Python tests passed; actual SDK revision and fingerprint match
Local committed SDK. No publication, remote CI or deployment.
Backend compilation
Production and test Kotlin compilation passed
Production and test Kotlin compile; V25 migration and retry behavior also passed their database regressions.
Webhook unit tests
5 passed in final targeted run
Two recovery monitor tests and three Stripe controller tests; all passed.
PostgreSQL integration and migration
9 passed; 14 total targeted tests with zero failures or skips
Five Flyway and four recovery/access tests. BUILD SUCCESSFUL in 3m 14s. The targeted run excludes the whole-server coverage threshold; no full-suite/coverage rerun is claimed.
SDK and wallet
Unchanged runtime; Round 4 evidence retained
3,729 JVM tests with 15 skips, 28 wallet unit tests and 9 browser tests were validated in Round 4, not rerun here.
Historical broad-suite baseline. The new webhook database change is now additionally covered by successful Round 5 targeted validation.
Results distinguish local database/HTTP fixtures from hosted-service validation. Optional tests that did not run remain reported as skips. Timing excludes fixture setup.
Require the reviewed SDK commit as well as its fingerprint
Updated the SaaS pin to the committed round-4 SDK and added exact HEAD validation. CI passes its explicitly selected immutable revision into the same guard.
Evidence: Two Python regressions pass, including rejection of branch names, abbreviated SHAs and a mismatched full SHA. The actual SDK checkout passes revision and fingerprint validation.
Limit: The commit exists locally; publication and remote CI remain unverified.
Repeated webhook failures no longer reset backlog age
Preserve first_failed_at with a PostgreSQL atomic upsert, while updating latest failure details. The oldest-failure metric uses the original failure time. Flyway V25 backfills existing rows and permits inserts from older application versions.
Evidence: All 14 targeted tests passed: five Flyway migration tests, four PostgreSQL webhook recovery/access tests, three Stripe controller tests and two monitor tests. This includes preserved first-failure age after retry and V25 backfill/older-version insert compatibility.
Limit: Pre-migration first-failure history cannot be reconstructed. Hosted alert delivery remains untested.
Most plugin capabilities remain unassessed. The reference wallet has no hardware/user-presence signing or recoverable holder-key service; supported issuer and disclosure profiles remain limited.
Evidence: Full local JVM suite passed with 15 optional/template tests skipped; live provider environments and hardware-backed custody remain unvalidated.
Limit: A complete product/profile definition and supported provider matrix are needed before these deductions can be closed.
docs/round-5-operations.md covers the repaired release pin, Flyway V25, preserved failure age and deployment limits. Staging environment and release-branch details were requested during this pass and remain prerequisites for external release checks.