From e7eefa345e0f53fa0a42f4e64bed8c9fb3b34b8b Mon Sep 17 00:00:00 2001 From: Davide Scaini Date: Mon, 13 Apr 2026 19:03:46 +0200 Subject: [PATCH] F17: replace merge_all with merge_one in upload_image and delete_image Single-activity writes now trigger a fast merge_one instead of a full user rebuild. post_activity was fixed earlier; this completes the fix for upload_image and delete_image endpoints. --- bincio/serve/server.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/bincio/serve/server.py b/bincio/serve/server.py index c8bb828..1fced65 100644 --- a/bincio/serve/server.py +++ b/bincio/serve/server.py @@ -592,8 +592,8 @@ async def post_activity( from bincio.edit.ops import apply_sidecar_edit body = await request.json() + # apply_sidecar_edit already calls merge_one internally — no full rebuild needed. apply_sidecar_edit(activity_id, body, dd) - _trigger_rebuild(user.handle) return JSONResponse({"ok": True}) @@ -633,7 +633,8 @@ async def upload_image( images_dir.mkdir(parents=True, exist_ok=True) safe_name = _unique_image_name(images_dir, Path(file.filename).name) (images_dir / safe_name).write_bytes(contents) - _trigger_rebuild(user.handle) + from bincio.render.merge import merge_one + merge_one(dd, activity_id) return JSONResponse({"ok": True, "filename": safe_name}) @@ -653,7 +654,8 @@ async def delete_image( target.unlink() if target.parent.exists() and not any(target.parent.iterdir()): shutil.rmtree(target.parent) - _trigger_rebuild(user.handle) + from bincio.render.merge import merge_one + merge_one(dd, activity_id) return JSONResponse({"ok": True})