Decouple transcripts from note text; end-to-end watch transfer acks
Schema v3: transcription attempts accumulate on AudioInfo (text, locale, confidence, forced flag) — latest attempt is displayed, payload.text is purely user writing, v2 notes migrate at read time. Editor shows the transcript in its own live-updating section with insert-into-note; search matches transcripts weighted by confidence. Watch recordings are now deleted only on the phone's durable-ingest ack (transferUserInfo), closing every phone-side loss window; failed sidecar writes unstage instead of orphaning, and unreadable inbox recordings are surfaced in logs. Claude-Session: https://claude.ai/code/session_014esDWi42URLEC6Cj17hGQ3
This commit is contained in:
@@ -117,7 +117,12 @@ final class TranscriptionService {
|
||||
try await syncEngine.applyTranscription(
|
||||
id: job.noteID,
|
||||
text: text,
|
||||
localeID: TranscriptionSettings.canonicalID(locale)
|
||||
localeID: TranscriptionSettings.canonicalID(locale),
|
||||
// Real mean confidence when the engine attributed any runs; nil for
|
||||
// a confidence-less engine so it's never mistaken for a measured 0.
|
||||
confidence: LanguagePicker.hasConfidence(of: transcript)
|
||||
? LanguagePicker.meanConfidence(of: transcript) : nil,
|
||||
languageWasForced: job.forcedLocaleID != nil
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user