Skip to content

Releases: Caldis/esp32-agent-dashboard

v2.9.0 — Agent kind expansion

24 May 03:01

Choose a tag to compare

What's New

The dashboard now recognizes 7 named agent kinds, up from 2 + "other":

Agent Chip Label Accent
Claude Code cc rust (warm)
Codex cx teal (cool)
Cursor cu auto (hash-based)
Aider ai auto
Windsurf ws auto
Copilot cp auto
Qwen-Code qw auto
Unknown ag fallback accent

Changes

  • Bridge normalize_event accepts all named kinds instead of collapsing to "other"
  • 2-letter chip labels in both scene_awaiting and scene_dashboard feed
  • Theme auto-allocates deterministic hue-based accents via DJB2 hash → HSL
  • Bridge CLI help updated to list all supported agents

How to use with other agents

Set the agent kind when configuring hooks:

# In your hook command, pass the agent kind as the 3rd argument:
python hook_dispatch.py post_tool_use cursor
python hook_dispatch.py stop aider

v2.8.0 — urgency accessibility (WCAG 1.4.1)

24 May 02:55

Choose a tag to compare

What's New

Completes the deferred D-3 accessibility finding from persona testing.

Urgency Chevron

Urgent awaiting kinds (approve, clarify) now prefix the headline with > — a luminance-independent shape cue so color-blind users can distinguish urgent from relaxed states. The teal/gold color pair sits at only 1.17:1 inter-luminance, invisible to deuteranopes (~6% of males).

  • "approve?""> approve?"
  • "clarify""> clarify"

This resolves WCAG 1.4.1 (Use of Color) for the awaiting scene.

v2.7.0 — persona-driven UX fixes + PUSH banner + circuit breaker

24 May 02:55

Choose a tag to compare

What's New

Driven by four-persona user testing (power user, newcomer, bystander, accessibility), v2.7.0 resolves 10 P0 findings across firmware, bridge, and docs.

Firmware UX (R1)

  • WCAG contrast fix: ink-mute #5A514A → ink-fade #8A807A (5.13:1 AA pass) for all secondary text
  • SID display: first-4 + ":" + last-2 format replaces unrecognizable last-6-of-UUID
  • Visual hierarchy: agent chip 28pt → 22pt so 48pt headline stays focal
  • Approve affordance: "BOOT approve · USER deny" hint row on APPROVE kind
  • motion_reduced config: NVS-persisted boolean, gates breath animation + marquee scroll (WCAG 2.2.2)

Bridge (R2)

  • Circuit breaker in hook_dispatch.py: 3 consecutive timeouts in 30s → short-circuit 60s
  • PUSH banner: top-slide-down 3s toast overlay on PostToolUse events
  • New dash push wire command

Docs (R3)

  • Honest quickstart timing (~15 min, not 30 seconds)
  • 3 new troubleshooting entries (idf-not-found, port-locked, settings-clobbered)
  • Mock device path consolidated to tools/mock_device_v1.py
  • Scenes table updated (5 → 7 scenes)
  • Persona testing summary: docs/user_testing/SUMMARY.md

v0.1.0 — multi-agent USB-Serial dashboard

22 May 16:57

Choose a tag to compare

Initial public release.

A live dashboard for AI-agent sessions on a 466x466 AMOLED panel. Watch Claude Code and Codex in real time. Approve permission prompts with a physical button. Multi-agent by design.

Highlights

  • Firmware — 5 LVGL scenes (idle / sessions / prompt / tokens / status) on the Waveshare ESP32-S3-Touch-AMOLED-2.16
  • Host bridge — long-running Python daemon ingesting Claude Code hooks + Codex JSONL, throttled snapshot publisher, blocking permission round-trip
  • Wire format — one-line JSON over USB-Serial via esp-harness console_protocol; replies are OK: / ERR: / EVT:
  • CI — bridge-roundtrip replay against a TCP mock device on every push; firmware build deferred to release-time hardware smoke
  • Homepagehttps://caldis.github.io/esp32-agent-dashboard/

Two upstream fixes shipped to esp-harness

Surfaced against this project's real consumer use case:

  • esp-harness@664b14e — tokeniser preserves inner double quotes (nested JSON survives the command parser)
  • esp-harness@98affb0 — console_protocol drains the overflow tail (one ERR per oversize line, no spurious unknown command)

See CHANGELOG.md for the full inventory and HARNESS_GAPS.md for the running framework-gap log.

Roadmap

  • v0.1 — USB-Serial multi-agent (this release)
  • v1.0 — BLE NUS for Claude Desktop pairing
  • v2.0 — WiFi push for headless dev boxes