hh
5401cbe187
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
82029bb10d
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
96e18156eb
fix(backends,conversations,telegram,ui): a background subagent reports back as its own turn
2026-09-04 20:23:33 +02:00
hh
1f051f261e
chore(ui): drop an unused suppression
2026-09-02 05:17:51 +02:00
hh
9080eb7dee
perf(panel): cached info and history paint first, lazy markdown up the thread, background prefetch
2026-09-02 05:16:13 +02:00
hh
20568915db
fix(panel): thread scroller opts out of scroll anchoring
2026-09-02 05:08:51 +02:00
hh
72d60b799f
fix(panel): composer no longer doubles the status-bar inset
2026-09-02 05:00:35 +02:00
hh
607ed6bc93
fix(panel): column-reverse thread keeps the bottom, no island in the plugin
2026-09-02 04:58:48 +02:00
hh
b6d111a610
feat(ui): times on injects and every spoken message
2026-09-02 04:52:26 +02:00
hh
74843451a4
feat(api): limits read unifiedWindows, unknown seven-day windows labelled by model
2026-09-02 04:46:43 +02:00
hh
836cd60bd8
style(ui): flat menu sheets, digests folded with job runs, shorter spend caption
2026-09-02 04:43:04 +02:00
hh
99bcec2ba0
feat(ui): graph on d3-force with steady labels, quieter quota text, flat rail
2026-09-02 04:35:01 +02:00
hh
d41f18504c
feat(ui): interactive graph, strip context menus, days by activity, message times, limit status words
2026-09-02 04:24:15 +02:00
hh
256b2a68d6
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
6b7de6f03d
feat(telegram): stop generation from the client, questions survive a restart, images reach the model inline, albums become one turn
2026-09-02 02:11:44 +02:00
hh
c3b0864e3d
feat(markdown): thinking blocks between hidden tool calls collapse to the first one
2026-09-02 01:44:02 +02:00
hh
38ae967233
docs(examples): compose for the minimal setup - postgres, real env, no phase notes
2026-09-02 01:28:51 +02:00
hh
c9c2e94954
refactor: no comments left - one-line module docstrings, contracts on public fields only; jobs/job.py; example config and README
2026-09-02 00:33:04 +02:00
hh
90d0fb0f00
refactor(telegram): every user-facing string lives in TelegramTexts with English defaults
2026-09-02 00:16:38 +02:00
hh
cae2ed4161
refactor: split flat core into capability packages, layer the conversations service, English defaults for every model-facing text
2026-09-02 00:13:20 +02:00
hh
b96714338f
fix(telegram,conversations): attachments by day with sweep in both modes, merge renames the topic, gone topics unbind, failures visible
2026-09-01 23:13:22 +02:00
hh
7853d61b94
feat(telegram): block-level markdown to html, wikilinks, tables, quotes, fence-safe chunking
2026-09-01 23:13:21 +02:00
hh
f6a7ea8f29
feat(agents,claude_sdk): skill sets per conversation kind
2026-09-01 23:13:21 +02:00
hh
1954a6e9f2
feat(scheduler,conversations,api): cron and schedule in the gateway tz, job runs persisted
2026-09-01 23:13:17 +02:00
hh
9b1127acff
chore(deps): claude-agent-sdk 0.2.150 bundles cli 2.1.257
2026-09-01 22:00:41 +02:00
hh
1e08dfb9da
fix(mcp,redact,gateway_tools): mask credentials in tool results, names kept and values gone
2026-09-01 14:12:49 +00:00
hh
8e7db6baa4
fix(redact,cli): mask credentials in every log line, silence httpx request urls
2026-09-01 14:12:49 +00:00
hh
acc79c2e42
feat(envelope,conversations): recall hook under the user text, user_sink for the setup's reply log
2026-09-01 16:08:53 +02:00
hh
63014a487d
fix(storage,api): usage cost as per-turn delta of the sdk running total, backfill
2026-09-01 15:37:53 +02:00
hh
3406e2e178
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
878f7d6473
fix(cli): mask query tokens in uvicorn access log
2026-08-30 18:30:26 +02:00
hh
c438d4cb92
feat(auth): bootstrap token entries carry an optional scope
2026-08-30 18:25:48 +02:00
hh
ba9d63667e
feat(auth): query-string token for headerless webhook senders
2026-08-30 18:10:00 +02:00
hh
d57f660a30
fix(gateway_tools,conversations): say refused in user turns, the reply reaches the human itself
2026-08-30 02:26:35 +02:00
hh
cc32307921
feat(scheduler): job dedupe flag for webhooks that must not collapse
2026-08-29 22:15:15 +02:00
hh
811035ba4f
fix(ui): chat keeps the bottom pinned while async markdown lands
2026-08-29 19:26:45 +02:00
hh
9efff6e814
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
a989d2909d
feat(injects,conversations): configurable inject header, urgent inject marks the turn it cut
2026-08-29 17:07:43 +02:00
hh
8d252f9867
fix(claude_sdk,conversations,rotation): context size from the last api call, new-day text by rotation reason
2026-08-29 16:54:29 +02:00
hh
2895e677c0
feat(policy,claude_sdk,cli,config_loader): pretooluse policy rules per agent, tool call audit, sibling imports for config
2026-08-29 15:27:26 +02:00
hh
23cfb16228
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
ab9ce50b82
refactor(envelope): drop the reply counter and the injects line, keep time and vault changes
2026-08-29 02:38:39 +02:00
hh
662bdcdfda
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
0479d7cdda
feat(conversations): pre-SDK rows read from canonical messages, implied titles, markdown adopts them by first prompt
2026-08-29 01:44:05 +02:00
hh
0cc2c5291f
fix(markdown): a rewritten assistant reply reseeds the session instead of resuming it
2026-08-29 01:37:52 +02:00
hh
5cd18fa2d7
fix(ui): sidebar footer in one row, no user name
2026-08-29 01:19:58 +02:00
hh
e45e9960ed
fix(ui): thread header counts only queued items; label the live dot
2026-08-29 01:08:44 +02:00
hh
16b6bbddda
feat: one gateway port with path-mounted frontends, markdown chat, collapsible sidebars
2026-08-29 00:49:06 +02:00
hh
540327efa1
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
645df6f2b4
feat(ui): endpoint catalog with copyable urls on the now page
2026-08-28 22:30:11 +02:00