hh
2a47c6771d
feat(conversations,api,ui): rewind takes the last turns of a thread back, the cut session stays in the store
2026-10-13 02:10:03 +02:00
hh
b0e5aaf599
feat(ui): finished turns keep their tool tree, reasoning and say bubbles, the thread stops dragging the reader down
2026-10-13 01:22:44 +02:00
hh
712c24de4e
feat(backends,api,ui): process trees with cpu and stderr per session, interrupt, close and kill from the system page
2026-10-13 01:22:41 +02:00
hh
120985deab
feat(agents,backends,conversations,frontends,ui): progress thinking is told apart by its agent, raycast reasoning stays collapsed, read_conversation keeps progress
2026-09-22 20:51:23 +02:00
hh
13873f857b
feat(frontends,ui): opus 5.5 progress updates show in the web panel and the vault transcript
2026-09-22 20:36:23 +02:00
hh
e79e9fc149
feat(frontends,security,api,ui): a frontend can hold a token scope of its own
2026-09-06 23:26:26 +02:00
hh
60782d6276
feat(ui,docs): the open tab lives in the conversation url, admin screenshots in the readme
2026-09-05 04:55:54 +02:00
hh
421248b0ad
fix(ui): a stream that went quiet reconnects, the rail says so, the panel opens on the master
...
A phone that slept brings back an SSE socket that never errored and never
delivers: the panel read as live for hours while showing nothing new. Every
chunk now marks the connection alive and a watchdog drops the socket after
40s of silence - twice the server's keepalive - so the loop reconnects.
Each attempt gets its own controller, which is what lets the watchdog (and
a manual refresh) end one connection without ending the loop.
The connection is admitted in one dot beside the rail's search box, tapped
to reconnect at once rather than waiting out the backoff - the pill that
used to say this was dropped in the redesign and the panel had no way to
own up to being stale.
With nothing picked, the shell lands on the freshest open master instead of
a prompt to pick something: what a phone wants when the panel opens. An
explicit pick, and following the active note, still win.
2026-09-05 00:20:03 +02:00
hh
8019c76e53
fix(backends,conversations,telegram,ui): a background subagent reports back as its own turn
2026-09-04 20:23:33 +02:00
hh
2afd3bc3c1
chore(ui): drop an unused suppression
2026-09-02 05:17:51 +02:00
hh
5b851c11d4
perf(panel): cached info and history paint first, lazy markdown up the thread, background prefetch
2026-09-02 05:16:13 +02:00
hh
2d903c7c5f
fix(panel): thread scroller opts out of scroll anchoring
2026-09-02 05:08:51 +02:00
hh
ef7474f636
fix(panel): composer no longer doubles the status-bar inset
2026-09-02 05:00:35 +02:00
hh
fe1c894b93
fix(panel): column-reverse thread keeps the bottom, no island in the plugin
2026-09-02 04:58:48 +02:00
hh
2815956f5b
feat(ui): times on injects and every spoken message
2026-09-02 04:52:26 +02:00
hh
c46ba026ba
feat(api): limits read unifiedWindows, unknown seven-day windows labelled by model
2026-09-02 04:46:43 +02:00
hh
81d6560bf7
style(ui): flat menu sheets, digests folded with job runs, shorter spend caption
2026-09-02 04:43:04 +02:00
hh
f35980ba85
feat(ui): graph on d3-force with steady labels, quieter quota text, flat rail
2026-09-02 04:35:01 +02:00
hh
c6401f1114
feat(ui): interactive graph, strip context menus, days by activity, message times, limit status words
2026-09-02 04:24:15 +02:00
hh
025f2dbc3f
feat(ui,api): strip board redesign - island, rail by day, context view, server search, vault graph
2026-09-02 03:48:26 +02:00
hh
bac40ff268
feat(scheduler,conversations,api): cron and schedule in the gateway tz, job runs persisted
2026-09-01 23:13:17 +02:00
hh
a8491330fa
feat(injects,conversations,scheduler,gateway_tools,api): wake priority, master and parent aliases, scheduled injects start a turn
2026-08-30 20:34:12 +02:00
hh
2d12391176
fix(ui): chat keeps the bottom pinned while async markdown lands
2026-08-29 19:26:45 +02:00
hh
60dc7db925
feat(ui,api,telegram): shared conversation panel for obsidian and /admin/panel, bind materializes a window, inbox survives link previews
2026-08-29 18:30:33 +02:00
hh
1786406b31
feat(distill,conversations,scheduler,api,ui): close deep chats with a distiller fork, digest and index, idle and weekly state jobs
2026-08-29 03:15:39 +02:00
hh
bc4233977d
feat(scheduler,rotation,envelope,api,ui): pgqueuer jobs and deferred injects, master rotation with handout, vault envelope, jobs page
2026-08-29 02:29:05 +02:00
hh
772db11c7f
fix(ui): sidebar footer in one row, no user name
2026-08-29 01:19:58 +02:00
hh
4fb020c788
fix(ui): thread header counts only queued items; label the live dot
2026-08-29 01:08:44 +02:00
hh
932a7a80af
feat: one gateway port with path-mounted frontends, markdown chat, collapsible sidebars
2026-08-29 00:49:06 +02:00
hh
3ca5843868
feat(ui,api): chat view with live tail and autoscroll, conversation rail with last message previews
2026-08-29 00:18:08 +02:00
hh
8ea4cea3ef
feat(ui): endpoint catalog with copyable urls on the now page
2026-08-28 22:30:11 +02:00
hh
b6c5a80326
chore(ui): beaver favicon from beaver-land and impeccable design sidecar
2026-08-28 22:20:36 +02:00
hh
98796a82c6
feat(ui,api,admin): sveltekit admin spa, usage by day/agent/conversation/model, rate limits, memory tree, turn snapshot
2026-08-28 22:14:15 +02:00
hh
d33039f497
feat(ui,infra): SvelteKit ui scaffold, Makefile, pre-commit, claude hooks
...
ui/: SvelteKit 2 + Svelte 5 + Tailwind 4 + shadcn-svelte (luma, lucide)
on bun with ultracite; adapter-static with SPA fallback; theme tokens
taken from msos. Dockerfile gains a bun stage that builds ui/build.
Makefile and pre-commit cover ruff, ty, ultracite and svelte-check;
.claude settings run the matching fixer after edits. docs/PRODUCT.md
captures product truth for the UI work.
2026-08-27 23:22:18 +02:00