Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
795 changes: 795 additions & 0 deletions docs/bun.lock

Large diffs are not rendered by default.

466 changes: 212 additions & 254 deletions docs/content/docs/(core)/agents.mdx

Large diffs are not rendered by default.

6 changes: 3 additions & 3 deletions docs/content/docs/(deployment)/metrics.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -89,19 +89,19 @@ The `direction` label on token counts distinguishes input tokens, output (comple

Token usage and estimated costs are tracked per-request. To see total estimated spend:

```promql
```text
sum(spacebot_llm_estimated_cost_dollars) by (agent_id)
```

To see spend rate over the last hour:

```promql
```text
sum(rate(spacebot_llm_estimated_cost_dollars[1h])) by (agent_id, model) * 3600
```

To see token throughput:

```promql
```text
sum(rate(spacebot_llm_tokens_total[5m])) by (direction)
```

Expand Down
14 changes: 14 additions & 0 deletions docs/design-docs/multi-agent-communication-graph.md
Original file line number Diff line number Diff line change
Expand Up @@ -488,3 +488,17 @@ Persistent knowledge nodes with per-agent read/write permissions. Separate desig
**Auditable communication.** Every inter-agent message is persisted in `conversation_messages` with full metadata. The dashboard shows the communication graph with live activity. There are no hidden side channels — everything flows through the link system.

**Foundation for agent teams.** Once links and the topology API exist, the React Flow editor turns agent wiring into a visual, drag-and-drop experience. Non-technical users can design agent organizations without editing config files.

## Known Issues

### Webchat / Portal naming mismatch

The webchat messaging adapter registers as `"webchat"` (`WebChatAdapter::name()` in `messaging/webchat.rs`), but the frontend constructs session IDs with the prefix `"portal"` (`useWebChat.ts`: `portal:chat:${agentId}`). The backend passes the frontend's `session_id` through as the `conversation_id` unchanged, so `extract_platform()` derives `platform = "portal"` from the conversation_id prefix.

This means two different names refer to the same thing:
- **Adapter source** (`message.source`): `"webchat"` — used for outbound routing
- **Platform / conversation_id prefix**: `"portal"` — used for display, channel store

The display name is hardcoded to `"portal:chat"` in `extract_display_name()`. The platform badge shows `"portal"` with no custom icon or color (falls through to gray default).

These should be unified under a single name. Either rename the adapter to `"portal"`, change the frontend session prefix to `"webchat:chat:{agentId}"`, or pick a third name. Needs a decision before addressing.
12 changes: 11 additions & 1 deletion interface/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading