Full tab tree (panels → sections → tab-containers → tabs + open files) saved and
restored per project per device. FileEditorPanel extended with getCurrentFile().
.roject/ hidden from file tree listings. Boards, outline, and history updated.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
File tree: open-state preserved on refresh, "Mark As Root Directory" moved
to context menu, "Open >" submenu for alternate editors, context menu label
truncated to filename (20 chars max). Page editor: mode buttons moved into
toolbar (sidebar removed). EditorConsole singleton + console-panel tab for
centralised message log with es-info header fade. openDocumentIn fix: derives
editorTag from panelElement.tagName, not registry. History folder renames
corrected (25-Friday→24-Friday, 30-Wednesday→30-Thursday, 31-Friday added).
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Renames html-editor-panel → page-editor-panel and changes the handled
extension from .html/.htm to .page. The new editor introduces a structured
format (page-header / page-root / page-block / page-area / page-footer),
a block registry with Full Width and Two Columns templates, a two-mode
sidebar (Blocks / Areas), rich-text wrapSelection helper, auto-template
injection for empty files, sandbox="allow-same-origin" on the iframe,
and editor-style injection that is stripped before saving.
Adds a default-roject theme (dark BG, Barlow font, blue headings) embedded
as a <style> block in the page <head>, scoped to [data-theme="default-roject"]
on both <body> and <page-root>. Areas toolbar gains H1, H2, H3 buttons.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Electron fixes:
- extractToken (auth-connector): Bearer header checked before cookie — prevents stale
Electron session cookie from winning over injected token
- JWT_CLOCK_TOLERANCE env var: passed to jwt.verify as clockTolerance; set to 7200
in .env to absorb ~65 min clock skew between Windows dev machine and prod auth server
- Startup token refresh: main.ts calls POST /api/auth/refresh before opening main window;
shows login on failure instead of opening with expired tokens
- Quit-on-login fix: createMainWindow() is async; login-success now awaits it before
closing the login window (zero windows → app.quit() race was killing the process)
- Credential persistence: email + password stored in userData; remember-me checkbox
controls save behaviour; clear button removes saved files; fields pre-fill on load
- Electron session cookies cleared in createMainWindow() to avoid stale token reuse
CSS: z-index: 10 on .pld-nav (project-list-default) — fixed mobile nav buried under rows
Boards: cleared Done lane, added Electron fixes and nav z-index entries; backlog MVP
entry for local testing solution; bugs.html: 401-handling bug moved to Done.
Outline: auth card updated with extractToken order note and JWT_CLOCK_TOLERANCE docs.
History: Friday 18 July entry expanded with session 2 cards.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>