2.4 KiB
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=17andapp.js?v=17.
- Main content empty state is now
public/app.jsrenderHomeDashboard()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.
- Added
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-indexincorrectly. - When adding UI assets, bump query-string cache versions in
public/index.htmlso 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.