14 lines
2.3 KiB
TypeScript
14 lines
2.3 KiB
TypeScript
import { VersionInfo } from '@start9labs/start-sdk'
|
|
|
|
export const v_0_2_100 = VersionInfo.of({
|
|
version: '0.2.100:0',
|
|
releaseNotes: {
|
|
en_US:
|
|
"Three large changes shipped together. (1) Hardware FIFO job queue. Module-level semaphore in server/hardware-queue.js serializes hardware-backed pipelines so the operator's GPU box doesn't get hammered by N concurrent jobs. Gemini-only jobs bypass entirely. When a job waits in the queue it emits a 'queued' SSE event with its position so Recap can show 'Queued — N jobs ahead' instead of looking stalled. Within a job, the existing per-chunk concurrency (2 by default) is preserved — the queue serializes WHOLE jobs, not individual calls within a job. Slot release is wrapped in try/finally so every exit path (success, early-return failure, uncaught exception) cleanly frees the slot for the next queued job. (2) Small-cluster suppression. After agglomerative clustering, a second pass walks the clusters and re-categorizes the small ones to fix the '14 speakers detected when really only 2' case. Anchors (clusters with >= 30s of total speaking time) keep their own global ID. Non-anchor clusters within UNCERTAIN_SIMILARITY_MARGIN (0.10) of the main threshold of any anchor get REASSIGNED to that anchor — chip renders with a '?' suffix to mark best-guess attribution. Non-anchor clusters that are small (< 15s) AND far-from-anchor become a single 'Speaker_Unknown' pseudo-speaker — chip is grey '?', legend reads 'Unknown'. Large non-anchor clusters with low similarity stay as their own speaker (plausibly a real 3rd person). All thresholds are code-side constants for now. (3) Auto-save UX overhaul on the operator dashboard. Sliders, pills, toggles, text fields (Endpoints & credentials + Section-count targets) all auto-save on change with a 400ms debounce; per-field rapid changes coalesce into a single PUT. Prompts get their own per-prompt 'Save this prompt' button next to their existing Reset / Set as new default / Show current default controls — large textareas don't auto-save on every keystroke. Global 'Save changes' button removed entirely; the inline 'saving… / ✓ saved' status indicator stays in the bottom right.",
|
|
},
|
|
migrations: {
|
|
up: async ({ effects }) => {},
|
|
down: async ({ effects }) => {},
|
|
},
|
|
})
|