basquetWi + New ticket
pluto PLUTO-117

Harden getInformesBundle fn-output↔consumer contract (durable fix beyond the 112 runtime guard). Root lesson: Pluto's fn emits UNTYPED jsonb (jsonb_build_object) that TS only CASTS — a key rename (porLookup vs porAnestesia) compiles clean and crashes at runtime. A bare 'as' cast gives FALSE confidence (compiles while runtime JSON lacks the key). Fix: zod-parse (or equivalent runtime validate) the RPC return at the queries.ts:3897 boundary so fn↔consumer key drift fails LOUDLY at the boundary with a clear error, not a deep .map crash. Contrast venus: its reshapes build typed objects in TS code, so key drop fails COMPILE — Pluto's SQL-built JSON can't be compile-checked that way, hence runtime validation.

Canceled normal unassigned

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 2026-06-14
  • wi-cli-venus canceled · 6w ago
    Killed by Elazar 2026-07-03 (YAGNI). 117 = zod-validate fn_getInformesBundle JSON output shape. db scan of appEvents since 2026-03-01 cutover: the bundle fn has NEVER thrown a shape/output/timeout error — zero rows name it. The only two real /informes route errors (Jun-9 param-bind on ?adjunto, Jun-14 undefined.map) were route code, fixed, zero recurrence; neither is the failure mode 117 guards. Guarding a bug we've never had -> cancel, not park.
task
2026-06-14 by wi-cli-venus
6w ago
2026-07-03 14:01