diff --git a/.claude/settings.local.json b/.claude/settings.local.json index c298fa74..da7990cf 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -3,7 +3,9 @@ "allow": [ "Bash(*)", "mcp__gemini-claude-code-mcp__summarize_project", - "Skill(update-config)" + "Skill(update-config)", + "Skill(commit-commands:commit-push-pr)", + "Skill(commit-commands:commit-push-pr:*)" ] } } diff --git a/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3 b/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3 deleted file mode 100644 index d3522248..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3 and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3-shm b/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3-shm deleted file mode 100644 index fe9ac284..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3-shm and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3-wal b/apps/backend/.runtime.backup.20260319-154319/analysis_runs.sqlite3-wal deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/00023a45-279c-426e-815f-905bb522648b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/00023a45-279c-426e-815f-905bb522648b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/00023a45-279c-426e-815f-905bb522648b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/085e9770-cad7-4f24-b246-05531048da14.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/085e9770-cad7-4f24-b246-05531048da14.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/085e9770-cad7-4f24-b246-05531048da14.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/0a6a487c-0829-4606-8414-590d5c166a98.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/0a6a487c-0829-4606-8414-590d5c166a98.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/0a6a487c-0829-4606-8414-590d5c166a98.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/0d97014a-c360-41ed-9394-ee52ab1f5398.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/0d97014a-c360-41ed-9394-ee52ab1f5398.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/0d97014a-c360-41ed-9394-ee52ab1f5398.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/0ea1d443-e2f8-40c9-96a8-71781f9cf2f6.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/0ea1d443-e2f8-40c9-96a8-71781f9cf2f6.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/0ea1d443-e2f8-40c9-96a8-71781f9cf2f6.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/13e471df-9081-4b2e-ac36-910b27170125.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/13e471df-9081-4b2e-ac36-910b27170125.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/13e471df-9081-4b2e-ac36-910b27170125.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/15ec4643-dd99-4c82-a76c-05dd6caa938b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/15ec4643-dd99-4c82-a76c-05dd6caa938b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/15ec4643-dd99-4c82-a76c-05dd6caa938b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/18d33c37-3b6c-4a31-a7a6-75fea22975e7.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/18d33c37-3b6c-4a31-a7a6-75fea22975e7.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/18d33c37-3b6c-4a31-a7a6-75fea22975e7.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/1c5db6dc-52c7-4ba5-aa46-56dae3917a70.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/1c5db6dc-52c7-4ba5-aa46-56dae3917a70.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/1c5db6dc-52c7-4ba5-aa46-56dae3917a70.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/1ca32a4e-3199-4d48-af6a-392d35a4e178.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/1ca32a4e-3199-4d48-af6a-392d35a4e178.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/1ca32a4e-3199-4d48-af6a-392d35a4e178.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/20585017-6453-41c9-88e0-6a6cf9cd858b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/20585017-6453-41c9-88e0-6a6cf9cd858b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/20585017-6453-41c9-88e0-6a6cf9cd858b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/20b106c8-1133-4622-8946-66fe0efcec92.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/20b106c8-1133-4622-8946-66fe0efcec92.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/20b106c8-1133-4622-8946-66fe0efcec92.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/23d883e1-e918-4381-91ac-412b89c8d467.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/23d883e1-e918-4381-91ac-412b89c8d467.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/23d883e1-e918-4381-91ac-412b89c8d467.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/29e9434d-dc0f-403b-9a47-706e4d94a65a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/29e9434d-dc0f-403b-9a47-706e4d94a65a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/29e9434d-dc0f-403b-9a47-706e4d94a65a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/2cf62d59-7cd1-4dd7-9607-5c0e67c203a0.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/2cf62d59-7cd1-4dd7-9607-5c0e67c203a0.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/2cf62d59-7cd1-4dd7-9607-5c0e67c203a0.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/2db040ca-720a-4d4c-b0bd-1f88c293e1e1.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/2db040ca-720a-4d4c-b0bd-1f88c293e1e1.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/2db040ca-720a-4d4c-b0bd-1f88c293e1e1.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/30ddd8bb-4a92-44b9-abf9-62fb586e070f.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/30ddd8bb-4a92-44b9-abf9-62fb586e070f.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/30ddd8bb-4a92-44b9-abf9-62fb586e070f.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/31df54fd-f1de-4b89-84e9-0ecebe5d65e2.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/31df54fd-f1de-4b89-84e9-0ecebe5d65e2.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/31df54fd-f1de-4b89-84e9-0ecebe5d65e2.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/32a94160-8a2c-497d-8d37-add40170c7ca.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/32a94160-8a2c-497d-8d37-add40170c7ca.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/32a94160-8a2c-497d-8d37-add40170c7ca.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/34ca8108-ce10-4c3a-8ca7-4b8a24ce21a9.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/34ca8108-ce10-4c3a-8ca7-4b8a24ce21a9.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/34ca8108-ce10-4c3a-8ca7-4b8a24ce21a9.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/37fbc5d2-21db-4bba-a67b-c28c63ad3d30.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/37fbc5d2-21db-4bba-a67b-c28c63ad3d30.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/37fbc5d2-21db-4bba-a67b-c28c63ad3d30.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/38465e56-1dd3-423c-a884-8e522ef56c21.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/38465e56-1dd3-423c-a884-8e522ef56c21.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/38465e56-1dd3-423c-a884-8e522ef56c21.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/3938c1f3-eb7d-4dac-b342-10fc934781b2.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/3938c1f3-eb7d-4dac-b342-10fc934781b2.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/3938c1f3-eb7d-4dac-b342-10fc934781b2.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/401f5ca2-2edd-4438-9ef4-af98929e3adf.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/401f5ca2-2edd-4438-9ef4-af98929e3adf.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/401f5ca2-2edd-4438-9ef4-af98929e3adf.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/4241ec93-3086-4489-a99f-f0921053e99f.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/4241ec93-3086-4489-a99f-f0921053e99f.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/4241ec93-3086-4489-a99f-f0921053e99f.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/4373b82b-e56f-4cc0-8f69-5cf5e9692d30.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/4373b82b-e56f-4cc0-8f69-5cf5e9692d30.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/4373b82b-e56f-4cc0-8f69-5cf5e9692d30.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/44c33ea0-dbd2-49aa-8e80-b3ff580a8cef.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/44c33ea0-dbd2-49aa-8e80-b3ff580a8cef.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/44c33ea0-dbd2-49aa-8e80-b3ff580a8cef.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/45def2c2-f970-4a12-aea0-a9a363fcdfac.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/45def2c2-f970-4a12-aea0-a9a363fcdfac.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/45def2c2-f970-4a12-aea0-a9a363fcdfac.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/47ffe0d7-70a9-4d3c-b774-08805f65aa77.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/47ffe0d7-70a9-4d3c-b774-08805f65aa77.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/47ffe0d7-70a9-4d3c-b774-08805f65aa77.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/49302c90-b430-4417-86f4-a2b3ef9c2cab.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/49302c90-b430-4417-86f4-a2b3ef9c2cab.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/49302c90-b430-4417-86f4-a2b3ef9c2cab.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/49a0b1ba-d0b0-4fbb-b291-50824f0cb520.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/49a0b1ba-d0b0-4fbb-b291-50824f0cb520.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/49a0b1ba-d0b0-4fbb-b291-50824f0cb520.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/4af136ed-8020-4ffa-acc4-dd104fac2ae7.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/4af136ed-8020-4ffa-acc4-dd104fac2ae7.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/4af136ed-8020-4ffa-acc4-dd104fac2ae7.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/4e6ef4bb-527c-4fd0-995f-dd827f7bcff0.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/4e6ef4bb-527c-4fd0-995f-dd827f7bcff0.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/4e6ef4bb-527c-4fd0-995f-dd827f7bcff0.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/4ff0e29f-fb2d-4673-b65d-984245e8083e.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/4ff0e29f-fb2d-4673-b65d-984245e8083e.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/4ff0e29f-fb2d-4673-b65d-984245e8083e.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/51d7b6b3-a5d7-4e06-af71-89cf07d8c075.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/51d7b6b3-a5d7-4e06-af71-89cf07d8c075.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/51d7b6b3-a5d7-4e06-af71-89cf07d8c075.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/5556e2a3-221e-418f-b177-1213c6c76fe1.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/5556e2a3-221e-418f-b177-1213c6c76fe1.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/5556e2a3-221e-418f-b177-1213c6c76fe1.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/59cb0a6f-c50f-49e0-85fb-1eeb83f57d57.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/59cb0a6f-c50f-49e0-85fb-1eeb83f57d57.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/59cb0a6f-c50f-49e0-85fb-1eeb83f57d57.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/5b991347-2c08-46d1-bc55-7f7e728f72ff.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/5b991347-2c08-46d1-bc55-7f7e728f72ff.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/5b991347-2c08-46d1-bc55-7f7e728f72ff.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6180fcbf-28ad-4e99-8add-b0f5a21bcc6b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/6180fcbf-28ad-4e99-8add-b0f5a21bcc6b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/6180fcbf-28ad-4e99-8add-b0f5a21bcc6b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6579ba85-ce1b-4e3a-b0f1-06fd062206aa.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/6579ba85-ce1b-4e3a-b0f1-06fd062206aa.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/6579ba85-ce1b-4e3a-b0f1-06fd062206aa.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/67494437-fc2d-4cc1-8810-e71c6f64293f.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/67494437-fc2d-4cc1-8810-e71c6f64293f.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/67494437-fc2d-4cc1-8810-e71c6f64293f.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/688fe179-7599-4b1c-ba4b-6c7b31b7ecc8.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/688fe179-7599-4b1c-ba4b-6c7b31b7ecc8.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/688fe179-7599-4b1c-ba4b-6c7b31b7ecc8.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6a21a88b-98a6-4df8-ac5b-8e742ec9e048.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/6a21a88b-98a6-4df8-ac5b-8e742ec9e048.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/6a21a88b-98a6-4df8-ac5b-8e742ec9e048.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6d9c9917-a23c-47d8-ade0-4aafd87e792b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/6d9c9917-a23c-47d8-ade0-4aafd87e792b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/6d9c9917-a23c-47d8-ade0-4aafd87e792b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6e438b32-5c59-4657-b24e-87b00994c8d5.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/6e438b32-5c59-4657-b24e-87b00994c8d5.mp3 deleted file mode 100644 index bdef0b7a..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154319/artifacts/6e438b32-5c59-4657-b24e-87b00994c8d5.mp3 and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6e438b32-5c59-4657-b24e-87b00994c8d5_melody.mid b/apps/backend/.runtime.backup.20260319-154319/artifacts/6e438b32-5c59-4657-b24e-87b00994c8d5_melody.mid deleted file mode 100644 index 42078437..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154319/artifacts/6e438b32-5c59-4657-b24e-87b00994c8d5_melody.mid and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/6ffdcb65-6d99-41f4-bb37-c079664f10b2.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/6ffdcb65-6d99-41f4-bb37-c079664f10b2.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/6ffdcb65-6d99-41f4-bb37-c079664f10b2.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/717d09cd-128b-4a51-ac8e-674bcf5b8fc1.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/717d09cd-128b-4a51-ac8e-674bcf5b8fc1.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/717d09cd-128b-4a51-ac8e-674bcf5b8fc1.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/71ee20c8-179c-487a-ac87-9ec72b96b4f3.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/71ee20c8-179c-487a-ac87-9ec72b96b4f3.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/71ee20c8-179c-487a-ac87-9ec72b96b4f3.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/74c55c1d-f79d-4c00-8076-0a6735e1823a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/74c55c1d-f79d-4c00-8076-0a6735e1823a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/74c55c1d-f79d-4c00-8076-0a6735e1823a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/755e756a-9f06-4726-9083-8c4ddbbeca85.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/755e756a-9f06-4726-9083-8c4ddbbeca85.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/755e756a-9f06-4726-9083-8c4ddbbeca85.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/764f3820-6d8c-4171-b934-2395af877747.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/764f3820-6d8c-4171-b934-2395af877747.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/764f3820-6d8c-4171-b934-2395af877747.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/7a764be3-42ff-45a2-8fac-df553242d4d6.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/7a764be3-42ff-45a2-8fac-df553242d4d6.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/7a764be3-42ff-45a2-8fac-df553242d4d6.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/7d04902c-1fa5-456f-bce8-b21a11f88051.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/7d04902c-1fa5-456f-bce8-b21a11f88051.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/7d04902c-1fa5-456f-bce8-b21a11f88051.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/7daa3249-8791-4a6c-8662-ea17b02801a7.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/7daa3249-8791-4a6c-8662-ea17b02801a7.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/7daa3249-8791-4a6c-8662-ea17b02801a7.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/7e8b23a8-286b-421d-b0eb-3d360be23888.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/7e8b23a8-286b-421d-b0eb-3d360be23888.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/7e8b23a8-286b-421d-b0eb-3d360be23888.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/7f04dfd3-1e9e-426d-b986-24d5538727d8.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/7f04dfd3-1e9e-426d-b986-24d5538727d8.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/7f04dfd3-1e9e-426d-b986-24d5538727d8.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/7f1444fe-21cf-49af-937f-4da5d05609e4.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/7f1444fe-21cf-49af-937f-4da5d05609e4.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/7f1444fe-21cf-49af-937f-4da5d05609e4.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/86782f16-4772-4d36-8ccd-63385c559f2a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/86782f16-4772-4d36-8ccd-63385c559f2a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/86782f16-4772-4d36-8ccd-63385c559f2a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/86dd7eaa-d658-44bc-88d9-9db302d657b2.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/86dd7eaa-d658-44bc-88d9-9db302d657b2.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/86dd7eaa-d658-44bc-88d9-9db302d657b2.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/86fb6b4e-4c29-493c-8142-f23e246bdb10.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/86fb6b4e-4c29-493c-8142-f23e246bdb10.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/86fb6b4e-4c29-493c-8142-f23e246bdb10.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/879130ef-ecba-401b-b986-ab5918ccaf54.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/879130ef-ecba-401b-b986-ab5918ccaf54.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/879130ef-ecba-401b-b986-ab5918ccaf54.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/8b89ed12-bef5-4f36-98cb-aa6049f72909.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/8b89ed12-bef5-4f36-98cb-aa6049f72909.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/8b89ed12-bef5-4f36-98cb-aa6049f72909.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/8c57f1a7-1f7b-4cd3-abf7-a37f8f4eb199.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/8c57f1a7-1f7b-4cd3-abf7-a37f8f4eb199.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/8c57f1a7-1f7b-4cd3-abf7-a37f8f4eb199.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/8e50f731-d7ae-47cc-bb13-07eb05b72c86.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/8e50f731-d7ae-47cc-bb13-07eb05b72c86.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/8e50f731-d7ae-47cc-bb13-07eb05b72c86.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/953b006d-7a7e-4a8d-ab66-f45e5f3312fb.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/953b006d-7a7e-4a8d-ab66-f45e5f3312fb.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/953b006d-7a7e-4a8d-ab66-f45e5f3312fb.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/95df1215-0e10-4b38-894f-587bb102fa5a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/95df1215-0e10-4b38-894f-587bb102fa5a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/95df1215-0e10-4b38-894f-587bb102fa5a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/974b7ad9-ad37-40da-af9b-75ecfd8ee394.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/974b7ad9-ad37-40da-af9b-75ecfd8ee394.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/974b7ad9-ad37-40da-af9b-75ecfd8ee394.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/9c6e5c9c-ad8b-44cc-a39f-1d304b7a2f22.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/9c6e5c9c-ad8b-44cc-a39f-1d304b7a2f22.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/9c6e5c9c-ad8b-44cc-a39f-1d304b7a2f22.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/a037b450-5419-4eb8-9dc0-859ba54fe2fc.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/a037b450-5419-4eb8-9dc0-859ba54fe2fc.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/a037b450-5419-4eb8-9dc0-859ba54fe2fc.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/a3b6f618-ec21-417e-bcd1-085621b2cef7.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/a3b6f618-ec21-417e-bcd1-085621b2cef7.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/a3b6f618-ec21-417e-bcd1-085621b2cef7.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/a45e1380-4749-4947-8c84-215fe9f57e6a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/a45e1380-4749-4947-8c84-215fe9f57e6a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/a45e1380-4749-4947-8c84-215fe9f57e6a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/a8aaf7ad-0edd-4d5a-a35f-067c2f3ce12d.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/a8aaf7ad-0edd-4d5a-a35f-067c2f3ce12d.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/a8aaf7ad-0edd-4d5a-a35f-067c2f3ce12d.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/a8bbcbf8-5018-4ded-8026-5251235f43a2.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/a8bbcbf8-5018-4ded-8026-5251235f43a2.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/a8bbcbf8-5018-4ded-8026-5251235f43a2.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ac991c24-d8fb-471f-9000-3c101bca344b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ac991c24-d8fb-471f-9000-3c101bca344b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ac991c24-d8fb-471f-9000-3c101bca344b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ad4b7538-390d-4198-b042-bd528b161f38.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ad4b7538-390d-4198-b042-bd528b161f38.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ad4b7538-390d-4198-b042-bd528b161f38.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ad7e6d51-971e-4afa-8284-af970b5db26b.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ad7e6d51-971e-4afa-8284-af970b5db26b.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ad7e6d51-971e-4afa-8284-af970b5db26b.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/b04f4fea-e6ee-4e9b-a02f-22868a28e0de.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/b04f4fea-e6ee-4e9b-a02f-22868a28e0de.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/b04f4fea-e6ee-4e9b-a02f-22868a28e0de.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/b2f49251-2f41-4ea2-a061-5eafe7e2989f.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/b2f49251-2f41-4ea2-a061-5eafe7e2989f.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/b2f49251-2f41-4ea2-a061-5eafe7e2989f.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/b60e4c88-9590-437a-a760-0313a1e9edfc.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/b60e4c88-9590-437a-a760-0313a1e9edfc.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/b60e4c88-9590-437a-a760-0313a1e9edfc.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/bba2e509-c1b3-46f3-9f60-8320bf1f7e0a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/bba2e509-c1b3-46f3-9f60-8320bf1f7e0a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/bba2e509-c1b3-46f3-9f60-8320bf1f7e0a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/bcf868f3-7a42-48a0-96dd-f47aa107e609.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/bcf868f3-7a42-48a0-96dd-f47aa107e609.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/bcf868f3-7a42-48a0-96dd-f47aa107e609.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/beaefa0d-d415-49ec-9356-782a050b1579.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/beaefa0d-d415-49ec-9356-782a050b1579.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/beaefa0d-d415-49ec-9356-782a050b1579.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c04da87c-98cd-4179-99f8-a4f1b05f4190.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c04da87c-98cd-4179-99f8-a4f1b05f4190.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c04da87c-98cd-4179-99f8-a4f1b05f4190.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c2f9fc15-d94d-4975-b4ad-5ec0d493dd28.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c2f9fc15-d94d-4975-b4ad-5ec0d493dd28.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c2f9fc15-d94d-4975-b4ad-5ec0d493dd28.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c3d9790a-fee3-4d08-b332-9b6638b1232e.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c3d9790a-fee3-4d08-b332-9b6638b1232e.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c3d9790a-fee3-4d08-b332-9b6638b1232e.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c421f82f-cb13-4f9a-aa17-2b4912f9dfb9.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c421f82f-cb13-4f9a-aa17-2b4912f9dfb9.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c421f82f-cb13-4f9a-aa17-2b4912f9dfb9.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c4ab698e-2dc8-480b-b1d7-84334c4efbc4.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c4ab698e-2dc8-480b-b1d7-84334c4efbc4.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c4ab698e-2dc8-480b-b1d7-84334c4efbc4.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c501ebbc-f19b-469a-86e0-e1377b047815.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c501ebbc-f19b-469a-86e0-e1377b047815.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c501ebbc-f19b-469a-86e0-e1377b047815.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c613eb5a-2eb1-4e2f-a44b-0ded0f801d23.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c613eb5a-2eb1-4e2f-a44b-0ded0f801d23.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c613eb5a-2eb1-4e2f-a44b-0ded0f801d23.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c6c05e21-b682-4d93-a12e-46466770f44e.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c6c05e21-b682-4d93-a12e-46466770f44e.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c6c05e21-b682-4d93-a12e-46466770f44e.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c6e2551a-9dc0-4426-ace3-af213122f664.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c6e2551a-9dc0-4426-ace3-af213122f664.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c6e2551a-9dc0-4426-ace3-af213122f664.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c826be64-f18c-4a92-b96c-3397d5f84512.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c826be64-f18c-4a92-b96c-3397d5f84512.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c826be64-f18c-4a92-b96c-3397d5f84512.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/c928db85-2d4e-4eeb-a86d-2f06e2a11902.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/c928db85-2d4e-4eeb-a86d-2f06e2a11902.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/c928db85-2d4e-4eeb-a86d-2f06e2a11902.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/cd9ac5a7-71aa-4836-be74-68477ef10933.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/cd9ac5a7-71aa-4836-be74-68477ef10933.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/cd9ac5a7-71aa-4836-be74-68477ef10933.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/cf9d54b7-d2b0-426f-9fc2-d69d7c0ce3b5.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/cf9d54b7-d2b0-426f-9fc2-d69d7c0ce3b5.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/cf9d54b7-d2b0-426f-9fc2-d69d7c0ce3b5.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/d08f2e6b-4e3c-4199-97e6-aac95dbb111e.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/d08f2e6b-4e3c-4199-97e6-aac95dbb111e.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/d08f2e6b-4e3c-4199-97e6-aac95dbb111e.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/d10aaf22-f9db-4168-a838-c325a89739ee.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/d10aaf22-f9db-4168-a838-c325a89739ee.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/d10aaf22-f9db-4168-a838-c325a89739ee.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/d4d0b0f4-5056-433c-a7d5-58d9955edf5c.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/d4d0b0f4-5056-433c-a7d5-58d9955edf5c.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/d4d0b0f4-5056-433c-a7d5-58d9955edf5c.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/d569ab88-1382-447e-aa7f-3561b7dbcbf2.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/d569ab88-1382-447e-aa7f-3561b7dbcbf2.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/d569ab88-1382-447e-aa7f-3561b7dbcbf2.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/d6dd2e5e-0cba-4181-be0f-38b9d8eba979.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/d6dd2e5e-0cba-4181-be0f-38b9d8eba979.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/d6dd2e5e-0cba-4181-be0f-38b9d8eba979.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/d8d62e19-56cf-4adb-a583-28ec75f481d6.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/d8d62e19-56cf-4adb-a583-28ec75f481d6.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/d8d62e19-56cf-4adb-a583-28ec75f481d6.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/dd47cd2a-b034-44bd-b4b6-a1638c8ab96e.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/dd47cd2a-b034-44bd-b4b6-a1638c8ab96e.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/dd47cd2a-b034-44bd-b4b6-a1638c8ab96e.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/de62282a-1926-47c9-a244-6e6490f18823.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/de62282a-1926-47c9-a244-6e6490f18823.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/de62282a-1926-47c9-a244-6e6490f18823.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e2443612-f04d-486a-a7bf-c90f4a55683c.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e2443612-f04d-486a-a7bf-c90f4a55683c.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e2443612-f04d-486a-a7bf-c90f4a55683c.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e244cccb-2630-48c5-bfca-8ece41c9f165.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e244cccb-2630-48c5-bfca-8ece41c9f165.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e244cccb-2630-48c5-bfca-8ece41c9f165.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e3fb3330-e6fd-4932-8cac-4fca7661dd38.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e3fb3330-e6fd-4932-8cac-4fca7661dd38.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e3fb3330-e6fd-4932-8cac-4fca7661dd38.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e4551d8f-40a3-4a32-b75c-a236d34d5c87.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e4551d8f-40a3-4a32-b75c-a236d34d5c87.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e4551d8f-40a3-4a32-b75c-a236d34d5c87.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e7e883bd-1719-417f-a2aa-facb5321ab06.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e7e883bd-1719-417f-a2aa-facb5321ab06.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e7e883bd-1719-417f-a2aa-facb5321ab06.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e8a941cf-760a-47b4-9759-1a9755b5b1a4.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e8a941cf-760a-47b4-9759-1a9755b5b1a4.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e8a941cf-760a-47b4-9759-1a9755b5b1a4.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/e9f8abb1-0bab-41a4-9351-84b74f3ff668.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/e9f8abb1-0bab-41a4-9351-84b74f3ff668.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/e9f8abb1-0bab-41a4-9351-84b74f3ff668.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ea754a3d-c56e-47ea-a1ff-2fad35ee6d7a.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ea754a3d-c56e-47ea-a1ff-2fad35ee6d7a.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ea754a3d-c56e-47ea-a1ff-2fad35ee6d7a.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ec696e1f-332f-46a1-931a-b703ff4c3a22.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ec696e1f-332f-46a1-931a-b703ff4c3a22.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ec696e1f-332f-46a1-931a-b703ff4c3a22.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ee1cc7c5-c4fe-4a2a-8e01-8773950fbc06.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ee1cc7c5-c4fe-4a2a-8e01-8773950fbc06.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ee1cc7c5-c4fe-4a2a-8e01-8773950fbc06.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ee622e8f-480f-4c75-a3c0-038cb7636831.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ee622e8f-480f-4c75-a3c0-038cb7636831.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ee622e8f-480f-4c75-a3c0-038cb7636831.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ef5a4575-8ca3-4760-959a-e612ded13cc8.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ef5a4575-8ca3-4760-959a-e612ded13cc8.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ef5a4575-8ca3-4760-959a-e612ded13cc8.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/f380c7a3-26a6-4a9f-9916-6fb2feca217d.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/f380c7a3-26a6-4a9f-9916-6fb2feca217d.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/f380c7a3-26a6-4a9f-9916-6fb2feca217d.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/f440e094-db9f-445c-a845-e5a59d46e3b5.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/f440e094-db9f-445c-a845-e5a59d46e3b5.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/f440e094-db9f-445c-a845-e5a59d46e3b5.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/f59537fe-3ab1-4401-bc36-97f1cc1101fc.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/f59537fe-3ab1-4401-bc36-97f1cc1101fc.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/f59537fe-3ab1-4401-bc36-97f1cc1101fc.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/f7ed4a27-3aa7-40ec-9bd1-5dec090e0405.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/f7ed4a27-3aa7-40ec-9bd1-5dec090e0405.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/f7ed4a27-3aa7-40ec-9bd1-5dec090e0405.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/fb2e261d-3804-4994-abca-c130ed138f2c.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/fb2e261d-3804-4994-abca-c130ed138f2c.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/fb2e261d-3804-4994-abca-c130ed138f2c.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154319/artifacts/ffd97434-63af-4044-94f6-38dfd11c6bcf.mp3 b/apps/backend/.runtime.backup.20260319-154319/artifacts/ffd97434-63af-4044-94f6-38dfd11c6bcf.mp3 deleted file mode 100644 index 22f1faae..00000000 --- a/apps/backend/.runtime.backup.20260319-154319/artifacts/ffd97434-63af-4044-94f6-38dfd11c6bcf.mp3 +++ /dev/null @@ -1 +0,0 @@ -fake-audio \ No newline at end of file diff --git a/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3 b/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3 deleted file mode 100644 index 95d89e89..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3 and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3-shm b/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3-shm deleted file mode 100644 index 436a1255..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3-shm and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3-wal b/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3-wal deleted file mode 100644 index 37ad2567..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154438/analysis_runs.sqlite3-wal and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154438/artifacts/48655048-2e1f-46a1-a43e-2f7850e94e48.mp3 b/apps/backend/.runtime.backup.20260319-154438/artifacts/48655048-2e1f-46a1-a43e-2f7850e94e48.mp3 deleted file mode 100644 index bdef0b7a..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154438/artifacts/48655048-2e1f-46a1-a43e-2f7850e94e48.mp3 and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3 b/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3 deleted file mode 100644 index 95d89e89..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3 and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3-shm b/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3-shm deleted file mode 100644 index fe9ac284..00000000 Binary files a/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3-shm and /dev/null differ diff --git a/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3-wal b/apps/backend/.runtime.backup.20260319-154710/analysis_runs.sqlite3-wal deleted file mode 100644 index e69de29b..00000000 diff --git a/apps/backend/analysis_runtime.py b/apps/backend/analysis_runtime.py index c7da375a..a3e2a787 100644 --- a/apps/backend/analysis_runtime.py +++ b/apps/backend/analysis_runtime.py @@ -957,7 +957,7 @@ def recover_incomplete_attempts(self) -> None: conn.execute( """ UPDATE measurement_outputs - SET status = 'queued', updated_at = ? + SET status = 'interrupted', updated_at = ? WHERE status = 'running' """, (now,), @@ -965,7 +965,7 @@ def recover_incomplete_attempts(self) -> None: conn.execute( """ UPDATE symbolic_extraction_attempts - SET status = 'queued', updated_at = ? + SET status = 'interrupted', updated_at = ? WHERE status = 'running' """, (now,), diff --git a/apps/backend/analyze.py b/apps/backend/analyze.py index 05beab4a..9b5c726f 100644 --- a/apps/backend/analyze.py +++ b/apps/backend/analyze.py @@ -70,11 +70,94 @@ def _write_wav_pcm16(path: str, audio: np.ndarray, sample_rate: int) -> None: wav_file.writeframes(interleaved.tobytes()) +def _demucs_chunked_inference(model, mix, device, segment_seconds=7.8, overlap=0.25): + """Run Demucs inference in overlapping chunks to bound memory usage. + + Instead of feeding the entire song through the model at once (which + requires holding all intermediate activations — easily 10-15 GB for a + 5-minute track), this processes ~8-second segments with a cross-fade + overlap and blends them together. + + Args: + model: HDemucs model instance (already on device, eval mode). + mix: Tensor of shape [C, T] (stereo waveform at model sample rate). + device: torch device string. + segment_seconds: Length of each chunk in seconds (default 7.8s, + matching the original Demucs default). + overlap: Fraction of segment used for cross-fade blending (0.25 = 25%). + + Returns: + Tensor of shape [num_sources, C, T]. + """ + import torch + + sample_rate = 44100 # HDEMUCS_HIGH_MUSDB_PLUS target rate + segment_length = int(segment_seconds * sample_rate) + total_length = mix.shape[-1] + + # Short audio — process in one shot (no chunking overhead needed) + if total_length <= segment_length: + with torch.no_grad(): + sources = model(mix.unsqueeze(0).to(device)) + return sources.squeeze(0).cpu() + + overlap_frames = int(segment_length * overlap) + stride = segment_length - overlap_frames + num_sources = len(model.sources) + channels = mix.shape[0] + + # Pre-allocate output and weight buffers + out = torch.zeros(num_sources, channels, total_length) + weight = torch.zeros(total_length) + + # Triangular cross-fade window for smooth blending + ramp = torch.linspace(0, 1, overlap_frames + 2)[1:-1] + window = torch.ones(segment_length) + window[:overlap_frames] = ramp + window[-overlap_frames:] = ramp.flip(0) + + offset = 0 + chunk_idx = 0 + while offset < total_length: + end = min(offset + segment_length, total_length) + chunk = mix[:, offset:end] + + # Pad the last chunk if shorter than segment_length + if chunk.shape[-1] < segment_length: + pad_amount = segment_length - chunk.shape[-1] + chunk = torch.nn.functional.pad(chunk, (0, pad_amount)) + + with torch.no_grad(): + chunk_sources = model(chunk.unsqueeze(0).to(device)) # [1, S, C, seg] + chunk_sources = chunk_sources.squeeze(0).cpu() # [S, C, seg] + + actual_len = end - offset + w = window[:actual_len] + out[:, :, offset:end] += chunk_sources[:, :, :actual_len] * w + weight[offset:end] += w + + del chunk, chunk_sources + chunk_idx += 1 + if chunk_idx % 4 == 0: + gc.collect() + + offset += stride + + # Normalize by accumulated weights + weight = weight.clamp(min=1e-8) + out /= weight + + return out + + def separate_stems(audio_path: str, output_dir: str | None = None): """Run torchaudio Hybrid Demucs separation and return written source stem paths. Uses torchaudio.pipelines.HDEMUCS_HIGH_MUSDB_PLUS (in-process, no archived demucs package dependency). Falls back gracefully if torchaudio is missing. + + Audio is processed in overlapping ~8-second chunks to keep memory usage + bounded (~1-2 GB) regardless of track length. """ try: import torch @@ -106,10 +189,9 @@ def separate_stems(audio_path: str, output_dir: str | None = None): if file_sr != target_sr: mix = F.resample(mix, file_sr, target_sr) - print(f"[demucs] separating on {device}...", file=sys.stderr) - with torch.no_grad(): - sources = model(mix.unsqueeze(0).to(device)) # [1, sources, C, T] - sources = sources.squeeze(0) # [sources, C, T] + duration_s = mix.shape[-1] / target_sr + print(f"[demucs] separating {duration_s:.0f}s on {device} (chunked)...", file=sys.stderr) + sources = _demucs_chunked_inference(model, mix, device) source_names = list(model.sources) if len(source_names) == 0: diff --git a/apps/backend/tests/test_analysis_runtime.py b/apps/backend/tests/test_analysis_runtime.py index 45c0c2f0..8934f4db 100644 --- a/apps/backend/tests/test_analysis_runtime.py +++ b/apps/backend/tests/test_analysis_runtime.py @@ -373,8 +373,8 @@ def test_recover_interrupted_attempts_requeues_measurement_and_symbolic_only(sel runtime.recover_incomplete_attempts() snapshot = runtime.get_run(created["runId"]) - self.assertEqual(snapshot["stages"]["measurement"]["status"], "queued") - self.assertEqual(snapshot["stages"]["symbolicExtraction"]["status"], "queued") + self.assertEqual(snapshot["stages"]["measurement"]["status"], "interrupted") + self.assertEqual(snapshot["stages"]["symbolicExtraction"]["status"], "interrupted") self.assertEqual(snapshot["stages"]["interpretation"]["status"], "interrupted") def test_interpretation_attempts_store_grounding_columns(self) -> None: diff --git a/apps/ui/src/App.tsx b/apps/ui/src/App.tsx index 37322253..0ea625d0 100644 --- a/apps/ui/src/App.tsx +++ b/apps/ui/src/App.tsx @@ -1087,7 +1087,7 @@ export default function App() { -
+
@@ -1100,7 +1100,7 @@ export default function App() { className="flex-grow bg-bg-card border border-border rounded-b-sm p-4 relative flex flex-col" > {audioUrl && audioFile ? ( -
+
{shouldShowStatusPanel && ( diff --git a/apps/ui/src/components/AnalysisResults.tsx b/apps/ui/src/components/AnalysisResults.tsx index d36e7468..5d8bef71 100644 --- a/apps/ui/src/components/AnalysisResults.tsx +++ b/apps/ui/src/components/AnalysisResults.tsx @@ -287,97 +287,124 @@ export function AnalysisResults({ -
-
-
-
-
- -
- TEMPO - -
-
-
-

{finalBpm}

- BPM +
+ {/* TEMPO */} +
+
+
+ + TEMPO
- -
+ +
+
+ {finalBpm} + BPM +
+
+
-

- CONF: {Math.min(Math.round(phase1.bpmConfidence * 100), 100) + '%'} -

+ + CONF {Math.min(Math.round(phase1.bpmConfidence * 100), 100)}% +
-
-
-
-
- -
- KEY SIG - - {lowConfidenceIndicator(keyIsApproximate)} -
+ {/* KEY SIG */} +
+
+
+ + KEY SIG
-
-

{finalKey}

+
+ + {lowConfidenceIndicator(keyIsApproximate)}
- -
+
+
+ {finalKey} +
+
+
-

- CONF: {(phase1.keyConfidence * 100).toFixed(0)}% -

+ + CONF {(phase1.keyConfidence * 100).toFixed(0)}% +
-
-
-
-
- - METER + {/* METER */} +
+
+
+ + METER
-

{phase1.timeSignature}

-

DETECTED

+
+ {phase1.timeSignature} +
+ DETECTED
-
-
-
-
- - CHARACTER + {/* CHARACTER — genre primary, characteristic pills secondary */} +
+
+
+ + CHARACTER
- {characteristicPills.length > 0 ? ( -
- {characteristicPills.map((item, idx) => ( - - {shortenCharacteristicName(item.name)} - - ))} -
- ) : ( -

SCANNING...

- )} + {phase1.genreDetail && }
+ {phase1.genreDetail ? ( + <> +
+ + {phase1.genreDetail.genre} + +
+ + {phase1.genreDetail.genreFamily} + {phase1.genreDetail.secondaryGenre && ` / ${phase1.genreDetail.secondaryGenre}`} + +
+
+ +
+ + CONF {Math.round(phase1.genreDetail.confidence * 100)}% + +
+ + ) : characteristicPills.length > 0 ? ( +
+ {characteristicPills.map((item, idx) => ( + + {shortenCharacteristicName(item.name)} + + ))} +
+ ) : ( + SCANNING... + )}
diff --git a/apps/ui/src/components/AnalysisStatusPanel.tsx b/apps/ui/src/components/AnalysisStatusPanel.tsx index 13b352e0..d4bcb689 100644 --- a/apps/ui/src/components/AnalysisStatusPanel.tsx +++ b/apps/ui/src/components/AnalysisStatusPanel.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Activity, Clock3, Radio, TimerReset, RotateCcw, XCircle } from 'lucide-react'; +import { RotateCcw, Square } from 'lucide-react'; import { AnalysisRunSnapshot, AnalysisStageStatus, BackendAnalysisEstimate } from '../types'; @@ -14,22 +14,19 @@ interface AnalysisStatusPanelProps { onRetryInterpretation?: () => void; } -function formatSecondsLabel(seconds: number): string { - const totalSeconds = Math.max(0, Math.round(seconds)); +function formatElapsed(ms: number): string { + const totalSeconds = Math.max(0, Math.round(ms / 1000)); const minutes = Math.floor(totalSeconds / 60); const remaining = totalSeconds % 60; - if (minutes > 0) { - return `${minutes}m ${remaining}s`; - } - return `${remaining}s`; -} - -function formatElapsedLabel(elapsedMs: number): string { - return formatSecondsLabel(elapsedMs / 1000); + return minutes > 0 + ? `${minutes}:${remaining.toString().padStart(2, '0')}` + : `0:${remaining.toString().padStart(2, '0')}`; } function formatEstimateRange(estimate: BackendAnalysisEstimate): string { - return `${formatSecondsLabel(estimate.totalLowMs / 1000)}-${formatSecondsLabel(estimate.totalHighMs / 1000)}`; + const lo = Math.round(estimate.totalLowMs / 1000); + const hi = Math.round(estimate.totalHighMs / 1000); + return `${lo}s-${hi}s`; } function computeProgress(elapsedMs: number, estimate?: BackendAnalysisEstimate | null): { percent: number; indeterminate: boolean } { @@ -42,79 +39,59 @@ function computeProgress(elapsedMs: number, estimate?: BackendAnalysisEstimate | }; } -function stageDisplayName(stageKey: 'measurement' | 'symbolicExtraction' | 'interpretation'): string { - switch (stageKey) { - case 'measurement': - return 'Measurement'; - case 'symbolicExtraction': - return 'Symbolic Extraction'; - case 'interpretation': - return 'AI Interpretation'; - default: - return stageKey; - } -} +type StageKey = 'measurement' | 'symbolicExtraction' | 'interpretation'; -function stageStatusLabel(status: AnalysisStageStatus): string { - return status.replace(/_/g, ' '); -} +const STAGE_LABELS: Record = { + measurement: 'MEASURE', + symbolicExtraction: 'SYMBOLIC', + interpretation: 'INTERPRET', +}; -function statusClass(status: AnalysisStageStatus): string { +function statusDotClass(status: AnalysisStageStatus): string { switch (status) { case 'running': case 'queued': - return 'text-accent border-accent/30 bg-accent/10'; + return 'bg-accent animate-pulse'; case 'completed': - return 'text-success border-success/30 bg-success/10'; + return 'bg-success'; case 'failed': case 'interrupted': - return 'text-error border-error/30 bg-error/10'; + return 'bg-error'; case 'not_requested': - return 'text-warning border-warning/30 bg-warning/10'; + return 'bg-text-secondary/30'; default: - return 'text-text-secondary border-border bg-bg-panel'; + return 'bg-border'; } } -function stageSummary(run: AnalysisRunSnapshot | null, stageKey: 'measurement' | 'symbolicExtraction' | 'interpretation'): string { - if (!run) { - return 'Awaiting run state.'; - } - - const stage = - stageKey === 'measurement' - ? run.stages.measurement - : stageKey === 'symbolicExtraction' - ? run.stages.symbolicExtraction - : run.stages.interpretation; - - if (stage.error?.message) { - return stage.error.message; - } - - switch (stage.status) { - case 'queued': - return 'Queued locally.'; +function statusTextClass(status: AnalysisStageStatus): string { + switch (status) { case 'running': - return 'Currently processing.'; - case 'blocked': - return 'Waiting for measurement to finish.'; - case 'ready': - return 'Ready for retry.'; + case 'queued': + return 'text-accent'; case 'completed': - return stageKey === 'measurement' - ? 'Authoritative local measurement complete.' - : stageKey === 'symbolicExtraction' - ? 'Best-effort symbolic output available.' - : 'Grounded musical interpretation available.'; + return 'text-success'; case 'failed': - return 'Stage failed.'; case 'interrupted': - return 'Stage was interrupted and can be retried.'; + return 'text-error'; case 'not_requested': - return 'Not requested for this run.'; + return 'text-text-secondary/50'; default: - return 'Awaiting stage state.'; + return 'text-text-secondary'; + } +} + +function statusLabel(status: AnalysisStageStatus): string { + switch (status) { + case 'running': return 'RUNNING'; + case 'queued': return 'QUEUED'; + case 'completed': return 'DONE'; + case 'failed': return 'FAILED'; + case 'interrupted': return 'STOPPED'; + case 'not_requested': return 'SKIP'; + case 'blocked': return 'WAIT'; + case 'ready': return 'READY'; + default: return String(status).toUpperCase(); } } @@ -130,145 +107,108 @@ export function AnalysisStatusPanel({ }: AnalysisStatusPanelProps) { const progress = computeProgress(elapsedMs, estimate); - const stageCards = [ - { - key: 'measurement' as const, - status: run?.stages.measurement.status ?? 'queued', - onRetry: onRetryMeasurement, - }, - { - key: 'symbolicExtraction' as const, - status: run?.stages.symbolicExtraction.status ?? 'blocked', - onRetry: onRetrySymbolic, - }, - { - key: 'interpretation' as const, - status: run?.stages.interpretation.status ?? 'blocked', - onRetry: onRetryInterpretation, - }, + const stages: { key: StageKey; status: AnalysisStageStatus; onRetry?: () => void }[] = [ + { key: 'measurement', status: run?.stages.measurement.status ?? 'queued', onRetry: onRetryMeasurement }, + { key: 'symbolicExtraction', status: run?.stages.symbolicExtraction.status ?? 'blocked', onRetry: onRetrySymbolic }, + { key: 'interpretation', status: run?.stages.interpretation.status ?? 'blocked', onRetry: onRetryInterpretation }, ]; return ( -
-
-
-
-

Analysis Run

-

Canonical Stage Monitor

-

- Measurement is authoritative. Symbolic extraction and AI interpretation are tracked independently. -

-

- {run ? `RUN ${run.runId}` : 'Awaiting run id'} -

-
-
-
- - {isActive ? 'Monitoring' : 'Idle'} -
- {onStopMonitoring && isActive && ( - - )} -
+
+ {/* Header row */} +
+
+ Analysis Run + {run && ( + + {run.runId} + + )}
- -
-
-
- - Request State -
-

- {isActive ? 'Polling canonical run' : 'Awaiting next action'} -

-
- -
-
- - Elapsed -
-

{formatElapsedLabel(elapsedMs)}

+
+
+
+ {formatElapsed(elapsedMs)}
- -
-
- - Estimated local pipeline -
-

- {estimate ? formatEstimateRange(estimate) : 'Unavailable'} -

-
-
- -
-
- Progress - - {progress.indeterminate ? 'Estimating...' : `${Math.round(progress.percent)}%`} + {estimate && ( + + est {formatEstimateRange(estimate)} -
-
- {progress.indeterminate ? ( -
- ) : ( -
= 95 ? 'animate-pulse' : ''}`} - style={{ width: `${progress.percent}%` }} - /> - )} -
+ )} + {onStopMonitoring && isActive && ( + + )}
-
- {stageCards.map((card) => ( -
-
- {stageDisplayName(card.key)} - - {stageStatusLabel(card.status)} - -
-

{stageSummary(run, card.key)}

- {card.onRetry && (card.status === 'failed' || card.status === 'interrupted' || card.status === 'ready') && ( - - )} -
- ))} - - {estimate?.stages?.length ? ( - estimate.stages.map((stage) => ( -
-
- {stage.label} - - {formatSecondsLabel(stage.lowMs / 1000)}-{formatSecondsLabel(stage.highMs / 1000)} + {/* Stage pipeline */} +
+ {stages.map((stage, i) => { + const isRetryable = stage.onRetry && (stage.status === 'failed' || stage.status === 'interrupted' || stage.status === 'ready'); + return ( +
+
+ + {STAGE_LABELS[stage.key]} + +
+
+
+ + {statusLabel(stage.status)} + {isRetryable && ( + + )}
- )) - ) : ( -
- Backend estimate unavailable for this request. -
- )} + ); + })} +
+ + {/* Progress bar */} +
+
+ {progress.indeterminate ? ( +
+ ) : ( +
= 95 ? 'animate-pulse' : ''}`} + style={{ width: `${progress.percent}%` }} + /> + )} +
+
+ + {progress.indeterminate ? 'estimating' : `${Math.round(progress.percent)}%`} + +
); diff --git a/apps/ui/src/components/MeasurementDashboard.tsx b/apps/ui/src/components/MeasurementDashboard.tsx index 6e628bfb..52dcea0b 100644 --- a/apps/ui/src/components/MeasurementDashboard.tsx +++ b/apps/ui/src/components/MeasurementDashboard.tsx @@ -1,4 +1,5 @@ import React, { useMemo, useState } from 'react'; +import { motion } from 'motion/react'; import { Phase1Result } from '../types'; import { generateMixDoctorReport } from '../services/mixDoctor'; @@ -223,78 +224,185 @@ export function MeasurementDashboard({
{/* 1. Core Metrics */}
- - - {phase1.bpmPercival !== undefined && phase1.bpmPercival !== null && ( - - )} - {phase1.bpmAgreement !== undefined && phase1.bpmAgreement !== null && ( - - )} - {phase1.bpmSource != null && phase1.bpmSource !== "rhythm_extractor" && ( - - )} - - - {phase1.keyProfile && ( - - )} - {phase1.tuningFrequency !== undefined && phase1.tuningFrequency !== null && ( - - )} - {phase1.tuningCents !== undefined && phase1.tuningCents !== null && ( - - )} - - - {phase1.sampleRate !== undefined && phase1.sampleRate !== null && ( - - )} - {phase1.genreDetail && ( - <> -
- - Genre + {/* Hero Grid */} +
+ {/* BPM Tile */} +
+ Tempo +
+ + {formatNumber(phase1.bpm, 1)} + BPM
- - - {phase1.genreDetail.secondaryGenre && ( - + {phase1.bpmDoubletime === true && phase1.bpmRawOriginal != null && ( + + corrected from {formatNumber(phase1.bpmRawOriginal, 1)} + )} - - +
+
+ +
+
+ + CONF {Math.round(phase1.bpmConfidence * 100)}% + + {phase1.bpmAgreement !== undefined && phase1.bpmAgreement !== null && ( + + {phase1.bpmAgreement ? 'CROSS-CHECK ✓' : 'CROSS-CHECK ✗'} + + )} +
+
+ {phase1.bpmPercival !== undefined && phase1.bpmPercival !== null && ( + + Percival: {formatNumber(phase1.bpmPercival, 1)} + + )} + {phase1.bpmSource != null && phase1.bpmSource !== "rhythm_extractor" && ( + + Source: {phase1.bpmSource.replace(/_/g, ' ')} + + )} +
+ + {/* Key Tile */} +
+ Key Signature +
+ + {phase1.key || '—'} + +
+ {phase1.keyProfile && ( + + Profile: {phase1.keyProfile} + + )} +
+
+ +
+ + CONF {Math.round(phase1.keyConfidence * 100)}% + +
+
+ + {/* Duration / Format Tile */} +
+ Duration +
+ + {formatDuration(phase1.durationSeconds)} + +
+
+
+ Meter + {phase1.timeSignature} +
+ {phase1.sampleRate !== undefined && phase1.sampleRate !== null && ( +
+ Sample Rate + {(phase1.sampleRate / 1000).toFixed(1)} kHz +
+ )} +
+
+
+ + {/* Genre Banner */} + {phase1.genreDetail && ( +
+
+
+
+
0.8 ? 'animate-pulse' : ''}`} /> + Genre Classification +
+ + {phase1.genreDetail.genre} + +
+ {phase1.genreDetail.genreFamily} + {phase1.genreDetail.secondaryGenre && ( + <> + / + {phase1.genreDetail.secondaryGenre} + + )} +
+
+
+ Conf + + {Math.round(phase1.genreDetail.confidence * 100)}% + +
+
+ + {/* Genre fingerprint — top scores as horizontal bars */} + {phase1.genreDetail.topScores && phase1.genreDetail.topScores.length > 0 && ( +
+ Genre Fingerprint +
+ {phase1.genreDetail.topScores.slice(0, 5).map((score, i) => { + const maxScore = phase1.genreDetail!.topScores[0]?.score || 1; + const pct = (score.score / maxScore) * 100; + return ( +
+ + {score.genre} + +
+ +
+ + {(score.score * 100).toFixed(0)} + +
+ ); + })} +
+
+ )} +
+ )} + + {/* Tuning Detail */} + {(phase1.tuningFrequency !== undefined && phase1.tuningFrequency !== null) && ( +
+ Tuning + + {formatNumber(phase1.tuningFrequency, 1)} Hz + + {phase1.tuningCents !== undefined && phase1.tuningCents !== null && ( + 10 ? 'text-warning/70' : 'text-text-secondary/50' + }`}> + {phase1.tuningCents >= 0 ? '+' : ''}{formatNumber(phase1.tuningCents, 1)} cents + + )} +
)}
diff --git a/apps/ui/tests/smoke/error-states.spec.ts b/apps/ui/tests/smoke/error-states.spec.ts index 11075502..b55755df 100644 --- a/apps/ui/tests/smoke/error-states.spec.ts +++ b/apps/ui/tests/smoke/error-states.spec.ts @@ -523,7 +523,7 @@ test('stop monitoring during interpretation preserves completed measurement with await expect(signalPanel).toBeVisible(); await expect(signalPanel.getByText('Signal Monitor').first()).toBeVisible(); await expect(signalPanel.getByTestId('waveform-player')).toBeVisible(); - await expect(signalPanel.getByText('Canonical Stage Monitor')).toBeVisible(); + await expect(signalPanel.getByText('Analysis Run')).toBeVisible(); const playButton = signalPanel.getByTestId('waveform-play-toggle'); await expect(playButton).toBeVisible();