t8y2
f456ddd979
perf: full-stack performance and security hardening
...
Frontend performance:
- Debounce DataGrid search (150ms) and replace O(n) row wrapping with index array
- Replace QueryStore deep watcher with targeted field-level persistence snapshot
- Extract shared nodeConfig computed in TreeItem (eliminates 15x redundant getConfig calls)
- Clear tab result data on close to free memory
- Add LRU eviction for completion caches (50 entry cap)
- Replace savedSql version string join with numeric counter
Memory leak fixes:
- Store Tauri event unlisten handles and clean up on unmount
- Clean up DataGrid search timer on unmount
Backend security & resource management:
- Add 50MB request body size limit
- Reject file uploads >100MB and SQL files >200MB
- Clean up SSE channels after transfer/import completes
- Recover from poisoned mutex instead of panicking
- Delete temporary upload files after preview
- Validate SQL file paths to prevent directory traversal
2026-05-11 00:18:09 +08:00
t8y2
68d8776e8f
feat(mcp): notify desktop UI to reload after connection add/remove
...
Add /reload-connections bridge route that emits mcp-reload-connections
event, triggering the frontend to re-read connections from SQLite.
2026-05-08 12:44:16 +08:00
t8y2
3acd9280ac
chore: add oxfmt + husky + lint-staged for code formatting and CI format checks
2026-05-05 15:41:34 +08:00
t8y2
bdd8b3fa03
refactor: split App.vue into composables and layout components
...
Extract 11 composables and 5 layout components from App.vue, reducing it
from 1921 to 327 lines. Unify dialog overlay style across DialogContent
and DialogScrollContent for consistent backdrop appearance.
2026-05-05 04:14:00 +08:00