Commit Graph

5 Commits

Author SHA1 Message Date
foxtacles
364911dc9e
Index memory_completions(event_id, completed_at) for delete reconcile (#36)
Some checks failed
Build / build (push) Has been cancelled
The account-deletion reconcile in account.ts uses a correlated subquery
to pick the latest-per-event row from memory_completions. Without an
index whose leading column is event_id the inner subquery falls back to
scanning sqlite_autoindex_memory_completions_1, making the reconcile
O(rows^2) — observed cost in production was ~171k rows read for one
deletion against ~407 rows. With this covering index the inner becomes
a seek and the reconcile drops to ~rows*log(rows).
2026-05-06 01:07:02 +02:00
foxtacles
37a36e287b
Optimize latest memory queries (#35)
Some checks failed
Build / build (push) Has been cancelled
2026-05-02 23:15:28 +02:00
foxtacles
e36a158c69
Add latest memories page (#33)
Some checks failed
Build / build (push) Has been cancelled
2026-04-14 04:17:24 +02:00
foxtacles
daf4f6bc52
Add sitemap generation (#32)
Some checks failed
Build / build (push) Has been cancelled
2026-04-11 21:24:44 +02:00
foxtacles
93a0c46b46
Add multiplayer frontend updates (#30)
* Add multiplayer, cloud sync, crash reporting, scene player, and memories features

* Fix multiplayer overlay showing "Waiting for ..." with no names

* Fix OGL link in README

* Update README with architecture, backend setup, environment variables, and CI docs

* Fix save editor showing wrong name for orphaned save slots

Players.gsi could fall out of sync with save files during cloud sync
because the saveSlotWritten event only tracked the slot file and
History.gsi for incremental upload, not Players.gsi. This caused
slots without a matching Players.gsi entry to display the first
player's name due to a fallback to index 0.

- Track Players.gsi in saveSlotWritten handler for incremental uploads
- Remove broken fallback to player index 0 in name resolution
- Hide save slots with no Players.gsi entry from the save editor UI
2026-04-05 17:13:23 +02:00