5cb0be473c7e31145e7f791a48e84f59eb1e3587
Dark mode: - body.dark overrides CSS variables (navy→cream reverse) - Persisted in localStorage, applied before paint to avoid flash - Toggle button in nav (moon/sun icon), Shift+D shortcut Keyboard shortcuts: - g h/n/u/t/s/c/w/d/k for page navigation - n for new case, ? for help (Shift+/) - Esc closes any open dialog, blurs focused input - Help modal via showShortcutsHelp() with styled kbd elements SSE tasks stream: - /api/system/tasks/stream pushes snapshots whenever _progress changes - Client uses EventSource instead of 3s polling - Auto-reconnect after 5s on error - 15s heartbeat keeps proxies alive Compare decisions (new #/compare page): - /api/training/compare?a=id&b=id serializes both decisions' metadata, section breakdown from document_chunks, and three buckets of patterns (only in A, only in B, shared) using variant matching - Two-column header with section-length breakdown + patterns count - Three-column diff row (only_a / shared / only_b) Compose with suggestions (new #/compose page): - Large RTL justified textarea with Hebrew display font title input - Sidebar lists all 47 style_patterns grouped by type with filter chips - Click a pattern → inserts at cursor, replacing [placeholders] with ___ - Live section guess (פתיחה / רקע / טענות / דיון / סוף דבר) based on most-recent 400 chars - Auto-save draft to localStorage every second; restore on page load - "העתק טקסט" copies title+body to clipboard Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description
AI Legal Decision Drafting System — MCP server, web upload, RAG search
Languages
Python
59.1%
TypeScript
37.4%
JavaScript
1.7%
Shell
1.2%
CSS
0.5%
Other
0.1%