

4cc8fa3b4d
refactor(server): extract the profile routes into routers/profile.py (R3) (#854)
6 routes (get/set profile, bundled+custom avatars, avatar upload/serve, progress)
+ the exclusive _list_bundled_avatars helper. Bodies verbatim; @app -> @router,
meta_db -> appstate.meta_db, CONFIG_DIR/STATIC_DIR -> appstate.config_dir/
static_dir (seam), _clean_str from reqfields, _get_progression_content() ->
appstate.get_progression_content().
No STATIC_DIR test retarget: _list_bundled_avatars reads appstate.static_dir but
test_profile_api doesn't patch STATIC (only the sloppak/audio/traversal suites
do, for handlers that stay in server.py). server.py: 7,594 -> 7,478.
Verified: pyflakes clean; route table IDENTICAL (143); pytest 2401 passed (61 in
test_profile_api); eslint 0. Boot smoke: GET /api/profile 200 (drives
get_progression_content), /avatars lists via appstate.static_dir, /progress 200.
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 00:38:03 +02:00
..
2026-07-11 00:38:03 +02:00
2026-07-05 00:17:43 +02:00
2026-07-11 00:25:53 +02:00
2026-07-10 14:30:05 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-03 13:01:07 +02:00
2026-07-10 20:41:42 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-05 20:08:19 +02:00
2026-07-10 13:12:10 +02:00
2026-06-23 11:03:01 +02:00
2026-07-05 23:12:31 +02:00
2026-06-20 14:10:04 -07:00
2026-06-23 11:03:01 +02:00
2026-06-16 19:43:45 +01:00
2026-06-23 11:03:01 +02:00
2026-07-05 01:11:38 +02:00
2026-07-10 14:18:59 +02:00
2026-07-07 23:58:49 +02:00
2026-07-02 08:40:20 +02:00
2026-06-23 11:03:01 +02:00
2026-06-16 19:43:45 +01:00
2026-07-10 19:58:09 +02:00
2026-07-05 00:15:50 +02:00
2026-07-10 14:18:59 +02:00
2026-07-06 17:30:26 -04:00
2026-06-16 18:47:13 +02:00
2026-06-26 18:58:35 +02:00
2026-07-02 20:52:11 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-07-10 13:05:39 +02:00
2026-06-23 11:03:01 +02:00
2026-06-23 11:03:01 +02:00
2026-06-16 18:47:13 +02:00