Repository navigation
Page audit B12 re-crawl, a malformed id is not-found (P-23), and a pause during a concierge apply stands (CONC-002) - #620
Merged
Conversation
…12, P-23) The production re-crawl (B12: 1,092 public pages at 1280 and 390 on 1180c77) found /f/no-such-page answering HTTP 500. A form id is a uuid, and any other string makes Postgres refuse the query (22P02). The page rethrows a read error on purpose, so that a transient failure never 404s a live form, which is what turned a mistyped link into a crash. Probing all 26 signed-in [id] routes with a malformed id found the same crash on /dashboard/social/posts/[id], /kids/submit/[assignmentId] and /marketplace/creators/[id]. isUuid (lib/utils/validation.ts) now answers not-found for all four before any read. A real read failure still throws. tests/a-malformed-form-link-is-not-found.test.ts renders /f/[id] against a mocked database and holds each signed-in page's check ahead of its first read. It fails 4 of 7 on the previous code. The German-money test's kid-submit fixture now uses a uuid assignment id, as real ones are. finalaudit.md: B12 is recorded as done, with its crawl table, P-23, and the live check of the B7 fixes on production. tsc clean. Lint: 0 errors, 15 warnings. 21,441 tests in 1,709 files pass. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
… branch; batch table keeps B12 done and B13 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
…002) executeQueuedRunAction claims a queued run (status approved, state executing, approved_at = the claim), applies the plan, then stamps it executed or hands it back for a retry. The stamp matched status alone and the hand-back did not match state, so a parent's pause during the apply (pauseRun keeps status 'approved' and moves only state) was replaced by 'completed' or 'awaiting_approval', and an older action finalized a newer claim. Both writes now match the whole claim. Found by the owner's review of #586. The new test holds the materializer and applies every .eq to the row; it fails 4 of 7 on the previous code. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
…ex regenerated Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
…148 rows) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
NewWorldVenture
pushed a commit
that referenced
this pull request
Sep 27, 2026
…t keeps both top entries and recounts Register B Both sides added a dated entry at the top (the MAIN reconciliation, the API sweep) and both edited the Session B counts. The rows merged cleanly, so the header is recounted from them: 14,229 = 13,663 NOT STARTED + 535 IN PROGRESS + 21 FIXED + PASS + 9 BLOCKED + 1 FAIL. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
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.
What this is
Three changes.
1. B12: every public page re-crawled on production after today's merges
1180c77d./f/no-such-pageanswered 500. This is P-23 below./kid-loginin German reads "PIN anzeigen".2. P-23: a malformed id is not-found, not a crash
/f/[id]passed any path segment straight to auuidcolumn. Postgres rejected the cast, and the page threw a 500 instead of a 404. Three signed-in pages had the same shape:/dashboard/social/posts/[id]/kids/submit/[assignmentId]/marketplace/creators/[id]Each page now checks
isUuid(lib/utils/validation.ts) before its first read and answers not-found.tests/a-malformed-form-link-is-not-found.test.tsrenders the public form page with a malformed id, and checks on all four pages that the guard comes before the first read.3. CONC-002: a pause made while a concierge plan applies is not overwritten
This was found by the owner's review of #586.
executeQueuedRunActionclaims a run (status = 'approved',state = 'executing',approved_at), applies the plan, then either stamps the run executed or hands it back.The bug:
statusalone.state.pauseRunkeepsstatus = 'approved'and changes onlystate. So a pause made during the apply was replaced bycompleted, or byawaiting_approval.The fix: both writes now match
status,stateand this action'sapproved_at.tests/a-paused-run-stays-paused-while-its-plan-applies.test.tsholds the materializer and applies every.eqto the row. It fails 4 of 7 on the previous code, which are the owner's four cases. The ai_tool_calls attempt predicate from the same review was already on main (lib/ai/tools/execute.ts).Checks
origin/mainat1a63a8d3(Next 16) had one conflict, in finalaudit.md's batch table. It keeps B12 as done and adds B13.tscis clean. Lint shows 15 warnings, all pre-existing (the budget is 15).🤖 Generated with Claude Code
https://claude.ai/code/session_01DXw2nu25BjyRfA6Fg3YiMS
Generated by Claude Code