Files
DocsGPT/tests/api/user
Alex f7cd94668f fix(attachments): close the .txt gap in the parseability gate
Review follow-ups on the attachment gate.

.txt was listed as parser-backed, but it has no parser — it *is* the
plain-text fallthrough. That let it skip the content check, so renaming a
video to notes.txt walked straight back into the bug the gate exists for
(verified: 5132 chars of binary "extracted" and stored). The list is now
exactly the file extractor's keys, .txt included in the content check like
any other unparsed suffix, and the drift test asserts equality rather than
containment. The sniff now recognises a UTF-16/32 BOM as text, so a
Notepad "Unicode" .txt is not caught by the NUL-byte rule.

The picker's accept filter listed parser-backed suffixes only, hiding .txt,
.py and .log — files the gate reads happily — behind "All files". It now
carries text/* as well, so it can never be narrower than what the upload
accepts.

A rejected batch carries one errors entry per file, but the non-200 branch
applied the top-level message to every chip, so two files failing for two
reasons both reported the first one. Reasons are now matched by
upload_index, with the top-level message as fallback.

_get_store_attachment_user_error no longer reads str(exc): the
unsupported-type message is rebuilt from the filename, so no exception
state can reach a response body (CodeQL py/stack-trace-exposure).
2026-09-03 09:13:24 +01:00
..
2026-08-20 23:07:15 +02:00
2026-04-18 13:13:57 +01:00
2026-03-30 16:13:08 +01:00
2026-04-18 13:13:57 +01:00
2026-07-25 18:15:56 +02:00
2026-04-18 13:13:57 +01:00
2026-04-18 13:13:57 +01:00
2026-03-30 16:13:08 +01:00
2026-04-18 13:13:57 +01:00
2026-04-18 13:13:57 +01:00
2026-04-18 13:13:57 +01:00
2026-04-18 13:13:57 +01:00