Files

14 lines
1.9 KiB
TypeScript

import { VersionInfo } from '@start9labs/start-sdk'
export const v_0_2_103 = VersionInfo.of({
version: '0.2.103:0',
releaseNotes: {
en_US:
"Path 2A Phase 1 backend — internal team meeting upload + analysis. New /admin/internal-meetings/* endpoint family, all operator-only (gated by the existing admin session cookie). POST /upload accepts a multipart audio file (mp3/m4a/wav up to 500MB) + title + comma-separated participant hints, runs it through the EXACT SAME hardware pipeline that /relay/v1/summarize-url uses (transcribe → diarize → cluster → suppress small clusters → analyze → post-cluster polish for speaker-aware summaries). Goes through the existing hardware FIFO queue so the top-bar queue chip covers internal meetings too. SSE stream at /jobs/:id/stream pushes live progress events identical in shape to the YouTube/podcast path. Audio is NEVER retained — uploaded files land in os.tmpdir(), are deleted in a try/finally after the pipeline completes (success or failure), and never copied elsewhere. Same audio-retention policy as YouTube downloads. Saved record lives at /data/internal-meetings/<jobId>.json with full transcript + transcript_segments (speaker-attributed) + chunks (Recaps-style topic structure) + speakers map + speaker_names from polish + diarization metadata. Three download formats: GET /admin/internal-meetings/:id returns the JSON record, GET /:id/download forces a JSON file download with the meeting title as filename, GET /:id/markdown returns a human-readable markdown serialization (title + duration + speakers + topics-with-expandable-transcripts + full bracketed transcript at the bottom). Frontend (dashboard tab) ships in the next release. Phase 2 (Decisions / Action Items / Open Questions / Key Quotes structured extras analysis) and Phase 3 (multiple operator-editable prompt sets) are queued for follow-up.",
},
migrations: {
up: async ({ effects }) => {},
down: async ({ effects }) => {},
},
})