Skip to content

fix: harden final processing and remove legacy ASR - #8

Merged
Teyocesu merged 8 commits into
mainfrom
fix/post-v0.8.0-corrective
Sep 21, 2026
Merged

Teyocesu merged 8 commits into
mainfrom
fix/post-v0.8.0-corrective

Conversation

@Teyocesu

@Teyocesu Teyocesu commented Sep 21, 2026 •

Copy link
Copy Markdown
Owner

Trabajo correctivo post-v0.9.0 (rama sobre main v0.9.0).

Que cambia

  • Corrige aislamiento y concurrencia de speaker corrections en Windows: snapshot antes del primer await, FIFO con orden determinista y persistencia contra la carpeta original (A no contamina B).
  • Seleccion de profesor y guardado de ediciones capturan identidad antes del gate y son no-op si la sesion visible cambio; tras el gate leen estado fresco de la misma sesion.
  • VAD opcional con presupuesto TOTAL de 15 s por llamada en ambas plataformas (macOS: un unico deadline compartido entre resample, load e inferencia), fail-open, preservando la cancelacion del caller y sin retries infinitos.
  • Corrige literales visibles residuales con claves de localizacion es/en/fr.
  • macOS solapa ASR final y diarizacion como child tasks estructuradas y persiste el transcript ASR como diarizing antes de speaker attribution; la sesion solo llega a complete tras atribucion y persistencia final.
  • Conserva checkpoints, tail/full fallback y el solapamiento ASR/diarizacion de Windows.
  • Conserva los fixes del gate Windows de v0.9.0 (guards de MergeTargets, tipo concreto de operaciones de review, Count en proyeccion restaurada, ajustes de tests).
  • Elimina infraestructura ASR muerta (supervisors, protocols, transports, fakes y sus tests exclusivos) y documentacion/scripts upstream obsoletos.
  • Sincroniza README, WINDOWS y DISTRIBUTION con el modelo Windows real y el repositorio publico.
  • SPEC reconciliada con la concurrencia macOS implementada; PLAN raiz convertido en plan corto actual (historia v0.8.0 enlazada, no duplicada).

Validacion

  • Revision del diff completo como unidad; git diff --check limpio.
  • Revision de referencias: cero residuos de codigo/docs/scripts eliminados; ProcessingIPC de diarizacion intacto.
  • Invariante de persistencia temprana verificado por inspeccion: estado diarizing/recoverable, nunca complete antes de atribucion.
  • Parse Swift disponible: SpeechPresence y TranscriptionReliability pasan swiftc -parse.
  • BLOCKED por host: dotnet no instalado (tests Windows no ejecutables localmente); typecheck SwiftPM completo incompatible con swiftLanguageModes .v6. Sin cambios de configuracion para compensar el host.
  • La reduccion de latencia macOS esta sustentada por la eliminacion de una dependencia serial demostrada; no se realizaron benchmarks fisicos cold/warm.

Fuera de scope

  • Sin cambio de modelo/proveedor; sin reduccion de calidad; sin storage migration; sin version bump (VERSION 0.9.0 intacto).
  • Sin limpieza destructiva de arboles legacy inciertos (Sources/, Tests/, site/, Casks/, tools/mt-cli, meeting-simulator, E2E legacy se conservan como follow-up).
  • Sin QA fisico (TCC, audio, hardware).

Windows captures correction identity before the first await, serializes
overlay read-modify-write per folder and isolates A from B. VAD gets a
finite 15s budget with fail-open and preserved caller cancellation on
both platforms, plus opt-in monotonic diagnostics. macOS overlaps final
ASR and diarization as structured child tasks, persisting the ASR
transcript as diarizing before speaker attribution; failure and retry
semantics are unchanged. Removes the write-only loadedModelPath field
and covers active literals with localization keys.
Drops the unconnected AsrWorker protocol, transports, supervisors,
lifecycle helper, fakes and their exclusive tests and fixture on both
platforms, plus upstream-only CLAUDE/CONTRIBUTING, RPC/architecture
docs and two dead scripts. Syncs README, WINDOWS and DISTRIBUTION with
the actual Windows model and the public repository. No behavior change;
legacy trees stay as follow-ups.
@Teyocesu
Teyocesu force-pushed the fix/post-v0.8.0-corrective branch from bb1d048 to 7c1a679 Compare September 21, 2026 16:49
Reuse a cached JsonSerializerOptions instance and static readonly
expected names instead of per-call allocations, matching the
warnings-as-errors gate.
@Teyocesu Teyocesu closed this Sep 21, 2026
@Teyocesu
Teyocesu deleted the fix/post-v0.8.0-corrective branch September 21, 2026 17:16
@Teyocesu
Teyocesu restored the fix/post-v0.8.0-corrective branch September 21, 2026 17:17
@Teyocesu Teyocesu reopened this Sep 21, 2026
ApplyProfessorSelectionAsync and SaveEditsAsync captured session state
only after acquiring humanCorrectionGate, so an operation requested on
session A could persist against session B opened while waiting. Capture
attempt and folder before the first await, no-op after the gate unless
the visible session is still exactly the requested one, then read fresh
state. Adds deterministic A-to-B regressions without sleeps.
Nested per-stage waits let resample, load and inference each consume a
full 15 s budget. Run the whole pipeline under a single shared 15 s
deadline with unbounded stages inside, preserving single-flight loading,
sticky unavailability and caller cancellation. Adds a deterministic
shared-budget regression using a small injected budget.
@Teyocesu
Teyocesu merged commit d06a1a6 into main Sep 21, 2026
1 of 2 checks passed
@Teyocesu
Teyocesu deleted the fix/post-v0.8.0-corrective branch September 21, 2026 19:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant