Skip to content

Add scoped staging officer membership approval and free-event management - #712

Merged
daliu merged 2 commits into
mainfrom
codex/staging-community-officers
Oct 12, 2026
Merged

daliu merged 2 commits into
mainfrom
codex/staging-community-officers

Conversation

@daliu

@daliu daliu commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Officer impact: A disposable staged officer can approve synthetic pending memberships and create/edit/manage free test events with narrow expiring permissions and authenticator sign-in. Real external dues confirmation remains later work.

Officer documentation: OFFICER_START_HERE.md, docs/officers/STAGING_COMMUNITY.md, README.md and SYSTEM_MAPS.md; authoritative architecture/security/commerce/implementation/operations updated.

Deployment evidence: Not deployed yet. Existing #707 native stage baseline reused; #711 requires exact source/CI/merge, Function archive/spec/IAM/MFA, Hosting, genuine browser and cleanup proof. Production and real payments untouched.

Refs #711; do not close #114/#115/AUTH-003/ADMIN-001. One isolated on-demand service, no new dependency/worker/polling. Native Auth/App Check; verified recent TOTP, live capability checked before receipt replay; read-only target Auth check; fixed synthetic term only. Bounded pending cursor review, strict free-only create/edit/capacity/open/close/cancel; immutable actor/action/reason/before/after/result audit. Existing member capacity transaction retained and cancelled events permit self-cancellation. Additive event revision (existing events start0), no migration or claims/provider payments.

Checks: full backend7685 pass, full frontend1365 pass before extra booked-control regression; latest focused8 pass; functions lint, unchanged113error/6warning frontend finding baseline (two finding-free files only), TypeScript,20 root/release checks, real Firestore3 transaction tests incl20-account final-seat race/officer withdrawal-close/revocation. Rules suite in progress. Test/network guards preserved.

Review: no prototype index, role grant or admin catch-all; no PII/profile/roster projection; no raw error/body/token logging. Runtime adds exactly datastore.entities.list and firebaseauth.users.get, no mutation/delete/secrets. Fixed owner release enables optional TOTP only on already-upgraded staging with unchanged email/password/domains; no SMS/billing upgrade. Staging-only browser credential guard and obsolete-account response fences.

Sole-maintainer user authorization applies to self-review/merge and staging release only. Hosted acceptance and no-terminal specialist-gated walkthrough remain pending.

@netlify

netlify Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

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

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

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

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

@daliu

daliu commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Self-review completed under the user sole-maintainer authorization. All added runtime/UI paths are staged-only; no prototype index, browser grants, financial state or logging expansion. Native server identity and App Check precede request binding, and TOTP/recent Auth precedes any officer DB work. Transaction reads current capabilities before old receipt replay and rechecks time before writes; Auth target lookup is read-only, selected pending UID only. Existing zero-price bookings/cancellation retain shared transaction semantics. Additive event revision preserves old records as revision0. No Rules relaxation;427 actual emulator Rules tests pass, including new officer paths. The real database three-test suite passed after using installed Java21 and a valid demo-test namespace; no test guard was weakened. Exact CI still pending; no staged deployment claimed.

@daliu

daliu commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Exact CI caught one object/JSX newline formatting finding after the final capacity-form key was added. Corrected that one finding without baseline changes; current local gate confirms identical113error/6warning legacy findings. All other five jobs and required steps passed. New exact-head CI required before merge/release.

@daliu
daliu merged commit 91f51fb into main Oct 12, 2026
10 checks passed
@daliu
daliu deleted the codex/staging-community-officers branch October 12, 2026 01:53
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.

MEMBERS-DUES-001 — Build server-authoritative annual membership checkout and renewal

1 participant