Horizontal42
329c13fb7b
invalidate cached drag rects on list scroll, drop unused jsdom deps
2026-08-09 16:12:15 +03:00
google-labs-jules[bot]
b318d39d15
Perf: Cache bounds during doc reordering to prevent layout thrashing
...
Co-authored-by: Horizontal42 <75383519+Horizontal42@users.noreply.github.com>
2026-08-09 16:09:32 +03:00
Horizontal42
59df3a7264
flatten parser into a Pratt parser
2026-08-09 16:00:19 +03:00
Horizontal42
d3731be6ef
add missing evaluation error tests
2026-08-09 15:59:56 +03:00
Horizontal42
55d8401a44
batch historical rates IPC calls with a pooled http client
2026-08-09 15:59:44 +03:00
Horizontal42
bba294c6d5
extract renderDocList helpers
2026-08-09 15:59:19 +03:00
Horizontal42
423d22d462
add evaluator quantity conversion tests
2026-08-09 15:59:13 +03:00
Horizontal42
bcb38c9c1c
split evaluate switch into per-kind helpers
2026-08-09 15:58:53 +03:00
Horizontal42
54c9cc63b0
surface non-EvalError exceptions in evaluation engine
2026-08-09 15:57:35 +03:00
Horizontal42
62ef8cc8cd
assert console availability directly instead of matching an error message
2026-08-09 15:57:33 +03:00
Horizontal42
5554205193
document PctOp usage
2026-08-09 15:57:30 +03:00
Horizontal42
2762e4461c
split extensions load into isolated helpers
2026-08-09 15:57:28 +03:00
Horizontal42
3a657a2d5d
dedupe evaluation logic in Workspace
2026-08-09 15:57:25 +03:00
Horizontal42
edfa55e4dc
extract sparkline SVG rendering into its own module
2026-08-09 15:57:22 +03:00
Horizontal42
a384b98dcb
add isCalendarUnit edge case tests
2026-08-09 15:57:20 +03:00
Horizontal42
8f200bcd61
add engine vocab module tests
2026-08-09 15:57:17 +03:00
Horizontal42
460a12e695
improve date order detection tests with real Intl calls
2026-08-09 15:57:15 +03:00
Horizontal42
dcac3ae425
add registry tests
2026-08-09 15:57:13 +03:00
Horizontal42
6716f1b6da
add coverage for storage utility functions
2026-08-09 15:57:10 +03:00
Horizontal42
c958f30662
Revert "rotate updater signing pubkey"
...
This reverts commit c0bea836bc .
2026-07-29 15:54:41 +03:00
Horizontal42
c0bea836bc
rotate updater signing pubkey
2026-07-29 15:46:13 +03:00
Horizontal42
40cdf22461
sync Cargo.lock with 1.2.3
2026-07-29 15:35:03 +03:00
Horizontal42
8bfe65a1c4
update tauri.conf version to 1.2.3
2026-07-29 15:35:03 +03:00
Horizontal42
2798bfcafa
bump cargo version to 1.2.3
2026-07-29 15:35:03 +03:00
Horizontal42
c63ec63e2f
bump version to 1.2.3
2026-07-29 15:35:03 +03:00
Horizontal42
08876adae8
bump postcss to patch path-traversal advisory (GHSA-r28c-9q8g-f849)
2026-07-29 15:34:54 +03:00
Horizontal42
b0f6e9e89b
run extensions in a quickjs wasm sandbox
...
replaces new Function() in the main window; per-script and per-call
interrupt deadlines, memory and stack limits, graceful skip if the
wasm module fails to load. csp script-src drops 'unsafe-eval' for
'wasm-unsafe-eval'.
2026-07-29 14:38:28 +03:00
Horizontal42
5c4f2db2d2
fix clippy collapsible_match warning in safe_name
2026-07-29 14:14:49 +03:00
Horizontal42
a6fc5b90f3
harden safe_name path validation
2026-07-29 14:14:49 +03:00
Horizontal42
1a12d75ec6
add regression test for sequence error recovery
2026-07-29 14:14:49 +03:00
Horizontal42
ca6fa6d381
cache findSheetByTitle lookups
2026-07-29 14:14:49 +03:00
Horizontal42
c89242b626
debounce variable highlight scanning in editor
2026-07-29 14:14:49 +03:00
Horizontal42
5ccb46b01c
cache sheet results for numeric search
2026-07-29 14:14:49 +03:00
Horizontal42
fd93b00bf5
extract drag-and-drop logic from renderDocList
2026-07-29 14:14:49 +03:00
Horizontal42
8ef2f8b445
extract UI bindings out of initUI
2026-07-29 14:14:49 +03:00
Horizontal42
42f3611dca
split evalBin into percent/quantity arithmetic helpers
2026-07-29 14:14:49 +03:00
Horizontal42
d66cad2dcf
avoid full split() in titleFromContent
2026-07-29 14:14:48 +03:00
Horizontal42
439eec2795
add tokenizer tests
2026-07-29 14:14:48 +03:00
Horizontal42
6292bbf103
add formatter tests for formatNumber/formatValue
2026-07-29 14:14:48 +03:00
Horizontal42
adea6870fd
add parser tests for parseLine
2026-07-29 14:14:48 +03:00
Horizontal42
e70c69df52
add lexer tests for lexLine
2026-07-29 14:14:48 +03:00
Horizontal42
6a88767edf
extract evalAgg into an AGG_FUNCS lookup table
2026-07-29 14:14:48 +03:00
Horizontal42
f5b1fc038b
sync Cargo.lock with 1.2.2
2026-07-16 03:41:10 +03:00
Horizontal42
ca19042af0
update tauri.conf version to 1.2.2
2026-07-16 02:52:03 +03:00
Horizontal42
539fb6eff5
bump cargo version to 1.2.2
2026-07-16 02:49:05 +03:00
Horizontal42
c7c87257bd
bump version to 1.2.2
2026-07-16 02:44:47 +03:00
Horizontal42
68d7492dba
fix modal backdrop-click guard, re-entrancy, and monotonic clock
...
- Track window focus via performance.now() instead of suppressing all backdrop
clicks for 300ms after the modal appears. This fixes over-suppression (Ctrl+W
close-sheet now dismisses on immediate click) while keeping protection for
genuine stray refocus-clicks (native dialog closing, tray window refocus).
- Serialize concurrent askModal calls via a promise chain so a second call
queues instead of clobbering the first's handlers (was: hang on concurrent
modal show).
- Use monotonic performance.now() throughout to avoid clock-jump edge cases
with Date.now().
2026-07-16 02:42:14 +03:00
Horizontal42
087ee44f12
ignore backdrop click within 300ms of showing a modal
...
a click that focuses the window lands on the modal backdrop too, so
the update-available prompt after an unattended auto-check could get
dismissed by the very click that brought the window to front, before
it was ever seen
2026-07-16 01:14:52 +03:00
Horizontal42
6f6c3b439a
bump version to 1.2.1
2026-07-08 15:58:14 +03:00
Horizontal42
c1a7254fdf
fix arbitrary file write via write_text_file/write_image_file
...
Both Tauri commands took a raw path string straight from the frontend
and wrote to it with no validation — any code able to call invoke()
(a compromised or malicious extension script, which run with full page
privileges) could write to any path the OS user has access to, not just
one chosen through the save dialog. Move the save-file dialog into the
Rust command itself so the only path ever used is one the native dialog
returned; the frontend now only sends the content to save.
2026-07-08 15:50:13 +03:00