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 |
|
hh
|
b577034c83
|
chore(ui): beaver favicon from beaver-land and impeccable design sidecar
|
2026-08-28 22:20:36 +02:00 |
|
hh
|
00618ab7ad
|
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
|
aaaf459e6d
|
fix(backends): remember the session id from the first frame so a cut turn stays resumable
|
2026-08-28 19:38:47 +02:00 |
|
hh
|
4ad014726b
|
fix(core): a turn cut by shutdown keeps running_turn for recover
|
2026-08-28 19:33:26 +02:00 |
|
hh
|
8c9c6eee69
|
fix(telegram): brief-seeded branches reply and stream in their topic
|
2026-08-28 19:21:03 +02:00 |
|
hh
|
21766fe2d7
|
feat(core): seeds without text wait for the first turn
|
2026-08-28 19:03:08 +02:00 |
|
hh
|
1f8dae57ac
|
fix(telegram,core): no draft for seed turns
|
2026-08-28 18:59:00 +02:00 |
|
hh
|
66325c2879
|
fix(telegram): last draft push is the final text so the client folds it into the message
|
2026-08-28 18:51:16 +02:00 |
|
hh
|
5a44a16ba3
|
fix(telegram,core): bare seeds stay silent in telegram
|
2026-08-28 18:42:35 +02:00 |
|
hh
|
c711dcab13
|
fix(telegram): final message waits for the draft push in flight
|
2026-08-28 18:32:45 +02:00 |
|
hh
|
3995741cd5
|
fix(telegram,core): first message seeds the branch, registered commands, no ellipses, html drafts
|
2026-08-28 18:25:46 +02:00 |
|
hh
|
b0f280b3ca
|
feat(telegram,core): master topic instead of general in private chats
|
2026-08-28 18:12:58 +02:00 |
|
hh
|
45a5eb4a94
|
feat(telegram,core,backends,storage): telegram frontend with inbox, outbox, drafts and question buttons
|
2026-08-28 17:57:09 +02:00 |
|