Skip to content

Improve overview activity dashboard#1654

Merged
hijzy merged 4 commits into
MemTensor:mem-agent-0424from
hijzy:cursor/overview-activity-dashboard
May 8, 2026
Merged

Improve overview activity dashboard#1654
hijzy merged 4 commits into
MemTensor:mem-agent-0424from
hijzy:cursor/overview-activity-dashboard

Conversation

@hijzy
Copy link
Copy Markdown
Collaborator

@hijzy hijzy commented May 8, 2026

Summary

  • Replace the raw overview event stream with categorized activity cards for memory, experience, environment knowledge, skill, retrieval, and feedback activity.
  • Drive the dashboard heartbeat from durable api_logs as well as live CoreEvents so late-connected viewers still show real recent activity.
  • Remove the static overview activity demo pages from the package branch.

Test plan

  • npm run lint
  • npx vitest run tests/unit/pipeline/orchestrator.test.ts tests/unit/pipeline/event-bridge.test.ts
  • npm pack

hijzy added 4 commits May 8, 2026 14:19
…dashboard

The Overview page's "Live activity" card used to dump raw JSON payloads
into a monospace stream — visually noisy and unreadable for end users.

Replace with a 3 × 2 grid of category tiles (Memory / Experience /
Environment knowledge / Skill / Retrieval / Feedback). Each tile shows
a 5-minute event count, a 30-bucket sparkline (10 s each), and the most
recent event in plain language ("Memory stored / 记忆存储",
"Experience generated / 经验生成", "Tier 1 retrieval hit / 第一层检索命中",
…). Raw payload + event type stay available via the hover tooltip on
each tile so power users can still inspect.

  - new web/src/views/overview/event-meta.ts: exhaustive CoreEventType
    -> { cat, icon, title, detail } mapping. TS will refuse to compile
    if a future event type is added without a tile entry here.
  - new web/src/views/overview/Sparkline.tsx: dependency-free SVG
    line + area chart, colour bound to --cat CSS variable.
  - new web/src/views/overview/ActivityDashboard.tsx: 3 × 2 grid with
    its own 10 s clock tick so tiles slide left even when SSE is quiet.
  - styles/components.css: drop .stream* block (no other consumers),
    add .dash-grid / .dash-tile / .dash-tile__* with category-driven
    --cat / --cat-soft palette pulled from the existing semantic tokens.
  - i18n.ts: add 9 category labels, 38 event titles, 10 detail
    templates and 5 relative-time labels in both EN and ZH; drop the
    now-unused overview.live.{subtitle,empty,hint} keys.
  - OverviewView.tsx: bump SSE buffer cap from 12 to 256 (a 5-min
    window with multiple events per minute easily exceeds 12) and swap
    the .stream block for <ActivityDashboard events={recent} />.

Vocabulary mirrors the existing product i18n: L2 → "经验" (not 策略),
L3 → "环境认知" (not 世界观). Titles use the noun-verb compound style
("记忆存储" / "经验生成") that operations logs already use elsewhere.
@hijzy hijzy merged commit 7edce53 into MemTensor:mem-agent-0424 May 8, 2026
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.

1 participant