Repository navigation
finalaudit: record the #579 release and the 0177 production-migration blocker - #582
Merged
Merged
Conversation
…p at 0177 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KRUgA6hD6QgzmtpSP6TUmP
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
NewWorldVenture
marked this pull request as ready for review
September 27, 2026 00:21
NewWorldVenture
pushed a commit
that referenced
this pull request
Sep 27, 2026
Brings in PR #579 (34 migrations renumbered into 0344–0380) and #582's release note. Five files conflicted; each resolution keeps both sides' intent and both sides' tests: - lib/guardian/twilio.ts: main's xml() escapes text and attribute values alike (a superset of this branch's escapeXmlText/escapeXmlAttr), so every builder uses it; this branch's twimlDial rationale and its findOwnedNumberSid/releaseNumber additions stay. - lib/contact-center/phone.ts: both functions. normalizeFallbackPhone is the write-side rule (E.164, country code required, letters refused); toCallableE164 is main's read-side normalizer for rows written before it, and its header now says how the two relate. - app/(app)/dashboard/contact-center/actions.ts: the save goes through normalizeFallbackPhone and refuses with actions.enterTheFallbackNumberIn, which this branch's test asserts by sentence; main's account of why is folded into the comment. main's actions.forwardingNumberNotCallable stays in the seven catalogues, unused. - lib/services/approvals/index.ts: main's re-read-and-retry on a lost write race (attempt < VOTE_RETRIES) around this branch's changed/changedByMe audit note. - tests/migration-version-safety.test.ts: main's paragraph on 0344–0380, then this branch's seven paragraphs for 0381–0387; the pin is 0388. Two files main alone changed had to move for this branch's tests: - app/api/contact-center/voice/route.ts: a stored fallback that reads as a number is normalized and dialled (main). One that does not is no longer treated as "no number": it goes into the <Dial> escaped, as this branch's test asserts, and the message-taking verbs follow it, so the caller is still asked for a message when that Dial fails. 0384 clears such rows. - tests/a-child-cannot-lift-the-publish-lock-or-link-a-document-they-cannot- read.test.ts: its reading of social_has_permission learns the deny-list arm 0348 introduced (p_permission <> 'manage_access'); without it the admin role fell out of the matrix and the test reported the database refusing a parent the live probe shows it admits. No assertion changed. finalaudit.md is the union of both sides plus #582's release section; the index is regenerated (FIXED 98 · OPEN 11, unchanged) and the two clauses of main's forwarding-number row that the merged code made untrue now describe what the code does. Verified on a private database: 398 migrations applied, 0 failed; 115 probes pass twice; the version audit's next number is 0388. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KP9rt5rVQ9jDMpZp2xBy3K
NewWorldVenture
pushed a commit
that referenced
this pull request
Sep 27, 2026
…in production Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KP9rt5rVQ9jDMpZp2xBy3K
NewWorldVenture
pushed a commit
that referenced
this pull request
Sep 27, 2026
main brought PR #579 (C1-K: thirty-four member-write boundary migrations at 0344–0380, their probes, trust fail-safes) and #582 (a finalaudit note). Thirty-six files conflicted; finalaudit.md and the seven catalogues auto-merged (index regenerated: 124 rows, FIXED 96 · OPEN 13, prose tally agreeing; catalogues valid at 13,956 keys each). Resolutions. For 34 of the 36 conflicted files this branch's side is byte-identical to the side close-out-556 (f55f3591) resolved against the same main content from the same base (7e54596), so its resolutions are taken verbatim; the classes are recorded in d41ac300's message (both sides' discarded-write bindings, wroteNoRows checks joining main's role gates and family filters, .then().catch() rejection handlers carrying main's log markers, toCallableE164, the shared xml() escaper, the wallet routes' error bindings). Two were merged by hand: - components/modules/behavior-module.tsx: main's delete handler (family filter, `data`/`!data?.length`, `canRemove`, which main's a-child-cannot-erase-their-behavior-log pins) with this branch's confirmed save (`data: saved` + wroteNoRows) and its manager-only Log control; the comment no longer cites a migration this branch dropped. - tests/migration-version-safety.test.ts: main's paragraphs, then this branch's ten, pinned at 0419. Migrations renumbered a fifth time (main's 0344–0380 collided with the 0361–0370 the author assigned in C1-S9-89) to the slots f55f3591 had already replayed and probed against this tree: 0361→0406 social tokens service-role only 0362→0407 no TRUNCATE for the public roles 0363→0408 household secrets are not child-readable 0364→0409 marketplace parties are not editable 0365→0410 a review belongs to whoever wrote it 0366→0411 deleting a review is rewriting it 0367→0414 a health record is written by a parent 0368→0415 a paperwork stamp does not rewrite its siblings 0369→0416 a private journal is private 0370→0418 a public bucket serves what you put in it 0412, 0413 and 0417 stay empty: they are f55f3591's copies of the three migrations the author dropped in C1-S9-89 (social restriction, location trail, record-about-you; confirmed by content against c8b5c56's 0324/0325/0329), and the drop stands. The ten files take f55f3591's content, which differs from the author's only by number citations except 0416, whose SELECT rule takes main's 0364 owner-or-manager form (a sibling never reads another member's entry; a parent reads only one its owner marked not private) because main's private-journal-check.sql pins it; recorded in the header, finalaudit C1-S8-07 and PENDING_PROD_MIGRATIONS. Every reference rewritten: the nine probes (eight now byte-identical to f55f3591's; health-record keeps the author's comment on the logged_by control), sensitive-role-boundary-check (the author's own a349bd6 reconciliation of the token controls, kept, citing 0406), PENDING_PROD rows and the 0406 header's history, finalaudit B1 / C1-S8-07 / C1-S9-89 and every backticked or path-style filename, lib/database.types.ts and paperwork/actions.ts (0327→0415), health-visits and immunizations (0326→0414), insurance-module (0328→0416), care-module (cites C1-S8-09 rather than the dropped 0329), and the tests that read the migrations by name (social-tokens, household-binder, public-bucket, paperwork-stamp, manager-gated-table). Tests adapted (from d41ac300, assertion strength kept): a-dialled-number reads main's shared xml(); a-forwarding-number's fake answers .select() with the affected rows; a-voice-log-failure pins the same best-effort properties against lib/voice/history; a-fire-and-forget's ai-settings anchor moves to main's log wording; a-client-write-reads-what-it-changed accepts a file whose only confirmed writes are spelt with the bare `data` (its C1-S9-81 closet paragraph from 0cf0eb2 kept). Verified together with the merge of dcc0b42 (#581) that follows; the numbers are on that commit. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KP9rt5rVQ9jDMpZp2xBy3K
NewWorldVenture
pushed a commit
that referenced
this pull request
Sep 27, 2026
main's #579 (0344–0380: the C1-K member-write boundaries and trust fail-safes) and #582 (the release note) on top of the PR author's own merge of 7e54596. Twenty-one files conflicted, all on subjects the two lines of work had each fixed; every one is resolved to keep both sides' intent and both sides' tests, reusing the resolutions proven on the close-out-548 reference branch: - finalaudit.md: UNION — main's FIXED + PASS rows for AUTHZ-002/003/005 carry this branch's evidence; both sides' status paragraphs stand; the Pass G rows' last cells open with the status their section carries so the index reads them; index regenerated (147 rows, 140 ids), prose tally updated to it. - tests/migration-version-safety: main's 0344–0380 paragraphs, then this branch's block paragraph (rewritten and re-pinned by the renumber that follows — the two sides' 0361–0380 collide on this commit, by design). - described errors and reasons: the AI quota routes read the meter's error at the family's midnight; the dispute action refuses with a sentence (two new catalogue keys, seven locales) rather than a bare `return;`. - Guardian: main's service-role acknowledge write and error-checked learning reads, typed through lib/database.types.ts rather than a cast helper. - the modules main's manager-gated-writes ratchet pins (family, settings, notifications, behavior, driving) take main's readback shape with this branch's `family_id` scope and reasoning. - public/sw.js answers /_next/image from the network and never stores it, the shape main's a-private-image-does-not-outlive-logout pins. - docs/audit/member-scope-crossing-check.sql keeps this branch's per-command policy names as the attribution pin, which already covers 0377's. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KP9rt5rVQ9jDMpZp2xBy3K
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR changes only
finalaudit.md. It adds a release record for #579:mainas671c5f6a. It merged only after every check passed on its head,ebb95528, including the migration replay with all boundary probes and the full E2E suite.www.bubaly.com/api/build-infoserves671c5f6aas of 2026-09-27T00:04:54Z, so the application code is in production.533554beand7e54596d. It stops at0177_remove_synthetic_auth_users.sqlwith a statement timeout (SQLSTATE 57014), so none of the later migrations (0178–0380) are applied. This is the historical F-001 / F5 operator-owned blocker. No agent applied or retried anything against production.🤖 Generated with Claude Code
https://claude.ai/code/session_01KRUgA6hD6QgzmtpSP6TUmP
Generated by Claude Code