14 lines
1.9 KiB
TypeScript
14 lines
1.9 KiB
TypeScript
import { VersionInfo } from '@start9labs/start-sdk'
|
|
|
|
export const v_0_2_45 = VersionInfo.of({
|
|
version: '0.2.45:0',
|
|
releaseNotes: {
|
|
en_US:
|
|
'Two analysis-quality fixes. (1) Out-of-order transcript entries: Gemini flash variants sometimes emit entries within a single chunk in non-chronological order (observed: a section showing 4:27 → 4:40 → 4:56 → 0:00 → 0:18 → 0:30, as if the model treated the audio as multiple "thoughts" and reset its mental clock between them). Without a post-stitch sort the downstream analyzer sees those entries out of order and the rendered transcript jumps backward mid-section. Added sortAndDedupeTranscript() to server/backends/gemini.js — parses the joined chunk text, sorts entries by absolute offset, drops near-duplicates (within 1s offset AND identical leading 40 chars), and re-emits canonical [H:MM:SS] / [MM:SS] form. Skips the rebuild when entries are already sorted (cheap fast-path for well-behaved chunks). Logs a warning when re-sort fires so the operator can spot which model misbehaves. (2) Section over-segmentation: the analyze prompt was getting 4-5 sections per 18-min window from the model, producing ~25 sections for a 94-min podcast which is way too granular. Rewrote server/chunked-analyze.js buildWindowPrompt to: (a) tell the model the window\'s actual minute-length, (b) suggest a section-count target scaled to that length (1 section for ≤10 min, 1-2 for ≤20 min, 2-3 for longer), (c) explicitly call out NOT to split a continuous discussion just because the speaker pauses or shifts subtly, (d) require ≥5 min of substantive discussion per section, (e) ask for concise noun-phrase titles (≤8 words) and 2-3 sentence summaries. For a 90-min podcast this should drop to ~5-10 broad sections instead of 25 narrow ones — closer to the "10 segments feels right regardless of length" target.',
|
|
},
|
|
migrations: {
|
|
up: async ({ effects }) => {},
|
|
down: async ({ effects }) => {},
|
|
},
|
|
})
|