writeonce/docs
shoney.arickathil 0dd5fda180 feat(framework): multipart/form-data parsing — Part, multipart_parts, part_named
- http/multipart.wo: RFC 7578 whole-body parsing within BODY_MAX —
  boundary from the raw content-type (quoted or bare, key
  case-insensitive), parts split on --boundary, each part = headers,
  blank line, content; filename + per-part content-type kept (lowercased)
- strict malformed-is-nil: no closing --boundary-- marker, a part
  without content-disposition, missing blank line, no boundary param,
  wrong media type — all nil, the caller's 400
- part_named(parts, name): first matching field's content, caller-owned
- web-app CreateProduct now accepts multipart/form/JSON (curl -F shape)
  into the shared insert path
- probe 13/13 + 3x reuse loop (fields, crlf-in-content, quoted boundary,
  file part, zero-part close, five malformed shapes) release + ASan
- gate grows 19 -> 21: multipart create 201, missing closing marker 400
- README: multipart row ✅ (all three body hooks done), limits updated;
  story 16 + board record the landing
- gates: web-app 21/0, oop-e2e 89/0, deps-accept 8/0, log-watcher 7/0,
  employee 8/0, woc-test green

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-20 03:33:14 +02:00
..
examples feat(framework): multipart/form-data parsing — Part, multipart_parts, part_named 2026-08-20 03:33:14 +02:00
plan docs: iteration 15 closeout (Task 5) 2026-08-19 19:23:18 +02:00
stories/language-runtime-database feat(framework): multipart/form-data parsing — Part, multipart_parts, part_named 2026-08-20 03:33:14 +02:00
superpowers docs: iteration 16 closeout (Task 6) 2026-08-19 19:58:13 +02:00
00-code-review.md docs: status board at docs/00-status.md; gap-closure spec applied; recover lost doc 2026-08-10 23:42:26 +02:00
00-principles.md docs: iteration 7b migration — amend the normative docs (Phase 4) 2026-08-19 17:11:35 +02:00
00-status.md feat(framework): multipart/form-data parsing — Part, multipart_parts, part_named 2026-08-20 03:33:14 +02:00
01-problem.md docs: remove stale old-runtime docs; abandon the ##ui frontend track 2026-08-17 20:06:36 +02:00
08-project-structure.md docs: iteration 15 closeout (Task 5) 2026-08-19 19:23:18 +02:00