You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Open Graph and meta description on all page types
23
+
24
+
**Admin Dashboard**
25
+
- Redesigned admin dashboard consistent with blog UX (card-based layout)
26
+
- Admin popover in header with Dashboard, Drafts, Sign out
27
+
- Auth-aware UI across all pages (login/admin popover based on session state)
28
+
- Sample articles section with one-click creation
29
+
30
+
**Public Compose**
31
+
- Compose page accessible without authentication (login deferred to publish)
32
+
- Compose link in header nav when admin is configured
33
+
- FAB (floating action button) visible for all users when admin configured
34
+
- Dynamic CTA: "Publish" / "Save Draft" / "Update" based on draft checkbox and edit state
35
+
- Fetch-based form submit with 401/403 handling (toast + login popover trigger)
36
+
37
+
**PWA**
38
+
- Share target in web manifest for receiving shared content
39
+
40
+
### Changed
41
+
42
+
- Semantic HTML: single `<h1>` per page, proper heading hierarchy, `<section>`/`<article>` elements
43
+
- 404/offline page CSS class renamed from `error-page` to `error-content` (fixes layout collision with body class)
44
+
- SessionAware middleware generates CSRF tokens for unauthenticated visitors (enables login popover on all pages)
45
+
- SPA router syncs CSRF meta tag and hidden inputs after content swap (prevents SPA desync)
46
+
- Compose error responses shown via toast instead of DOM swap (preserves event listeners)
47
+
48
+
### Security
49
+
50
+
- CSRF cookie reuse validates token format (64-char hex) before accepting
51
+
- CSRF cookie max-age refreshed on reuse to prevent silent expiry
52
+
-`isValidCSRFToken()` rejects corrupted, truncated, or injected cookie values
53
+
54
+
### Removed
55
+
56
+
- Editorial and bold theme stubs (unused CSS)
57
+
- Stale CDN references in design docs
58
+
59
+
---
60
+
12
61
## [3.1.0] - 2026-02-12
13
62
14
63
MarkGo reimagined as a blogging companion app. SPA navigation, installable PWA, mobile-native UX, quick capture, offline compose. Single binary with embedded web assets — no filesystem setup required.
0 commit comments