Package v0.2.12→v0.2.124: manifest, actions, version graph

This commit is contained in:
Keysat
2026-06-13 13:36:30 -05:00
parent 318c6c4b81
commit 1243f4414c
126 changed files with 2052 additions and 441 deletions
+13
View File
@@ -0,0 +1,13 @@
import { VersionInfo } from '@start9labs/start-sdk'
export const v_0_2_56 = VersionInfo.of({
version: '0.2.56:0',
releaseNotes: {
en_US:
'Five dashboard UX fixes prompted by real-traffic testing of v0.2.55. (1) In-flight job discovery now runs continuously after admin login, not just while the operator is on the Jobs tab. Previous behavior gated the 5-second poll behind `if (state.activeTab !== "jobs") return`, so a Recap-submitted job that arrived while the operator was on Overview or Settings was silently missed by the pending-row pipeline — it only appeared in the table on the next manual page refresh AFTER it had already completed. New behavior: discovery starts the moment auth resolves and keeps polling regardless of which tab is visible. Cost is one small GET /admin/jobs every 3s (was 5s; tightened so a 90-second Recap submit can be caught mid-flight rather than missed entirely). Also fires one immediate poll on Jobs-tab entry so the operator doesn\'t wait up to 5s for the first tick. (2) Jobs-tab data now refreshes on EVERY tab entry rather than only on first visit. Previously `if (tab === "jobs" && !state.jobsData)` cached jobsData forever, so a job that completed while the operator was on Settings never appeared until a hard page refresh. Now: loadJobs() runs on every Jobs-tab click — same cost as a manual refresh, but automatic. (3) Click-to-copy button (📋) on the errors column. Hover over any errors cell to reveal a copy button next to the expand chevron; clicking it ships the raw (un-HTML-escaped) error text to the clipboard via the async clipboard API (with a hidden-textarea + execCommand fallback for older browsers). 1.1s "✓" confirmation animation on the button so the operator knows the click landed. (4) Dedicated "Active jobs" callout at the top of the Jobs tab. The pizza-tracker breadcrumb used to live inside the test-run panel mixed in with the model-picker controls; lifted out into its own bordered card above the panel so it\'s the first thing the operator sees on Jobs-tab entry — regardless of whether the in-flight job came from the test-run panel or a Recap submission. Each card shows a "Source: Test run | Recap" tag (color-coded), elapsed time, jobId short hash, and the 4-stage breadcrumb (Downloading → Transcribing → Analyzing → Done) with the active stage pulsing. Handles multiple concurrent jobs gracefully — one card per job, newest-first. (5) Global in-flight pill at the top-right of every page. Fixed-positioned outside the tab content so it persists across tab switches: a compact pulsing pill that says "1 job in flight • Transcribing" (or "N jobs in flight" when multiple) appears whenever state.activeJobs has at least one entry. Clicking it switches to the Jobs tab. Auto-hides when the operator IS on the Jobs tab (the dedicated callout takes over there). Combined effect: no matter where you are in the dashboard, you can see at a glance that a Recap-submitted summarize is running. NOTE: this release does NOT fix the underlying TX-chunk-truncation gap (when gemini-3.1-flash-lite hits maxOutputTokens on long dense chunks, the transcript silently loses 5-10 minutes of speech). That fix — auto-retry-with-bisection on truncated chunks — is targeted for v0.2.57.',
},
migrations: {
up: async ({ effects }) => {},
down: async ({ effects }) => {},
},
})