Skip to content

CI-001B3: gate command journal Firestore transactions - #168

Merged
daliu merged 1 commit into
mainfrom
codex/issue-167-journal-emulator-ci
Jul 13, 2026
Merged

daliu merged 1 commit into
mainfrom
codex/issue-167-journal-emulator-ci

Conversation

@daliu

@daliu daliu commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Closes #167

Outcome

Adds one blocking Commerce command journal emulator CI job. Every pull request and main push now runs the PAY-002B2A transaction suite against exact Firebase demo project demo-pay002b2-test with Firestore only. The protected release workflow requires exactly one successful result for that job during initial preflight and again after protected approval.

This closes the hosted-verification gap recorded by #165 before lease/fencing work begins.

Safety boundary

  • Node 20 and Java 17.
  • Root and Functions dependencies come from committed lockfiles with lifecycle scripts disabled.
  • Firebase CLI comes from the root lockfile through npx --no-install.
  • Exact demo project, explicit opt-in, loopback-only test guard, and Firestore-only emulator scope.
  • Focused in-band suite only; no production project, secret, cloud credential, provider network, Stripe call, or real data.
  • Job and test failures are blocking.
  • Static tests reject conditional skips, continue-on-error, shell failure swallowing, wrong/broad emulator wiring, unlocked CLI use, and omission or relocation from either release recheck.

Verification

  • Exact Node 20/Java 17 workflow command: 6/6 emulator tests
  • Workflow/static/release/readback: 16/16
  • Functions lint and full tests: 701 passed, 7 skipped
  • Frontend: 132/132
  • SPA callback suite: 10/10
  • Firestore Rules: 305/305
  • Diagnostic build: passed
  • YAML parsing, changed-test lint, diff, links, and sensitive-pattern scan: passed
  • Three independent exact-snapshot reviews: approved

Compatibility and rollback

No runtime, API, schema, package, lockfile, provider, or production-data change. Rollback is the reviewed workflow/documentation commit, but removing this job reopens a known concurrency-verification gap and must not be silent.

Officer impact: Pull requests gain one named green/red payment-safety check. Officers do not run commands or handle secrets.

Officer documentation: OFFICER_START_HERE.md and docs/officers/PUBLISH_AND_CHECK.md name the check, explain its made-up test data, and keep merge/release/live states separate.

Deployment evidence: Source and local synthetic evidence only before merge. This pull request deploys no Firebase code, contacts no Stripe/provider service, publishes no website, and claims no live behavior.

@netlify

netlify Bot commented Jul 13, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for luminous-fox-7c393f ready!

Name Link
🔨 Latest commit 1a8f942
🔍 Latest deploy log https://app.netlify.com/projects/luminous-fox-7c393f/deploys/6a551d5cdec3840007a55181
😎 Deploy Preview https://deploy-preview-168--luminous-fox-7c393f.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@daliu
daliu merged commit e1f8872 into main Jul 13, 2026
8 checks passed
@daliu
daliu deleted the codex/issue-167-journal-emulator-ci branch July 13, 2026 17:18
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.

CI-001B3 — Gate the commerce command journal on the Firestore emulator

1 participant