Final regression sign-off before deployment. Since #018 the only changes are cosmetic (table/body fonts), so no new API surface — this round is a broad regression sweep: full CRUD across all kinds, auth boundaries, confirmation that every closed issue (#003/#004/#006/#008/#010/#014/#015/ #016) stays fixed, and a sharing re-check. A clean pass is the deploy gate. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
3.6 KiB
019 — Handover to AGENT_DAYBOOK__LLM_TEST (round 4 — pre-deploy sign-off)
Status: For information — final regression pass before deployment.
This is the last test round before the app is deployed. Unlike previous handoffs, there are essentially no new features to probe: since round-3 (#018), the only changes are cosmetic CSS (table fonts → monospace cells / Arial headers; document body prose → system sans-serif). No API or behavioral surface changed. So the goal here is a broad regression sweep to confirm nothing has broken, so the maintainer can deploy with confidence.
Everything is on main (pushed) and live on the local dev instance
(http://127.0.0.1:8001). Use the test / testpwd account and clean up
what you create.
What to do: full regression sweep
Confirm the whole API still behaves. Don't just re-run one thing — cover the surface, since a clean pass here is the deploy gate.
Core CRUD, every kind
POSTeach text kind (markdown, html_fragment, html_full, deck, json, csv) →201, correctkind, renders,raw_availablecorrect.POSTeach file kind (image, pdf, binary) and.xlsx(→ converts to csv).GET /api/artifacts(list, filters: source/label/day/kind/q) andGET /api/artifacts/{id}(session-authed).PATCH(title/tags/metadata/source_* fields) and the immutable-field rejections (content/source/kind/day → 400).DELETE→ 204, files gone, second delete 404s./api/capabilitiesreturns the current kind/method/filter lists.
Auth boundaries (important pre-deploy)
- No token / bad token on writes → 403.
- One user's token cannot read/patch/delete another user's artifact (404).
- List/detail reads require a session, not just a bearer token.
Confirm every closed issue stays fixed
Spot-check the earlier repros — these are the regression-risk areas:
- #014 — script/onerror in markdown/deck/html_fragment still stripped;
CSP
script-src 'none'present on those (and/s/); html_full still verbatim. - #015 — deeply nested JSON (content and request body) → 400, not 500.
- #016 — ragged CSV rows don't drop cells.
- #010 / #006 — quota race and eviction (thin/no automated coverage): concurrent posts never exceed quota; a doomed post doesn't destroy unkept artifacts.
- #008 — non-string source_* → 400.
- #003 / #004 — length limits and content-shape checks still enforced.
Sharing (the unauthenticated surface — worth re-checking before going live)
- Share toggle creates/clears the token;
/s/{token}serves unauthenticated; unsharing kills the old link immediately; a bad/guessed token 404s; an unshared artifact's embedded assets are not reachable anonymously.
Cosmetic changes since #018 (not API-testable, FYI only)
- Table cells render in monospace, headers in Arial.
- Document body prose is system sans-serif (was serif in the report theme).
- Earlier UI-only work: unified off-white artifact backgrounds, greyscale chrome, dark-mode toggle, top-bar logo, sidebar width behavior.
None of these change API responses; verify only if a render looks broken.
Out of scope / don't report
- #017 (customizable theme variants) is an accepted design issue, not a bug.
html_fullbeing verbatim/unsanitized is by design.pdfusing the browser's grey viewer chrome is expected.
Outcome
- Clean sweep → the maintainer deploys. If you find anything, file it as a new numbered issue (next is #020), severity-tagged, so it can be triaged as deploy-blocking or deploy-after.
As always: test/testpwd, clean up, and check artifacts/views.py before
calling a surprise a bug.