bvandeusen
0c4e7fe5cb
Redesign writing assistant UI: right-side panel, diff view, proofread, floating inline assist
...
- sectionParser.ts: add parseFallbackSections() — splits heading-less notes
by paragraph boundaries; single-line ≤120 char paragraphs become pseudo-headings
so Q&A-style notes get individual selectable sections in the assist panel
- useAssist.ts: add DiffLine type + computeDiff() (LCS line diff), isProofreading
ref, diff computed, proofread() method (full-document one-click), reset
isProofreading in accept() and reject()
- NoteEditorView + TaskEditorView: complete layout redesign
- Assist panel moves from bottom 33% to right-side 320px column (flex-row)
- ✨ Assist toggle button in toolbar, state persisted to localStorage
- Floating ✨ pill button (teleported to <body>) above text selections;
click opens panel with selection pre-loaded and instruction textarea focused
- Proofread button in panel header: sends entire document, labels streaming
as "Proofreading document..." and review as "Document proofread"
- Review state shows LCS line-level diff (red removed, green added);
"Show full text" toggle switches to rendered proposal
- Mobile (≤768px): panel drops to bottom 45% height
- theme.css: add global .inline-assist-btn styles for teleported floating button
- Site-wide max-width increase: list/chat/settings views 960px→1200px;
viewer layout 1200px→1400px (content area 960px→1100px);
editor pages already at 1400px
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-02-19 16:43:41 -05:00
bvandeusen
e02b681e91
Add invitation system, table of contents, actionable dashboard, and settings improvements
...
Invitation system (Phase 5.7):
- invitation_tokens table (migration 0012) with SHA256-hashed tokens, 7-day expiry
- Admin CRUD endpoints: POST/GET/DELETE /api/admin/invitations
- Branded invitation email with registration link
- /register-invite frontend view with token validation and account creation
- Admin UI: invite form + pending invitations table with revoke
- Configurable base URL setting for email links (replaces hardcoded Config.BASE_URL)
Table of contents + markdown improvements (Phase 5.8):
- TableOfContents component: sticky sidebar, heading parsing, smooth-scroll
- Custom marked renderer adds id attributes to headings for anchor links
- stripFirstLineTags() prevents leading #tags from rendering as headings
- NoteViewerView/TaskViewerView flex layout with TOC sidebar (hidden ≤1200px)
- Model catalog refresh: added llama3.2/3.3, gemma3, qwen3, phi4, deepseek-r1,
qwen2.5-coder, dolphin3; added Reasoning category; removed discontinued models
- Settings model section split into Installed/Available tabs
Actionable dashboard (Phase 5.9):
- due_before/due_after query params on /api/tasks (exclusive < / inclusive >=)
- HomeView rewritten: overdue (red accent), due today, in progress, chats, notes
- 5 parallel API calls via Promise.allSettled
- Client-side done filtering and in-progress deduplication
- Task sections hidden when empty; status toggle removes done tasks
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-14 08:46:51 -05:00
bvandeusen
f77b029943
Add registration control, admin user management, and security hardening
...
- Registration auto-closes after first user; admin can toggle from /admin/users
- Admin user management view with user list and delete
- Password confirmation on registration form
- Password change in Settings (PUT /api/auth/password)
- Session cookie hardening: HttpOnly, SameSite=Lax, optional Secure flag
- Startup warning when SECRET_KEY is default
- Production deployment docs: reverse proxy, rate limiting, CSP headers
- Fix assist prompt to preserve markdown headings in target sections
- Simplify prod compose networking
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 17:49:22 -05:00