Build state snapshot — 2026-05-01
Successor to build-history-2026-04-28.md. What's running where + what's in flight at end of day 2026-05-01.
Current deployed state
| Surface | Folder | Branch | HEAD | Tag | Status |
|---|---|---|---|---|---|
| Web (hosting + CFs) | foundation-global |
v0.2.1 |
7d0eee86 |
(no tag yet) | partially deployed — see CF list below |
| iOS shell (TestFlight) | foundation-mobile-claude |
(detached) | 604002d |
v0.1.1 |
unchanged from 2026-04-28; TestFlight build 2 still the live build |
The web side has shipped 9 commits on top of feat/appcheck-bridge-2026-04-28 (where v0.1.1 lives). Tagging deferred until the demo-branch consolidation question is resolved (see "Tag versioning question" below).
iOS has not shipped a new TestFlight build since 2026-04-28 — Option A iOS bridge (Phase 2) is still pending.
Web — Cloud Functions deployed in this round (2026-05-01)
| CF | Source commit | Purpose |
|---|---|---|
resendInviteLink (updated) |
9df03124 |
Accept new site param (yc/docs/app) for per-site continue URL; subject-tag breaks Gmail threading |
tryDemo (rewritten) |
22ac34e3 |
Atomically claim from 20-slot demo pool instead of single shared UID |
releaseDemoSlot (new) |
22ac34e3 |
Free a demo pool slot on explicit sign-out |
anchorIdentityCommitmentTask (updated) |
399855cc + 7d0eee86 |
Bridge new humanity-seal flow to identity_proofs + voters + tenant_memberships so desktop AccessGate sees new-flow users |
adminManualApproveHumanity (new) |
bb2afb8a |
Admin bypass for users who can't complete on-device PoH |
listUsers (updated) |
bb2afb8a |
Include manualReview claim in response shape (drives orange-shield UI) |
Web — hosting redeployed
hosting:partners/hosting:foundation-global-yc(partners.foundation-global.com) — picks up DemoCapacityError UX, callable-routed sign-inhosting:foundation-global-docs(docs.foundation-global.com) — same callable swap, plus newcf-reference.html+foundation-api.htmlpages- (Both targets reset on 2026-05-01 — initial deploy of this round mistakenly hit
hosting:ycandhosting:docswhich are retired 301-redirect stubs; corrected mid-session.)
Branches in flight on 2026-05-01
foundation-global
| Branch | HEAD | Note |
|---|---|---|
v0.2.1 |
7d0eee86 |
This session's branch. 9 commits on top of feat/appcheck-bridge-2026-04-28 parent. Currently checked out. |
feat/appcheck-bridge-2026-04-28 |
86c58431 |
Parent of v0.2.1. Carries v0.1.1. Web tip that's already-deployed prior to this session was on this branch. |
Pre-existing uncommitted work (deliberately NOT bundled into v0.2.1):
.firebaserc,docs/grants/*,docs/yc-*drafts,docs/sessions/,personal-site/*,tools/teleprompter,tools/yc-demo-driver,functions/personal-site.js,personal-siteexports hunk infunctions/index.js. These are the user's in-flight work from prior sessions; left untouched.
iOS clones
| Folder | Branch | HEAD | Uncommitted | Note |
|---|---|---|---|---|
foundation-mobile-claude |
(detached HEAD) | 604002d |
11 files | Canonical — TestFlight source. Has feat/appcheck-bridge-2026-04-28 branch with the iOS Option A bridge code, ready for Phase 2 archive. Decision to actually ship Phase 2 still pending. |
foundation-mobile |
merge/show-backlog-into-main |
faafe2e |
5 files | Parked — parallel iOS line, not in TestFlight. Open consolidation TODO inherited from 2026-04-28 doc. |
What changed since 2026-04-28 (web)
Bug fixes:
- PoH bridge fix. New iOS humanity-seal flow wrote
identity_commitments+users.humanityVerifiedbut neveridentity_proofs/{nullifier}, leaving users completing only the new flow stuck on/registerbecause desktop AccessGate queries by voterId inidentity_proofs.anchorIdentityCommitmentTasknow writes the placeholder bridge doc; desktop's auto-attach logic fills the Semaphore commitment. Verified end-to-end onlimor.gilat@gmail.com2026-05-01 14:11. - Bridge expansion. Same task now also writes
voters/{uid}+tenant_memberships/{tenantId}_{uid}so admin user lists and tenant-scoped queries surface new-flow users. Backfill script:scripts/backfill-poh-bridge-docs.mjs. - dep-resolution mishap.
@peculiar/asn1-schema@2.7.0published 2026-05-01T12:17 UTC. First CF deploys hit Cloud Build before npm registry mirror synced ("no matching version"). A 2.6.0 pin was added (86c58431) which let the build resolve, but caused two copies of asn1-schema at runtime →Cannot get schema for 'AlgorithmIdentifier'cold-start crash. Pin reverted ind702073f; npm now hoists a single 2.7.0.
Features:
- Demo pool of 20 — pre-seeded
demo-user-pool-NNidentities replace single shareddemo-user-foundation. Eliminates concurrent-reviewer collision on the on-chain "already voted" check. Seed:scripts/seed-demo-pool.mjs. Frontend hasDemoCapacityErrordistinct UX. - Admin manual humanity approval + orange-shield UI flagging demo / manual-approve users distinct from real PoH-verified.
- Email-link sign-in routes through Resend for partners.foundation-global.com and docs.foundation-global.com (this was later replaced by email + password sign-in for both — see 2026-05-03 entries in the changelog). Subject tag prevents Gmail thread-collapse.
Docs / tooling:
docs/cf-reference.md— comprehensive catalog of all 86 Cloud Functions (callables, HTTP, triggers, scheduled, Cloud Tasks).docs/foundation-api.md— narrative integration guide for the ~25 client-facing callables.scripts/inspect-user.mjs— comprehensive user-state diagnostic (Auth + Firestore + CF logs).scripts/backfill-poh-bridge-docs.mjs— one-shot to repair users stuck pre-bridge-fix.scripts/sol-management.sh+scripts/test-sol-integration.sharchived (depended on retired Rocket gateway).
Tag glossary (updated)
v0.1.0— verified-working demo state without web Phase 1 CustomProvider. Web has Option B carve-outs only. iOS = TestFlight build 2 source.v0.1.1— adds Phase 1 of Option A on web (CustomProvider). iOS unchanged fromv0.1.0. What's currently deployed for the reviewer demo path on iOS.v0.2.0(reserved, planned) — when iOS Option A bridge ships to TestFlight. Then revert Option B carve-outs and the architecture is fully enforced.v0.2.1(web only, this session, untagged) — 9 commits on top ofv0.1.1's branch covering the PoH bridge fix, demo pool, admin manual approve, orange shield, Resend routing, docs. Web-only — does not cross the iOS bridge gate.
Tag versioning question
v0.2.1 jumps the reserved v0.2.0 slot (which the 2026-04-28 doc reserved for iOS Option A). Two options when actually applying a tag:
- Rename
v0.2.1→v0.1.2(semver-safe web bug-fix increment, keeps the 0.1.x line for web-only fixes). - Keep
v0.2.1and accept thatv0.2.0will be filled later by iOS Phase 2. Non-monotonic gap.
Decision pending — branch hasn't been tagged yet.
Verification commands
# Web
cd dev/foundation/foundation-global
git rev-parse v0.2.1 # → 7d0eee8632fd4f8cef5bd8759b253cc1e81f187c
git log --oneline feat/appcheck-bridge-2026-04-28..v0.2.1 # 9 commits
# iOS canonical
cd dev/foundation/foundation-mobile-claude
git describe --tags # → v0.1.1 (or v0.1.0)
# iOS parked clone
cd dev/foundation/foundation-mobile
git describe --tags # → demo/yc-cut-2026-04-25-5-gfaafe2e
Repos / remotes (unchanged)
| Repo | dagangilat (personal, PRIVATE) | PlantagoAI-com (org, PRIVATE) |
|---|---|---|
| Web/CF | dagangilat/foundation |
PlantagoAI-com/foundation-global |
| iOS | dagangilat/foundation-mobile |
PlantagoAI-com/foundation-mobile |
Memory-side note: ~/.claude/projects/-Users-dagan-dev-foundation-foundation-mobile/memory/ exists for foundation-mobile, NOT for -claude. The memory there points to foundation-mobile as canonical — stale. Truth: foundation-mobile-claude has been canonical since at least 2026-04-28. Worth updating in a future memory pass so agents joining cold don't repeat the wrong-folder mistake.
Open consolidation TODOs
Inherited from 2026-04-28 + new from today:
- Decide canonical iOS folder (still open). Once chosen, push the work-worth-keeping side, plan the merge against
v0.1.1, and delete or rename-to-archive/the non-canonical clone. - Tag
v0.2.1(or rename tov0.1.2) onfoundation-globalonce the versioning question is resolved. - iOS Option A Phase 2 — archive
feat/appcheck-bridge-2026-04-28to TestFlight; verify monitor reportsapp:VALIDon WebView calls; revert Option B carve-outs after 7-14 day soak. - Memory hygiene — update foundation-mobile memory to point at
-claudeas canonical (or delete the stale memory entirely once iOS folder consolidation lands). - Multi-codebase split for Cloud Functions — single-function deploys took 17-22 min today on Cloud Build. Splitting
functions/into multiple Firebase codebases would cut that to ~5 min. Not blocking, but worth scheduling.
Related docs
build-history-2026-04-28.md— predecessor snapshot.option-a-appcheck-bridge-2026-04-28.md— Option A spec / Phase 2 plan.cf-reference.md— full Cloud Functions catalog (this round's addition).foundation-api.md— narrative integration guide for client-facing callables (this round's addition).status_2026-04-28-while-user-records-demo.md— what shipped on 2026-04-28.