Skip to content

Link fictional dues to disposable staging memberships - #720

Merged
daliu merged 1 commit into
mainfrom
codex/staging-dues-link
Oct 12, 2026
Merged

daliu merged 1 commit into
mainfrom
codex/staging-dues-link

Conversation

@daliu

@daliu daliu commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Outcome

Closes only the source part of #719: deliberately link one immutable fictional dues receipt to one owner-marked disposable pending account and activate its unchanged current test term in the isolated staging service. Keep #719 open until native deployment, hosted acceptance and exact cleanup.

Officer impact: supervised screen-only fictional linking and member cancellation/expiry verification. No real membership or money moves.

Officer documentation: OFFICER_START_HERE.md; docs/officers/{README,STAGING_COMMUNITY,ACCESS_CONTINUITY,EVENTS_SHOP_MEMBERS,SYSTEM_MAPS,GLOSSARY}.md. All new behavior is source-prepared/NOT AVAILABLE YET until hosted proof.

Deployment evidence: local source only in this PR. Existing staging baseline is communityActions v3/d212fab; profiles remain v2/v1/2843388. Fixed staging scripts require all six exact-main jobs before deployment. Production/runmprc.com/provider payments are not touched.

Security and compatibility

Separate exact v3 association capability; old v1/v2 permissions never acquire it. Recent verified native TOTP/App Check, strict caller/fields, owner-marked expiring disposable target, authoritative verified/enabled Auth lookup, pending null authority/revision and immutable current receipt are required. One transaction creates the separate link, derived authority and append-only command/audit. One receipt or pending UID has one winner; exact replay rechecks live officer permission first. Receipt and original term are unchanged; cancellation preserves that term and server-clock expiry removes entitlement. No claims, profile writes, prices/dates from client, roster/contact projection, dependency/service/schedule/IAM expansion or migration. Rules remain default-deny for both new collections. Project-level runtime IAM remains an existing limitation, not collection-scoped isolation.

Validation / review

Backend full: 77 suites / 7,783 passed; emulator-only cases are separate (3 suites/69 skipped in non-emulator run). Community real Firestore/Auth demo suite: all 5 tests passed, including link races. Frontend full: 21 suites / 1,376 passed. Rules full: 5 suites / 434 passed. Release contract: 7 passed. TypeScript, backend lint, strict nonmutating frontend lint (126 files/113 reviewed legacy errors/6 reviewed legacy warnings), diagnostic staging build and diff whitespace passed. No baseline/lockfile updates. Test-only fixture correction rerun separately.

Actual diff self-reviewed under the sole maintainer's standing authorization for authorization, App Check, exact fields/input bounds, no secret/request logging, transaction/read ordering, impossible transitions, immutable retry/revocation and fail-closed staging fallback. Provider/website proof remains pending; green CI is not live acceptance. Existing generic Function release reporting failure is not repaired or hidden here; independently inspect the native archive/state before any retry.

@netlify

netlify Bot commented Oct 12, 2026 •

Copy link
Copy Markdown

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

Name Link
🔨 Latest commit 8198ffc
🔍 Latest deploy log https://app.netlify.com/projects/luminous-fox-7c393f/deploys/6acd5c003632f42d43b22204
😎 Deploy Preview https://deploy-preview-720--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 merged commit b6a8fd5 into main Oct 12, 2026
10 checks passed
@daliu
daliu deleted the codex/staging-dues-link branch October 12, 2026 22:19
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