Commit Graph
128 Commits
Author SHA1 Message Date
hh 944b68e275 feat(backends,jobs,telegram,conversations): mcp calls carry the conversation origin, quiet branches close asleep, fresh topics get named 2026-10-23 22:24:40 +02:00
hh 7d812c7962 fix(agents,backends): claude sessions read sdk messages up to 16 mib 2026-10-19 15:14:13 +00:00
hh 8f26263d4a feat(conversations,jobs): a manual run of the rotation job rotates the master now 2026-10-19 13:51:15 +02:00
hh 7b36cb2156 feat(keystore,api,ui,docker): encrypted secrets store with a write-only admin page and a secret run helper for the model 2026-10-18 16:18:21 +02:00
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 0fec15fb3b feat(telegram): reasoning rides under the draft status while the turn runs 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 9875f08016 fix(events): a conversation's own stream carries its updates 2026-10-13 01:22:40 +02:00
hh 65564d8541 fix(vault,conversations): the envelope diff drops query blocks and frontmatter, history hands the envelope apart from the user's words 2026-10-13 01:22:36 +02:00
hh 1d1285de46 fix(agents): only models that send progress updates read thinking as progress 2026-09-22 20:53:05 +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 bbce425eeb feat(backends,conversations,frontends): opus 5.5 progress updates reach telegram, current claude cli in the image 2026-09-22 18:02:01 +00:00
hh e58153628c fix(vault): the watcher ignores obsidian and lock files before it wakes 2026-09-09 12:28:19 +00:00
hh c120953b02 feat(frontends,conversations,telegram): the agent can hand a file to the human 2026-09-08 14:04:44 +02:00
hh 5eb9f435ec feat(conversations): the recall hook and the user sink learn whose turn it is 2026-09-06 23:26:26 +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 85b14e2c2f 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 7a8ee0f200 feat(markdown): thinking blocks between hidden tool calls collapse to the first one 2026-09-02 01:44:02 +02:00
hh 2d34d488d7 docs(examples): compose for the minimal setup - postgres, real env, no phase notes 2026-09-02 01:28:51 +02:00
hh 0e07e8409d 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 3915ab48f9 refactor(telegram): every user-facing string lives in TelegramTexts with English defaults 2026-09-02 00:16:38 +02:00
hh 9aaddbed75 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 253bde1b11 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 61b5bda31a feat(telegram): block-level markdown to html, wikilinks, tables, quotes, fence-safe chunking 2026-09-01 23:13:21 +02:00
hh e2d611dd81 feat(agents,claude_sdk): skill sets per conversation kind 2026-09-01 23:13:21 +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 39f2bc05d9 chore(deps): claude-agent-sdk 0.2.150 bundles cli 2.1.257 2026-09-01 22:00:41 +02:00
hh 76d6f81789 fix(mcp,redact,gateway_tools): mask credentials in tool results, names kept and values gone 2026-09-01 14:12:49 +00:00
hh 8f9ca2800c fix(redact,cli): mask credentials in every log line, silence httpx request urls 2026-09-01 14:12:49 +00:00
hh f9bf51badf 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 90063a7cfe fix(storage,api): usage cost as per-turn delta of the sdk running total, backfill 2026-09-01 15:37:53 +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 064379ca90 fix(cli): mask query tokens in uvicorn access log 2026-08-30 18:30:26 +02:00
hh e90963a6c3 feat(auth): bootstrap token entries carry an optional scope 2026-08-30 18:25:48 +02:00