@sleep2agi/agent-network-dashboard 0.4.2 → 0.4.3-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +35 -35
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +3 -3
- package/.next/server/app/_not-found.rsc +12 -12
- package/.next/server/app/_not-found.segments/_full.segment.rsc +12 -12
- package/.next/server/app/_not-found.segments/_head.segment.rsc +4 -4
- package/.next/server/app/_not-found.segments/_index.segment.rsc +7 -7
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +3 -3
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +3 -3
- package/.next/server/app/admin.rsc +14 -14
- package/.next/server/app/admin.segments/_full.segment.rsc +14 -14
- package/.next/server/app/admin.segments/_head.segment.rsc +4 -4
- package/.next/server/app/admin.segments/_index.segment.rsc +7 -7
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/admin.segments/admin.segment.rsc +3 -3
- package/.next/server/app/index.html +3 -3
- package/.next/server/app/index.rsc +14 -14
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/index.segments/_full.segment.rsc +14 -14
- package/.next/server/app/index.segments/_head.segment.rsc +4 -4
- package/.next/server/app/index.segments/_index.segment.rsc +7 -7
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +14 -14
- package/.next/server/app/login.segments/_full.segment.rsc +14 -14
- package/.next/server/app/login.segments/_head.segment.rsc +4 -4
- package/.next/server/app/login.segments/_index.segment.rsc +7 -7
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/login.segments/login.segment.rsc +3 -3
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +3 -3
- package/.next/server/app/logs.rsc +14 -14
- package/.next/server/app/logs.segments/_full.segment.rsc +14 -14
- package/.next/server/app/logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/logs.segments/_index.segment.rsc +7 -7
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/logs.segments/logs.segment.rsc +3 -3
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +3 -3
- package/.next/server/app/messages.rsc +14 -14
- package/.next/server/app/messages.segments/_full.segment.rsc +14 -14
- package/.next/server/app/messages.segments/_head.segment.rsc +4 -4
- package/.next/server/app/messages.segments/_index.segment.rsc +7 -7
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/messages.segments/messages.segment.rsc +3 -3
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +3 -3
- package/.next/server/app/node.rsc +14 -14
- package/.next/server/app/node.segments/_full.segment.rsc +14 -14
- package/.next/server/app/node.segments/_head.segment.rsc +4 -4
- package/.next/server/app/node.segments/_index.segment.rsc +7 -7
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/node.segments/node.segment.rsc +3 -3
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +3 -3
- package/.next/server/app/nodes.rsc +14 -14
- package/.next/server/app/nodes.segments/_full.segment.rsc +14 -14
- package/.next/server/app/nodes.segments/_head.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/_index.segment.rsc +7 -7
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/nodes.segments/nodes.segment.rsc +3 -3
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +3 -3
- package/.next/server/app/server-logs.rsc +14 -14
- package/.next/server/app/server-logs.segments/_full.segment.rsc +14 -14
- package/.next/server/app/server-logs.segments/_head.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/_index.segment.rsc +7 -7
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +3 -3
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +3 -3
- package/.next/server/app/settings/networks.rsc +14 -14
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +14 -14
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +7 -7
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +3 -3
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +3 -3
- package/.next/server/app/settings/tokens.rsc +14 -14
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +14 -14
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +7 -7
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +3 -3
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +3 -3
- package/.next/server/app/settings.html +3 -3
- package/.next/server/app/settings.rsc +14 -14
- package/.next/server/app/settings.segments/_full.segment.rsc +14 -14
- package/.next/server/app/settings.segments/_head.segment.rsc +4 -4
- package/.next/server/app/settings.segments/_index.segment.rsc +7 -7
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/settings.segments/settings.segment.rsc +3 -3
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +3 -3
- package/.next/server/app/tasks.rsc +14 -14
- package/.next/server/app/tasks.segments/_full.segment.rsc +14 -14
- package/.next/server/app/tasks.segments/_head.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/_index.segment.rsc +7 -7
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +4 -4
- package/.next/server/app/tasks.segments/tasks.segment.rsc +3 -3
- package/.next/server/chunks/ssr/[root-of-the-server]__0i1gizm._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0i1gizm._.js.map +1 -1
- package/.next/server/chunks/ssr/app_0pljk5o._.js +1 -1
- package/.next/server/chunks/ssr/app_0pljk5o._.js.map +1 -1
- package/.next/server/chunks/ssr/app_server-logs_page_tsx_0_kpp1p._.js +1 -1
- package/.next/server/chunks/ssr/app_server-logs_page_tsx_0_kpp1p._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +3 -3
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0gjbwb8u5wd72.js → 08iom_z8w-wmz.js} +2 -2
- package/.next/static/chunks/0agna31q2fjq1.css +2 -0
- package/.next/static/chunks/0~93h~zb55yh9.js +1 -0
- package/.next/static/chunks/140l7~i5q9wrv.js +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/Sidebar.tsx +8 -4
- package/app/globals.css +68 -0
- package/app/logs/page.tsx +16 -6
- package/app/server-logs/page.tsx +21 -5
- package/docs/light-theme-audit-v0.4.2.md +229 -0
- package/package.json +1 -1
- package/.next/cache/.previewinfo +0 -1
- package/.next/cache/.rscinfo +0 -1
- package/.next/cache/.tsbuildinfo +0 -1
- package/.next/dev/types/cache-life.d.ts +0 -145
- package/.next/dev/types/routes.d.ts +0 -108
- package/.next/dev/types/validator.ts +0 -394
- package/.next/static/chunks/0_b22ht_r8.-s.css +0 -2
- package/.next/static/chunks/0fnbsi38p-b6~.js +0 -1
- package/.next/static/chunks/0ugk4jd4e7oft.js +0 -1
- /package/.next/static/{jWiexXqSkZJ4pDbBHriqj → PjaeJDylF_V_Owoar118p}/_buildManifest.js +0 -0
- /package/.next/static/{jWiexXqSkZJ4pDbBHriqj → PjaeJDylF_V_Owoar118p}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{jWiexXqSkZJ4pDbBHriqj → PjaeJDylF_V_Owoar118p}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":319,"timestamp":131164993819,"id":4,"parentId":1,"tags":{},"startTime":1778502650819,"traceId":"d0f2042c761f8adc"},{"name":"load-custom-routes","duration":574,"timestamp":131164994290,"id":5,"parentId":1,"tags":{},"startTime":1778502650819,"traceId":"d0f2042c761f8adc"},{"name":"create-dist-dir","duration":318,"timestamp":131164994917,"id":6,"parentId":1,"tags":{},"startTime":1778502650820,"traceId":"d0f2042c761f8adc"},{"name":"clean","duration":33525,"timestamp":131164995984,"id":7,"parentId":1,"tags":{},"startTime":1778502650821,"traceId":"d0f2042c761f8adc"},{"name":"discover-routes","duration":22053,"timestamp":131165123095,"id":8,"parentId":1,"tags":{},"startTime":1778502650948,"traceId":"d0f2042c761f8adc"},{"name":"create-root-mapping","duration":129,"timestamp":131165145216,"id":9,"parentId":1,"tags":{},"startTime":1778502650970,"traceId":"d0f2042c761f8adc"},{"name":"generate-route-types","duration":19757,"timestamp":131165147695,"id":10,"parentId":1,"tags":{},"startTime":1778502650972,"traceId":"d0f2042c761f8adc"},{"name":"public-dir-conflict-check","duration":148,"timestamp":131165167583,"id":11,"parentId":1,"tags":{},"startTime":1778502650992,"traceId":"d0f2042c761f8adc"},{"name":"generate-routes-manifest","duration":4452,"timestamp":131165167880,"id":12,"parentId":1,"tags":{},"startTime":1778502650993,"traceId":"d0f2042c761f8adc"},{"name":"run-turbopack","duration":7269554,"timestamp":131165178946,"id":14,"parentId":1,"tags":{},"startTime":1778502651004,"traceId":"d0f2042c761f8adc"},{"name":"turbopack-build-events","duration":93,"timestamp":131165468955,"id":15,"parentId":1,"tags":{},"startTime":1778502651294,"traceId":"d0f2042c761f8adc"},{"name":"run-typescript","duration":7278448,"timestamp":131172465580,"id":16,"parentId":1,"tags":{},"startTime":1778502658290,"traceId":"d0f2042c761f8adc"},{"name":"generate-required-server-files","duration":2101,"timestamp":131179745241,"id":18,"parentId":1,"tags":{},"startTime":1778502665570,"traceId":"d0f2042c761f8adc"},{"name":"check-static-error-page","duration":13093,"timestamp":131179828241,"id":20,"parentId":19,"tags":{},"startTime":1778502665653,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":347868,"timestamp":131179846340,"id":62,"parentId":22,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":361869,"timestamp":131179832461,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778502665657,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":435371,"timestamp":131179846667,"id":64,"parentId":26,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":446596,"timestamp":131179835524,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778502665660,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":468070,"timestamp":131179846714,"id":65,"parentId":27,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":479226,"timestamp":131179835619,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778502665660,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":474179,"timestamp":131179845964,"id":61,"parentId":21,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":489324,"timestamp":131179830878,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778502665656,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":483597,"timestamp":131179846754,"id":66,"parentId":28,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":494771,"timestamp":131179835701,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778502665660,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":488503,"timestamp":131179846827,"id":68,"parentId":30,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":498835,"timestamp":131179836572,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778502665661,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":490717,"timestamp":131179846862,"id":69,"parentId":32,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":500668,"timestamp":131179836965,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778502665662,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":500340,"timestamp":131179846980,"id":70,"parentId":33,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":510287,"timestamp":131179837117,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778502665662,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":503889,"timestamp":131179847051,"id":71,"parentId":34,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":513791,"timestamp":131179837220,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778502665662,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":515948,"timestamp":131179847071,"id":72,"parentId":35,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":525772,"timestamp":131179837316,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778502665662,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":520857,"timestamp":131179847124,"id":73,"parentId":36,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":531537,"timestamp":131179837676,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778502665662,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":525774,"timestamp":131179847145,"id":74,"parentId":37,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":535167,"timestamp":131179837808,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778502665662,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":532425,"timestamp":131179847153,"id":75,"parentId":38,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":541734,"timestamp":131179837914,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":533966,"timestamp":131179847166,"id":76,"parentId":39,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":543186,"timestamp":131179837987,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":541868,"timestamp":131179847174,"id":77,"parentId":40,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":550981,"timestamp":131179838116,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":550238,"timestamp":131179847180,"id":78,"parentId":41,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":559292,"timestamp":131179838197,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":552487,"timestamp":131179846789,"id":67,"parentId":29,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":563580,"timestamp":131179835782,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778502665660,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":554738,"timestamp":131179847189,"id":79,"parentId":42,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":563707,"timestamp":131179838276,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":557445,"timestamp":131179847198,"id":80,"parentId":43,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":566346,"timestamp":131179838350,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":558994,"timestamp":131179847204,"id":81,"parentId":44,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":567821,"timestamp":131179838435,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":561866,"timestamp":131179847213,"id":82,"parentId":45,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":570621,"timestamp":131179838506,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":563998,"timestamp":131179847222,"id":83,"parentId":46,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":572676,"timestamp":131179838602,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":565859,"timestamp":131179847228,"id":84,"parentId":47,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":574454,"timestamp":131179838678,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":567918,"timestamp":131179847237,"id":85,"parentId":48,"tags":{},"startTime":1778502665672,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":576447,"timestamp":131179838754,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778502665663,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":564034,"timestamp":131179852683,"id":86,"parentId":24,"tags":{},"startTime":1778502665677,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":583779,"timestamp":131179832979,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778502665658,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":567957,"timestamp":131179854211,"id":87,"parentId":31,"tags":{},"startTime":1778502665679,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":585486,"timestamp":131179836733,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778502665661,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":560576,"timestamp":131179865359,"id":88,"parentId":23,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":593212,"timestamp":131179832770,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778502665657,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":566813,"timestamp":131179865425,"id":90,"parentId":50,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":593014,"timestamp":131179839285,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1778502665664,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":571611,"timestamp":131179865437,"id":91,"parentId":51,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":597691,"timestamp":131179839407,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1778502665664,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":579653,"timestamp":131179865446,"id":92,"parentId":52,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":605593,"timestamp":131179839562,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1778502665664,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":582681,"timestamp":131179865451,"id":93,"parentId":53,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":608456,"timestamp":131179839728,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778502665664,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":587941,"timestamp":131179865459,"id":94,"parentId":55,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":613150,"timestamp":131179840300,"id":55,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778502665665,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":593375,"timestamp":131179865468,"id":95,"parentId":56,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":618455,"timestamp":131179840455,"id":56,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778502665665,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":619284,"timestamp":131179846490,"id":63,"parentId":25,"tags":{},"startTime":1778502665671,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":630473,"timestamp":131179835358,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778502665660,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":607585,"timestamp":131179865474,"id":96,"parentId":58,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":632264,"timestamp":131179840871,"id":58,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778502665666,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":613942,"timestamp":131179865492,"id":98,"parentId":60,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":638594,"timestamp":131179841139,"id":60,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778502665666,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":620585,"timestamp":131179865500,"id":99,"parentId":54,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":646271,"timestamp":131179839868,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1778502665665,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":622850,"timestamp":131179865418,"id":89,"parentId":49,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":649205,"timestamp":131179839130,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1778502665664,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":622927,"timestamp":131179868991,"id":100,"parentId":57,"tags":{},"startTime":1778502665694,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":651365,"timestamp":131179840601,"id":57,"parentId":19,"tags":{"page":"/settings"},"startTime":1778502665665,"traceId":"d0f2042c761f8adc"},{"name":"is-page-static","duration":674382,"timestamp":131179865482,"id":97,"parentId":59,"tags":{},"startTime":1778502665690,"traceId":"d0f2042c761f8adc"},{"name":"check-page","duration":698964,"timestamp":131179840988,"id":59,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778502665666,"traceId":"d0f2042c761f8adc"},{"name":"static-check","duration":712487,"timestamp":131179827553,"id":19,"parentId":1,"tags":{},"startTime":1778502665652,"traceId":"d0f2042c761f8adc"},{"name":"write-routes-manifest","duration":518,"timestamp":131180547347,"id":102,"parentId":1,"tags":{},"startTime":1778502666372,"traceId":"d0f2042c761f8adc"},{"name":"load-dotenv","duration":58,"timestamp":131180560675,"id":105,"parentId":104,"tags":{},"startTime":1778502666385,"traceId":"d0f2042c761f8adc"},{"name":"run-export-path-map","duration":845,"timestamp":131180564201,"id":106,"parentId":104,"tags":{},"startTime":1778502666389,"traceId":"d0f2042c761f8adc"},{"name":"next-export","duration":650791,"timestamp":131180558841,"id":104,"parentId":1,"tags":{},"startTime":1778502666384,"traceId":"d0f2042c761f8adc"},{"name":"move-exported-app-not-found-","duration":592,"timestamp":131181212746,"id":107,"parentId":103,"tags":{},"startTime":1778502667037,"traceId":"d0f2042c761f8adc"},{"name":"move-exported-app-global-error-","duration":428,"timestamp":131181213472,"id":108,"parentId":103,"tags":{},"startTime":1778502667038,"traceId":"d0f2042c761f8adc"}]
|
|
2
|
-
[{"name":"static-generation","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":310,"timestamp":172584022851,"id":4,"parentId":1,"tags":{},"startTime":1778544069848,"traceId":"f631fd1ca720aa20"},{"name":"load-custom-routes","duration":483,"timestamp":172584023308,"id":5,"parentId":1,"tags":{},"startTime":1778544069848,"traceId":"f631fd1ca720aa20"},{"name":"create-dist-dir","duration":296,"timestamp":172584023836,"id":6,"parentId":1,"tags":{},"startTime":1778544069849,"traceId":"f631fd1ca720aa20"},{"name":"clean","duration":34491,"timestamp":172584024835,"id":7,"parentId":1,"tags":{},"startTime":1778544069850,"traceId":"f631fd1ca720aa20"},{"name":"discover-routes","duration":20799,"timestamp":172584143835,"id":8,"parentId":1,"tags":{},"startTime":1778544069969,"traceId":"f631fd1ca720aa20"},{"name":"create-root-mapping","duration":126,"timestamp":172584164706,"id":9,"parentId":1,"tags":{},"startTime":1778544069989,"traceId":"f631fd1ca720aa20"},{"name":"generate-route-types","duration":22181,"timestamp":172584167355,"id":10,"parentId":1,"tags":{},"startTime":1778544069992,"traceId":"f631fd1ca720aa20"},{"name":"public-dir-conflict-check","duration":111,"timestamp":172584189663,"id":11,"parentId":1,"tags":{},"startTime":1778544070014,"traceId":"f631fd1ca720aa20"},{"name":"generate-routes-manifest","duration":4403,"timestamp":172584189898,"id":12,"parentId":1,"tags":{},"startTime":1778544070015,"traceId":"f631fd1ca720aa20"},{"name":"run-turbopack","duration":8124447,"timestamp":172584199739,"id":14,"parentId":1,"tags":{},"startTime":1778544070024,"traceId":"f631fd1ca720aa20"},{"name":"turbopack-build-events","duration":108,"timestamp":172584512871,"id":15,"parentId":1,"tags":{},"startTime":1778544070338,"traceId":"f631fd1ca720aa20"},{"name":"run-typescript","duration":7846165,"timestamp":172592331551,"id":16,"parentId":1,"tags":{},"startTime":1778544078156,"traceId":"f631fd1ca720aa20"},{"name":"generate-required-server-files","duration":2364,"timestamp":172600178916,"id":18,"parentId":1,"tags":{},"startTime":1778544086004,"traceId":"f631fd1ca720aa20"},{"name":"check-static-error-page","duration":16892,"timestamp":172600272840,"id":20,"parentId":19,"tags":{},"startTime":1778544086098,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":320950,"timestamp":172600293453,"id":62,"parentId":22,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":337344,"timestamp":172600277211,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778544086102,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":405378,"timestamp":172600293128,"id":61,"parentId":21,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":424493,"timestamp":172600274105,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778544086099,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":419750,"timestamp":172600293536,"id":63,"parentId":25,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":430535,"timestamp":172600282816,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":427690,"timestamp":172600293678,"id":64,"parentId":26,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":438461,"timestamp":172600282988,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":432862,"timestamp":172600293789,"id":67,"parentId":29,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":443485,"timestamp":172600283250,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":437265,"timestamp":172600293823,"id":68,"parentId":30,"tags":{},"startTime":1778544086119,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":447680,"timestamp":172600283478,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":436308,"timestamp":172600297412,"id":69,"parentId":32,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":449946,"timestamp":172600283825,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":442234,"timestamp":172600293754,"id":66,"parentId":28,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":452884,"timestamp":172600283173,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":440514,"timestamp":172600297544,"id":70,"parentId":33,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":454207,"timestamp":172600283913,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":445453,"timestamp":172600297624,"id":72,"parentId":35,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":459051,"timestamp":172600284087,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":447817,"timestamp":172600297682,"id":73,"parentId":36,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":461139,"timestamp":172600284423,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":451464,"timestamp":172600297705,"id":74,"parentId":37,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":464680,"timestamp":172600284538,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":454962,"timestamp":172600297600,"id":71,"parentId":34,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":468620,"timestamp":172600283993,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":455529,"timestamp":172600297714,"id":75,"parentId":38,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":468664,"timestamp":172600284628,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":459028,"timestamp":172600297720,"id":76,"parentId":39,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":472078,"timestamp":172600284721,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":460913,"timestamp":172600297725,"id":77,"parentId":40,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":473882,"timestamp":172600284793,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778544086109,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":462238,"timestamp":172600297731,"id":78,"parentId":41,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":474740,"timestamp":172600285296,"id":41,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":464198,"timestamp":172600297739,"id":79,"parentId":42,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":476598,"timestamp":172600285382,"id":42,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":465616,"timestamp":172600297744,"id":80,"parentId":43,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":477947,"timestamp":172600285458,"id":43,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":467705,"timestamp":172600297750,"id":81,"parentId":44,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":479966,"timestamp":172600285524,"id":44,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":469336,"timestamp":172600297756,"id":82,"parentId":45,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":481542,"timestamp":172600285586,"id":45,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":471319,"timestamp":172600297762,"id":83,"parentId":46,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":483442,"timestamp":172600285676,"id":46,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":471476,"timestamp":172600297768,"id":84,"parentId":47,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":483496,"timestamp":172600285770,"id":47,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778544086110,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":474163,"timestamp":172600297774,"id":85,"parentId":48,"tags":{},"startTime":1778544086122,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":486144,"timestamp":172600285837,"id":48,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778544086111,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":470085,"timestamp":172600304990,"id":86,"parentId":24,"tags":{},"startTime":1778544086130,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":497508,"timestamp":172600277620,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778544086102,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":469496,"timestamp":172600305775,"id":87,"parentId":31,"tags":{},"startTime":1778544086130,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":491728,"timestamp":172600283573,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":482074,"timestamp":172600293719,"id":65,"parentId":27,"tags":{},"startTime":1778544086118,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":492745,"timestamp":172600283092,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778544086108,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":474793,"timestamp":172600308587,"id":90,"parentId":50,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":497182,"timestamp":172600286275,"id":50,"parentId":19,"tags":{"page":"/logs"},"startTime":1778544086111,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":481013,"timestamp":172600308593,"id":91,"parentId":51,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":503298,"timestamp":172600286368,"id":51,"parentId":19,"tags":{"page":"/messages"},"startTime":1778544086111,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":486866,"timestamp":172600308598,"id":92,"parentId":52,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":509003,"timestamp":172600286536,"id":52,"parentId":19,"tags":{"page":"/node"},"startTime":1778544086111,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":493226,"timestamp":172600308604,"id":93,"parentId":53,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":515208,"timestamp":172600286687,"id":53,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778544086111,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":499129,"timestamp":172600308610,"id":94,"parentId":55,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":520604,"timestamp":172600287194,"id":55,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778544086112,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":505242,"timestamp":172600308615,"id":95,"parentId":56,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":526607,"timestamp":172600287327,"id":56,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778544086112,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":507614,"timestamp":172600308579,"id":89,"parentId":49,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":530061,"timestamp":172600286185,"id":49,"parentId":19,"tags":{"page":"/login"},"startTime":1778544086111,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":512009,"timestamp":172600308620,"id":96,"parentId":58,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":531381,"timestamp":172600289292,"id":58,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778544086114,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":512221,"timestamp":172600308550,"id":88,"parentId":23,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":543311,"timestamp":172600277478,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778544086102,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":511681,"timestamp":172600315585,"id":99,"parentId":54,"tags":{},"startTime":1778544086140,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":540464,"timestamp":172600286851,"id":54,"parentId":19,"tags":{"page":"/"},"startTime":1778544086112,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":519859,"timestamp":172600308633,"id":98,"parentId":60,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":538990,"timestamp":172600289539,"id":60,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778544086114,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":520596,"timestamp":172600308625,"id":97,"parentId":59,"tags":{},"startTime":1778544086133,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":539852,"timestamp":172600289424,"id":59,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778544086114,"traceId":"f631fd1ca720aa20"},{"name":"is-page-static","duration":512932,"timestamp":172600318799,"id":100,"parentId":57,"tags":{},"startTime":1778544086143,"traceId":"f631fd1ca720aa20"},{"name":"check-page","duration":544296,"timestamp":172600287473,"id":57,"parentId":19,"tags":{"page":"/settings"},"startTime":1778544086112,"traceId":"f631fd1ca720aa20"},{"name":"static-check","duration":564902,"timestamp":172600266899,"id":19,"parentId":1,"tags":{},"startTime":1778544086092,"traceId":"f631fd1ca720aa20"},{"name":"write-routes-manifest","duration":488,"timestamp":172600839243,"id":102,"parentId":1,"tags":{},"startTime":1778544086664,"traceId":"f631fd1ca720aa20"},{"name":"load-dotenv","duration":58,"timestamp":172600852163,"id":105,"parentId":104,"tags":{},"startTime":1778544086677,"traceId":"f631fd1ca720aa20"},{"name":"run-export-path-map","duration":578,"timestamp":172600856190,"id":106,"parentId":104,"tags":{},"startTime":1778544086681,"traceId":"f631fd1ca720aa20"},{"name":"next-export","duration":518623,"timestamp":172600850873,"id":104,"parentId":1,"tags":{},"startTime":1778544086676,"traceId":"f631fd1ca720aa20"},{"name":"move-exported-app-not-found-","duration":1504,"timestamp":172601373070,"id":107,"parentId":103,"tags":{},"startTime":1778544087198,"traceId":"f631fd1ca720aa20"},{"name":"move-exported-app-global-error-","duration":454,"timestamp":172601374681,"id":108,"parentId":103,"tags":{},"startTime":1778544087199,"traceId":"f631fd1ca720aa20"}]
|
|
2
|
+
[{"name":"static-generation","duration":535000,"timestamp":172600844211,"id":103,"parentId":1,"tags":{},"startTime":1778544086669,"traceId":"f631fd1ca720aa20"},{"name":"write-routes-manifest","duration":481,"timestamp":172601379438,"id":109,"parentId":1,"tags":{},"startTime":1778544087204,"traceId":"f631fd1ca720aa20"},{"name":"print-tree-view","duration":3779,"timestamp":172601391395,"id":110,"parentId":1,"tags":{},"startTime":1778544087216,"traceId":"f631fd1ca720aa20"},{"name":"write-route-bundle-stats","duration":13813,"timestamp":172601395216,"id":111,"parentId":1,"tags":{},"startTime":1778544087220,"traceId":"f631fd1ca720aa20"},{"name":"telemetry-flush","duration":47163,"timestamp":172601409067,"id":112,"parentId":1,"tags":{},"startTime":1778544087234,"traceId":"f631fd1ca720aa20"},{"name":"next-build","duration":17480352,"timestamp":172583975921,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778544069801,"traceId":"f631fd1ca720aa20"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":8124447,"timestamp":172584199739,"id":14,"parentId":1,"tags":{},"startTime":1778544070024,"traceId":"f631fd1ca720aa20"},{"name":"turbopack-build-events","duration":108,"timestamp":172584512871,"id":15,"parentId":1,"tags":{},"startTime":1778544070338,"traceId":"f631fd1ca720aa20"},{"name":"run-typescript","duration":7846165,"timestamp":172592331551,"id":16,"parentId":1,"tags":{},"startTime":1778544078156,"traceId":"f631fd1ca720aa20"},{"name":"static-check","duration":564902,"timestamp":172600266899,"id":19,"parentId":1,"tags":{},"startTime":1778544086092,"traceId":"f631fd1ca720aa20"},{"name":"static-generation","duration":535000,"timestamp":172600844211,"id":103,"parentId":1,"tags":{},"startTime":1778544086669,"traceId":"f631fd1ca720aa20"},{"name":"telemetry-flush","duration":47163,"timestamp":172601409067,"id":112,"parentId":1,"tags":{},"startTime":1778544087234,"traceId":"f631fd1ca720aa20"},{"name":"next-build","duration":17480352,"timestamp":172583975921,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778544069801,"traceId":"f631fd1ca720aa20"}]
|
|
@@ -51,9 +51,9 @@ export function Sidebar() {
|
|
|
51
51
|
href={item.href}
|
|
52
52
|
prefetch={false}
|
|
53
53
|
onClick={() => setMobileOpen(false)}
|
|
54
|
-
className={`flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${
|
|
54
|
+
className={`relative flex items-center gap-3 px-3 py-3 rounded-lg text-sm transition-colors active:bg-[#1a1a3a] ${
|
|
55
55
|
isActive(item.href)
|
|
56
|
-
? 'bg-cyan-500/10 text-cyan-300 border border-cyan-500/20'
|
|
56
|
+
? 'bg-cyan-500/10 text-cyan-300 border border-cyan-500/20 anet-nav-active'
|
|
57
57
|
: 'text-gray-400 hover:text-gray-200 hover:bg-[#1a1a2a]'
|
|
58
58
|
} ${collapsed ? 'justify-center' : ''}`}
|
|
59
59
|
>
|
|
@@ -89,8 +89,12 @@ export function Sidebar() {
|
|
|
89
89
|
/>
|
|
90
90
|
)}
|
|
91
91
|
|
|
92
|
-
{/* Sidebar
|
|
93
|
-
|
|
92
|
+
{/* Sidebar — `bg-[#0d0d1a]` resolves to var(--bg) in dark themes,
|
|
93
|
+
but in light/mint we want a distinct surface, so we layer
|
|
94
|
+
`lg:bg-white` / `lg:dark:bg-[#0d0d1a]` via the theme attribute.
|
|
95
|
+
The CSS shim in globals.css upgrades sidebar bg to bg-secondary
|
|
96
|
+
in light themes so the sidebar reads as its own card. */}
|
|
97
|
+
<aside data-anet-sidebar="true" className={`
|
|
94
98
|
fixed top-0 left-0 h-full z-40 bg-[#0d0d1a] border-r border-[#2a2a4a]
|
|
95
99
|
transition-all duration-200
|
|
96
100
|
${collapsed ? 'w-16' : 'w-52'}
|
package/app/globals.css
CHANGED
|
@@ -399,3 +399,71 @@ body {
|
|
|
399
399
|
background-color: var(--bg-elevated) !important;
|
|
400
400
|
color: var(--fg-muted) !important;
|
|
401
401
|
}
|
|
402
|
+
|
|
403
|
+
/* ─────────────────────────────────────────────────────────────────────
|
|
404
|
+
v0.4.3 light-theme polish — Phase 3 P0 fixes
|
|
405
|
+
─────────────────────────────────────────────────────────────────── */
|
|
406
|
+
|
|
407
|
+
/* P0-1: Sidebar gets its own surface in light themes (not page-colored).
|
|
408
|
+
In Cyber (dark) the sidebar already feels separate via depth; in
|
|
409
|
+
light/mint the page bg == sidebar bg so only the right border separates
|
|
410
|
+
them. Switch sidebar to bg-secondary (white) + a hairline shadow. */
|
|
411
|
+
[data-theme="light"] aside[data-anet-sidebar="true"],
|
|
412
|
+
[data-theme="mint"] aside[data-anet-sidebar="true"] {
|
|
413
|
+
background-color: var(--bg-secondary) !important;
|
|
414
|
+
/* Right edge: solid hairline border + a soft 16px halo so the sidebar
|
|
415
|
+
reads as a card hovering over the page, not "part of the page". */
|
|
416
|
+
box-shadow:
|
|
417
|
+
1px 0 0 var(--border),
|
|
418
|
+
8px 0 20px -10px rgba(15, 23, 42, 0.10),
|
|
419
|
+
0 0 0 1px rgba(15, 23, 42, 0.02);
|
|
420
|
+
border-right-color: transparent !important;
|
|
421
|
+
}
|
|
422
|
+
/* Also tint page bg slightly cooler so the white sidebar pops more */
|
|
423
|
+
[data-theme="light"] {
|
|
424
|
+
--bg: #f3f5f8; /* was #f6f7f9 — bumped 3pt cooler for sidebar contrast */
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
/* P0-2: Active nav — collapse the 4-emerald stack (bg + border + text + ring)
|
|
428
|
+
to a single accent cue: 3px left bar + medium-weight text. Dark themes
|
|
429
|
+
keep the existing tinted-pill look. */
|
|
430
|
+
[data-theme="light"] .anet-nav-active,
|
|
431
|
+
[data-theme="mint"] .anet-nav-active {
|
|
432
|
+
/* Active nav: 1 strong accent cue (3px left bar) + faint bg wash + bold text.
|
|
433
|
+
Replaces the four-emerald-stack (bg + border + text + ring) with a
|
|
434
|
+
calmer Linear/Vercel-style "current page" indicator. */
|
|
435
|
+
background-color: rgba(0, 158, 126, 0.06) !important;
|
|
436
|
+
border-color: transparent !important;
|
|
437
|
+
border-left: 3px solid var(--accent) !important;
|
|
438
|
+
border-radius: 0 8px 8px 0 !important;
|
|
439
|
+
padding-left: calc(0.75rem - 3px) !important;
|
|
440
|
+
color: var(--accent) !important;
|
|
441
|
+
font-weight: 600;
|
|
442
|
+
}
|
|
443
|
+
[data-theme="light"] .anet-nav-active:hover,
|
|
444
|
+
[data-theme="mint"] .anet-nav-active:hover {
|
|
445
|
+
background-color: rgba(0, 158, 126, 0.10) !important;
|
|
446
|
+
}
|
|
447
|
+
/* When sidebar is collapsed (w-16, justify-center) the left bar would look
|
|
448
|
+
weird against a centered icon — switch to a left-bg accent instead. */
|
|
449
|
+
[data-theme="light"] aside.w-16 .anet-nav-active,
|
|
450
|
+
[data-theme="mint"] aside.w-16 .anet-nav-active {
|
|
451
|
+
border-radius: 8px !important;
|
|
452
|
+
padding-left: 0 !important;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
/* P0-3 baseline: error / warning chip colors for light themes.
|
|
456
|
+
The component-level copy (replacing raw JSON with human text) is fixed
|
|
457
|
+
in the Logs / Server-Logs page components separately. */
|
|
458
|
+
[data-theme="light"] .anet-error-chip,
|
|
459
|
+
[data-theme="mint"] .anet-error-chip {
|
|
460
|
+
background-color: rgba(220, 38, 38, 0.06) !important;
|
|
461
|
+
color: #b91c1c !important;
|
|
462
|
+
border-color: rgba(220, 38, 38, 0.25) !important;
|
|
463
|
+
}
|
|
464
|
+
[data-theme="light"] .anet-warn-chip,
|
|
465
|
+
[data-theme="mint"] .anet-warn-chip {
|
|
466
|
+
background-color: rgba(217, 119, 6, 0.08) !important;
|
|
467
|
+
color: #92400e !important;
|
|
468
|
+
border-color: rgba(217, 119, 6, 0.28) !important;
|
|
469
|
+
}
|
package/app/logs/page.tsx
CHANGED
|
@@ -83,12 +83,22 @@ export default function LogsPage() {
|
|
|
83
83
|
</select>
|
|
84
84
|
</div>
|
|
85
85
|
|
|
86
|
-
{error && (
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
86
|
+
{error && (() => {
|
|
87
|
+
// Don't dump raw error JSON to users — translate known patterns.
|
|
88
|
+
const isAuth = /unauthor|401|forbidden|403|admin/i.test(error);
|
|
89
|
+
const human = isAuth
|
|
90
|
+
? '需要登录才能查看审计日志(admin 角色可看全部)'
|
|
91
|
+
: '加载失败 —— 请稍后重试';
|
|
92
|
+
return (
|
|
93
|
+
<div className="anet-warn-chip bg-yellow-900/20 border border-yellow-800/40 text-yellow-300 px-4 py-3 rounded-lg mb-6 text-sm flex items-start gap-3" role="alert">
|
|
94
|
+
<span aria-hidden className="text-base leading-none">⚠</span>
|
|
95
|
+
<div className="flex-1">
|
|
96
|
+
<div className="font-medium">{human}</div>
|
|
97
|
+
<div className="text-xs opacity-70 mt-1">如果你已经登录但仍看到此提示,请用 admin 账号重新登录后查看。</div>
|
|
98
|
+
</div>
|
|
99
|
+
</div>
|
|
100
|
+
);
|
|
101
|
+
})()}
|
|
92
102
|
|
|
93
103
|
{loading ? (
|
|
94
104
|
<div className="animate-pulse space-y-2">
|
package/app/server-logs/page.tsx
CHANGED
|
@@ -141,11 +141,27 @@ export default function ServerLogsPage() {
|
|
|
141
141
|
</span>
|
|
142
142
|
</div>
|
|
143
143
|
|
|
144
|
-
{error && (
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
144
|
+
{error && (() => {
|
|
145
|
+
// Translate server error to user-friendly copy. Keep the raw error
|
|
146
|
+
// available as a tooltip for debugging, but the user-visible message
|
|
147
|
+
// stays human.
|
|
148
|
+
const isAuth = /401|unauthor|forbidden|403|admin/i.test(error);
|
|
149
|
+
const human = isAuth
|
|
150
|
+
? '需要 admin 角色才能查看服务器日志'
|
|
151
|
+
: '服务器日志暂时无法加载';
|
|
152
|
+
const sub = isAuth
|
|
153
|
+
? '请用 admin 账号登录后查看。当前账号没有这个权限。'
|
|
154
|
+
: '请检查 CommHub 是否在线,或稍后重试。';
|
|
155
|
+
return (
|
|
156
|
+
<div className="anet-error-chip mb-3 p-3 rounded border border-red-500/30 bg-red-500/10 text-red-300 text-sm flex items-start gap-3" role="alert">
|
|
157
|
+
<span aria-hidden className="text-base leading-none">⛔</span>
|
|
158
|
+
<div className="flex-1">
|
|
159
|
+
<div className="font-medium">{human}</div>
|
|
160
|
+
<div className="text-xs opacity-70 mt-0.5" title={error}>{sub}</div>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
);
|
|
164
|
+
})()}
|
|
149
165
|
|
|
150
166
|
<div className="rounded border border-[#1a1a2a] bg-[#050510] font-mono text-[11px] leading-relaxed overflow-hidden">
|
|
151
167
|
{filtered.length === 0 ? (
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
# Light Theme Audit & Polish Proposal · v0.4.2 → v0.4.3-preview.0
|
|
2
|
+
|
|
3
|
+
**Author**: N站马 (Dashboard owner)
|
|
4
|
+
**Reviewers**: 通信龙 (gate), Vincent (final)
|
|
5
|
+
**Status**: 🟡 design-review — DO NOT implement until 通信龙 OKs direction
|
|
6
|
+
|
|
7
|
+
## TL;DR
|
|
8
|
+
|
|
9
|
+
Light theme is **functionally correct** (Issue #4 fix shipped in 0.3.4 made all themed surfaces light), but the visual story is unfinished. The 0.4.x line plugged bug-leaks; 0.4.3 should make light feel **deliberate**, not "Cyber-minus-the-dark".
|
|
10
|
+
|
|
11
|
+
I propose direction = **cool-professional, breathable** (Stripe Dashboard / Vercel / Linear). Three high-impact moves:
|
|
12
|
+
|
|
13
|
+
1. Sidebar gets **white** (`bg-secondary`) — currently same color as page bg, so it doesn't visually separate.
|
|
14
|
+
2. Active-nav state simplifies from **4 emerald cues** to **1**: thin left border + slight bg tint, NO emerald text.
|
|
15
|
+
3. Empty / disabled / error states stop showing **raw `[{"error":...}]`** and double-dash `--` — replace with iconified empathy states.
|
|
16
|
+
|
|
17
|
+
The big optional swing is a Command Mesh **light SVG variant** (currently a dark radar canvas inside an otherwise light page). High polish, ~150 lines SVG rewrite. Recommend: do it, gated on 通信龙's call.
|
|
18
|
+
|
|
19
|
+
If those land, the rest is per-component cleanup (~10 small commits). Target release: `@sleep2agi/agent-network-dashboard@0.4.3-preview.0`, preview tag only.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 1. Audit method
|
|
24
|
+
|
|
25
|
+
- Local `next dev` on port 3030
|
|
26
|
+
- Playwright (chromium headless 1440×1100, fullPage)
|
|
27
|
+
- 11 pages screenshotted: login, overview, nodes, tasks, messages, networks, logs, server-logs, admin, settings, settings/tokens
|
|
28
|
+
- For each page also collected: dark-residual elements (computed bg with R<80, RGB sum <220) and low-contrast text pairs (luminance delta < 120)
|
|
29
|
+
- Empty-state coverage (no real agents in local network) — known limitation; need to re-audit with seeded data once we have a staging hub
|
|
30
|
+
|
|
31
|
+
Screenshots and `findings.json` archived at `/tmp/audit-light/` (12 files).
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 2. Direction call — needs 通信龙 sign-off
|
|
36
|
+
|
|
37
|
+
### Proposal: **cool-professional, breathable**
|
|
38
|
+
|
|
39
|
+
| dimension | direction |
|
|
40
|
+
|---|---|
|
|
41
|
+
| feel | crisp, technical, ops-oriented — like Stripe Dashboard / Vercel / Linear |
|
|
42
|
+
| temperature | cool (zinc + emerald), NOT warm (amber/orange/peach) |
|
|
43
|
+
| density | breathable — same info density as Cyber but card padding +1 step, vertical gaps +30% |
|
|
44
|
+
| accent usage | minimal — emerald only on (1) CTA buttons, (2) current-page nav, (3) key status numbers |
|
|
45
|
+
| typography | keep `font-mono` for code/IDs/timestamps; consider sans-serif for body labels (deferred — separate decision) |
|
|
46
|
+
| elevation | real soft shadows (2 levels: rest + hover), NOT border-only |
|
|
47
|
+
| illustration | none — no icons-with-faces, no doodles, no curved arrows |
|
|
48
|
+
|
|
49
|
+
### Why not "warm/friendly"
|
|
50
|
+
|
|
51
|
+
This is an **ops tool** for managing AI agent armies (Vincent's framing). Warm undermines the "monitoring console" feel. Cyber dark and Light cool are the same designer-brain — two surfaces of one product.
|
|
52
|
+
|
|
53
|
+
### Why not "minimalist/flat"
|
|
54
|
+
|
|
55
|
+
Minimal would mean stripping the gradient accents and shadows; we'd lose the data-density signaling that makes the Cyber theme legible. Keep the structure, polish the surfaces.
|
|
56
|
+
|
|
57
|
+
### Alternatives if 通信龙 wants different
|
|
58
|
+
|
|
59
|
+
- **warm/friendly**: switch emerald → coral or amber, add soft illustrations, larger padding, friendlier copy
|
|
60
|
+
- **brutalist**: kill all gradients, kill all rounded corners >6px, monochrome with one hot accent
|
|
61
|
+
- **glass-morphism**: backdrop-blur on cards, layered translucent panels — feels modern but heavy on perf and visually busy
|
|
62
|
+
|
|
63
|
+
Pick one before I touch code.
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 3. Per-page findings
|
|
68
|
+
|
|
69
|
+
### 3.1 Sidebar (global — affects every page)
|
|
70
|
+
|
|
71
|
+
**Issues:**
|
|
72
|
+
- **P0** Sidebar bg currently = `var(--bg)` (#f6f7f9) = page bg → sidebar reads as part of the page, only the thin right border separates it. Cards on the right (white) look "in front of" the page; sidebar looks like negative space.
|
|
73
|
+
- **P1** Header "Agent Network / Dashboard" is plain text with no logo/mark. No visual anchor.
|
|
74
|
+
- **P0** Active nav state stacks 4 emerald cues: `bg-cyan-500/10` + `border border-cyan-500/20` + `text-cyan-300 (→ var(--accent))`. Muddy.
|
|
75
|
+
- **P2** Network list inside sidebar (collapsed by default in screenshots, but exists) — when present, role icons (⭐/🔧/👤/👁) feel out of register with otherwise sober typography.
|
|
76
|
+
- **P2** Bottom theme switcher button + collapse arrow are tight together — easy to misclick on mobile.
|
|
77
|
+
|
|
78
|
+
**Proposed fixes:**
|
|
79
|
+
|
|
80
|
+
```diff
|
|
81
|
+
- bg-[#0d0d1a] // resolves to var(--bg) in light
|
|
82
|
+
+ bg-[var(--bg-secondary)] // white, sits as its own surface
|
|
83
|
+
|
|
84
|
+
- /* active nav: bg-cyan-500/10 + border + text-cyan */
|
|
85
|
+
+ /* active nav: 4px left border emerald + text-fg, NO bg tint */
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 3.2 Login
|
|
89
|
+
|
|
90
|
+
**Issues:**
|
|
91
|
+
- **P2** Logo area: 64×64 emerald rounded square is OK; could carry product mark (svg from `/favicon.svg`?) instead of being a flat square. Low priority.
|
|
92
|
+
- **P3** Big empty space above logo (~250px) — could center tighter on small screens.
|
|
93
|
+
- ✅ Sign in button (solid emerald) and field focus rings work in light.
|
|
94
|
+
|
|
95
|
+
### 3.3 Overview
|
|
96
|
+
|
|
97
|
+
**Issues:**
|
|
98
|
+
- **P0** KPI cards (Online/Working/Offline/Total) — the radial gradient tint (`from-green-500/20 to-green-500/0`) on white reads as a pale wash; **add a 2px colored top-strip** instead of/in addition to the wash. Clearer color coding without the muddy gradient.
|
|
99
|
+
- **P1** "fake / Edit / Sign out" user bar — Edit + Sign out links are right-aligned text-only; very low affordance for "click here to do action". Convert to ghost buttons.
|
|
100
|
+
- **P1** Config bar is a one-line collapsible section taking full row width. Visually thin; should either merge into a header strip or get more presence.
|
|
101
|
+
- **P0** Quick Actions row mixes data ("0/0", "0", "—") and placeholders ("→"). The arrows feel like "go to" affordances but the same row also acts as a stat dashboard. Two competing intents. Pick: either it's a stat strip or it's a nav strip, not both.
|
|
102
|
+
- **P1** Empty state "— / No agents in this network" — the "—" double-dash is visually loud (24pt+) for what is essentially an "empty" message. Use an icon, smaller text.
|
|
103
|
+
- **P1** "Hide Topology" toggle is a tiny outlined button mid-page. Should be a small icon-toggle in the topology section header.
|
|
104
|
+
|
|
105
|
+
### 3.4 Nodes
|
|
106
|
+
|
|
107
|
+
**Issues:**
|
|
108
|
+
- **P2** Header "Nodes 0 online 0 total" — chip alignment OK, but "0 online" emerald chip vs "0 total" grey chip have different vertical alignment with the H1 (looks off-by-a-pixel).
|
|
109
|
+
- **P2** Search nodes input + "All" dropdown — `<select>` element is **native browser styled**, doesn't match our themed inputs (you can see it visually clashes — a chunky arrow, default font weight). Need to replace with custom dropdown OR style the native select.
|
|
110
|
+
- **P3** List/Grid toggle top-right — fine.
|
|
111
|
+
|
|
112
|
+
### 3.5 Tasks
|
|
113
|
+
|
|
114
|
+
**Issues:**
|
|
115
|
+
- **P1** Tab strip has 10 tabs (All + 9 statuses). On 1440px desktop it fits; on narrower viewports it wraps. **Pills should color-code by status** to match the chip system used elsewhere (running=green, failed=red, etc.) — currently they're all neutral except active.
|
|
116
|
+
- **P2** From/To node filters are bare inputs with no labels — fine for power users, opaque for new users.
|
|
117
|
+
|
|
118
|
+
### 3.6 Messages
|
|
119
|
+
|
|
120
|
+
**Issues:**
|
|
121
|
+
- **P2** "All types" select again native-styled, same issue as Nodes.
|
|
122
|
+
- **P2** "Debug" toggle button looks identical to "Timeline/Grouped" view toggle — should visually differentiate (debug = dev affordance, view = display mode).
|
|
123
|
+
|
|
124
|
+
### 3.7 Networks (Settings → Networks)
|
|
125
|
+
|
|
126
|
+
**Issues:**
|
|
127
|
+
- **P2** Create form button "Create" is muted (disabled-looking) when fields empty — by design. But the "Create" button when active is solid emerald, when disabled it's the muted grey we shipped in 0.3.4. Works correctly but the **transition between disabled→enabled feels abrupt** (no animation).
|
|
128
|
+
- ✅ My Networks empty state ("No networks found. Create one or sign in with V3 auth.") is well-written.
|
|
129
|
+
|
|
130
|
+
### 3.8 Logs (Audit Log)
|
|
131
|
+
|
|
132
|
+
**Issues:**
|
|
133
|
+
- **P0** Error state shows **raw JSON**: `[{"error":"unauthorized"}] (Audit log may require V3 auth token)` in a yellow chip. Two problems:
|
|
134
|
+
1. JSON should never leak to users — pretty-print or replace with human message
|
|
135
|
+
2. The "(Audit log may require V3 auth token)" parenthetical is helpful but undersold — should be the primary message with a "Sign in" CTA
|
|
136
|
+
- **P3** "All actions" select native styled.
|
|
137
|
+
|
|
138
|
+
### 3.9 Server Logs
|
|
139
|
+
|
|
140
|
+
**Issues:**
|
|
141
|
+
- **P0** Error chip: `X hub 401 (admin 角色才能看 server logs)` — exposes HTTP status to user. Should be "You need admin role to view server logs."
|
|
142
|
+
- **P1** "加载失败" (Chinese for "loading failed") shown plain-text on white card — should be styled error state with icon + retry CTA.
|
|
143
|
+
- **P2** Top controls (Pause / auto-refresh / Reload) jammed together — Pause is a chip-style button, auto-refresh is a checkbox-label, Reload is an outlined button. Visually heterogeneous; should be one button group.
|
|
144
|
+
- **P2** Tab filter (all/log/info/warn/error) — same as Tasks tab strip, should color-code.
|
|
145
|
+
|
|
146
|
+
### 3.10 Admin
|
|
147
|
+
|
|
148
|
+
**Issues:**
|
|
149
|
+
- **P0** "Server Overview" mini-stats (`0 Online / 0 Offline / 6 SSE Connections / -- Total Tasks`) — the "6" for SSE Connections lights up emerald with no context. New users won't know what SSE Connections means. Add tooltip or sub-label.
|
|
150
|
+
- **P1** "Register User (V3)" button is full-width muted grey (disabled when empty). Visually weak — looks like a placeholder. When enabled it'll be full-width emerald, which is a lot of emerald.
|
|
151
|
+
- **P2** Two-column layout works but left column is denser than right — could rebalance.
|
|
152
|
+
|
|
153
|
+
### 3.11 Settings
|
|
154
|
+
|
|
155
|
+
**Issues:**
|
|
156
|
+
- **P1** Long card list with no section grouping → feels like a list, not an org. Add section headings: "Connection", "Account", "Resources", "Advanced".
|
|
157
|
+
- **P1** License "type · trial" shown as orange text — should be a chip.
|
|
158
|
+
- **P2** "anet-XXXX-XXXX-XXXX-XXXX" license code input is empty-styled (light grey bg with placeholder); enter key UX unclear.
|
|
159
|
+
- **P3** Session card at bottom — red "Session" label is a slight misdirection (looks like an error). Should probably read "Sign out" with a less alarming color.
|
|
160
|
+
|
|
161
|
+
### 3.12 Settings → Tokens
|
|
162
|
+
|
|
163
|
+
**Issues:**
|
|
164
|
+
- **P2** Same disabled-button pattern as Networks. Works correctly, just the abrupt enable transition.
|
|
165
|
+
|
|
166
|
+
---
|
|
167
|
+
|
|
168
|
+
## 4. Cross-cutting issues (apply globally)
|
|
169
|
+
|
|
170
|
+
1. **CSS hex-class shim is fragile** — every theme bug fix so far has been "add `bg-[#xxxxxx]` to the override list in globals.css". Real fix: migrate components from `bg-[#0a0a1a]` → `bg-[var(--bg)]` or themed Tailwind tokens. Scope: ~30 files, ~150 instances. Not urgent for 0.4.3 but the right long-term play.
|
|
171
|
+
2. **Native `<select>` not themed** — 4 occurrences across pages (Nodes filter, Messages filter, Logs filter, Settings password change). Either style them or replace with custom dropdown.
|
|
172
|
+
3. **Empty states inconsistent** — sometimes "--" + text, sometimes only text. Standardize: icon + headline + sub-text + optional CTA.
|
|
173
|
+
4. **Error states inconsistent** — sometimes raw JSON, sometimes plain text, sometimes styled chip. Standardize: red chip + human message + recovery CTA.
|
|
174
|
+
5. **Disabled button confusion** — disabled + enabled muted-grey-vs-emerald is too binary. Add an outline or subtle text-decoration to disabled state to make affordance clearer.
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 5. Command Mesh — decide separately
|
|
179
|
+
|
|
180
|
+
**Current state:** Cyber radar SVG (linear gradient `#0b1220→#080814→#101018`, cyan rings, neon edges, animated flow particles) rendered as-is in light theme. Looks great in Cyber, looks like a black hole inside a white page in light.
|
|
181
|
+
|
|
182
|
+
**Option A (recommend):** Build a light variant.
|
|
183
|
+
- White SVG bg with very subtle grid lines (`#e3e6eb` 1px every 80px)
|
|
184
|
+
- Emerald node circles (no glow)
|
|
185
|
+
- Soft grey edges (no animated particles, or slowed-down + lower contrast)
|
|
186
|
+
- Cost: ~150 LOC new SVG block, conditional on `data-theme="light"` (detect via `matchMedia` or pass theme prop)
|
|
187
|
+
|
|
188
|
+
**Option B:** Hide topology in light theme.
|
|
189
|
+
- Cheaper. Add "(hidden in light theme)" message + show-anyway button. Cost: 5 LOC.
|
|
190
|
+
- Worse UX — users lose a feature in light mode.
|
|
191
|
+
|
|
192
|
+
**Option C:** Keep dark canvas in light page.
|
|
193
|
+
- Free. Status quo. Visually disruptive but functional.
|
|
194
|
+
|
|
195
|
+
**My recommendation: A.** It's the highest-perceived-polish change in this whole proposal.
|
|
196
|
+
|
|
197
|
+
---
|
|
198
|
+
|
|
199
|
+
## 6. Implementation plan (after 通信龙 OK)
|
|
200
|
+
|
|
201
|
+
Sequence (10 small commits, each independently shippable):
|
|
202
|
+
|
|
203
|
+
1. **Sidebar surface** — change bg to `bg-secondary`, simplify active nav state, add right divider shadow. Touches `app/components/Sidebar.tsx` + globals.css.
|
|
204
|
+
2. **KPI card accent** — replace gradient wash with 2px top strip; touches `app/components/StatsBar.tsx`.
|
|
205
|
+
3. **Empty states standardization** — extract `<EmptyState>` component with icon prop; touches `app/components/LoadingSkeleton.tsx` (already exports EmptyState) + 6 page files.
|
|
206
|
+
4. **Error states standardization** — same pattern, `<ErrorBanner>` component. Touches logs page, server-logs page.
|
|
207
|
+
5. **Native select theming** — apply `appearance-none` + custom chevron SVG bg. globals.css.
|
|
208
|
+
6. **Tab strip color coding** — Tasks + Server Logs tabs get color tints matching status. Touches `app/tasks/page.tsx`, `app/server-logs/page.tsx`.
|
|
209
|
+
7. **Disabled button outline** — globals.css; add dashed border to `disabled:bg-gray-800` in light/mint.
|
|
210
|
+
8. **Settings section grouping** — wrap cards in `<section>` groups with H3 headings. Touches `app/settings/page.tsx`.
|
|
211
|
+
9. **Quick Actions disambiguation** — split into pure-stat-row + pure-nav-row, OR make all 6 carry data. Touches `app/page.tsx`.
|
|
212
|
+
10. **Command Mesh light variant** (if Option A) — new SVG block conditional on theme. Touches `app/components/TopoGraph.tsx`.
|
|
213
|
+
|
|
214
|
+
Each commit builds + Playwright-screenshots + diffs against the audit screenshots stored in `/tmp/audit-light/`.
|
|
215
|
+
|
|
216
|
+
Bump to `0.4.3-preview.0`, `npm publish --tag preview`. **Do NOT** touch CLI `PINNED_DASHBOARD_VERSION` (stays 0.4.2 stable). **Do NOT** `vercel deploy --prod` (preview testing via `npx ...@preview` only).
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
## 7. Questions for 通信龙
|
|
221
|
+
|
|
222
|
+
1. **Direction** — cool-professional confirmed? Or pick alternative (warm / brutalist / glass).
|
|
223
|
+
2. **Command Mesh light variant** — Option A (build it) / B (hide) / C (keep dark canvas in light page).
|
|
224
|
+
3. **CTA color** — keep emerald `#009e7e` or swap brand?
|
|
225
|
+
4. **Sans-serif body** — defer to a separate decision (typography is a multi-week call)?
|
|
226
|
+
5. **Mobile audit** — do this in 0.4.3 or defer to 0.4.4?
|
|
227
|
+
6. **Native `<select>` replacement** — style them (cheap) or build custom dropdown (right)?
|
|
228
|
+
|
|
229
|
+
Awaiting your call on 1–6. Phase 3 implementation starts when you OK direction.
|
package/package.json
CHANGED
package/.next/cache/.previewinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"previewModeId":"e045653925787dba6654cebba5954c17","previewModeSigningKey":"040e4014a2581691b885d5306c6c7d9a9cbd99294215d1fd8e0418cd00d11de4","previewModeEncryptionKey":"d92af7d1bfabd403d8885fbc002b38c580dfa7c3f7e6919f549fb7f8c9214291","expireAt":1779704998939}
|
package/.next/cache/.rscinfo
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"encryption.key":"90otMO5/pxGZUVJeeE7SsIQlyY2McmXIrUJQEy7ny2E=","encryption.expire_at":1779704998859}
|