Commit Graph

51 Commits

Author SHA1 Message Date
ruinivist f76534b632 perf: optimize editorcanvas memoization and debounce shiki highlighting 2026-06-04 07:51:05 +00:00
ruinivist 01300c7061 fix: fallback to custom uuid generation for http contexts release-v1.6 2026-06-02 15:33:00 +00:00
ruinivist 7d36b6c9ea feat: code blocks with shiki highlighting 2026-06-02 15:20:42 +00:00
ruinivist e5eaa4f8d7 perf: eliminate layout thrashing and array allocations during drawing (#14) 2026-06-02 13:49:21 +05:30
ruinivist d8d917d315 fix: copy patches to dockerfile release-v1.5 2026-06-01 22:42:02 +00:00
ruinivist 5887baf324 fix: add decisions to AGENTS.md 2026-06-01 22:15:13 +00:00
ruinivist 8db56d9ab7 fix: bun patch for excalidraw's weird pen sizes ( #3693 there is still open ) 2026-06-01 22:02:47 +00:00
ruinivist 6cc028305a chore: add formatting 2026-06-01 21:34:05 +00:00
ruinivist f64d5a73d2 feat: read only publish of drawings 2026-06-01 21:31:11 +00:00
ruinivist 22f13820ab docs: some decisions 2026-06-01 19:18:39 +00:00
ruinivist 459993a78d memoize EditorCanvas to prevent unnecessary re-renders 2026-06-02 00:26:01 +05:30
ruinivist 95d27c5142 feat: bundle default styles guide release-v1.4 2026-05-31 19:14:02 +00:00
ruinivist b60b921ff8 chore: gitignore 2026-05-31 18:17:00 +00:00
ruinivist b3e79d839e fix: style guide release-v1.3 2026-05-31 18:14:41 +00:00
ruinivist 0d9dd742b2 feat: add a styles guide 2026-05-31 14:54:46 +00:00
ruinivist acce5ed05c docs: add tl;dr section 2026-05-31 14:54:38 +00:00
ruinivist 6e3d18ce94 refactor: remove drawing load fallback handling 2026-05-31 14:41:41 +00:00
ruinivist b4a540214b feat: add optional styles guide resource 2026-05-31 14:36:51 +00:00
ruinivist 25bf171f6b refactor: reorganize src structure 2026-05-31 12:46:21 +00:00
ruinivist f349617427 fix: skip no-op scene revision bumps 2026-05-31 12:35:57 +00:00
ruinivist d7a0a5d076 test: remove negative legacy cases 2026-05-31 12:31:34 +00:00
ruinivist 83191055bd refactor: drop legacy db and scene fallback 2026-05-31 12:29:58 +00:00
ruinivist ab786a7861 refactor: split app shell 2026-05-31 12:17:18 +00:00
ruinivist 6911033c1a fix: prevent stale drawing saves 2026-05-31 11:47:20 +00:00
ruinivist c13c137e24 feat: handle 499 cases as no throw on server
* fix(api): gracefully handle aborted requests

When a client closes a connection early (e.g. while `await request.text()` is parsing), it throws a `DOMException` with `name: "AbortError"`. Previously, this hit our catch block, was logged as an unhandled exception to the console via `console.error`, and returned a `500` status. This resulted in an alarming error message which looked like a server crash, but the server actually stayed up.

This commit updates `errorResponse` in `src/api.ts` to intercept `AbortError` and handle it properly. If we detect an `AbortError`, we now log a simple `400 Bad Request` instead, without writing out the `DOMException` stack trace.

* fix(api): gracefully handle aborted requests

When a client closes a connection early (e.g. while `await request.text()` is parsing), it throws a `DOMException` with `name: "AbortError"`. Previously, this hit our catch block, was logged as an unhandled exception to the console via `console.error`, and returned a `500` status. This resulted in an alarming error message which looked like a server crash, but the server actually stayed up.

This commit updates `errorResponse` in `src/api.ts` to intercept `AbortError` and handle it properly. If we detect an `AbortError`, we now log a simple `499 Client Closed Request` instead, without writing out the `DOMException` stack trace.

---------

Co-authored-by: ruinivist <179396038+ruinivist@users.noreply.github.com>
2026-05-31 16:48:02 +05:30
ruinivist 1b0024d78f feat: add mcp scene api 2026-05-31 00:08:51 +00:00
ruinivist 570baf83ab feat: implement manual save with toast notification (#4)
* feat: implement manual save via Ctrl+S with toast and increase autosave interval

- Increased autosave interval to 30s.
- Captured Ctrl+S / Meta+S to trigger manual save.
- Added a minimalistic, translucent toast in the top right to display saving status.

* feat: implement manual save via Ctrl+S with toast and increase autosave interval

- Increased autosave interval to 30s.
- Captured Ctrl+S / Meta+S to trigger manual save.
- Added a minimalistic, translucent toast in the top right to display saving status.

---------

Co-authored-by: ruinivist <179396038+ruinivist@users.noreply.github.com>
2026-05-30 23:40:01 +05:30
ruinivist 7e0ec4b1c4 fix: remove broken code splitting release-v1.2 2026-05-30 17:15:39 +00:00
ruinivist 9ba2d91d05 feat: use caddy to serve static bundles to reduce manually reinventing it all in bun server 2026-05-30 16:23:38 +00:00
ruinivist e61d7c9cbd fix: serve brotli-only prod assets 2026-05-30 13:57:30 +00:00
ruinivist 9b44356782 fix: rem localhost bind inside of container release-1.1 2026-05-26 22:05:50 +00:00
ruinivist a035162a6b fix: docs to localhost bind 2026-05-26 21:56:53 +00:00
ruinivist a19073d1f0 feat: publish to tag "latest" 2026-05-26 21:36:22 +00:00
ruinivist 10abe4a31f docs: update README 2026-05-26 20:16:31 +00:00
ruinivist af6d70fe6e fix: change default bind to be localhost 2026-05-26 20:15:26 +00:00
ruinivist de02c29fc9 ci: publish to ghcr release-1.0 2026-05-26 20:03:13 +00:00
ruinivist fb1d9621e5 docs: update README 2026-05-26 19:50:28 +00:00
ruinivist b634519d6e fix: container js/css resolution path 2026-05-26 19:33:30 +00:00
ruinivist 658edf5d16 fix: align sidebar toggle size 2026-05-24 23:24:41 +02:00
ruinivist 55b908ff24 fix: align file rows 2026-05-24 23:18:16 +02:00
ruinivist 098f817d6e fix: align sidebar controls 2026-05-24 23:10:14 +02:00
ruinivist c82f841ba3 chore: rename app title 2026-05-24 23:01:07 +02:00
ruinivist 817bd741a8 refactor: remove sidebar exports 2026-05-24 22:57:44 +02:00
ruinivist 44b2f599e6 style: align sidebar typography 2026-05-24 22:55:30 +02:00
ruinivist 150cb0de13 feat: theme-aware custom controls 2026-05-24 22:35:46 +02:00
ruinivist b475189598 feat: refine mobile drawer trigger 2026-05-24 22:17:26 +02:00
ruinivist ebd283627e chore: remove save status indicator 2026-05-24 19:05:23 +00:00
ruinivist 5f182ec302 chore: gitingore 2026-05-24 18:53:24 +00:00
ruinivist cbb77f1b57 chore: remove unused files 2026-05-24 18:52:54 +00:00
ruinivist 1e022efa1d feat: dark mode by default 2026-05-24 18:36:09 +00:00