mirror of
https://github.com/rennf93/roboco.git
synced 2026-08-03 07:23:24 +02:00
* feat(tg): Mini App V6 — premium overhaul (design system, Chat parity, Metrics drilldown, CEO verbs) Design system: native type with tabular-numeral heroes (mono demoted to the wordmark), borderless elevated cards, floating dock, Telegram window-chrome painting via the theme bridge; Inbox moves behind a header bell with humanized notifications (UUIDs resolve to task names). Chat: honest Mine/Fleet split — participant-scoped CEO threads with real unread counts and mark-read, watched fleet threads with reply-as-CEO on task-linked conversations (watch-only otherwise), markdown transcripts, live pulse flashes, and a pinned Secretary live chat on the panel's SSE session runtime. Metrics: new tab with period-segmented spend hero, by-agent/team/model breakdowns, delivery + efficiency health, and a per-agent drilldown over usage time-series (agent_slug) + member scorecard. Board: tg-native grouped pipeline replacing the MobileTaskBoard wrapper; task sheet gains the CEO decide verbs (approve / request changes / unblock). Security: /api/dashboard router now require_panel_token-gated at router level (mirrors /api/usage), closing unauthenticated metrics exposure. * fix(tg): restore Share Tech Mono brand voice, Phosphor icon set, borderless avatars The mono returns as the numeral/brand voice (.tg-display — heroes, stat values, wordmark) while labels stay native sentence case. The hand-drawn duotone glyphs and lucide feature icons are replaced by Phosphor (MIT): duotone at rest via an IconContext at the shell, filled weight on the dock's active tab; row glyph maps (board statuses, inbox kinds, approval kinds, quick actions) all move over. Team avatar tiles drop their borders — tint-only squircles. * fix(tg): fleet avatar strip breathes — spaced tiles instead of overlap * polish(tg): taste-skill audit pass — em-dash purge, one icon family, separator rationing Applied the design-taste audit against the cockpit: every em-dash in visible UI copy rewritten (periods/commas/colons), the remaining lucide chrome (carets, arrows, send, close, spinners) moved to Phosphor so the tg tree ships one icon family (send is the native paper-plane, carets bold), the hand-rolled chevron SVG deleted, and metadata lines rationed to a single middle-dot separator. * polish(tg): pipeline chip strip scrolls without a visible scrollbar * fix(tests): metrics observability fixture uses a relative timestamp The hardcoded _T0 (2026-06-20) aged out of the service's 30-day window exactly 30 days later, detonating the suite on every branch. Two days back from now() stays inside every window (30d metrics, 7d scorecards) permanently. --------- Co-authored-by: Renn F <rennf93@users.noreply.github.com>
80 lines
2.4 KiB
JSON
80 lines
2.4 KiB
JSON
{
|
|
"name": "roboco-panel",
|
|
"version": "0.26.0",
|
|
"private": true,
|
|
"packageManager": "pnpm@11.10.0",
|
|
"scripts": {
|
|
"dev": "next dev",
|
|
"build": "next build",
|
|
"start": "next start",
|
|
"lint": "eslint",
|
|
"typecheck": "tsc --noEmit",
|
|
"test": "vitest run --coverage",
|
|
"test:watch": "vitest",
|
|
"format": "prettier --write .",
|
|
"format:check": "prettier --check ."
|
|
},
|
|
"dependencies": {
|
|
"@dnd-kit/core": "^6.3.1",
|
|
"@dnd-kit/sortable": "^10.0.0",
|
|
"@dnd-kit/utilities": "^3.2.2",
|
|
"@hookform/resolvers": "^5.4.0",
|
|
"@phosphor-icons/react": "^2.1.10",
|
|
"@radix-ui/react-alert-dialog": "^1.1.19",
|
|
"@radix-ui/react-avatar": "^1.2.2",
|
|
"@radix-ui/react-checkbox": "^1.3.7",
|
|
"@radix-ui/react-collapsible": "^1.1.16",
|
|
"@radix-ui/react-dialog": "^1.1.19",
|
|
"@radix-ui/react-dropdown-menu": "^2.1.20",
|
|
"@radix-ui/react-label": "^2.1.11",
|
|
"@radix-ui/react-popover": "^1.1.19",
|
|
"@radix-ui/react-progress": "^1.1.12",
|
|
"@radix-ui/react-scroll-area": "^1.2.14",
|
|
"@radix-ui/react-select": "^2.3.3",
|
|
"@radix-ui/react-separator": "^1.1.11",
|
|
"@radix-ui/react-slot": "^1.3.0",
|
|
"@radix-ui/react-switch": "^1.3.3",
|
|
"@radix-ui/react-tabs": "^1.1.17",
|
|
"@radix-ui/react-tooltip": "^1.2.12",
|
|
"@tailwindcss/typography": "^0.5.20",
|
|
"@tanstack/react-query": "^5.101.2",
|
|
"@tanstack/react-virtual": "3.14.6",
|
|
"axios": "^1.16.0",
|
|
"class-variance-authority": "^0.7.1",
|
|
"clsx": "^2.1.1",
|
|
"date-fns": "^4.4.0",
|
|
"lucide-react": "^1.24.0",
|
|
"next": "16.1.7",
|
|
"next-themes": "^0.4.6",
|
|
"react": "19.2.7",
|
|
"react-dom": "19.2.7",
|
|
"react-hook-form": "^7.81.0",
|
|
"react-markdown": "^10.1.0",
|
|
"recharts": "^3.9.2",
|
|
"remark-gfm": "^4.0.1",
|
|
"sonner": "^2.0.7",
|
|
"tailwind-merge": "^3.6.0",
|
|
"zod": "^4.4.3",
|
|
"zustand": "^5.0.14"
|
|
},
|
|
"devDependencies": {
|
|
"@tailwindcss/postcss": "^4",
|
|
"@tanstack/react-query-devtools": "^5.101.2",
|
|
"@testing-library/jest-dom": "^6.9.1",
|
|
"@testing-library/react": "^16.3.2",
|
|
"@testing-library/user-event": "^14.6.1",
|
|
"@types/node": "^26.1.1",
|
|
"@types/react": "^19.2.17",
|
|
"@types/react-dom": "^19",
|
|
"@vitest/coverage-v8": "^4.1.10",
|
|
"eslint": "^9",
|
|
"eslint-config-next": "16.2.6",
|
|
"jsdom": "^29.1.1",
|
|
"prettier": "^3.9.5",
|
|
"tailwindcss": "^4",
|
|
"tw-animate-css": "^1.4.0",
|
|
"typescript": "^5",
|
|
"vitest": "^4.1.10"
|
|
}
|
|
}
|