docs: record B5b upload-hardening scoping (register #50)#69
Merged
Conversation
Create docs/b5b-scoping.md as the B5b decision record: the constraints established+verified this session (Vercel's hard ~4.5 MB edge cap is the real ceiling, not the app's broken 50 MB promise; ingestion is on Railway; the 9-13x return-path blob; the UNMEASURED duration ceiling), the corrections (the cap does not stop ZIP bombs; PIVOT_PLAN.md:269's 50 MB claim is false), the B5b-1/B5b-2 split plus enablers (b1)/(b2), the seven OPEN founder decisions, and the outstanding duration measurement. Add register row #50 (§4) and one append-only §7 block; refresh the three header lines. Scoping is not progress: B5b (§1 line 86) stays not-started. Docs-only: no code, no route/validation/size-constant change; PIVOT_PLAN.md untouched; register #17 stays OPEN. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
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
Docs-only. Creates
docs/b5b-scoping.md— the B5b (deep upload content hardening) decision record — and logs it as register #50 indocs/PROGRESS.md. Scoping is not progress on the gate: the §1 B5b row (line 86) stays ⬜ and Phase 7 stays ⬜.The scoping doc records
Established constraints (each verified against the code this session):
413 FUNCTION_PAYLOAD_TOO_LARGEbefore the handler) — not the 50 MB the app promises in 7 places (route.ts:51/:52,DropZone.tsx:26, four i18n strings;:52's message is hardcoded English, register-docs: record live-DB reconciliation + "migration ≠ applied" lesson #17 class).INGESTION_SERVICE_URL), so theroute.ts→/converthop faces no second Vercel cap but a 9–13× return-path blob (each chunk's 1024-float embedding inline + full markdown, materialized byawait pyResponse.json()).maxDurationanywhere (grep-empty) → the true user-facing ceiling is an UNMEASURED duration limit, not size.Corrections recorded so they are not re-inherited:
getUser-above-formDatareorder is a low-priority ride-along (checkDocumentLimitcan't move — needskbId;enforceLimitshouldn't — it would burn a credit on a rejected request).PIVOT_PLAN.md:269's "Size cap (50 MB) already exists" is FALSE — corrected here;PIVOT_PLAN.mduntouched.The split: B5b-1 (request-path, doable now) vs. B5b-2 (gated on B6), plus enablers (b1) persist chunks from Railway and (b2) signed-URL direct-to-storage.
Seven OPEN founder decisions (stated with consequences, none picked) + one OUTSTANDING duration measurement (plain-
.txt-on-Preview procedure + failure-signature table).Scope
Only two files:
docs/b5b-scoping.md(new) anddocs/PROGRESS.md(register row #50, one append-only §7 block, three header lines). No code, no route/validation/size-constant change;PIVOT_PLAN.mduntouched; register #17 stays OPEN.Checks
tsc --noEmit: pass (exit 0) — no.tstouched.db-types: unaffected — nosupabase/migrations/**ordatabase.types.tstouched.🤖 Generated with Claude Code