fix: write empty index.json for new users at registration so shard resolves immediately

This commit is contained in:
Davide Scaini
2026-04-10 18:20:35 +02:00
parent 3e4ff4019b
commit 816f103b4c
+10 -3
View File
@@ -286,11 +286,18 @@ async def register(request: Request) -> JSONResponse:
# Create per-user directories # Create per-user directories
dd = _get_data_dir() dd = _get_data_dir()
(dd / handle / "activities").mkdir(parents=True, exist_ok=True) user_dir = dd / handle
(dd / handle / "edits").mkdir(parents=True, exist_ok=True) (user_dir / "activities").mkdir(parents=True, exist_ok=True)
(user_dir / "edits").mkdir(parents=True, exist_ok=True)
# Write an empty index.json so the shard URL resolves immediately,
# even before the user uploads any activities.
from bincio.extract.writer import write_index
index_path = user_dir / "index.json"
if not index_path.exists():
write_index([], user_dir, {"handle": handle, "display_name": display or handle})
# Update root manifest so the new user's shard is discoverable immediately # Update root manifest so the new user's shard is discoverable immediately
# (Astro dev re-evaluates getStaticPaths() on each request from this file)
from bincio.render.cli import _write_root_manifest from bincio.render.cli import _write_root_manifest
_write_root_manifest(dd) _write_root_manifest(dd)