import { VersionInfo } from '@start9labs/start-sdk' export const v_0_2_69 = VersionInfo.of({ version: '0.2.69:0', releaseNotes: { en_US: 'Two coupled changes to eliminate the lingering "analyze: invalid JSON in window response" failures that the v0.2.68 single-retry mechanism couldn\'t catch. (1) Gemini analyze calls now pass `responseMimeType: "application/json"` in the generateContent config. This is a documented Gemini feature that tells the decoder to emit ONLY valid JSON for the response body — eliminates the entire class of failures that came from the model wrapping its sections array in a prose preamble, a ```json``` markdown fence, or truncating the closing brace. The prompt already asked for JSON; this turns that request into a hard server-enforced constraint that the model can\'t violate. Lighter than declaring a full responseSchema (which would also enforce field types) — kept the lighter form because the post-parse stitcher already clamps and dedupes any out-of-range indices, so structural deviation in the fields is recoverable. (2) Per-window analyze retry bumped from 2 attempts to 3. Analyze is by far the cheapest pipeline phase (~5 seconds per window vs ~30+ seconds per transcribe chunk), so a third attempt is essentially free — adds at most ~10s of wall time to a worst-case failing window, trivial compared to the 30+ minute transcribe phase for long content. The retry loop remains the primary defense for the hardware (Gemma) analyze path which has no equivalent decoder-side JSON guarantee; on Gemini, the responseMimeType change should eliminate the need to retry-for-JSON-reasons entirely. Combined: a 10-window job that pre-v0.2.68 lost ~2 windows per long-podcast run should now almost never lose a single one.', }, migrations: { up: async ({ effects }) => {}, down: async ({ effects }) => {}, }, })