OpenClawDashboard/dashboard
Manohar Gupta 8fe6694a21 fix(infra): rebrand, workspace path, model config, chat SSE streaming
- Rebrand Tarzan → Tiger in layout metadata and header
- Bridge: point WORKSPACE_SYMLINK at the docker volume path post-migration
  (/var/lib/docker/volumes/tiger_tiger-workspace/_data) — the old
  /root/tiger-workspace symlink was orphaned after the April standalone
  migration, causing workspace endpoint to return empty.
- Bridge: read agents.defaults.model.primary for model info + expose all
  configured availableModels so the dashboard card can show them.
- Dashboard: page.tsx renders currentModel/fallbackModels/availableModels.
- Chat streaming fix (client side):
  * proper SSE buffering across TCP chunks (split on \n\n, keep tail in
    buffer, {stream: true} decoder for multi-byte UTF-8)
  * separate status vs chunk handlers — status no longer pollutes content
  * fall back to data.content in done event if streamingRef is empty
  * visible parse errors instead of silent catch
  * plain-text rendering while streaming, ReactMarkdown only after done —
    avoids per-token markdown reparse which was killing the typing feel

Root causes:
  1. tiger-bridge crash-looped for 36h on EADDRINUSE because a manual
     nohup restart squatted on port 3456; systemd's tsx version couldn't
     bind. Killing the squatter restored the expected tsx-src workflow.
  2. ChunkLoadError on /chat: npm run build ran under a live next start
     prod server, creating an in-memory manifest vs on-disk build split.
     Fixed by disciplined build-then-restart.
  3. Dashboard chat silently dropped responses: SSE 'status' event text
     was being concatenated into the agent message content.
2026-04-18 19:10:47 +00:00
..
public feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
src fix(infra): rebrand, workspace path, model config, chat SSE streaming 2026-04-18 19:10:47 +00:00
.gitignore feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
components.json feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
eslint.config.mjs feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
next.config.ts feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
package-lock.json feat: complete Tiger dashboard implementation 2026-04-12 23:27:51 +05:30
package.json feat: complete Tiger dashboard implementation 2026-04-12 23:27:51 +05:30
postcss.config.mjs feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
README.md feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30
tsconfig.json feat: initial commit with dashboard, docs, and configurations 2026-02-10 20:54:37 +05:30

This is a Next.js project bootstrapped with create-next-app.

Getting Started

First, run the development server:

npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev

Open http://localhost:3000 with your browser to see the result.

You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.

This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.

Learn More

To learn more about Next.js, take a look at the following resources:

You can check out the Next.js GitHub repository - your feedback and contributions are welcome!

Deploy on Vercel

The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.

Check out our Next.js deployment documentation for more details.