Commit graph

37 commits

Author SHA1 Message Date
Thomas Cravey
71cf7a927f feat(webui): use brand as channel selector on dashboard; keep brand link on other pages; tone down commit text color/size 2025-08-17 15:43:25 -05:00
Thomas Cravey
6e64969bb6 feat(webui): move channel list into navbar dropdown with checkmark; remove sidebar and footer; show short commit centered in navbar 2025-08-17 15:30:49 -05:00
Thomas Cravey
b70cf17713 fix(webui): multi-pass snap to bottom; image onload re-pin; dynamic header/footer height measurement; disable native scrollRestoration 2025-08-17 14:58:25 -05:00
Thomas Cravey
0e3ccac6a9 fix(webui): compute dynamic header/footer heights; use CSS vars for margins; re-scroll after images/cards via rAF 2025-08-17 14:53:57 -05:00
Thomas Cravey
645ea9f2b9 fix(webui): correct initial snap-to-bottom using rAF; add top/bottom margins under fixed bars; ensure page shows last lines on load 2025-08-17 14:42:32 -05:00
Thomas Cravey
c125d05f26 fix(webui): fully fixed header/footer (position: fixed) with page padding; snap to bottom on initial tail load; remove faded footer 2025-08-17 14:37:22 -05:00
Thomas Cravey
21a49c18a0 fix(webui): lock footer/header visibly using sticky + high z-index and solid background; preserve scroll position on history prepend; robust at-bottom detection 2025-08-17 14:25:04 -05:00
Thomas Cravey
e4f58281fb feat(webui): switch to page scrollbar; adjust autopin to bottom and infinite scroll using window scroll; keep at-bottom behavior 2025-08-17 14:18:16 -05:00
Thomas Cravey
d3ab367f6c fix(webui): eliminate double scroll; lock footer; opaque header/footer; use CSS grid body layout and height:100% for content 2025-08-17 14:12:33 -05:00
Thomas Cravey
0dd9b072e8 feat(webui): sticky opaque navbar/footer; scope grid to dashboard; single-scroll main with autoscroll; summarizer wraps 2025-08-17 14:06:34 -05:00
Thomas Cravey
f7d97db569 fix(webui): summarizer wrapping and width; scope dashboard grid to .dash; ensure #out wraps and fills; adjust dashboard main class 2025-08-17 13:50:38 -05:00
Thomas Cravey
fb92930e7a fix(webui): serve embedded static from /static/* correctly (fs.Sub(staticFS, "static")) 2025-08-17 13:36:37 -05:00
Thomas Cravey
ab11490807 fix(webui): correct layout rendering; select content template by name and include via layout; fix navbar/footer appearance 2025-08-17 13:31:18 -05:00
Thomas Cravey
3ed38031be fix(webui): blank page regression; execute named templates (dashboard.tmpl, summarizer.tmpl) in render() 2025-08-17 13:20:17 -05:00
Thomas Cravey
b993482b85 fix(webui): render correct page at / (dashboard), use base template execution; footer centering, navbar layout via CSS 2025-08-17 13:12:29 -05:00
Thomas Cravey
0e0d0ea824 feat(webui): add on-demand ▶ link summary UI; calls /api/linksummary and renders inline under link card (24h cache) 2025-08-16 21:43:06 -05:00
Thomas Cravey
8a6111aeb5 feat(webui): templates + static assets; SSE broadcast; link cards; link summary endpoint; raw soju client store; UI polish
- Switch UI to Go html/templates and embedded /static (Pico.css-compatible)

- Add Server.Broadcast and normalize SSE channel keys to lowercase

- Implement /api/linkcard (OG/Twitter) and /api/linksummary (24h cache)

- Wire Store into raw soju client for CHATHISTORY LATEST fallback
2025-08-16 21:38:49 -05:00
Thomas Cravey
cbd798dfd5 fix(trigger): only send notifier when push=1/true; otherwise just return summary 2025-08-16 20:59:23 -05:00
Thomas Cravey
7eea39310a ui: fix chat container height to enable scrolling and history fetch; no code changes to SSE broadcaster (already present) 2025-08-16 20:48:58 -05:00
Thomas Cravey
6cf4219782 fix(summarizer): respect 'Send via Pushover' (push flag); wrap summary text area 2025-08-16 20:31:06 -05:00
Thomas Cravey
6783f2954d ui: single footer with version+hash; summarizer gets navbar and channel dropdown; cookie auth redirect on /summarizer 2025-08-16 20:23:12 -05:00
Thomas Cravey
c140b36363 ui: add commit hash to footer on dashboard and summarizer 2025-08-16 20:18:01 -05:00
Thomas Cravey
0732b50a3d fix(og): remove unused helper; build 2025-08-16 19:55:15 -05:00
Thomas Cravey
83b3446239 fix(og): remove unused import, clean parser helper; build 2025-08-16 19:54:46 -05:00
Thomas Cravey
8c67ce27b5 fix(ui/og): robust OG/Twitter parsing via html tokenizer; keep navbar on summarizer; make tail pane scrollable; stub loadInfo; channel dropdown to be added; SSE broadcast already wired 2025-08-16 19:54:18 -05:00
Thomas Cravey
62456fad97 fix(build): remove duplicate handleSummarizerUI; finalize dashboard JS string concatenation 2025-08-16 19:22:11 -05:00
Thomas Cravey
a223663ce2 fix(ui): remove remaining JS template literals from dashboard; add link cards rendering 2025-08-16 19:21:23 -05:00
Thomas Cravey
3f94aa7068 feat(dashboard phase1): SSE stream with 15s heartbeat; history paging (50); channel sidebar and nav/footer; OG/Twitter link card endpoint; tail UI rework with infinite scroll and auto-follow pause 2025-08-16 19:18:31 -05:00
Thomas Cravey
a6091b8758 feat(webui): login interstitial with cookie auth (7d), hide token from main UI; auto-scroll tail/summary to bottom on update 2025-08-16 16:09:19 -05:00
Thomas Cravey
118cb921f0 feat(webui): add summarize loading indicator, wrap long lines, auto-load last 25 on first channel, optional auto-follow (poll every 3s) 2025-08-16 15:45:27 -05:00
Thomas Cravey
f78dc43374 feat(webui): responsive tweaks for mobile; seed channels from config when DB empty; expose KnownChannels on server 2025-08-16 15:32:57 -05:00
Thomas Cravey
bb60430df2 fix(webui): replace template literals to avoid backticks inside Go raw string; build again 2025-08-16 15:26:25 -05:00
Thomas Cravey
45d1d98e56 feat(webui): add minimal dashboard (Pico.css) with tail, trigger, status; JSON endpoints: /api/info,/api/channels,/api/tail,/api/trigger; default compose/UI auth via HTTP_TOKEN 2025-08-16 15:24:50 -05:00
Thomas Cravey
26ae405e9b feat: notify on direct messages; store DMs under sender nick; respect quiet hours and rate limit for DMs 2025-08-16 12:36:01 -05:00
Thomas Cravey
00ddd9e460 defaults: raise max/defaults (OPENAI_MAX_TOKENS=128000, larger summarizer timeouts/limits, DIGEST_WINDOW=24h, RETENTION=365); docs: add inline env option, defaults table; compose: bind 127.0.0.1:8080 2025-08-16 12:29:58 -05:00
Thomas Cravey
9ecf4f4f4c docs: expand .env example to show max/large values; add SUMM_TIMEOUT and summarizer tunables\n\nfeat: summarizer improvements\n- readability extraction for articles\n- image links passed to model as vision inputs\n- configurable max groups/links/bytes and timeout\n- higher default ceilings; resilient fallback summary 2025-08-15 20:41:31 -05:00
Thomas Cravey
2954e85e7a feat: initial Beta 1 release
- soju raw connector with event playback and CHATHISTORY fallback
- SQLite store with msgid de-dup and retention job
- Mentions + Pushover + tuning; structured JSON logs
- Summaries: concise, link-following, multi-line grouping
- HTTP: /healthz, /ready, /tail, /trigger, /metrics
- Docker: distroless, healthcheck, version metadata
- Docs: README, CHANGELOG, compose
2025-08-15 18:06:28 -05:00