From 7a3817bb15539542bde7fecb12d8c698ae1b20de Mon Sep 17 00:00:00 2001 From: Fabian Meyer <44942030+dinooo13@users.noreply.github.com> Date: Wed, 23 Sep 2026 22:54:31 +0200 Subject: [PATCH] Comments: the polish chunking and the learner's bound under a 10 min cap Three comments still reasoned from the 120 s cap: the polish chunking is now a path long dictations take, and the correction diff's table bound can be reached near the new cap. No code changes. Co-Authored-By: Claude Opus 5.5 (1M context) --- Sources/PladderCore/Learning/CorrectionDiff.swift | 4 +++- Sources/PladderRefine/TranscriptPolisher.swift | 11 ++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Sources/PladderCore/Learning/CorrectionDiff.swift b/Sources/PladderCore/Learning/CorrectionDiff.swift index 43221d4..b5a6957 100644 --- a/Sources/PladderCore/Learning/CorrectionDiff.swift +++ b/Sources/PladderCore/Learning/CorrectionDiff.swift @@ -42,7 +42,9 @@ public enum CorrectionDiff { /// two-word paste can still be corrected. static let rewriteAllowance = 2 /// The alignment table's bound; past it the reading is skipped rather - /// than a quadratic table built. A 120 s dictation is far below it. + /// than a quadratic table built. A dictation of a few minutes is far + /// below it; one near the 10 min cap can pass it, and then nothing is + /// learned from that paste. static let maximumCells = 4_000_000 /// Pairs in text order, empty when there is nothing to learn. diff --git a/Sources/PladderRefine/TranscriptPolisher.swift b/Sources/PladderRefine/TranscriptPolisher.swift index da404e8..62a7f8b 100644 --- a/Sources/PladderRefine/TranscriptPolisher.swift +++ b/Sources/PladderRefine/TranscriptPolisher.swift @@ -46,9 +46,10 @@ public actor TranscriptPolisher: TranscriptRefiner { """ /// Above this the transcript is split at sentence ends into windows of - /// about `chunkSize` words, each its own call. The context window is - /// about 4k tokens and a 120 s dictation is about 350 words, so this is - /// insurance rather than a path anyone takes. + /// about `chunkSize` words, each its own call with its own timeout. The + /// context window is about 4k tokens and a minute of speech is about 175 + /// words, so a dictation past about three and a half minutes takes this + /// path; one near the 10 min cap is about six calls. public static let chunkThreshold = 600 static let chunkSize = 300 @@ -173,8 +174,8 @@ public actor TranscriptPolisher: TranscriptRefiner { // MARK: Chunking - /// The transcript as it is when it is short, which is every dictation - /// the 120 s cap allows; otherwise windows of about `chunkSize` words, + /// The transcript as it is when it is short, which is most dictations; + /// otherwise windows of about `chunkSize` words, /// cut after a sentence end so no window starts mid-sentence. static func chunks(of text: String) -> [String] { let words = text.split(whereSeparator: \.isWhitespace)