Skip to content

Stable error codes, audit manifest migration tests, and full-binary release smoke tests - #942

Merged
pugsley76 merged 3 commits into
pugsley76:mainfrom
lonerthefirst3-sudo:stellar-wave-loner
Sep 1, 2026
Merged

Stable error codes, audit manifest migration tests, and full-binary release smoke tests#942
pugsley76 merged 3 commits into
pugsley76:mainfrom
lonerthefirst3-sudo:stellar-wave-loner

Conversation

@lonerthefirst3-sudo

Copy link
Copy Markdown
Contributor

Summary

  • Adds an ErstInternalError code + WrapInternal() helper and a shared requireErstError/requireErstErrorCode test helper so command tests can assert failures are stable ErstError values instead of leaking unclassified errors (a representative bare fmt.Errorf in note-add's ID-generation path is converted as an example).
  • Adds compatibility tests for the audit segment manifest's schema_version contract: forward-loading a legacy (pre-versioning) manifest, and rejecting a manifest declaring an unrecognized schema_version. Session, config, trace, and bundle artifacts already had this coverage; audit manifests did not.
  • Extends scripts/verify-release.sh to smoke-test every supported release artifact (not just the host-native one), running version/help/demo/dry-run/JSON commands via a native run or an available emulator (wine, qemu-*-static), and classifying platforms with no available runner as SKIP-UNAVAILABLE rather than FAIL. Per-command results are logged to dist/release/smoke-results.log.

Test plan

  • go test ./internal/cmd/... ./internal/errors/... ./internal/audit/...
  • bash scripts/verify-release.sh dist/release against a built release directory

Closes #762
Closes #872
Closes #877

Introduces a stable ErstInternalError code plus WrapInternal() for
command-facing internal failures that previously returned bare,
unwrapped errors (e.g. note-add's ID generation path), and adds a
requireErstError/requireErstErrorCode test helper so command tests can
assert that returned errors are ErstError values instead of leaking
unclassified errors. Ref pugsley76#762.
Session, config, trace, and bundle artifacts already have legacy
migration and unsupported-version tests, but the audit segment
manifest's schema_version contract (forward-loading a pre-versioning
manifest, rejecting a manifest declaring an unrecognized version) had
no direct coverage. Add tests pinning both behaviors plus a
ReadManifest/WriteManifestAtomic roundtrip check. Ref pugsley76#872.
verify-release.sh previously only smoke-tested the binary matching the
current host OS/arch. Extend it to attempt every EXPECTED artifact via
a native run or an available emulator (wine for Windows, qemu-*-static
for foreign Linux arches), running version/help/demo/dry-run/JSON
commands per artifact. When no runner exists for a platform its
commands are reported as SKIP-UNAVAILABLE rather than FAIL, and
per-command metadata (artifact, command, exit code, output excerpt) is
written to dist/release/smoke-results.log. All commands used are
offline and require no network, credentials, or deployed contracts.
Ref pugsley76#877.
@drips-wave

drips-wave Bot commented Aug 31, 2026

Copy link
Copy Markdown

@lonerthefirst3-sudo Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@pugsley76
pugsley76 merged commit 99fbc29 into pugsley76:main Sep 1, 2026
15 of 24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

3 participants