← All docs changelog/2026-04-28.md

Apr 28, 2026

Commits

49469f8 — Add per-provider message history to /ml/chat/stream

New optional messages_by_provider field on ChatStreamRequest lets clients give each provider its own conversation thread (so Gemini sees its own prior assistant turns and Modal sees its own). Falls back to the existing messages array when absent — backward compatible.

Changed:

  • dev/ml/gateway/chat.py — added messages_by_provider: dict[str, list[ChatMessage]] | None field, per-provider message resolution in chat_stream()
  • bruno/.../ML API/Chat Stream Per Provider History.bru — new: Bruno test with two providers and distinct prior turns

6ea8c3d — Point main env at SupabaseDev until new prod Supabase is restored

Temporary workaround: hardcodes "SupabaseDev" for the main environment because the new prod Supabase project doesn't yet have anonymous sign-ins enabled or canary test fixtures. Revert to the original ternary once prod is restored. Tracked in IMPROVE.md H19.

Changed:

  • dev/core/core.pysupabase_secret_name hardcoded to "SupabaseDev" (line 423)
  • IMPROVE.md — added H19 restoration checklist

dc4e353 — Retry Bruno test suite up to 2x on failure in test_app.sh

Transient failures (Modal cold-start TLS errors, brief upstream blips) were causing one-off canary breaks that pass on re-run. Wraps bru run in a 3-attempt loop; only declares failure if every attempt fails. Whole-suite retry rather than per-test because Bruno tests share auth state (anonymous sign-in seeds access_token for downstream requests). Falls back to a single attempt if jq is unavailable.

Changed:

  • dev/test_app.sh — 3-attempt retry loop with row-level + assertion failure detection (+48/-9 lines)
  • dev/test_app.md — updated docs to reflect retry behavior

c78e098 — Add Apr 27 changelog, refresh W17 weekly summary (docs-only)

02fbece — Refresh IMPROVE.md with 2026-04-28 review findings (docs-only)