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
This commit is contained in:
Thomas Cravey 2025-08-16 21:38:49 -05:00
parent cbd798dfd5
commit 8a6111aeb5
8 changed files with 537 additions and 293 deletions

View file

@ -0,0 +1,27 @@
{{ define "layout.tmpl" }}
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>{{ .Title }} · sojuboy</title>
<link rel="stylesheet" href="https://unpkg.com/@picocss/pico@2/css/pico.min.css">
<link rel="stylesheet" href="/static/app.css">
<script defer src="/static/app.js"></script>
</head>
<body>
<header class="nav">
<div><a class="brand" href="/">sojuboy</a></div>
<nav>
<ul>
<li><a href="/summarizer">Summarizer</a></li>
<li><a href="/logout">Logout</a></li>
</ul>
</nav>
</header>
{{ block "content" . }}{{ end }}
<footer><small>{{ .Version }} ({{ .Commit }})</small></footer>
</body>
</html>
{{ end }}