Files
xianyu-hunter-hermes-skill/skill/xianyu-hunter-monitor/references/web-home-dashboard-polish-2026-05.md
T

2.4 KiB

Web home dashboard polish and verification (2026-05)

Use this note when continuing productization of BOSS's local xianyu-hunter Web dashboard.

Context

BOSS disliked an empty/weak landing page and prefers productized, visible Web UI improvements over backend-only work. The local fork's homepage was changed from a plain empty state into a dashboard in public/index.html, with runtime data populated by renderHomeDashboard() in public/app.js.

Implemented shape

  • public/index.html
    • Main content empty state is now .home-dashboard.
    • Includes hero card, overview grid #home-overview, recent task list #home-task-list, and workflow panel.
    • Cache-busting versions bumped to style.css?v=17 and app.js?v=17.
  • public/app.js
    • renderHomeDashboard() computes totals: task count, running count, raw cached products, fine candidates, Hermes recommendations, scheduled task count.
    • Renders recent tasks sorted by updatedAt || createdAt.
    • Called after WebSocket connect/task create/update/finish and when no active task is selected.
  • public/style.css
    • Added /* Home dashboard */ section: hero card, overview cards, recent task cards, workflow cards, responsive breakpoints, light/dark theme support.

Verification commands

Run from /Users/chick/.Hermes/workspace/research/xianyu-hunter:

node --check public/app.js
node --check server.mjs
git diff --check -- public/index.html public/style.css public/app.js
node tools/xianyu_ops.mjs status --port 3000
node --input-type=module <<'JS'
const base = 'http://127.0.0.1:3000';
for (const path of ['/', '/style.css?v=17', '/app.js?v=17', '/api/tasks']) {
  const res = await fetch(base + path);
  const text = await res.text();
  console.log(path, res.status, text.length, text.slice(0, 80).replace(/\n/g, ' '));
  if (!res.ok) process.exitCode = 1;
}
JS

Expected: all syntax/diff checks pass, service is running on port 3000, and all HTTP probes return 200.

Pitfalls

  • After executing tool calls, always convert results into a visible response for BOSS; an empty assistant message after tools is treated as a failure.
  • Use git diff --check -- <paths> directly; do not combine --cached --no-index incorrectly.
  • When adding UI assets, bump query-string cache versions in public/index.html so BOSS sees changes immediately.
  • Keep dashboard changes directly visible at http://127.0.0.1:3000/ or LAN address; BOSS values immediately inspectable Web UI.