 mathiasandClaude Sonnet 5.5
|
5d4324c2a2
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
6596e83cd5
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
bc90e3aec7
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
1a57489d04
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
ede6c0e5ea
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
5928925589
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
e5bba3cd23
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
2df8a7eb20
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
6e7c772b31
|
chore(fixtures): invented text in place of words that may come from the private recording; the research note no longer names the private file (adversarial review F10)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:49:54 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
e38ea3175d
|
test: assertions the adversarial review found missing -- log lines, immediate saves, snapshot isolation, store and temp-file failures, bounded snippet, identical list (review F9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:48:58 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
cdb709b9e2
|
test: assertions the adversarial review found missing -- log lines, immediate saves, snapshot isolation, store and temp-file failures, bounded snippet, identical list (review F9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:48:58 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
0d8bf0f94c
|
test: assertions the adversarial review found missing -- log lines, immediate saves, snapshot isolation, store and temp-file failures, bounded snippet, identical list (review F9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:48:58 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
5b3e550d9b
|
test: assertions the adversarial review found missing -- log lines, immediate saves, snapshot isolation, store and temp-file failures, bounded snippet, identical list (review F9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:48:58 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
cb0ed8642a
|
test: assertions the adversarial review found missing -- log lines, immediate saves, snapshot isolation, store and temp-file failures, bounded snippet, identical list (review F9)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:48:58 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
b8a4778513
|
test(web): a malformed multipart header is a 400 whose text is not logged; the file-name case no longer demands a 303
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:47:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
9b82c06d92
|
fix(web): 429 for a busy queue; a non-UUID id and a malformed or odd-byte title are 4xx or cleaned, never 500 (review F6, F7)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:47:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
93b4dbec1e
|
feat(uploads): a full queue is a busy rejection, the row failed honestly (review F6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:47:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
f9ad85cac4
|
feat(uploads): a bounded queue, in total and per user (review F6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:47:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
a1d6754ae9
|
feat(uploads): ReasonBusy, a rejection that is the user's to retry (review F6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:47:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
e4584fb2ac
|
feat(domain): UploadErrBusy -- the queue was full (review F6)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:47:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
019ee636c8
|
test: a bounded queue answered as 'busy', and bad input answered with a 4xx (red; adversarial review F6, F7)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:46:13 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
0da24d42f4
|
test: a bounded queue answered as 'busy', and bad input answered with a 4xx (red; adversarial review F6, F7)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:46:13 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
2891ffabae
|
test: a bounded queue answered as 'busy', and bad input answered with a 4xx (red; adversarial review F6, F7)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:46:13 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
aa0322095b
|
test: a bounded queue answered as 'busy', and bad input answered with a 4xx (red; adversarial review F6, F7)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:46:13 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
dc100d1cd4
|
test(web): the job carries the claimed duration
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
07050cf9b6
|
feat(web): say in words why a recording was refused for its real length (review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
16cd246241
|
feat(uploads): the worker measures the converted audio against the limit and the claim (review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
132f46b047
|
feat(uploads): the job carries the duration the file claimed (review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
12576aa129
|
feat(audio): MaxSeconds caps the converted length, so a header that lies cannot become hours of WAV (review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
ba39864b2b
|
feat(domain): UploadErrTooLong and UploadErrIncomplete -- the two ways a file's claimed length can be wrong (review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
5640d95f40
|
test: the duration limit is checked against what is converted, not what the header claims (red; adversarial review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:43:46 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8f62d053ee
|
test: the duration limit is checked against what is converted, not what the header claims (red; adversarial review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:43:46 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
52351c2cc1
|
test: the duration limit is checked against what is converted, not what the header claims (red; adversarial review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:43:46 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
29b3b725d1
|
test: the duration limit is checked against what is converted, not what the header claims (red; adversarial review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:43:46 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
c9b7df9f95
|
feat(config): TAPIR_TRANSCRIBE_ENGINE_TIMEOUT, default 25 minutes (review F4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:42:46 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
c8ec468e47
|
feat(transcribe): WithTimeout -- each engine call gets its own deadline so a wedged engine fails while the job lives (review F4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:42:46 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
c8c7356f19
|
test: a per-engine deadline so a wedged primary reaches the fallback (red; adversarial review F4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:41:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8d1b7d887f
|
test: a per-engine deadline so a wedged primary reaches the fallback (red; adversarial review F4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:41:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
21b337702a
|
test: a per-engine deadline so a wedged primary reaches the fallback (red; adversarial review F4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:41:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
d16c2998d0
|
test(reconcile): the stored reason is a kind -- the old assertion encoded the leak the review found
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:55 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
fb79dbb045
|
fix(uploads.go): an error reaches the log, the row and the page as a kind, never its text (adversarial review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:55 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
a2587eae9b
|
fix(worker.go): an error reaches the log, the row and the page as a kind, never its text (adversarial review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:55 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
0b35278cdf
|
fix(transcribe): an error reaches the log, the row and the page as a kind, never its text (adversarial review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:55 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
16a8833f79
|
fix(reconcile.go): an error reaches the log, the row and the page as a kind, never its text (adversarial review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:55 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
03a122c9f5
|
fix(tracker.go): an error reaches the log, the row and the page as a kind, never its text (adversarial review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:55 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
31f5a74d2a
|
test(web): the upload routes' error paths log a kind, not the text (red; review F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:10 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
166ff849c0
|
test(uploads): a failure logs a kind, never the error text or the spool path (red; review F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:10 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
e9863c2e12
|
test(progress): a keyed failure logs its kind, not the error's text (red; review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:10 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8f3300b377
|
test(transcribe): a failed engine's reason is a kind, not its error text (red; review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:10 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
f6c3f2af23
|
test(reconcile): the skipped reason carries a kind, not the model's text (red; review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:40:10 +02:00 |
|