feat: presence beyond the tab — PWA manifest and the Ghost Log recap
Usability wave Workstream C (#5, #7): - manifest.webmanifest with existing 192/512/180 icons, linked in index.html with theme-color aligned to #07070d; no service worker. - GET /api/seances/recent: last 12 of the seeker's own séances with entity, per-kind event counts (one GROUP BY) and up to 3 spirit echoes (one windowed query) — no per-session N+1. - /log Ghost Log page: cards with GhostGlyph, relative in-fiction timestamps, counts and echo lines; LOG link in the séance topbar; en/es i18n parity. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -17,7 +17,34 @@
|
||||
"devices": "devices",
|
||||
"seance": "séance",
|
||||
"enter": "enter",
|
||||
"logout": "depart"
|
||||
"logout": "depart",
|
||||
"log": "log"
|
||||
},
|
||||
"log": {
|
||||
"title": "GHOST LOG",
|
||||
"subtitle": "every séance leaves a page behind",
|
||||
"back": "return to the séance",
|
||||
"loading": "leafing back through the log…",
|
||||
"error": "the log will not open — the veil resists tonight",
|
||||
"empty": "no séances yet — the log waits",
|
||||
"noEntity": "no one answered",
|
||||
"counts": {
|
||||
"question_one": "{{count}} question",
|
||||
"question_other": "{{count}} questions",
|
||||
"anomaly_one": "{{count}} anomaly",
|
||||
"anomaly_other": "{{count}} anomalies",
|
||||
"utterance_one": "{{count}} utterance",
|
||||
"utterance_other": "{{count}} utterances"
|
||||
},
|
||||
"time": {
|
||||
"moments": "moments past",
|
||||
"minutes_one": "a minute past",
|
||||
"minutes_other": "{{count}} minutes past",
|
||||
"hours_one": "an hour past",
|
||||
"hours_other": "{{count}} hours past",
|
||||
"days_one": "a day past",
|
||||
"days_other": "{{count}} days past"
|
||||
}
|
||||
},
|
||||
"landing": {
|
||||
"taglines": [
|
||||
|
||||
Reference in New Issue
Block a user