Files

14 lines
2.7 KiB
TypeScript

import { VersionInfo } from '@start9labs/start-sdk'
export const v_0_2_31 = VersionInfo.of({
version: '0.2.31:0',
releaseNotes: {
en_US:
'Six benchmark-suite bug fixes from the 8-permutation YouTube run. (1) View-output eyeball link in the Jobs table was pointing at /admin/job-output-view.html, but the static asset is served at /job-output-view.html — clicking the eyeball threw "Cannot GET /admin/job-output-view.html". Link now points at the correct path. (2) Jobs-table column headers said "ms/MB", "ms/audio-min", etc., but the cell values are formatted as seconds-with-one-decimal (e.g. "1.2s"). Header labels are now "s/MB" and "s/audio-min" so they match the displayed units. (3) Paired permutations that reused a sibling\'s transcribe via the TX-share cache wrote duration_ms=0 to their audit row, which made the dashboard\'s per-row TX rate columns collapse to "—" on the sibling rows even though both permutations actually consumed the same TX work. Both rows now show the wall-time of the underlying TX call (cost stays $0 on the sibling so aggregate totals still avoid double-counting). job-stats.js also switched from `||` to `??` so a legitimate 0 value isn\'t treated as missing data. (4) The hardware transcribe backend was returning {text, segments, duration_seconds, model} but NOT chunk_count, so the Jobs table\'s "TX chunks" column always showed "—" for Parakeet runs. It now returns chunk_count=1 for single-shot calls and chunk_count=N when the audio was split into N pieces for OOM mitigation (HARDWARE_CHUNK_SECONDS=300s). (5) Hardware analyze was hardcoding "gemma3:27b" as a fallback when the operator left "Gemma Model Name" blank in StartOS — defeating the autodiscovery logic that\'s supposed to query /v1/models at request time and use whatever model is actually loaded on the endpoint. The hardcoded default has been removed from server/backends/hardware.js, server/config.js, AND startos/file-models/config.json.ts so a blank model name now reliably triggers autodiscovery. Operators whose hardware hosts a model OTHER than gemma3:27b (which is most of them) will now have analyze succeed instead of erroring with "model does not exist". (6) yt-dlp captions fetch failed on a video that DOES have captions on YouTube. The single-pass --sub-langs en.* call produced no .vtt files. Replaced with a two-pass strategy: en.* first, then --sub-langs all as a fallback for videos whose captions are tagged with non-en language codes. When both passes fail, the error message now includes yt-dlp\'s --list-subs output so the operator can tell whether the video genuinely lacks captions or whether yt-dlp\'s extractor is being blocked.',
},
migrations: {
up: async ({ effects }) => {},
down: async ({ effects }) => {},
},
})