mathias and Claude Sonnet 5.5
815ee98d4c
test(web): the title input that proves a bidi character is dropped, not replaced
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:36:42 +02:00
mathias and Claude Sonnet 5.5
067620d06a
chore(web): regenerate uploads_templ.go
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:36:42 +02:00
mathias and Claude Sonnet 5.5
91e475807c
fix(web): a finished upload's record opens when a step carries a note (third review)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:36:42 +02:00
mathias and Claude Sonnet 5.5
6d044ba403
fix(web): a client that hangs up is logged at INFO and not answered; the 400 follows the marker, not io.ErrUnexpectedEOF; hasNote (third review)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:36:42 +02:00
mathias and Claude Sonnet 5.5
272a5db75f
test: third review -- a real disconnect is not an error, a DB drop is not the client's, a note stays visible, every bidi character and the 80% boundary pinned (red)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:35:29 +02:00
mathias and Claude Sonnet 5.5
af4e9c8632
test: third review -- a real disconnect is not an error, a DB drop is not the client's, a note stays visible, every bidi character and the 80% boundary pinned (red)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:35:29 +02:00
mathias and Claude Sonnet 5.5
04a3bc261f
test: third review -- a real disconnect is not an error, a DB drop is not the client's, a note stays visible, every bidi character and the 80% boundary pinned (red)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:35:29 +02:00
mathias and Claude Sonnet 5.5
08ffc2ff62
test(web): Go escapes for the bidirectional characters, which staticcheck ST1018 requires -- task check does not gate lint ( #41 )
...
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 17:23:50 +02:00
mathias and Claude Sonnet 5.5
e70e56a531
test(web): the render tool shows a step note
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:23:01 +02:00
mathias and Claude Sonnet 5.5
be20adc76b
chore(fixtures): an obviously invented context phrase (second review F10 residual)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:22:41 +02:00
mathias and Claude Sonnet 5.5
b59b1a22dd
test(web): joiners and variation selectors survive the title cleaning
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:22:41 +02:00
mathias and Claude Sonnet 5.5
22c0317c71
fix(web): a body cut off mid-file is a 400; bidirectional controls are stripped from a title (second review)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 17:22:41 +02:00
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude 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
mathias and Claude Sonnet 5.5
02a065b826
test(web): opt-in renderer of every progress state for a screenshot review (TAPIR_SHOT_DIR)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:03:55 +02:00
mathias and Claude Sonnet 5.5
105777f1aa
fix(web): the spinner sits in the same mark column as the other glyphs; a lost job's running phase gets a warning mark (screenshot review)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:03:55 +02:00
mathias and Claude Sonnet 5.5
18d8050a2b
fix(web): the progress bar ends at the time column and the lost mark is error-coloured (screenshot review)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:03:55 +02:00
mathias and Claude Sonnet 5.5
c06d285a3a
test(web): the lost job's running phase carries a warning mark (red; found in the screenshot review)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:03:32 +02:00
mathias and Claude Sonnet 5.5
cd7595a048
feat(web): a spot shows the words before it, and an empty list shows no section (ADR-035)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:01:21 +02:00
mathias and Claude Sonnet 5.5
24d1a99ed0
feat(web): list only the spots to check, in order and capped (ADR-035)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:01:21 +02:00
mathias and Claude Sonnet 5.5
8cb0b0a12d
test(web): the kept-spot assertion looks for what the page actually renders (red)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:00:56 +02:00
mathias and Claude Sonnet 5.5
6dfd53ac71
test(web): the page lists only changed and uncertain spots, with the words before each, though every judged spot is stored (red)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:00:49 +02:00
mathias and Claude Sonnet 5.5
d62331b5f9
test(web): the quiet note is capitalised as the page writes it
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:00:23 +02:00
mathias and Claude Sonnet 5.5
a7668b670e
feat(web): the upload page shows the job's phases, a bar only where the count is real, and says when the service is lost (ADR-035)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:00:23 +02:00
mathias and Claude Sonnet 5.5
89c9dd6705
feat(web): tell running from quiet from lost; poll every two seconds (ADR-035)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:00:23 +02:00
mathias and Claude Sonnet 5.5
d1dcb131f2
feat(web): progress styles in tapir's own tokens -- a mono step log, a CSS spinner that respects reduced motion (ADR-035)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 09:00:23 +02:00
mathias and Claude Sonnet 5.5
d0f2dcf838
test(web): the page shows real phases, tells running from quiet from lost, and never invents a percentage (red)
...
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-02 08:57:58 +02:00
mathias and Claude Sonnet 5.5
6fb7a52980
feat(web): say what reconciliation did, and never claim a second opinion that was not there
...
CI / Lint / Test / Vet (pull_request) Successful in 21s
CI / Build & Import (pull_request) Skipped
CI / Deploy via GitOps (pull_request) Skipped
Reconciled: the two engines, the deciding model and the exact counts; the contested
spots (changed or uncertain) listed with a minute mark and both readings, the first
50 shown and the rest counted from the exact totals. Single-engine and
model-unavailable results say why. A nil reconciliation renders nothing. Readings are
escaped. Mutation-checked: the cap, the minute rounding and the 'more' count.
uploads.go and the templ pair are one commit: the helpers and the template need each other.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-01 23:23:39 +02:00
mathias and Claude Sonnet 5.5
d6ba11d288
test(web): the page says what reconciliation did, plainly, and never claims more (red)
...
Reconciled: who the two engines and the deciding model were, and the counts
(differences, settled automatically, decided by the model, uncertain). The contested
spots are listed with a minute mark, both readings and which was used, uncertain ones
marked, readings escaped, and a very long list shortened with its true count. A
single-engine transcript makes no claim of a second opinion; one-engine and
model-unavailable cases say why.
Red: the page renders none of this yet.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com >
2026-10-01 23:23:00 +02:00