 mathiasandClaude Sonnet 5.5
|
9a2f24b3c9
|
fix(uploads): refuse a full queue before spooling, probing or creating a row (second review)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:22:41 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
3f5b9345a0
|
feat(uploads): HasRoom -- say before spooling whether a submit would be accepted (second review)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:22:41 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
16db156406
|
fix(config): the engine timeout defaults to 20 minutes so two wedged engines leave the job time for a fallback (second review)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:22:41 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
471425cd4c
|
fix(cmd): the configured upload chat model is in the shared chat service's list, so it is no longer silently swapped (second review finding 2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:22:41 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8f79132fcb
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
b1f9d5f4b7
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
5bd2e3d3d0
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
b8a6e2f6f5
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
335ad0cd85
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
59bc373068
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
d505f64c99
|
test: second review -- the upload chat model outside the chain, room checked before spooling, a cut-off body is a 400, bidi controls in titles, the ensemble's deadline wiring, an honest test name (red)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
dbe37e5756
|
feat(web): style for a step note
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
0962b6f639
|
chore(web): regenerate uploads_templ.go
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
9314454ab1
|
feat(web): show a step's note under it, escaped (second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
9c8ac0f9fb
|
fix(web): no message for the removed incomplete kind (second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
f7284ccdc9
|
fix(uploads): a file much shorter than it claimed is transcribed and noted, not refused; the tolerances are named (second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
4943c80dbd
|
feat(progress): Annotate -- a note on a step, saved at once (second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8eca8f721b
|
feat(domain): ProgressStep.Note; UploadErrIncomplete removed -- a short file is noted, not refused (second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:20:02 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
406c0232c1
|
test: a shortfall is noted on the audio step, not refused; the 80%, two-minute and 30-second tolerances are pinned (red; second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:19:32 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
ac530de91a
|
test: a shortfall is noted on the audio step, not refused; the 80%, two-minute and 30-second tolerances are pinned (red; second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:19:32 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
a90107b73b
|
test: a shortfall is noted on the audio step, not refused; the 80%, two-minute and 30-second tolerances are pinned (red; second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:19:32 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
0ef83f2ccb
|
test: a shortfall is noted on the audio step, not refused; the 80%, two-minute and 30-second tolerances are pinned (red; second review finding 1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:19:32 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
71cd50aa88
|
fix(docker): install xz in the ffmpeg stage -- the golang image has none; found by building the image, which CI does not do on a pull request (second review)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 17:19:06 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
aa54089230
|
docs(claude): errors are logged and shown as kinds, and what carries transcript text must be local (ADR-035)
CI / Lint / Test / Vet (pull_request) Successful in 25s
CI / Build & Import (pull_request) Skipped
CI / Deploy via GitOps (pull_request) Skipped
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:50:56 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8749ffe6a9
|
docs(homelab): the engine timeout, a local chat model, ffmpeg in the image, and 31B with Low Power Mode off
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:50:56 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
67879f85eb
|
test(acceptance): map the hardening scenarios, and follow the two tests renamed in the review
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:50:43 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
08b7654d06
|
docs(use-cases): scenarios for the review's hardening (ADR-035 decision 8) -- the coverage gate is red until mapped
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:50:35 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
f03b0213d0
|
docs(adr): record the owner's decisions on #34, #35 and ADR-034, and the adversarial review's hardening (ADR-035 decision 8)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:50:22 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
cb22832413
|
feat(docker): static ffmpeg and ffprobe in the distroless image, pinned by version and sha256 (#34 option A)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:50:02 +02:00 |
|
 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
|
a2027c9f9b
|
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
|
a7e2cc43c0
|
test(cmd): the built worker refuses audio longer than the configured maximum (review F2)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
fdcdee7413
|
test(cmd): the uploads store double records the kind a job failed with
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:45:25 +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
|
6b83d72655
|
fix(cmd): the converter is capped and the worker measures, at the configured maximum (review F2)
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
|
741eccb575
|
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
|
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
|
7a468fdc09
|
fix(cmd): every local engine call carries its own deadline (review F4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:42: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
|
81a60d5fd4
|
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
|
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 |
|
 mathiasandClaude Sonnet 5.5
|
2d1b08458b
|
feat(transcribe): StatusError.HTTPStatus -- its code, never its snippet, becomes the kind (review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:39:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
2608ad2f09
|
feat(llm): HTTPError -- a status code to branch on, a bounded body in the text (review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:39:38 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
81f3d7ffc6
|
test(transcribe): a StatusError exposes its code as a kind, not its snippet (red; adversarial review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:39:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
8c82d67b12
|
test(llm): a non-200 is an HTTP status error whose kind carries no body, and the body is bounded (red; adversarial review F3)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:39:25 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
d8eea66c4c
|
feat(errkind): Of -- a kind from a fixed vocabulary, never the error's text (review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:39:10 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
dc0c64ddeb
|
test(errkind): an error reduced to a safe kind, never its text (red; adversarial review F3, F5)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:39:04 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
99ac5580e0
|
test(web): the upload chat helper says which models are offered
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:38:30 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
ef815edded
|
fix(web): upload chat offers and accepts local models only and fails closed; a forged cloud model is replaced before anything is sent (review F1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:38:30 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
4933504982
|
feat(web): App.UploadChatModels -- the models upload chat offers and accepts (review F1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:38:30 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
e121ef241d
|
fix(cmd): wire the local-only chat models into the upload routes (review F1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:38:30 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
5ae9212869
|
feat(cmd): uploadChatModels -- the chat switcher for a private recording is local models only (review F1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:38:30 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
a9a2a9270f
|
fix(config): a strict shape for a local model alias; the upload chat model must be local (adversarial review F1, F8)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:38:30 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
7fe746173d
|
test(web): the upload chat offers and accepts local models only, and fails closed (red; adversarial review F1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:37:49 +02:00 |
|
 mathiasandClaude Sonnet 5.5
|
4b16e33715
|
test(cmd): the upload chat switcher never offers a cloud model (red; adversarial review F1)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
2026-10-02 16:37:49 +02:00 |
|