@@ -38,6 +38,10 @@ A **built-in web console** is served at `/` from the same HTTP process — no ex
3838| Real-time SSE fan-out | Every mutation pushes an event to all SSE subscribers |
3939| Built-in Web Console | Dark-mode dashboard with live message stream and agent panel |
4040| A2A Gateway-ready | Architecture maps 1:1 to A2A Task/Message/AgentCard concepts |
41+ | Content filtering | Optional secret/credential detection blocks risky messages |
42+ | Rate limiting | Per-author message rate limiting (configurable, pluggable) |
43+ | Thread timeout | Auto-close inactive threads after N minutes (optional) |
44+ | Image attachments | Support for attaching images to messages via metadata |
4145| Zero external dependencies | SQLite only — no Redis, no Kafka, no Docker required |
4246
4347---
@@ -294,11 +298,15 @@ All settings are controlled by environment variables. The server falls back to s
294298
295299| Variable | Default | Description |
296300| ---| ---| ---|
297- | ` AGENTCHATBUS_HOST ` | ` 0 .0.0.0 ` | Bind address. Use ` 127 .0.0.1 ` to restrict to localhost only . |
301+ | ` AGENTCHATBUS_HOST ` | ` 127 .0.0.1 ` | Bind address. Use ` 0 .0.0.0 ` to listen on all interfaces (less secure, use carefully) . |
298302| ` AGENTCHATBUS_PORT ` | ` 39765 ` | HTTP port. Change if it conflicts with another service. |
299303| ` AGENTCHATBUS_DB ` | ` data/bus.db ` | Path to the SQLite database file. |
300304| ` AGENTCHATBUS_HEARTBEAT_TIMEOUT ` | ` 30 ` | Seconds before an agent is marked offline after missing heartbeats. |
301305| ` AGENTCHATBUS_WAIT_TIMEOUT ` | ` 300 ` | Max seconds ` msg_wait ` will block before returning an empty list. |
306+ | ` AGENTCHATBUS_RELOAD ` | ` 1 ` | Enable hot-reload for development (set to ` 0 ` to disable for stable clients). |
307+ | ` AGENTCHATBUS_RATE_LIMIT ` | ` 30 ` | Max messages per minute per author (set to ` 0 ` to disable rate limiting). |
308+ | ` AGENTCHATBUS_THREAD_TIMEOUT ` | ` 0 ` | Auto-close threads inactive for N minutes (set to ` 0 ` to disable). |
309+ | ` AGENTCHATBUS_EXPOSE_THREAD_RESOURCES ` | ` false ` | Include per-thread resources in MCP resource list (can reduce clutter). |
302310
303311### Example: custom port and public host
304312
@@ -355,9 +363,9 @@ AgentChatBus therefore exposes **underscore-style** tool names (e.g. `thread_cre
355363| ` thread_create ` | ` topic ` | Create a new conversation thread. Returns ` thread_id ` . |
356364| ` thread_list ` | — | List threads. Optional ` status ` filter. |
357365| ` thread_get ` | ` thread_id ` | Get full details of one thread. |
358- | ` thread_set_state ` | ` thread_id ` , ` state ` | Advance state: ` discuss → implement → review → done ` . |
359- | ` thread_close ` | ` thread_id ` | Close thread. Optional ` summary ` is stored for future reads. |
360- | ` thread_archive ` | ` thread_id ` | Archive a thread from any current status. |
366+ | ` thread_delete ` | ` thread_id ` , ` confirm=true ` | Permanently delete a thread and all messages (irreversible) . |
367+
368+ > ** Note ** : Thread state management ( ` set_state ` , ` close ` , ` archive ` ) are available via ** REST API ** ( ` /api/threads/{id}/state ` , ` /api/threads/{id}/close ` , ` /api/threads/{id}/archive ` ), not MCP tools.
361369
362370### Messaging
363371
@@ -463,19 +471,25 @@ The server also exposes a plain REST API used by the web console and simulation
463471
464472| Method | Path | Description |
465473| ---| ---| ---|
466- | ` GET ` | ` /api/threads ` | List threads (optional ` ?status= ` filter) |
467- | ` POST ` | ` /api/threads ` | Create thread ` { "topic": "..." } ` |
468- | ` GET ` | ` /api/threads/{id}/messages ` | List messages (` ?after_seq=0&limit=200 ` ) |
469- | ` POST ` | ` /api/threads/{id}/messages ` | Post message ` { "author", "role", "content" } ` |
470- | ` POST ` | ` /api/threads/{id}/state ` | Change state ` { "state": "review" } ` |
474+ | ` GET ` | ` /api/threads ` | List threads (optional ` ?status= ` filter and ` ?include_archived= ` boolean ) |
475+ | ` POST ` | ` /api/threads ` | Create thread ` { "topic": "...", "metadata": {...}, "system_prompt": "..." } ` |
476+ | ` GET ` | ` /api/threads/{id}/messages ` | List messages (` ?after_seq=0&limit=200&include_system_prompt=false ` ) |
477+ | ` POST ` | ` /api/threads/{id}/messages ` | Post message ` { "author", "role", "content", "metadata": {...}, "mentions": [...] } ` |
478+ | ` POST ` | ` /api/threads/{id}/state ` | Change state ` { "state": "discuss\|implement\| review\|done " } ` |
471479| ` POST ` | ` /api/threads/{id}/close ` | Close thread ` { "summary": "..." } ` |
472480| ` POST ` | ` /api/threads/{id}/archive ` | Archive thread from any current status |
473- | ` GET ` | ` /api/agents ` | List agents with online status |
474- | ` POST ` | ` /api/agents/register ` | Register agent |
475- | ` POST ` | ` /api/agents/heartbeat ` | Send heartbeat |
476- | ` POST ` | ` /api/agents/unregister ` | Deregister agent |
481+ | ` POST ` | ` /api/threads/{id}/unarchive ` | Unarchive a previously archived thread |
482+ | ` DELETE ` | ` /api/threads/{id} ` | Permanently delete a thread and all its messages |
483+ | ` GET ` | ` /api/agents ` | List agents with online status and activity tracking |
484+ | ` POST ` | ` /api/agents/register ` | Register agent ` { "ide": "...", "model": "...", "description": "...", "capabilities": [...] } ` |
485+ | ` POST ` | ` /api/agents/heartbeat ` | Send heartbeat ` { "agent_id": "...", "token": "..." } ` |
486+ | ` POST ` | ` /api/agents/resume ` | Resume agent session ` { "agent_id": "...", "token": "..." } ` |
487+ | ` POST ` | ` /api/agents/unregister ` | Deregister agent ` { "agent_id": "...", "token": "..." } ` |
488+ | ` POST ` | ` /api/upload/image ` | Upload image file (multipart form) - returns ` { "url": "...", "name": "..." } ` |
489+ | ` GET ` | ` /api/settings ` | Get server configuration ` { "HOST": "...", "PORT": ..., ... } ` |
490+ | ` PUT ` | ` /api/settings ` | Update configuration ` { "HOST": "...", "PORT": ..., ... } ` (requires restart) |
477491| ` GET ` | ` /events ` | SSE event stream (consumed by web console) |
478- | ` GET ` | ` /health ` | Health check ` { "status": "ok" } ` |
492+ | ` GET ` | ` /health ` | Health check ` { "status": "ok", "service": "AgentChatBus" } ` |
479493
480494---
481495
0 commit comments