@sleep2agi/agent-network-dashboard 0.4.6-preview.207 → 0.4.6-preview.209
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 +4 -4
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/prerender-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 +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/admin.rsc +2 -2
- package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- 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 +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +2 -2
- package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +2 -2
- package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +2 -2
- package/.next/server/app/node.segments/_full.segment.rsc +2 -2
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +2 -2
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +2 -2
- package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/server-logs.rsc +2 -2
- package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/settings/tokens.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/tasks.rsc +2 -2
- package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.js +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1111jy4y_~dvf.js → 0q9cpui_fo49e.js} +1 -1
- package/.next/static/chunks/{1543m0kq.tqj9.js → 0resqayw5msbr.js} +1 -1
- package/.next/static/chunks/{0tvslajhcjm81.js → 0sf.dl758-r4m.js} +3 -3
- package/.next/static/chunks/{01g4iybwpori..css → 0~k1yvhakbob6.css} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +61 -5
- package/package.json +1 -1
- package/scripts/topo-statusbar-chips-self-hover-test.mjs +177 -0
- package/scripts/topo-vendor-chip-self-hover-test.mjs +130 -0
- /package/.next/static/{EshJY_-HUKRsxePdvWHt4 → -fdN0jPl4NhHKhsSxuYGW}/_buildManifest.js +0 -0
- /package/.next/static/{EshJY_-HUKRsxePdvWHt4 → -fdN0jPl4NhHKhsSxuYGW}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{EshJY_-HUKRsxePdvWHt4 → -fdN0jPl4NhHKhsSxuYGW}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":260,"timestamp":75110879810,"id":4,"parentId":1,"tags":{},"startTime":1778883083126,"traceId":"9e490e16de2b9eed"},{"name":"load-custom-routes","duration":494,"timestamp":75110880205,"id":5,"parentId":1,"tags":{},"startTime":1778883083126,"traceId":"9e490e16de2b9eed"},{"name":"create-dist-dir","duration":630,"timestamp":75110880743,"id":6,"parentId":1,"tags":{},"startTime":1778883083127,"traceId":"9e490e16de2b9eed"},{"name":"clean","duration":471,"timestamp":75110881998,"id":7,"parentId":1,"tags":{},"startTime":1778883083128,"traceId":"9e490e16de2b9eed"},{"name":"discover-routes","duration":20855,"timestamp":75110964986,"id":8,"parentId":1,"tags":{},"startTime":1778883083211,"traceId":"9e490e16de2b9eed"},{"name":"create-root-mapping","duration":129,"timestamp":75110985901,"id":9,"parentId":1,"tags":{},"startTime":1778883083232,"traceId":"9e490e16de2b9eed"},{"name":"generate-route-types","duration":21310,"timestamp":75110988315,"id":10,"parentId":1,"tags":{},"startTime":1778883083235,"traceId":"9e490e16de2b9eed"},{"name":"public-dir-conflict-check","duration":104,"timestamp":75111009767,"id":11,"parentId":1,"tags":{},"startTime":1778883083256,"traceId":"9e490e16de2b9eed"},{"name":"generate-routes-manifest","duration":4271,"timestamp":75111009980,"id":12,"parentId":1,"tags":{},"startTime":1778883083256,"traceId":"9e490e16de2b9eed"},{"name":"run-turbopack","duration":5532470,"timestamp":75111019200,"id":14,"parentId":1,"tags":{},"startTime":1778883083265,"traceId":"9e490e16de2b9eed"},{"name":"turbopack-build-events","duration":72,"timestamp":75111314908,"id":15,"parentId":1,"tags":{},"startTime":1778883083561,"traceId":"9e490e16de2b9eed"},{"name":"run-typescript","duration":8587907,"timestamp":75116571288,"id":16,"parentId":1,"tags":{},"startTime":1778883088818,"traceId":"9e490e16de2b9eed"},{"name":"generate-required-server-files","duration":2415,"timestamp":75125160387,"id":18,"parentId":1,"tags":{},"startTime":1778883097407,"traceId":"9e490e16de2b9eed"},{"name":"check-static-error-page","duration":14796,"timestamp":75125328935,"id":20,"parentId":19,"tags":{},"startTime":1778883097575,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":425621,"timestamp":75125346682,"id":63,"parentId":22,"tags":{},"startTime":1778883097593,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":440370,"timestamp":75125332097,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778883097578,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":500390,"timestamp":75125346305,"id":62,"parentId":21,"tags":{},"startTime":1778883097593,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":516282,"timestamp":75125330528,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778883097577,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":503278,"timestamp":75125347284,"id":67,"parentId":28,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":515068,"timestamp":75125335583,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778883097582,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":509745,"timestamp":75125347786,"id":71,"parentId":33,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":521171,"timestamp":75125336414,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778883097583,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":518301,"timestamp":75125347048,"id":66,"parentId":27,"tags":{},"startTime":1778883097593,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":529953,"timestamp":75125335453,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778883097582,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":522619,"timestamp":75125347908,"id":73,"parentId":35,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":533931,"timestamp":75125336648,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778883097583,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":533345,"timestamp":75125347873,"id":72,"parentId":34,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":544758,"timestamp":75125336522,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778883097583,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":534850,"timestamp":75125346923,"id":65,"parentId":26,"tags":{},"startTime":1778883097593,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":546527,"timestamp":75125335308,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778883097582,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":538557,"timestamp":75125348076,"id":76,"parentId":38,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":549219,"timestamp":75125337468,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":540304,"timestamp":75125346809,"id":64,"parentId":25,"tags":{},"startTime":1778883097593,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":552030,"timestamp":75125335131,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778883097581,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":540018,"timestamp":75125347423,"id":68,"parentId":29,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":551772,"timestamp":75125335706,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778883097582,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":541748,"timestamp":75125348062,"id":75,"parentId":37,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":553381,"timestamp":75125337325,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":543379,"timestamp":75125347556,"id":69,"parentId":30,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":555105,"timestamp":75125335872,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778883097582,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":546113,"timestamp":75125348097,"id":78,"parentId":40,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":556519,"timestamp":75125337729,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":547669,"timestamp":75125348032,"id":74,"parentId":36,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":558602,"timestamp":75125337137,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778883097583,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":559098,"timestamp":75125348117,"id":80,"parentId":42,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":577543,"timestamp":75125337947,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":566141,"timestamp":75125349549,"id":84,"parentId":46,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":577353,"timestamp":75125338390,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778883097585,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":567784,"timestamp":75125348107,"id":79,"parentId":41,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":578082,"timestamp":75125337840,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":570358,"timestamp":75125348086,"id":77,"parentId":39,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":580901,"timestamp":75125337590,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":575935,"timestamp":75125349506,"id":81,"parentId":43,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":587481,"timestamp":75125338074,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":576346,"timestamp":75125349539,"id":83,"parentId":45,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":587697,"timestamp":75125338295,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778883097585,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":578859,"timestamp":75125349525,"id":82,"parentId":44,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":590255,"timestamp":75125338178,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778883097584,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":584310,"timestamp":75125349590,"id":86,"parentId":48,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":595335,"timestamp":75125338621,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778883097585,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":584610,"timestamp":75125349567,"id":85,"parentId":47,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":595696,"timestamp":75125338523,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778883097585,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":593561,"timestamp":75125347725,"id":70,"parentId":32,"tags":{},"startTime":1778883097594,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":605050,"timestamp":75125336287,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778883097583,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":585060,"timestamp":75125356432,"id":89,"parentId":31,"tags":{},"startTime":1778883097603,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":605530,"timestamp":75125335997,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778883097582,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":592062,"timestamp":75125349601,"id":87,"parentId":49,"tags":{},"startTime":1778883097596,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":602976,"timestamp":75125338722,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778883097585,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":591285,"timestamp":75125358730,"id":93,"parentId":52,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":608962,"timestamp":75125341098,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778883097587,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":599323,"timestamp":75125358763,"id":96,"parentId":56,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":615779,"timestamp":75125342363,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778883097589,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":606554,"timestamp":75125353144,"id":88,"parentId":24,"tags":{},"startTime":1778883097599,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":627133,"timestamp":75125332612,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778883097579,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":605712,"timestamp":75125358774,"id":97,"parentId":57,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":621952,"timestamp":75125342572,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778883097589,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":619107,"timestamp":75125358807,"id":99,"parentId":60,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":634628,"timestamp":75125343346,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778883097590,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":629257,"timestamp":75125358821,"id":100,"parentId":61,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":644660,"timestamp":75125343491,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778883097590,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":623168,"timestamp":75125369540,"id":101,"parentId":58,"tags":{},"startTime":1778883097616,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":650008,"timestamp":75125342749,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778883097589,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":637773,"timestamp":75125358718,"id":92,"parentId":51,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":655645,"timestamp":75125340894,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778883097587,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":638290,"timestamp":75125358704,"id":91,"parentId":50,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":656440,"timestamp":75125340627,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778883097587,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":639152,"timestamp":75125358739,"id":94,"parentId":53,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":656613,"timestamp":75125341316,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778883097588,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":618517,"timestamp":75125381356,"id":102,"parentId":55,"tags":{},"startTime":1778883097628,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":658155,"timestamp":75125341753,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778883097588,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":645088,"timestamp":75125358682,"id":90,"parentId":23,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":671464,"timestamp":75125332371,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778883097579,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":653695,"timestamp":75125358752,"id":95,"parentId":54,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":670980,"timestamp":75125341516,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778883097588,"traceId":"9e490e16de2b9eed"},{"name":"is-page-static","duration":653800,"timestamp":75125358781,"id":98,"parentId":59,"tags":{},"startTime":1778883097605,"traceId":"9e490e16de2b9eed"},{"name":"check-page","duration":669407,"timestamp":75125343201,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778883097589,"traceId":"9e490e16de2b9eed"},{"name":"static-check","duration":684878,"timestamp":75125327781,"id":19,"parentId":1,"tags":{},"startTime":1778883097574,"traceId":"9e490e16de2b9eed"},{"name":"write-routes-manifest","duration":556,"timestamp":75126021065,"id":104,"parentId":1,"tags":{},"startTime":1778883098267,"traceId":"9e490e16de2b9eed"},{"name":"load-dotenv","duration":56,"timestamp":75126032721,"id":107,"parentId":106,"tags":{},"startTime":1778883098279,"traceId":"9e490e16de2b9eed"},{"name":"run-export-path-map","duration":635,"timestamp":75126035571,"id":108,"parentId":106,"tags":{},"startTime":1778883098282,"traceId":"9e490e16de2b9eed"},{"name":"next-export","duration":529461,"timestamp":75126031470,"id":106,"parentId":1,"tags":{},"startTime":1778883098278,"traceId":"9e490e16de2b9eed"}]
|
|
2
|
-
[{"name":"move-exported-app-not-found-","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":268,"timestamp":75792545060,"id":4,"parentId":1,"tags":{},"startTime":1778883764791,"traceId":"ad1e3dae4285c394"},{"name":"load-custom-routes","duration":553,"timestamp":75792545473,"id":5,"parentId":1,"tags":{},"startTime":1778883764792,"traceId":"ad1e3dae4285c394"},{"name":"create-dist-dir","duration":597,"timestamp":75792546073,"id":6,"parentId":1,"tags":{},"startTime":1778883764792,"traceId":"ad1e3dae4285c394"},{"name":"clean","duration":446,"timestamp":75792547313,"id":7,"parentId":1,"tags":{},"startTime":1778883764794,"traceId":"ad1e3dae4285c394"},{"name":"discover-routes","duration":8437,"timestamp":75792629731,"id":8,"parentId":1,"tags":{},"startTime":1778883764876,"traceId":"ad1e3dae4285c394"},{"name":"create-root-mapping","duration":95,"timestamp":75792638223,"id":9,"parentId":1,"tags":{},"startTime":1778883764885,"traceId":"ad1e3dae4285c394"},{"name":"generate-route-types","duration":31061,"timestamp":75792640528,"id":10,"parentId":1,"tags":{},"startTime":1778883764887,"traceId":"ad1e3dae4285c394"},{"name":"public-dir-conflict-check","duration":107,"timestamp":75792671741,"id":11,"parentId":1,"tags":{},"startTime":1778883764918,"traceId":"ad1e3dae4285c394"},{"name":"generate-routes-manifest","duration":4581,"timestamp":75792671958,"id":12,"parentId":1,"tags":{},"startTime":1778883764918,"traceId":"ad1e3dae4285c394"},{"name":"run-turbopack","duration":5438344,"timestamp":75792681371,"id":14,"parentId":1,"tags":{},"startTime":1778883764928,"traceId":"ad1e3dae4285c394"},{"name":"turbopack-build-events","duration":103,"timestamp":75792968622,"id":15,"parentId":1,"tags":{},"startTime":1778883765215,"traceId":"ad1e3dae4285c394"},{"name":"run-typescript","duration":8525931,"timestamp":75798130290,"id":16,"parentId":1,"tags":{},"startTime":1778883770377,"traceId":"ad1e3dae4285c394"},{"name":"generate-required-server-files","duration":3073,"timestamp":75806657602,"id":18,"parentId":1,"tags":{},"startTime":1778883778904,"traceId":"ad1e3dae4285c394"},{"name":"check-static-error-page","duration":16138,"timestamp":75806839163,"id":20,"parentId":19,"tags":{},"startTime":1778883779085,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":370190,"timestamp":75806857367,"id":63,"parentId":22,"tags":{},"startTime":1778883779104,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":385325,"timestamp":75806842395,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778883779089,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":505405,"timestamp":75806859583,"id":69,"parentId":30,"tags":{},"startTime":1778883779106,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":518721,"timestamp":75806846401,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778883779093,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":511527,"timestamp":75806859794,"id":70,"parentId":32,"tags":{},"startTime":1778883779106,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":524513,"timestamp":75806846885,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778883779093,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":515195,"timestamp":75806859873,"id":71,"parentId":33,"tags":{},"startTime":1778883779106,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":528084,"timestamp":75806847066,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778883779093,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":520204,"timestamp":75806859955,"id":72,"parentId":34,"tags":{},"startTime":1778883779106,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":532998,"timestamp":75806847218,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778883779093,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":525982,"timestamp":75806859993,"id":73,"parentId":35,"tags":{},"startTime":1778883779106,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":538674,"timestamp":75806847375,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778883779094,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":526829,"timestamp":75806863477,"id":74,"parentId":36,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":542489,"timestamp":75806847892,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778883779094,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":530141,"timestamp":75806863526,"id":75,"parentId":37,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":545612,"timestamp":75806848108,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778883779094,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":538002,"timestamp":75806857531,"id":65,"parentId":26,"tags":{},"startTime":1778883779104,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":549818,"timestamp":75806845777,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778883779092,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":533557,"timestamp":75806863548,"id":76,"parentId":38,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":548889,"timestamp":75806848271,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":538685,"timestamp":75806863571,"id":78,"parentId":40,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":553792,"timestamp":75806848512,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":547059,"timestamp":75806857916,"id":67,"parentId":28,"tags":{},"startTime":1778883779104,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":558956,"timestamp":75806846080,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778883779092,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":550484,"timestamp":75806857451,"id":64,"parentId":25,"tags":{},"startTime":1778883779104,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":562393,"timestamp":75806845584,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778883779092,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":544569,"timestamp":75806863583,"id":79,"parentId":41,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":559554,"timestamp":75806848627,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":554243,"timestamp":75806857634,"id":66,"parentId":27,"tags":{},"startTime":1778883779104,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":565994,"timestamp":75806845921,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778883779092,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":558072,"timestamp":75806858093,"id":68,"parentId":29,"tags":{},"startTime":1778883779104,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":569980,"timestamp":75806846229,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778883779093,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":553750,"timestamp":75806863619,"id":82,"parentId":44,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":568407,"timestamp":75806849019,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":561581,"timestamp":75806857080,"id":62,"parentId":21,"tags":{},"startTime":1778883779103,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":577947,"timestamp":75806840761,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778883779087,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":557170,"timestamp":75806863558,"id":77,"parentId":39,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":572396,"timestamp":75806848395,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":561415,"timestamp":75806863652,"id":85,"parentId":47,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":575720,"timestamp":75806849398,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778883779096,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":561630,"timestamp":75806863640,"id":84,"parentId":46,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":576053,"timestamp":75806849248,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778883779096,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":559990,"timestamp":75806866935,"id":88,"parentId":24,"tags":{},"startTime":1778883779113,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":584006,"timestamp":75806842962,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778883779089,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":565543,"timestamp":75806863596,"id":80,"parentId":42,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":580441,"timestamp":75806848747,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":569015,"timestamp":75806863678,"id":87,"parentId":49,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":581218,"timestamp":75806851529,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778883779098,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":567771,"timestamp":75806872166,"id":89,"parentId":31,"tags":{},"startTime":1778883779118,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":593426,"timestamp":75806846551,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778883779093,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":586613,"timestamp":75806863606,"id":81,"parentId":43,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":601385,"timestamp":75806848882,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":620077,"timestamp":75806863664,"id":86,"parentId":48,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":634309,"timestamp":75806849521,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778883779096,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":623695,"timestamp":75806874546,"id":92,"parentId":51,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":646112,"timestamp":75806852218,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778883779098,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":635288,"timestamp":75806863631,"id":83,"parentId":45,"tags":{},"startTime":1778883779110,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":649843,"timestamp":75806849137,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778883779095,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":629323,"timestamp":75806874584,"id":95,"parentId":54,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":651091,"timestamp":75806852866,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778883779099,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":632483,"timestamp":75806874593,"id":96,"parentId":56,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":653374,"timestamp":75806853750,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778883779100,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":637340,"timestamp":75806874559,"id":93,"parentId":52,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":659541,"timestamp":75806852403,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778883779099,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":637507,"timestamp":75806874618,"id":98,"parentId":59,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":657540,"timestamp":75806854643,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778883779101,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":639558,"timestamp":75806874504,"id":90,"parentId":23,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":671412,"timestamp":75806842691,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778883779089,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":645698,"timestamp":75806874650,"id":100,"parentId":61,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":665365,"timestamp":75806855028,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778883779101,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":597452,"timestamp":75806924193,"id":102,"parentId":58,"tags":{},"startTime":1778883779170,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":667478,"timestamp":75806854214,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778883779100,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":652213,"timestamp":75806874632,"id":99,"parentId":60,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":672081,"timestamp":75806854818,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778883779101,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":619925,"timestamp":75806907310,"id":101,"parentId":55,"tags":{},"startTime":1778883779154,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":674121,"timestamp":75806853156,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778883779099,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":653718,"timestamp":75806874534,"id":91,"parentId":50,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":676273,"timestamp":75806852025,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778883779098,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":659163,"timestamp":75806874572,"id":94,"parentId":53,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":681164,"timestamp":75806852624,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778883779099,"traceId":"ad1e3dae4285c394"},{"name":"is-page-static","duration":672124,"timestamp":75806874606,"id":97,"parentId":57,"tags":{},"startTime":1778883779121,"traceId":"ad1e3dae4285c394"},{"name":"check-page","duration":692804,"timestamp":75806853987,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778883779100,"traceId":"ad1e3dae4285c394"},{"name":"static-check","duration":708858,"timestamp":75806837979,"id":19,"parentId":1,"tags":{},"startTime":1778883779084,"traceId":"ad1e3dae4285c394"},{"name":"write-routes-manifest","duration":505,"timestamp":75807554630,"id":104,"parentId":1,"tags":{},"startTime":1778883779801,"traceId":"ad1e3dae4285c394"},{"name":"load-dotenv","duration":55,"timestamp":75807569942,"id":107,"parentId":106,"tags":{},"startTime":1778883779816,"traceId":"ad1e3dae4285c394"},{"name":"run-export-path-map","duration":696,"timestamp":75807572898,"id":108,"parentId":106,"tags":{},"startTime":1778883779819,"traceId":"ad1e3dae4285c394"},{"name":"next-export","duration":548301,"timestamp":75807568247,"id":106,"parentId":1,"tags":{},"startTime":1778883779815,"traceId":"ad1e3dae4285c394"}]
|
|
2
|
+
[{"name":"move-exported-app-not-found-","duration":1729,"timestamp":75808119807,"id":109,"parentId":105,"tags":{},"startTime":1778883780366,"traceId":"ad1e3dae4285c394"},{"name":"move-exported-app-global-error-","duration":951,"timestamp":75808121621,"id":110,"parentId":105,"tags":{},"startTime":1778883780368,"traceId":"ad1e3dae4285c394"},{"name":"static-generation","duration":564036,"timestamp":75807560246,"id":105,"parentId":1,"tags":{},"startTime":1778883779807,"traceId":"ad1e3dae4285c394"},{"name":"write-routes-manifest","duration":373,"timestamp":75808124437,"id":111,"parentId":1,"tags":{},"startTime":1778883780371,"traceId":"ad1e3dae4285c394"},{"name":"print-tree-view","duration":4393,"timestamp":75808134924,"id":112,"parentId":1,"tags":{},"startTime":1778883780381,"traceId":"ad1e3dae4285c394"},{"name":"write-route-bundle-stats","duration":13541,"timestamp":75808139347,"id":113,"parentId":1,"tags":{},"startTime":1778883780386,"traceId":"ad1e3dae4285c394"},{"name":"telemetry-flush","duration":35905,"timestamp":75808152912,"id":114,"parentId":1,"tags":{},"startTime":1778883780399,"traceId":"ad1e3dae4285c394"},{"name":"next-build","duration":15694925,"timestamp":75792493915,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778883764740,"traceId":"ad1e3dae4285c394"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5438344,"timestamp":75792681371,"id":14,"parentId":1,"tags":{},"startTime":1778883764928,"traceId":"ad1e3dae4285c394"},{"name":"turbopack-build-events","duration":103,"timestamp":75792968622,"id":15,"parentId":1,"tags":{},"startTime":1778883765215,"traceId":"ad1e3dae4285c394"},{"name":"run-typescript","duration":8525931,"timestamp":75798130290,"id":16,"parentId":1,"tags":{},"startTime":1778883770377,"traceId":"ad1e3dae4285c394"},{"name":"static-check","duration":708858,"timestamp":75806837979,"id":19,"parentId":1,"tags":{},"startTime":1778883779084,"traceId":"ad1e3dae4285c394"},{"name":"static-generation","duration":564036,"timestamp":75807560246,"id":105,"parentId":1,"tags":{},"startTime":1778883779807,"traceId":"ad1e3dae4285c394"},{"name":"telemetry-flush","duration":35905,"timestamp":75808152912,"id":114,"parentId":1,"tags":{},"startTime":1778883780399,"traceId":"ad1e3dae4285c394"},{"name":"next-build","duration":15694925,"timestamp":75792493915,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778883764740,"traceId":"ad1e3dae4285c394"}]
|
|
@@ -1502,7 +1502,21 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1502
1502
|
return (
|
|
1503
1503
|
<>
|
|
1504
1504
|
<span
|
|
1505
|
-
|
|
1505
|
+
// Round 201 / Loop: the working chip joins the
|
|
1506
|
+
// "chip's hover state deepens its OWN identity colour"
|
|
1507
|
+
// family that R193 opened (active-links chip) and R195
|
|
1508
|
+
// extended (recent-panel footer). Pre-R201 hovering the
|
|
1509
|
+
// working chip fired R55 canvas dim + chip-row highlight
|
|
1510
|
+
// but the chip itself stayed at bg-green-500/10 — cause
|
|
1511
|
+
// silent, effect loud. R201 deepens its OWN green hue
|
|
1512
|
+
// (10→15 bg, 20→30 border) only when clickable.
|
|
1513
|
+
// transition-colors duration-200 blends the swap to
|
|
1514
|
+
// match R193's timing on the active-links chip.
|
|
1515
|
+
className={`px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors duration-200 ${
|
|
1516
|
+
workingCount > 0
|
|
1517
|
+
? 'bg-green-500/10 text-green-300 border-green-500/20 hover:bg-green-500/15 hover:border-green-500/30'
|
|
1518
|
+
: 'bg-green-500/10 text-green-300 border-green-500/20'
|
|
1519
|
+
}`}
|
|
1506
1520
|
data-working-chip
|
|
1507
1521
|
data-working-chip-aliases={workingAliases.join(',')}
|
|
1508
1522
|
data-pin-mirror={pinnedStatus === 'working' ? 'true' : 'false'}
|
|
@@ -1518,10 +1532,16 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1518
1532
|
// (working / online / vendor letter). The visual is small
|
|
1519
1533
|
// — a 1-2 px inset double ring — but the eye catches the
|
|
1520
1534
|
// pop on every pin/unpin without the ease.
|
|
1535
|
+
// Round 201 / Loop: inline transition list now also covers
|
|
1536
|
+
// background-color + border-color so the R201 hover tint
|
|
1537
|
+
// eases. Tailwind transition-colors on the className would
|
|
1538
|
+
// be overridden by this inline declaration, so we splice
|
|
1539
|
+
// the colour properties directly into the existing
|
|
1540
|
+
// R180 box-shadow transition.
|
|
1521
1541
|
style={{
|
|
1522
1542
|
cursor: workingCount > 0 ? 'pointer' : undefined,
|
|
1523
1543
|
boxShadow: pinnedStatus === 'working' ? 'inset 0 0 0 1px #4ade80, inset 0 0 0 2px rgba(255,255,255,0.45)' : undefined,
|
|
1524
|
-
transition: 'box-shadow 150ms ease-out',
|
|
1544
|
+
transition: 'box-shadow 150ms ease-out, background-color 200ms ease-out, border-color 200ms ease-out',
|
|
1525
1545
|
}}
|
|
1526
1546
|
onMouseEnter={() => { if (workingCount > 0) setHoveredStatus('working'); }}
|
|
1527
1547
|
onMouseLeave={() => setHoveredStatus(prev => prev === 'working' ? null : prev)}
|
|
@@ -1548,7 +1568,19 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1548
1568
|
{workingCount} working
|
|
1549
1569
|
</span>
|
|
1550
1570
|
<span
|
|
1551
|
-
|
|
1571
|
+
// Round 201 / Loop: online chip — mirror of the working
|
|
1572
|
+
// chip treatment above. cyan hue 10→15 bg + 20→30 border
|
|
1573
|
+
// on hover, only when there's at least one online node
|
|
1574
|
+
// to highlight. Three sibling chips in the chip row now
|
|
1575
|
+
// all speak the same gesture vocabulary:
|
|
1576
|
+
// working chip · green 10→15 (R201)
|
|
1577
|
+
// online chip · cyan 10→15 (R201)
|
|
1578
|
+
// active-links · gray → cyan (R193)
|
|
1579
|
+
className={`px-2.5 py-1 rounded-md border anet-topo-chip-focus transition-colors duration-200 ${
|
|
1580
|
+
onlineNodes.length > 0
|
|
1581
|
+
? 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20 hover:bg-cyan-500/15 hover:border-cyan-500/30'
|
|
1582
|
+
: 'bg-cyan-500/10 text-cyan-300 border-cyan-500/20'
|
|
1583
|
+
}`}
|
|
1552
1584
|
data-online-chip
|
|
1553
1585
|
data-online-chip-aliases={onlineAliases.join(',')}
|
|
1554
1586
|
data-pin-mirror={pinnedStatus === 'idle' ? 'true' : 'false'}
|
|
@@ -1557,10 +1589,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1557
1589
|
role={onlineNodes.length > 0 ? 'link' : undefined}
|
|
1558
1590
|
tabIndex={onlineNodes.length > 0 ? 0 : undefined}
|
|
1559
1591
|
// R180: smooth-pin-mirror family — see working chip above.
|
|
1592
|
+
// R201: inline transition list also covers bg + border so
|
|
1593
|
+
// the new R201 hover tint eases (mirror of working chip).
|
|
1560
1594
|
style={{
|
|
1561
1595
|
cursor: onlineNodes.length > 0 ? 'pointer' : undefined,
|
|
1562
1596
|
boxShadow: pinnedStatus === 'idle' ? 'inset 0 0 0 1px #67e8f9, inset 0 0 0 2px rgba(255,255,255,0.45)' : undefined,
|
|
1563
|
-
transition: 'box-shadow 150ms ease-out',
|
|
1597
|
+
transition: 'box-shadow 150ms ease-out, background-color 200ms ease-out, border-color 200ms ease-out',
|
|
1564
1598
|
}}
|
|
1565
1599
|
onMouseEnter={() => {
|
|
1566
1600
|
// If a working filter would isolate nothing, route to idle.
|
|
@@ -2055,15 +2089,37 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2055
2089
|
className="inline-flex items-baseline gap-0.5 px-1 rounded anet-topo-chip-focus"
|
|
2056
2090
|
data-vendor-letter={v.initial}
|
|
2057
2091
|
data-vendor-pinned={isPinned ? 'true' : 'false'}
|
|
2092
|
+
data-vendor-hovered={hoveredVendor === v.initial ? 'true' : 'false'}
|
|
2058
2093
|
data-vendor-aliases={aliases.join(',')}
|
|
2059
2094
|
title={tooltip}
|
|
2060
2095
|
// R180: smooth-pin-mirror family — see working chip above.
|
|
2096
|
+
// Round 202 / Loop: vendor letter chip joins the "hover
|
|
2097
|
+
// deepens own identity hue" family R193/R195/R201 built
|
|
2098
|
+
// up across the rest of the chip row. Pre-R202 hovering
|
|
2099
|
+
// a vendor letter (A/C/G/K/书/?) fired R88 canvas dim
|
|
2100
|
+
// via setHoveredVendor, but the chip itself stayed at
|
|
2101
|
+
// bg=transparent — cause silent, effect loud. R202
|
|
2102
|
+
// tints the chip with its OWN vendor colour at 12%
|
|
2103
|
+
// alpha via color-mix() so each vendor's chip lights
|
|
2104
|
+
// up in its own hue (Anthropic green / OpenAI cyan /
|
|
2105
|
+
// 书 blue / ?). No layout shift: only background-color
|
|
2106
|
+
// changes, no border/padding swap. transition list
|
|
2107
|
+
// extends the existing R180 box-shadow 150ms with
|
|
2108
|
+
// background-color 200ms ease-out (same splice idiom
|
|
2109
|
+
// R201 used on the working/online chips). color-mix()
|
|
2110
|
+
// is supported Chrome ≥ 111 / Safari ≥ 16.2 / FF ≥ 113;
|
|
2111
|
+
// for older browsers the chip falls back to its idle
|
|
2112
|
+
// transparent bg (graceful degradation — the canvas-
|
|
2113
|
+
// dim effect still fires regardless).
|
|
2061
2114
|
style={{
|
|
2062
2115
|
cursor: 'pointer',
|
|
2116
|
+
backgroundColor: (hoveredVendor === v.initial && !isPinned)
|
|
2117
|
+
? `color-mix(in srgb, ${v.color} 12%, transparent)`
|
|
2118
|
+
: 'transparent',
|
|
2063
2119
|
boxShadow: isPinned
|
|
2064
2120
|
? `inset 0 0 0 1px ${v.color}, inset 0 0 0 2px rgba(255,255,255,0.45)`
|
|
2065
2121
|
: undefined,
|
|
2066
|
-
transition: 'box-shadow 150ms ease-out',
|
|
2122
|
+
transition: 'box-shadow 150ms ease-out, background-color 200ms ease-out',
|
|
2067
2123
|
}}
|
|
2068
2124
|
onMouseEnter={() => setHoveredVendor(v.initial)}
|
|
2069
2125
|
onMouseLeave={() => setHoveredVendor(prev => prev === v.initial ? null : prev)}
|
package/package.json
CHANGED
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
/* Round 201 verification: the chip-row "N working" / "N online" chips
|
|
2
|
+
* adopt deeper versions of their own identity colour on hover,
|
|
3
|
+
* mirroring R193 active-links chip pattern.
|
|
4
|
+
*
|
|
5
|
+
* Pre-R201 hover working chip → R55 canvas dim + chip-row highlight,
|
|
6
|
+
* but chip itself stayed at bg-{color}-500/10 — cause silent, effect
|
|
7
|
+
* loud. R201 deepens 10→15 bg and 20→30 border on hover (only when
|
|
8
|
+
* the chip has a target count > 0). The inline transition list is
|
|
9
|
+
* extended to cover background-color + border-color so the swap
|
|
10
|
+
* eases instead of snapping (Tailwind transition-colors on the
|
|
11
|
+
* className alone would be overridden by the existing R180 inline
|
|
12
|
+
* box-shadow transition).
|
|
13
|
+
*
|
|
14
|
+
* Test (cyber dark, 4 working sessions):
|
|
15
|
+
* 1. Working chip: clickable='true', className has hover:bg-green-500/15
|
|
16
|
+
* + hover:border-green-500/30, transition includes 'background-color'
|
|
17
|
+
* + 'border-color' (both 200ms), inline still has 'box-shadow 150ms'.
|
|
18
|
+
* 2. Online chip: same shape with cyan hue.
|
|
19
|
+
* 3. Hover the working chip — wait past 220ms → computed bg
|
|
20
|
+
* shifts to a more-saturated/darker green (RGB-or-OKLab signal).
|
|
21
|
+
* 4. Move away — bg returns to idle (with margin past 220ms).
|
|
22
|
+
* 5. The chip's R55 canvas-effect setHoveredStatus still fires —
|
|
23
|
+
* verified via hoveredStatus change reflected on the working
|
|
24
|
+
* legend row's data-legend-row-lifted attribute.
|
|
25
|
+
*/
|
|
26
|
+
import { chromium } from 'playwright';
|
|
27
|
+
import { readFileSync } from 'node:fs';
|
|
28
|
+
|
|
29
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
30
|
+
const browser = await chromium.launch({ headless: true });
|
|
31
|
+
|
|
32
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
33
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
34
|
+
await ctx.addInitScript(() => {
|
|
35
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
39
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
40
|
+
const r = await route.fetch();
|
|
41
|
+
const b = await r.json();
|
|
42
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
43
|
+
const mk = (alias) => ({
|
|
44
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
45
|
+
network_id: nid, project_dir: null,
|
|
46
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
47
|
+
});
|
|
48
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
49
|
+
mk('alpha'), mk('beta'), mk('gamma'), mk('delta'),
|
|
50
|
+
] } });
|
|
51
|
+
});
|
|
52
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
53
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
54
|
+
|
|
55
|
+
const page = await ctx.newPage();
|
|
56
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
57
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
|
|
58
|
+
await page.waitForSelector('[data-working-chip]', { timeout: 10000 });
|
|
59
|
+
await page.waitForTimeout(300);
|
|
60
|
+
|
|
61
|
+
const probeChip = async (selector) => page.evaluate((sel) => {
|
|
62
|
+
const el = document.querySelector(sel);
|
|
63
|
+
if (!el) return null;
|
|
64
|
+
const cs = getComputedStyle(el);
|
|
65
|
+
return {
|
|
66
|
+
className: el.getAttribute('class') || '',
|
|
67
|
+
clickable: el.getAttribute('data-working-chip-clickable') ||
|
|
68
|
+
el.getAttribute('data-online-chip-clickable'),
|
|
69
|
+
bg: cs.backgroundColor,
|
|
70
|
+
borderColor: cs.borderTopColor,
|
|
71
|
+
transition: el.style.transition,
|
|
72
|
+
};
|
|
73
|
+
}, selector);
|
|
74
|
+
|
|
75
|
+
const idleWorking = await probeChip('[data-working-chip]');
|
|
76
|
+
const idleOnline = await probeChip('[data-online-chip]');
|
|
77
|
+
|
|
78
|
+
await page.hover('[data-working-chip]');
|
|
79
|
+
await page.waitForTimeout(250);
|
|
80
|
+
const hoverWorking = await probeChip('[data-working-chip]');
|
|
81
|
+
|
|
82
|
+
// Confirm R55 canvas effect still fires — hoveredStatus='working'
|
|
83
|
+
// lifts the legend working row.
|
|
84
|
+
const workingRowLifted = await page.evaluate(() =>
|
|
85
|
+
document.querySelector('[data-legend-status="working"]')
|
|
86
|
+
?.getAttribute('data-legend-row-lifted'));
|
|
87
|
+
|
|
88
|
+
await page.mouse.move(0, 0);
|
|
89
|
+
await page.waitForTimeout(280);
|
|
90
|
+
const settledWorking = await probeChip('[data-working-chip]');
|
|
91
|
+
|
|
92
|
+
await page.hover('[data-online-chip]');
|
|
93
|
+
await page.waitForTimeout(250);
|
|
94
|
+
const hoverOnline = await probeChip('[data-online-chip]');
|
|
95
|
+
|
|
96
|
+
await page.mouse.move(0, 0);
|
|
97
|
+
await page.waitForTimeout(280);
|
|
98
|
+
const settledOnline = await probeChip('[data-online-chip]');
|
|
99
|
+
|
|
100
|
+
await browser.close();
|
|
101
|
+
|
|
102
|
+
// Tailwind 4 emits oklab/oklch / color-mix forms. Just check the bg
|
|
103
|
+
// string actually differs idle vs hover, and a brief parser confirms
|
|
104
|
+
// the channel that should grow (green for working, blue/green for cyan).
|
|
105
|
+
// Parse colors including alpha. R201's Tailwind /10 → /15 emits same
|
|
106
|
+
// OKLab L/a/b with stepped-up alpha (0.1 → 0.15); R193's gray→cyan
|
|
107
|
+
// pattern emits a different hue at any alpha. Both are "more saturated
|
|
108
|
+
// against the canvas" from the user's POV. Capture alpha and treat
|
|
109
|
+
// alpha-increase as a valid saturation signal alongside chroma growth.
|
|
110
|
+
function parseColor(s) {
|
|
111
|
+
if (!s) return null;
|
|
112
|
+
let m = s.match(/rgba?\(\s*(\d+)\s*,?\s*(\d+)\s*,?\s*(\d+)(?:\s*[,/]\s*([\d.]+))?/);
|
|
113
|
+
if (m) return { kind: 'rgb', r: +m[1], g: +m[2], b: +m[3], a: m[4] != null ? +m[4] : 1 };
|
|
114
|
+
m = s.match(/oklab\(\s*([\-\d.]+)\s+([\-\d.]+)\s+([\-\d.]+)(?:\s*\/\s*([\d.]+))?/);
|
|
115
|
+
if (m) return { kind: 'oklab', L: +m[1], a: +m[2], b: +m[3], alpha: m[4] != null ? +m[4] : 1 };
|
|
116
|
+
m = s.match(/oklch\(\s*([\-\d.]+)\s+([\-\d.]+)\s+([\-\d.]+)(?:\s*\/\s*([\d.]+))?/);
|
|
117
|
+
if (m) return { kind: 'oklch', L: +m[1], C: +m[2], h: +m[3], alpha: m[4] != null ? +m[4] : 1 };
|
|
118
|
+
return null;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
// "More saturated against the canvas" = either chroma/hue distance
|
|
122
|
+
// from gray grew OR alpha grew (Tailwind /10 → /15 deepens by alpha).
|
|
123
|
+
const moreSaturated = (idle, hov) => {
|
|
124
|
+
if (!idle || !hov) return false;
|
|
125
|
+
if (idle.kind === 'rgb' && hov.kind === 'rgb') {
|
|
126
|
+
const chromaIdle = Math.max(idle.r, idle.g, idle.b) - Math.min(idle.r, idle.g, idle.b);
|
|
127
|
+
const chromaHov = Math.max(hov.r, hov.g, hov.b) - Math.min(hov.r, hov.g, hov.b);
|
|
128
|
+
return chromaHov > chromaIdle || hov.a > idle.a + 0.01;
|
|
129
|
+
}
|
|
130
|
+
if (idle.kind === 'oklab' && hov.kind === 'oklab') {
|
|
131
|
+
const dIdle = Math.hypot(idle.a, idle.b);
|
|
132
|
+
const dHov = Math.hypot(hov.a, hov.b);
|
|
133
|
+
return dHov > dIdle + 0.005 || hov.alpha > idle.alpha + 0.01;
|
|
134
|
+
}
|
|
135
|
+
if (idle.kind === 'oklch' && hov.kind === 'oklch') {
|
|
136
|
+
return hov.C > idle.C + 0.005 || hov.alpha > idle.alpha + 0.01;
|
|
137
|
+
}
|
|
138
|
+
return false;
|
|
139
|
+
};
|
|
140
|
+
|
|
141
|
+
const idleWorkingC = parseColor(idleWorking?.bg);
|
|
142
|
+
const hoverWorkingC = parseColor(hoverWorking?.bg);
|
|
143
|
+
const idleOnlineC = parseColor(idleOnline?.bg);
|
|
144
|
+
const hoverOnlineC = parseColor(hoverOnline?.bg);
|
|
145
|
+
|
|
146
|
+
const results = {
|
|
147
|
+
working_clickable: idleWorking?.clickable === 'true',
|
|
148
|
+
working_className_has_hover: idleWorking?.className.includes('hover:bg-green-500/15')
|
|
149
|
+
&& idleWorking?.className.includes('hover:border-green-500/30'),
|
|
150
|
+
working_transition_includes_bg: /background-color\s+(?:200ms|0\.2s)/.test(idleWorking?.transition || ''),
|
|
151
|
+
working_transition_includes_border: /border-color\s+(?:200ms|0\.2s)/.test(idleWorking?.transition || ''),
|
|
152
|
+
working_transition_keeps_boxshadow: /box-shadow\s+(?:150ms|0\.15s)/.test(idleWorking?.transition || ''),
|
|
153
|
+
working_hover_bg_changed: idleWorking?.bg !== hoverWorking?.bg,
|
|
154
|
+
working_hover_more_saturated: moreSaturated(idleWorkingC, hoverWorkingC),
|
|
155
|
+
working_settles_back: settledWorking?.bg === idleWorking?.bg,
|
|
156
|
+
// R55 canvas-effect still fires from the chip — hovering the
|
|
157
|
+
// working chip lifts the legend working row.
|
|
158
|
+
working_canvas_effect_fires: workingRowLifted === 'true',
|
|
159
|
+
|
|
160
|
+
online_clickable: idleOnline?.clickable === 'true',
|
|
161
|
+
online_className_has_hover: idleOnline?.className.includes('hover:bg-cyan-500/15')
|
|
162
|
+
&& idleOnline?.className.includes('hover:border-cyan-500/30'),
|
|
163
|
+
online_transition_includes_bg: /background-color\s+(?:200ms|0\.2s)/.test(idleOnline?.transition || ''),
|
|
164
|
+
online_transition_includes_border: /border-color\s+(?:200ms|0\.2s)/.test(idleOnline?.transition || ''),
|
|
165
|
+
online_hover_bg_changed: idleOnline?.bg !== hoverOnline?.bg,
|
|
166
|
+
online_hover_more_saturated: moreSaturated(idleOnlineC, hoverOnlineC),
|
|
167
|
+
online_settles_back: settledOnline?.bg === idleOnline?.bg,
|
|
168
|
+
};
|
|
169
|
+
const ok = Object.values(results).every(Boolean);
|
|
170
|
+
console.log(`${ok ? '✅' : '❌'} status-bar chips self-hover:`, JSON.stringify(results),
|
|
171
|
+
`\n idleWorking:`, idleWorking,
|
|
172
|
+
`\n hoverWorking:`, hoverWorking,
|
|
173
|
+
`\n settledWorking:`, settledWorking,
|
|
174
|
+
`\n idleOnline:`, idleOnline,
|
|
175
|
+
`\n hoverOnline:`, hoverOnline,
|
|
176
|
+
`\n settledOnline:`, settledOnline);
|
|
177
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/* Round 202 verification: vendor letter chips (A/O/书/M/?) deepen
|
|
2
|
+
* their OWN vendor colour on hover, completing the chip-row family
|
|
3
|
+
* R193/R195/R201 opened.
|
|
4
|
+
*
|
|
5
|
+
* Pre-R202 hover fired R88 canvas dim via setHoveredVendor but the
|
|
6
|
+
* chip itself stayed at bg=transparent. R202 tints the chip with
|
|
7
|
+
* color-mix(in srgb, <vendor-hue> 12%, transparent) only when hovered
|
|
8
|
+
* (and not pinned — pinned uses R180's stronger inset-ring treatment).
|
|
9
|
+
*
|
|
10
|
+
* Test (cyber dark, 2 claude + 2 gpt sessions → vendorDist={A:2, O:2}):
|
|
11
|
+
* 1. vendor letter chips A + O both render (vendorDist.length > 1).
|
|
12
|
+
* 2. Idle: data-vendor-hovered='false', backgroundColor='transparent'
|
|
13
|
+
* / 'rgba(0,0,0,0)'.
|
|
14
|
+
* 3. Inline transition includes 'box-shadow 150ms' (R180 still there)
|
|
15
|
+
* AND 'background-color 200ms' (R202 splice).
|
|
16
|
+
* 4. Hover 'A' chip — wait past 220ms.
|
|
17
|
+
* 5. 'A' data-vendor-hovered='true', backgroundColor is a non-empty
|
|
18
|
+
* tint string (color-mix or rendered fallback) different from
|
|
19
|
+
* idle. 'O' chip stays 'false' + transparent.
|
|
20
|
+
* 6. Move away — 'A' settles back to 'false' + transparent.
|
|
21
|
+
* 7. R88 canvas-effect verification — hover 'A' sets hoveredVendor
|
|
22
|
+
* which composes into the canvas dim logic; we probe via a
|
|
23
|
+
* surrogate signal that the chip's R55-like effect fires:
|
|
24
|
+
* hoveredVendor is exposed elsewhere via data attributes; the
|
|
25
|
+
* simplest gate is that the chip itself reflects the hover via
|
|
26
|
+
* its own data-vendor-hovered attribute already asserted above
|
|
27
|
+
* (event handler clearly ran).
|
|
28
|
+
*/
|
|
29
|
+
import { chromium } from 'playwright';
|
|
30
|
+
import { readFileSync } from 'node:fs';
|
|
31
|
+
|
|
32
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
33
|
+
const browser = await chromium.launch({ headless: true });
|
|
34
|
+
|
|
35
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
36
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
37
|
+
await ctx.addInitScript(() => {
|
|
38
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
42
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
43
|
+
const r = await route.fetch();
|
|
44
|
+
const b = await r.json();
|
|
45
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
46
|
+
const mk = (alias, model) => ({
|
|
47
|
+
alias, status: 'working', model, runtime: 'cli-claude-code',
|
|
48
|
+
network_id: nid, project_dir: null,
|
|
49
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
50
|
+
});
|
|
51
|
+
// Two Anthropic + two OpenAI → vendorDist={A:2, O:2}
|
|
52
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
53
|
+
mk('alpha', 'claude-opus-4'),
|
|
54
|
+
mk('beta', 'claude-sonnet-4'),
|
|
55
|
+
mk('gamma', 'gpt-4o'),
|
|
56
|
+
mk('delta', 'gpt-4'),
|
|
57
|
+
] } });
|
|
58
|
+
});
|
|
59
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
60
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
61
|
+
|
|
62
|
+
const page = await ctx.newPage();
|
|
63
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
64
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
|
|
65
|
+
await page.waitForSelector('[data-vendor-letter="A"]', { timeout: 10000 });
|
|
66
|
+
await page.waitForSelector('[data-vendor-letter="O"]', { timeout: 5000 });
|
|
67
|
+
await page.waitForTimeout(300);
|
|
68
|
+
|
|
69
|
+
const probe = async (initial) => page.evaluate((i) => {
|
|
70
|
+
const el = document.querySelector(`[data-vendor-letter="${i}"]`);
|
|
71
|
+
if (!el) return null;
|
|
72
|
+
const cs = getComputedStyle(el);
|
|
73
|
+
return {
|
|
74
|
+
initial: i,
|
|
75
|
+
hovered: el.getAttribute('data-vendor-hovered'),
|
|
76
|
+
pinned: el.getAttribute('data-vendor-pinned'),
|
|
77
|
+
bg: cs.backgroundColor,
|
|
78
|
+
inlineBg: el.style.backgroundColor,
|
|
79
|
+
transition: el.style.transition,
|
|
80
|
+
};
|
|
81
|
+
}, initial);
|
|
82
|
+
|
|
83
|
+
const idleA = await probe('A');
|
|
84
|
+
const idleO = await probe('O');
|
|
85
|
+
|
|
86
|
+
await page.hover('[data-vendor-letter="A"]');
|
|
87
|
+
await page.waitForTimeout(260);
|
|
88
|
+
const hoverA = await probe('A');
|
|
89
|
+
const otherO = await probe('O');
|
|
90
|
+
|
|
91
|
+
await page.mouse.move(0, 0);
|
|
92
|
+
await page.waitForTimeout(280);
|
|
93
|
+
const settledA = await probe('A');
|
|
94
|
+
|
|
95
|
+
await browser.close();
|
|
96
|
+
|
|
97
|
+
const isTransparent = (s) =>
|
|
98
|
+
!s || s === 'transparent' || s === 'rgba(0, 0, 0, 0)' || s === 'rgba(0,0,0,0)';
|
|
99
|
+
|
|
100
|
+
const hasColorMix = (s) => /color-mix\s*\(/i.test(s || '');
|
|
101
|
+
const isNonEmptyColor = (s) => !!s && !isTransparent(s);
|
|
102
|
+
|
|
103
|
+
const results = {
|
|
104
|
+
A_chip_present: !!idleA,
|
|
105
|
+
O_chip_present: !!idleO,
|
|
106
|
+
|
|
107
|
+
idle_A_not_hovered: idleA?.hovered === 'false',
|
|
108
|
+
idle_A_transparent_bg: isTransparent(idleA?.bg),
|
|
109
|
+
idle_A_transition_boxshadow: /box-shadow\s+(?:150ms|0\.15s)/.test(idleA?.transition || ''),
|
|
110
|
+
idle_A_transition_bgcolor: /background-color\s+(?:200ms|0\.2s)/.test(idleA?.transition || ''),
|
|
111
|
+
|
|
112
|
+
idle_O_not_hovered: idleO?.hovered === 'false',
|
|
113
|
+
|
|
114
|
+
hover_A_hovered_attr: hoverA?.hovered === 'true',
|
|
115
|
+
hover_A_inline_color_mix: hasColorMix(hoverA?.inlineBg),
|
|
116
|
+
hover_A_computed_non_transparent: isNonEmptyColor(hoverA?.bg) && !isTransparent(hoverA?.bg),
|
|
117
|
+
hover_A_bg_changed: idleA?.bg !== hoverA?.bg,
|
|
118
|
+
hover_O_stays_idle: otherO?.hovered === 'false' && isTransparent(otherO?.bg),
|
|
119
|
+
|
|
120
|
+
settled_A_not_hovered: settledA?.hovered === 'false',
|
|
121
|
+
settled_A_transparent_bg: isTransparent(settledA?.bg),
|
|
122
|
+
};
|
|
123
|
+
const ok = Object.values(results).every(Boolean);
|
|
124
|
+
console.log(`${ok ? '✅' : '❌'} vendor chip self-hover:`, JSON.stringify(results),
|
|
125
|
+
`\n idleA:`, idleA,
|
|
126
|
+
`\n idleO:`, idleO,
|
|
127
|
+
`\n hoverA:`, hoverA,
|
|
128
|
+
`\n otherO:`, otherO,
|
|
129
|
+
`\n settledA:`, settledA);
|
|
130
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{EshJY_-HUKRsxePdvWHt4 → -fdN0jPl4NhHKhsSxuYGW}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|