agnes-the-ai-analyst/app/web
ZdenekSrotyr 952dc9e74d fix(profile-sessions): tolerate stat() failures on individual jsonl (Devin Review on #179)
The previous gather used `sorted(glob, key=lambda p: p.stat().st_mtime)`.
A transient OSError (race with delete, permission flicker, EBADF on a
weird filesystem) on any single file raised through the lambda and 500-ed
the whole page.

Reworked: stat each path under try/except into a (path, stat) list, sort
the already-statted entries. Bad files drop silently from the listing.

Regression test test_profile_sessions_page_tolerates_stat_failures
patches Path.stat to raise on one of two files, asserts the page returns
200 with the good row rendered and the bad row dropped.
2026-05-05 09:53:06 +02:00
..
static feat(rbac+marketplace): RBAC v13 + Claude Code marketplace + #81/#83/#44 hardening 2026-04-28 14:25:04 +02:00
templates feat(profile): per-session jsonl download from /profile/sessions 2026-05-05 09:15:12 +02:00
__init__.py feat: add FastAPI server with auth, RBAC, and all API endpoints 2026-03-27 15:19:18 +01:00
router.py fix(profile-sessions): tolerate stat() failures on individual jsonl (Devin Review on #179) 2026-05-05 09:53:06 +02:00
setup_instructions.py feat(setup-instructions): preflight checks both git and claude 2026-05-04 22:11:38 +02:00