Skip to content

feat(dash): Agents > Peers tab reads identity cards from agents dataset (#247)#299

Merged
thinmintdev merged 1 commit into
mainfrom
feat/dashboard-agents-panel-247
May 23, 2026
Merged

feat(dash): Agents > Peers tab reads identity cards from agents dataset (#247)#299
thinmintdev merged 1 commit into
mainfrom
feat/dashboard-agents-panel-247

Conversation

@thinmintdev
Copy link
Copy Markdown
Contributor

Summary

Add a Peers tab to the existing AgentView that queries `/mcp/memory` for `memory_search({dataset: "agents", tags: ["agent-identity"]})` and renders one card per discovered agent identity (ADR-0011).

PeerCard surfaces:

  • display_name + agent_id
  • roles as chips
  • Reachability dot — TCP-pinged at render via fetch(HEAD, no-cors) per Dashboard 'Agents' panel reading from agents dataset #247 sharpening; no stored liveness field (ADR-0011 §2 — cards are immutable). States: ok / timeout / error / none.
  • registered_at sourced from card metadata
  • expandable full-metadata JSON

Empty-state when no cards; error-state when memory MCP unreachable. Read-only — write paths stay on the agent via the namespace_register phase (#243).

Landed as a tab on the existing /#agent route rather than a new top-level route — keeps it discoverable for v0.3 without adding a sidebar entry mid-cycle (the broader dashboard v3 layout work continues in its own stream).

Closes #247.

Test plan

  • Component renders against an empty card-list (empty-state path).
  • Component handles `memory_search` failure (error-state path).
  • Real-hardware verify on hal0 LXC: after `hal0 agent bootstrap hermes`, dashboard Agents > Peers shows the Hermes card with reachability indicator.

🤖 Generated with Claude Code

…et (#247)

Add a Peers tab to the existing AgentView in `ui/src/dash/extras.jsx`
that queries `/mcp/memory` for `memory_search({dataset: "agents",
tags: ["agent-identity"]})` and renders one card per discovered
agent identity (ADR-0011).

Each PeerCard surfaces:
* display_name + agent_id
* roles as chips
* TCP-ping reachability dot (ok / timeout / error / none) —
  pinged at render via fetch(HEAD, no-cors) per #247 sharpening
  (no stored liveness field; cards are immutable per ADR-0011 §2)
* registered_at sourced from card metadata
* show/hide full metadata as expandable JSON

Empty-state when no cards published, error-state when memory MCP
unreachable. Read-only — write paths stay on the agent (via the
namespace_register phase in #243).

The Agents panel landed as a tab on the existing /#agent route
rather than a new top-level route, keeping it discoverable for v0.3
without adding a sidebar entry mid-cycle (dashboard v3 layout work
continues in a separate stream).

Closes #247.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@thinmintdev thinmintdev force-pushed the feat/dashboard-agents-panel-247 branch from cd563fa to d9c9eb8 Compare May 23, 2026 23:35
@thinmintdev thinmintdev merged commit 66cdf6a into main May 23, 2026
2 of 4 checks passed
@thinmintdev thinmintdev deleted the feat/dashboard-agents-panel-247 branch May 27, 2026 16:57
thinmintdev added a commit that referenced this pull request May 28, 2026
…rough + gut installer auth section (#390)

- docs/operate/lemonade.md (new, .md canonical): operator reference for
  the v0.2 Lemonade runtime — what it is, where state lives, the /v1/*
  proxy + dispatcher fallthrough (PRs #248/#277), slot ↔ Lemonade
  model mapping (PRs #281/#282), max_loaded_models = 8 LRU cap (PR
  #283), per-type LRU eviction per ADR-0008 (supersedes nuclear-evict
  ADR-0007), OFFLINE-on-eviction (PR #276), and the three known v0.3
  caveats (Vulkan KV gauge missing, whisper RUNPATH workaround, GPU
  cleanup unload hang).

- docs/dashboard/v3.md (new, .md canonical, new docs/dashboard/ dir):
  page-by-page tour of the v3 React dashboard shipped in
  v0.3.0-alpha.1 (PR #235). Covers the shell + Mock-badge convention,
  /dashboard (system overview after #356), /chat (real surface per
  #309/#314/#315/#351), /slots (sidebar mirror per #357 + #344 UX
  sweep), /models (#313/#319/#353), /mcp (#304/#300), /agents (Peers
  per #299), /memory (graph #297, throughput #308), Settings (no Auth
  tab post-ADR-0012), and the footer journal (Epic #322 — PRs
  #321/#328/#329/#330/#332). Mock-fallback issues linked via the
  dashboard-v3 label, not enumerated.

- installer/README.md: gut ~95 lines of stale auth prose (Caddy,
  Bearer-token mint/use/revoke, first-run OTP claim wizard,
  HAL0_AUTH_ENABLED/HAL0_AUTH_DISABLED, password recovery, basic_auth
  upgrade path, the TLS recipe). Replace with one paragraph pointing
  at docs/operate/auth.mdx for the reverse-proxy recipe and
  docs/agents/identity.md for the X-hal0-Agent identity model. Auth
  was removed in v0.3.0-alpha.1 per ADR-0012; the README hadn't
  caught up.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Dashboard 'Agents' panel reading from agents dataset

1 participant