@sleep2agi/agent-network-dashboard 0.4.6-preview.160 → 0.4.6-preview.162
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 +3 -3
- 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/{10hmjy1fp3hyj.js → 08ao8szisq5ch.js} +1 -1
- package/.next/static/chunks/{14i1i9ikkg5bp.js → 14~.ze~6ch07c.js} +1 -1
- package/.next/static/chunks/{04finjqoyo~rf.js → 15mxjivfp9-xh.js} +3 -3
- package/.next/static/chunks/{0g_sxsw.42had.css → 17euijzjp_rmo.css} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +29 -16
- package/app/globals.css +15 -0
- package/package.json +1 -1
- package/scripts/topo-chip-focus-test.mjs +95 -0
- package/scripts/topo-chrome-a11y-test.mjs +107 -0
- /package/.next/static/{HDGD0NmF9vDyCt2Vv_4gv → GhmfeNhT5uJCY6SB1K0fJ}/_buildManifest.js +0 -0
- /package/.next/static/{HDGD0NmF9vDyCt2Vv_4gv → GhmfeNhT5uJCY6SB1K0fJ}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{HDGD0NmF9vDyCt2Vv_4gv → GhmfeNhT5uJCY6SB1K0fJ}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":265,"timestamp":58467413448,"id":4,"parentId":1,"tags":{},"startTime":1778866439660,"traceId":"e58be711914e9ffc"},{"name":"load-custom-routes","duration":487,"timestamp":58467413894,"id":5,"parentId":1,"tags":{},"startTime":1778866439660,"traceId":"e58be711914e9ffc"},{"name":"create-dist-dir","duration":636,"timestamp":58467414425,"id":6,"parentId":1,"tags":{},"startTime":1778866439661,"traceId":"e58be711914e9ffc"},{"name":"clean","duration":505,"timestamp":58467415670,"id":7,"parentId":1,"tags":{},"startTime":1778866439662,"traceId":"e58be711914e9ffc"},{"name":"discover-routes","duration":8810,"timestamp":58467496998,"id":8,"parentId":1,"tags":{},"startTime":1778866439743,"traceId":"e58be711914e9ffc"},{"name":"create-root-mapping","duration":102,"timestamp":58467505869,"id":9,"parentId":1,"tags":{},"startTime":1778866439752,"traceId":"e58be711914e9ffc"},{"name":"generate-route-types","duration":32284,"timestamp":58467508290,"id":10,"parentId":1,"tags":{},"startTime":1778866439755,"traceId":"e58be711914e9ffc"},{"name":"public-dir-conflict-check","duration":141,"timestamp":58467540824,"id":11,"parentId":1,"tags":{},"startTime":1778866439787,"traceId":"e58be711914e9ffc"},{"name":"generate-routes-manifest","duration":4517,"timestamp":58467541160,"id":12,"parentId":1,"tags":{},"startTime":1778866439787,"traceId":"e58be711914e9ffc"},{"name":"run-turbopack","duration":5354396,"timestamp":58467552281,"id":14,"parentId":1,"tags":{},"startTime":1778866439799,"traceId":"e58be711914e9ffc"},{"name":"turbopack-build-events","duration":73,"timestamp":58467839158,"id":15,"parentId":1,"tags":{},"startTime":1778866440085,"traceId":"e58be711914e9ffc"},{"name":"run-typescript","duration":8652943,"timestamp":58472922819,"id":16,"parentId":1,"tags":{},"startTime":1778866445169,"traceId":"e58be711914e9ffc"},{"name":"generate-required-server-files","duration":2681,"timestamp":58481577145,"id":18,"parentId":1,"tags":{},"startTime":1778866453823,"traceId":"e58be711914e9ffc"},{"name":"check-static-error-page","duration":11705,"timestamp":58481758187,"id":20,"parentId":19,"tags":{},"startTime":1778866454004,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":414108,"timestamp":58481774232,"id":63,"parentId":22,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":428160,"timestamp":58481760355,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778866454007,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":517688,"timestamp":58481774743,"id":67,"parentId":28,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":529375,"timestamp":58481763155,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778866454009,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":530862,"timestamp":58481774405,"id":65,"parentId":26,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":542453,"timestamp":58481762889,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778866454009,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":536132,"timestamp":58481775241,"id":70,"parentId":32,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":547581,"timestamp":58481763871,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778866454010,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":541315,"timestamp":58481774913,"id":68,"parentId":29,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":553127,"timestamp":58481763281,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778866454010,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":547880,"timestamp":58481775314,"id":71,"parentId":33,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":559241,"timestamp":58481764026,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778866454010,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":552350,"timestamp":58481775068,"id":69,"parentId":30,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":564051,"timestamp":58481763435,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778866454010,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":554374,"timestamp":58481774509,"id":66,"parentId":27,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":565930,"timestamp":58481763026,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778866454009,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":553674,"timestamp":58481775538,"id":74,"parentId":36,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":564581,"timestamp":58481764678,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":555701,"timestamp":58481774323,"id":64,"parentId":25,"tags":{},"startTime":1778866454021,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":567371,"timestamp":58481762697,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778866454009,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":557068,"timestamp":58481775568,"id":75,"parentId":37,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":567847,"timestamp":58481764828,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":558643,"timestamp":58481775592,"id":77,"parentId":39,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":569289,"timestamp":58481764989,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":560815,"timestamp":58481775581,"id":76,"parentId":38,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":571524,"timestamp":58481764924,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":561027,"timestamp":58481775605,"id":78,"parentId":40,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":571599,"timestamp":58481765066,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":561415,"timestamp":58481775614,"id":79,"parentId":41,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":571941,"timestamp":58481765129,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":566307,"timestamp":58481773931,"id":62,"parentId":21,"tags":{},"startTime":1778866454020,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":581006,"timestamp":58481759278,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778866454006,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":565409,"timestamp":58481775662,"id":83,"parentId":45,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":575740,"timestamp":58481765383,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778866454012,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":568027,"timestamp":58481775390,"id":72,"parentId":34,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":579449,"timestamp":58481764160,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778866454010,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":571363,"timestamp":58481775691,"id":85,"parentId":47,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":580241,"timestamp":58481766866,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778866454013,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":572549,"timestamp":58481775627,"id":80,"parentId":42,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":583024,"timestamp":58481765197,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":582352,"timestamp":58481775421,"id":73,"parentId":35,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":593596,"timestamp":58481764254,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778866454011,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":589212,"timestamp":58481775712,"id":87,"parentId":49,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":597871,"timestamp":58481767125,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778866454013,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":589685,"timestamp":58481775700,"id":86,"parentId":48,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":598388,"timestamp":58481767049,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778866454013,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":581361,"timestamp":58481785858,"id":89,"parentId":31,"tags":{},"startTime":1778866454032,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":603696,"timestamp":58481763564,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778866454010,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":584280,"timestamp":58481783136,"id":88,"parentId":24,"tags":{},"startTime":1778866454029,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":606662,"timestamp":58481760786,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778866454007,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":600602,"timestamp":58481775640,"id":81,"parentId":43,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":611035,"timestamp":58481765259,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778866454012,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":600777,"timestamp":58481775653,"id":82,"parentId":44,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":611141,"timestamp":58481765317,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778866454012,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":634947,"timestamp":58481788307,"id":93,"parentId":52,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":655696,"timestamp":58481767632,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778866454014,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":636333,"timestamp":58481788280,"id":91,"parentId":50,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":657238,"timestamp":58481767427,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778866454014,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":639835,"timestamp":58481788248,"id":90,"parentId":23,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":667537,"timestamp":58481760593,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778866454007,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":653739,"timestamp":58481775675,"id":84,"parentId":46,"tags":{},"startTime":1778866454022,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":664022,"timestamp":58481765443,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778866454012,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":643388,"timestamp":58481788343,"id":96,"parentId":56,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":663274,"timestamp":58481768499,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778866454015,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":647073,"timestamp":58481788356,"id":97,"parentId":57,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":666786,"timestamp":58481768703,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778866454015,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":647264,"timestamp":58481788369,"id":98,"parentId":59,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":666334,"timestamp":58481769327,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778866454016,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":651188,"timestamp":58481788399,"id":100,"parentId":61,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":670005,"timestamp":58481769626,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778866454016,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":646843,"timestamp":58481794116,"id":101,"parentId":58,"tags":{},"startTime":1778866454040,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":672133,"timestamp":58481768895,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778866454015,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":630502,"timestamp":58481812906,"id":102,"parentId":55,"tags":{},"startTime":1778866454059,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":675338,"timestamp":58481768108,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778866454014,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":657711,"timestamp":58481788334,"id":95,"parentId":54,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":678168,"timestamp":58481767916,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778866454014,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":658319,"timestamp":58481788382,"id":99,"parentId":60,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":677259,"timestamp":58481769481,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778866454016,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":660666,"timestamp":58481788292,"id":92,"parentId":51,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":681464,"timestamp":58481767529,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778866454014,"traceId":"e58be711914e9ffc"},{"name":"is-page-static","duration":661600,"timestamp":58481788320,"id":94,"parentId":53,"tags":{},"startTime":1778866454035,"traceId":"e58be711914e9ffc"},{"name":"check-page","duration":682187,"timestamp":58481767765,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778866454014,"traceId":"e58be711914e9ffc"},{"name":"static-check","duration":692668,"timestamp":58481757327,"id":19,"parentId":1,"tags":{},"startTime":1778866454004,"traceId":"e58be711914e9ffc"},{"name":"write-routes-manifest","duration":509,"timestamp":58482458224,"id":104,"parentId":1,"tags":{},"startTime":1778866454705,"traceId":"e58be711914e9ffc"},{"name":"load-dotenv","duration":85,"timestamp":58482473396,"id":107,"parentId":106,"tags":{},"startTime":1778866454720,"traceId":"e58be711914e9ffc"},{"name":"run-export-path-map","duration":580,"timestamp":58482476117,"id":108,"parentId":106,"tags":{},"startTime":1778866454722,"traceId":"e58be711914e9ffc"},{"name":"next-export","duration":669289,"timestamp":58482470617,"id":106,"parentId":1,"tags":{},"startTime":1778866454717,"traceId":"e58be711914e9ffc"}]
|
|
2
|
-
[{"name":"move-exported-app-not-found-","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":325,"timestamp":59195832238,"id":4,"parentId":1,"tags":{},"startTime":1778867168079,"traceId":"467be1ac2ba06164"},{"name":"load-custom-routes","duration":579,"timestamp":59195832772,"id":5,"parentId":1,"tags":{},"startTime":1778867168079,"traceId":"467be1ac2ba06164"},{"name":"create-dist-dir","duration":787,"timestamp":59195833396,"id":6,"parentId":1,"tags":{},"startTime":1778867168080,"traceId":"467be1ac2ba06164"},{"name":"clean","duration":602,"timestamp":59195834955,"id":7,"parentId":1,"tags":{},"startTime":1778867168081,"traceId":"467be1ac2ba06164"},{"name":"discover-routes","duration":9184,"timestamp":59195918070,"id":8,"parentId":1,"tags":{},"startTime":1778867168164,"traceId":"467be1ac2ba06164"},{"name":"create-root-mapping","duration":102,"timestamp":59195927312,"id":9,"parentId":1,"tags":{},"startTime":1778867168174,"traceId":"467be1ac2ba06164"},{"name":"generate-route-types","duration":36073,"timestamp":59195930043,"id":10,"parentId":1,"tags":{},"startTime":1778867168176,"traceId":"467be1ac2ba06164"},{"name":"public-dir-conflict-check","duration":125,"timestamp":59195966319,"id":11,"parentId":1,"tags":{},"startTime":1778867168213,"traceId":"467be1ac2ba06164"},{"name":"generate-routes-manifest","duration":5761,"timestamp":59195966598,"id":12,"parentId":1,"tags":{},"startTime":1778867168213,"traceId":"467be1ac2ba06164"},{"name":"run-turbopack","duration":5273765,"timestamp":59195977779,"id":14,"parentId":1,"tags":{},"startTime":1778867168224,"traceId":"467be1ac2ba06164"},{"name":"turbopack-build-events","duration":102,"timestamp":59196260156,"id":15,"parentId":1,"tags":{},"startTime":1778867168506,"traceId":"467be1ac2ba06164"},{"name":"run-typescript","duration":8693162,"timestamp":59201274498,"id":16,"parentId":1,"tags":{},"startTime":1778867173521,"traceId":"467be1ac2ba06164"},{"name":"generate-required-server-files","duration":2576,"timestamp":59209968933,"id":18,"parentId":1,"tags":{},"startTime":1778867182215,"traceId":"467be1ac2ba06164"},{"name":"check-static-error-page","duration":15582,"timestamp":59210137024,"id":20,"parentId":19,"tags":{},"startTime":1778867182383,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":432406,"timestamp":59210156018,"id":63,"parentId":22,"tags":{},"startTime":1778867182402,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":448229,"timestamp":59210140366,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778867182387,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":488975,"timestamp":59210157945,"id":67,"parentId":28,"tags":{},"startTime":1778867182404,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":502926,"timestamp":59210144140,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778867182390,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":500438,"timestamp":59210158477,"id":70,"parentId":32,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":514126,"timestamp":59210144862,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778867182391,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":523190,"timestamp":59210156154,"id":64,"parentId":25,"tags":{},"startTime":1778867182402,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":535750,"timestamp":59210143666,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778867182390,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":522938,"timestamp":59210157600,"id":66,"parentId":27,"tags":{},"startTime":1778867182404,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":536606,"timestamp":59210143991,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778867182390,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":528308,"timestamp":59210155584,"id":62,"parentId":21,"tags":{},"startTime":1778867182402,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":545251,"timestamp":59210138703,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778867182385,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":528406,"timestamp":59210158668,"id":73,"parentId":35,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":541818,"timestamp":59210145308,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778867182392,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":536068,"timestamp":59210158550,"id":71,"parentId":33,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":549645,"timestamp":59210145031,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778867182391,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":536294,"timestamp":59210158632,"id":72,"parentId":34,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":549817,"timestamp":59210145163,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778867182391,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":540995,"timestamp":59210158864,"id":76,"parentId":38,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":553661,"timestamp":59210146257,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":543208,"timestamp":59210158880,"id":77,"parentId":39,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":555771,"timestamp":59210146368,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":545844,"timestamp":59210158896,"id":78,"parentId":40,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":558335,"timestamp":59210146473,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":549063,"timestamp":59210158908,"id":79,"parentId":41,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":561463,"timestamp":59210146575,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":550553,"timestamp":59210158923,"id":80,"parentId":42,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":562840,"timestamp":59210146684,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":557883,"timestamp":59210158951,"id":82,"parentId":44,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":569980,"timestamp":59210146917,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":565178,"timestamp":59210156278,"id":65,"parentId":26,"tags":{},"startTime":1778867182403,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":577631,"timestamp":59210143870,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778867182390,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":562687,"timestamp":59210158969,"id":83,"parentId":45,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":574653,"timestamp":59210147052,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":563020,"timestamp":59210158843,"id":75,"parentId":37,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":575791,"timestamp":59210146100,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778867182392,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":564228,"timestamp":59210158939,"id":81,"parentId":43,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":576398,"timestamp":59210146808,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":565230,"timestamp":59210158140,"id":68,"parentId":29,"tags":{},"startTime":1778867182404,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":579133,"timestamp":59210144266,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778867182391,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":568116,"timestamp":59210159046,"id":87,"parentId":49,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":578091,"timestamp":59210149115,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778867182395,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":569103,"timestamp":59210159030,"id":86,"parentId":48,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":579220,"timestamp":59210148963,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778867182395,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":569481,"timestamp":59210159017,"id":85,"parentId":47,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":581249,"timestamp":59210147298,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778867182394,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":570427,"timestamp":59210158283,"id":69,"parentId":30,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":584335,"timestamp":59210144417,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778867182391,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":567809,"timestamp":59210163664,"id":89,"parentId":31,"tags":{},"startTime":1778867182410,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":586950,"timestamp":59210144568,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778867182391,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":574341,"timestamp":59210158984,"id":84,"parentId":46,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":586210,"timestamp":59210147160,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778867182393,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":583479,"timestamp":59210158809,"id":74,"parentId":36,"tags":{},"startTime":1778867182405,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":596480,"timestamp":59210145861,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778867182392,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":603355,"timestamp":59210166269,"id":95,"parentId":54,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":619368,"timestamp":59210150333,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778867182397,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":610422,"timestamp":59210166283,"id":96,"parentId":56,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":625589,"timestamp":59210151198,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778867182397,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":620882,"timestamp":59210166294,"id":97,"parentId":57,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":635830,"timestamp":59210151417,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778867182398,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":625263,"timestamp":59210166309,"id":98,"parentId":59,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":639579,"timestamp":59210152054,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778867182398,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":630246,"timestamp":59210162483,"id":88,"parentId":24,"tags":{},"startTime":1778867182409,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":651880,"timestamp":59210140918,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778867182387,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":626704,"timestamp":59210166243,"id":93,"parentId":52,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":643127,"timestamp":59210149887,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778867182396,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":632173,"timestamp":59210166209,"id":91,"parentId":50,"tags":{},"startTime":1778867182412,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":648906,"timestamp":59210149532,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778867182396,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":635084,"timestamp":59210166177,"id":90,"parentId":23,"tags":{},"startTime":1778867182412,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":660657,"timestamp":59210140651,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778867182387,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":629777,"timestamp":59210172092,"id":101,"parentId":58,"tags":{},"startTime":1778867182418,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":650315,"timestamp":59210151593,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778867182398,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":638231,"timestamp":59210166328,"id":99,"parentId":60,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":652399,"timestamp":59210152217,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778867182398,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":622361,"timestamp":59210187595,"id":102,"parentId":55,"tags":{},"startTime":1778867182434,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":659414,"timestamp":59210150579,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778867182397,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":649993,"timestamp":59210166227,"id":92,"parentId":51,"tags":{},"startTime":1778867182412,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":666558,"timestamp":59210149702,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778867182396,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":669526,"timestamp":59210166255,"id":94,"parentId":53,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":685714,"timestamp":59210150114,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778867182396,"traceId":"467be1ac2ba06164"},{"name":"is-page-static","duration":670550,"timestamp":59210166351,"id":100,"parentId":61,"tags":{},"startTime":1778867182413,"traceId":"467be1ac2ba06164"},{"name":"check-page","duration":684580,"timestamp":59210152363,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778867182399,"traceId":"467be1ac2ba06164"},{"name":"static-check","duration":701163,"timestamp":59210135827,"id":19,"parentId":1,"tags":{},"startTime":1778867182382,"traceId":"467be1ac2ba06164"},{"name":"write-routes-manifest","duration":447,"timestamp":59210843536,"id":104,"parentId":1,"tags":{},"startTime":1778867183090,"traceId":"467be1ac2ba06164"},{"name":"load-dotenv","duration":60,"timestamp":59210855104,"id":107,"parentId":106,"tags":{},"startTime":1778867183101,"traceId":"467be1ac2ba06164"},{"name":"run-export-path-map","duration":886,"timestamp":59210859632,"id":108,"parentId":106,"tags":{},"startTime":1778867183106,"traceId":"467be1ac2ba06164"},{"name":"next-export","duration":585813,"timestamp":59210853727,"id":106,"parentId":1,"tags":{},"startTime":1778867183100,"traceId":"467be1ac2ba06164"}]
|
|
2
|
+
[{"name":"move-exported-app-not-found-","duration":2320,"timestamp":59211443236,"id":109,"parentId":105,"tags":{},"startTime":1778867183690,"traceId":"467be1ac2ba06164"},{"name":"move-exported-app-global-error-","duration":573,"timestamp":59211445645,"id":110,"parentId":105,"tags":{},"startTime":1778867183692,"traceId":"467be1ac2ba06164"},{"name":"static-generation","duration":600336,"timestamp":59210847896,"id":105,"parentId":1,"tags":{},"startTime":1778867183094,"traceId":"467be1ac2ba06164"},{"name":"write-routes-manifest","duration":431,"timestamp":59211448390,"id":111,"parentId":1,"tags":{},"startTime":1778867183695,"traceId":"467be1ac2ba06164"},{"name":"print-tree-view","duration":4177,"timestamp":59211455752,"id":112,"parentId":1,"tags":{},"startTime":1778867183702,"traceId":"467be1ac2ba06164"},{"name":"write-route-bundle-stats","duration":17613,"timestamp":59211459960,"id":113,"parentId":1,"tags":{},"startTime":1778867183706,"traceId":"467be1ac2ba06164"},{"name":"telemetry-flush","duration":36698,"timestamp":59211477598,"id":114,"parentId":1,"tags":{},"startTime":1778867183724,"traceId":"467be1ac2ba06164"},{"name":"next-build","duration":15730341,"timestamp":59195783990,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778867168030,"traceId":"467be1ac2ba06164"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5273765,"timestamp":59195977779,"id":14,"parentId":1,"tags":{},"startTime":1778867168224,"traceId":"467be1ac2ba06164"},{"name":"turbopack-build-events","duration":102,"timestamp":59196260156,"id":15,"parentId":1,"tags":{},"startTime":1778867168506,"traceId":"467be1ac2ba06164"},{"name":"run-typescript","duration":8693162,"timestamp":59201274498,"id":16,"parentId":1,"tags":{},"startTime":1778867173521,"traceId":"467be1ac2ba06164"},{"name":"static-check","duration":701163,"timestamp":59210135827,"id":19,"parentId":1,"tags":{},"startTime":1778867182382,"traceId":"467be1ac2ba06164"},{"name":"static-generation","duration":600336,"timestamp":59210847896,"id":105,"parentId":1,"tags":{},"startTime":1778867183094,"traceId":"467be1ac2ba06164"},{"name":"telemetry-flush","duration":36698,"timestamp":59211477598,"id":114,"parentId":1,"tags":{},"startTime":1778867183724,"traceId":"467be1ac2ba06164"},{"name":"next-build","duration":15730341,"timestamp":59195783990,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778867168030,"traceId":"467be1ac2ba06164"}]
|
|
@@ -1363,7 +1363,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1363
1363
|
return (
|
|
1364
1364
|
<>
|
|
1365
1365
|
<span
|
|
1366
|
-
className="px-2.5 py-1 rounded-md bg-green-500/10 text-green-300 border border-green-500/20"
|
|
1366
|
+
className="px-2.5 py-1 rounded-md bg-green-500/10 text-green-300 border border-green-500/20 anet-topo-chip-focus"
|
|
1367
1367
|
data-working-chip
|
|
1368
1368
|
data-working-chip-aliases={workingAliases.join(',')}
|
|
1369
1369
|
data-pin-mirror={pinnedStatus === 'working' ? 'true' : 'false'}
|
|
@@ -1401,7 +1401,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1401
1401
|
{workingCount} working
|
|
1402
1402
|
</span>
|
|
1403
1403
|
<span
|
|
1404
|
-
className="px-2.5 py-1 rounded-md bg-cyan-500/10 text-cyan-300 border border-cyan-500/20"
|
|
1404
|
+
className="px-2.5 py-1 rounded-md bg-cyan-500/10 text-cyan-300 border border-cyan-500/20 anet-topo-chip-focus"
|
|
1405
1405
|
data-online-chip
|
|
1406
1406
|
data-online-chip-aliases={onlineAliases.join(',')}
|
|
1407
1407
|
data-pin-mirror={pinnedStatus === 'idle' ? 'true' : 'false'}
|
|
@@ -1485,6 +1485,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1485
1485
|
role="button"
|
|
1486
1486
|
tabIndex={0}
|
|
1487
1487
|
aria-pressed={isPinned}
|
|
1488
|
+
className="anet-topo-chip-focus"
|
|
1488
1489
|
title={`${n} ${label}\n${previewList}${suffix}\n${titleAction}`}
|
|
1489
1490
|
style={{
|
|
1490
1491
|
width: `${(n / total) * 100}%`,
|
|
@@ -1586,7 +1587,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1586
1587
|
data-active-filter="status"
|
|
1587
1588
|
data-filter-match-count={matchCount}
|
|
1588
1589
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
1589
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in"
|
|
1590
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
1590
1591
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear filter'}
|
|
1591
1592
|
onClick={() => setPinnedStatus(null)}
|
|
1592
1593
|
style={{
|
|
@@ -1624,7 +1625,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1624
1625
|
data-active-filter="group"
|
|
1625
1626
|
data-filter-match-count={matchCount}
|
|
1626
1627
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
1627
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in"
|
|
1628
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
1628
1629
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear filter'}
|
|
1629
1630
|
onClick={() => setPinnedGroup(null)}
|
|
1630
1631
|
style={{
|
|
@@ -1674,7 +1675,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1674
1675
|
data-active-filter="vendor"
|
|
1675
1676
|
data-filter-match-count={matchCount}
|
|
1676
1677
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
1677
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in"
|
|
1678
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
1678
1679
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear vendor filter'}
|
|
1679
1680
|
onClick={() => setPinnedVendor(null)}
|
|
1680
1681
|
style={{
|
|
@@ -1722,7 +1723,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1722
1723
|
data-filter-match-count={link.count}
|
|
1723
1724
|
data-filter-match-aliases={`${link.from},${link.to}`}
|
|
1724
1725
|
data-active-filter-edge-hot={isHot ? 'true' : 'false'}
|
|
1725
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in"
|
|
1726
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
1726
1727
|
title={`${link.from} → ${link.to} (${link.count} msg${link.count === 1 ? '' : 's'}${isHot ? ', hot lane · ≥ 10' : ''}) — click to clear`}
|
|
1727
1728
|
onClick={() => setPinnedEdgeKey(null)}
|
|
1728
1729
|
style={{
|
|
@@ -1836,7 +1837,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1836
1837
|
data-pin-intersection-count={matchAliases.length}
|
|
1837
1838
|
data-pin-intersection-empty={isEmpty ? 'true' : 'false'}
|
|
1838
1839
|
data-pin-intersection-aliases={matchAliases.join(',')}
|
|
1839
|
-
className="hidden sm:inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in"
|
|
1840
|
+
className="hidden sm:inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
1840
1841
|
title={tooltip}
|
|
1841
1842
|
style={{
|
|
1842
1843
|
background: isEmpty
|
|
@@ -1889,7 +1890,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1889
1890
|
role="button"
|
|
1890
1891
|
tabIndex={0}
|
|
1891
1892
|
aria-pressed={isPinned}
|
|
1892
|
-
className="inline-flex items-baseline gap-0.5 px-1 rounded"
|
|
1893
|
+
className="inline-flex items-baseline gap-0.5 px-1 rounded anet-topo-chip-focus"
|
|
1893
1894
|
data-vendor-letter={v.initial}
|
|
1894
1895
|
data-vendor-pinned={isPinned ? 'true' : 'false'}
|
|
1895
1896
|
data-vendor-aliases={aliases.join(',')}
|
|
@@ -1959,7 +1960,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1959
1960
|
: `${flowList}${flowSuffix} — hover brightens all · click to open /messages`;
|
|
1960
1961
|
return (
|
|
1961
1962
|
<span
|
|
1962
|
-
className="hidden sm:inline px-2.5 py-1 rounded-md bg-gray-500/10 text-gray-400 border border-gray-500/20"
|
|
1963
|
+
className="hidden sm:inline px-2.5 py-1 rounded-md bg-gray-500/10 text-gray-400 border border-gray-500/20 anet-topo-chip-focus"
|
|
1963
1964
|
data-active-links-chip
|
|
1964
1965
|
data-active-links-flow-count={flowLinks.length}
|
|
1965
1966
|
data-active-links-clickable={isInteractive ? 'true' : 'false'}
|
|
@@ -4227,8 +4228,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4227
4228
|
behind the "%" label (looked like an indicator, not a button).
|
|
4228
4229
|
Split into a plain % readout + an explicit reset button with
|
|
4229
4230
|
its own icon + tooltip. */}
|
|
4230
|
-
<div className="absolute bottom-3 right-3 flex items-center gap-1.5 text-xs select-none">
|
|
4231
|
-
{/* #113: node size — S / M / L segmented control (Vincent 4727).
|
|
4231
|
+
<div className="absolute bottom-3 right-3 flex items-center gap-1.5 text-xs select-none" data-topo-chrome>
|
|
4232
|
+
{/* #113: node size — S / M / L segmented control (Vincent 4727).
|
|
4233
|
+
R154: stable data-* hooks for tests + focus-visible ring so
|
|
4234
|
+
keyboard navigation lands somewhere visible against the
|
|
4235
|
+
dark canvas (browser default outline often vanishes on
|
|
4236
|
+
cyber theme). */}
|
|
4232
4237
|
<div
|
|
4233
4238
|
className="flex items-center rounded-md border overflow-hidden"
|
|
4234
4239
|
style={{ background: pal.legendBox.fill, borderColor: pal.containerBorder }}
|
|
@@ -4240,8 +4245,10 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4240
4245
|
key={lbl}
|
|
4241
4246
|
onClick={() => pickNodeScale(v)}
|
|
4242
4247
|
aria-pressed={nodeScale === v}
|
|
4248
|
+
data-topo-chrome-nodesize={lbl}
|
|
4249
|
+
data-topo-chrome-nodesize-active={nodeScale === v ? 'true' : 'false'}
|
|
4243
4250
|
title={`Node size: ${lbl === 'S' ? 'small' : lbl === 'M' ? 'medium' : 'large'}`}
|
|
4244
|
-
className={`px-2 py-1 transition-colors ${idx > 0 ? 'border-l' : ''} ${nodeScale === v ? 'bg-cyan-500/15 text-cyan-300' : 'hover:bg-white/5'}`}
|
|
4251
|
+
className={`px-2 py-1 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60 focus-visible:ring-inset ${idx > 0 ? 'border-l' : ''} ${nodeScale === v ? 'bg-cyan-500/15 text-cyan-300' : 'hover:bg-white/5'}`}
|
|
4245
4252
|
style={{ color: nodeScale === v ? undefined : pal.legendText, borderColor: pal.containerBorder }}
|
|
4246
4253
|
>
|
|
4247
4254
|
{lbl}
|
|
@@ -4254,7 +4261,8 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4254
4261
|
>
|
|
4255
4262
|
<button
|
|
4256
4263
|
onClick={() => zoomBy(1 / 1.2)}
|
|
4257
|
-
|
|
4264
|
+
data-topo-chrome-zoom-out
|
|
4265
|
+
className="px-2 py-1 hover:bg-white/5 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60 focus-visible:ring-inset"
|
|
4258
4266
|
style={{ color: pal.legendText }}
|
|
4259
4267
|
aria-label="Zoom out"
|
|
4260
4268
|
title="Zoom out (−)"
|
|
@@ -4263,6 +4271,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4263
4271
|
</button>
|
|
4264
4272
|
<span
|
|
4265
4273
|
className="px-2 py-1 tabular-nums border-x text-center"
|
|
4274
|
+
data-topo-chrome-zoom-level
|
|
4266
4275
|
style={{ color: pal.legendText, borderColor: pal.containerBorder, minWidth: 46 }}
|
|
4267
4276
|
title="Current zoom level"
|
|
4268
4277
|
>
|
|
@@ -4270,7 +4279,8 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4270
4279
|
</span>
|
|
4271
4280
|
<button
|
|
4272
4281
|
onClick={() => zoomBy(1.2)}
|
|
4273
|
-
|
|
4282
|
+
data-topo-chrome-zoom-in
|
|
4283
|
+
className="px-2 py-1 hover:bg-white/5 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60 focus-visible:ring-inset"
|
|
4274
4284
|
style={{ color: pal.legendText }}
|
|
4275
4285
|
aria-label="Zoom in"
|
|
4276
4286
|
title="Zoom in (+)"
|
|
@@ -4280,7 +4290,8 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4280
4290
|
</div>
|
|
4281
4291
|
<button
|
|
4282
4292
|
onClick={resetView}
|
|
4283
|
-
|
|
4293
|
+
data-topo-chrome-reset
|
|
4294
|
+
className="p-1.5 rounded-md border hover:bg-white/5 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60"
|
|
4284
4295
|
style={{ background: pal.legendBox.fill, borderColor: pal.containerBorder, color: pal.legendText }}
|
|
4285
4296
|
aria-label="Reset view"
|
|
4286
4297
|
title="Reset zoom + pan (0, or double-click the canvas)"
|
|
@@ -4292,7 +4303,9 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
4292
4303
|
</button>
|
|
4293
4304
|
<button
|
|
4294
4305
|
onClick={toggleFullscreen}
|
|
4295
|
-
|
|
4306
|
+
data-topo-chrome-fullscreen
|
|
4307
|
+
data-topo-chrome-fullscreen-active={isFullscreen ? 'true' : 'false'}
|
|
4308
|
+
className="p-1.5 rounded-md border hover:bg-white/5 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60"
|
|
4296
4309
|
style={{ background: pal.legendBox.fill, borderColor: pal.containerBorder, color: pal.legendText }}
|
|
4297
4310
|
aria-label={isFullscreen ? 'Exit fullscreen' : 'Enter fullscreen'}
|
|
4298
4311
|
title={isFullscreen ? 'Exit fullscreen' : 'Fullscreen'}
|
package/app/globals.css
CHANGED
|
@@ -856,6 +856,21 @@ body {
|
|
|
856
856
|
animation-iteration-count: infinite;
|
|
857
857
|
}
|
|
858
858
|
|
|
859
|
+
/* R155 — focus-visible outline for TopoGraph chip-row interactives.
|
|
860
|
+
Cyber theme's dark canvas often swallows the browser default focus
|
|
861
|
+
ring; R154 fixed it for chrome buttons via Tailwind's focus-visible:
|
|
862
|
+
ring (box-shadow). Chip-row chips reuse `box-shadow` for the R88 /
|
|
863
|
+
R139 / R140 pin-mirror inset — so a focus box-shadow would conflict
|
|
864
|
+
with the pinned-state shadow. `outline` is a separate CSS property
|
|
865
|
+
and doesn't fight box-shadow, so we use it here. `currentColor`
|
|
866
|
+
inherits the chip's own accent (green for working, cyan for online,
|
|
867
|
+
per-vendor for letters, etc.). Only fires on :focus-visible
|
|
868
|
+
(keyboard) — mouse focus stays unstyled. */
|
|
869
|
+
.anet-topo-chip-focus:focus-visible {
|
|
870
|
+
outline: 2px solid currentColor;
|
|
871
|
+
outline-offset: 1px;
|
|
872
|
+
}
|
|
873
|
+
|
|
859
874
|
/* Round 46 — animated dashed spokes flowing from hub outward. Each spoke
|
|
860
875
|
gets a small animationDelay (set inline) so the dashes don't all flow
|
|
861
876
|
in sync — reads as "command relay" pulse rather than a metronome.
|
package/package.json
CHANGED
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/* Round 155 verification: chip-row interactives gain
|
|
2
|
+
* `.anet-topo-chip-focus` for keyboard focus-visible outline,
|
|
3
|
+
* matching R154's chrome-button treatment.
|
|
4
|
+
*
|
|
5
|
+
* Why `outline` not `box-shadow`: the R88 vendor letter / R139
|
|
6
|
+
* working chip / R140 online chip already use inline boxShadow
|
|
7
|
+
* for the pin-mirror inset. Adding focus-visible:ring (which
|
|
8
|
+
* Tailwind paints via box-shadow) would conflict — inline style
|
|
9
|
+
* wins specificity. `outline: 2px solid currentColor` is on a
|
|
10
|
+
* separate CSS property, no conflict; `currentColor` inherits
|
|
11
|
+
* the chip's own accent (green / cyan / per-vendor / etc.).
|
|
12
|
+
*
|
|
13
|
+
* Test: every chip-row interactive surface carries the class.
|
|
14
|
+
*/
|
|
15
|
+
import { chromium } from 'playwright';
|
|
16
|
+
import { readFileSync } from 'node:fs';
|
|
17
|
+
|
|
18
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
19
|
+
const browser = await chromium.launch({ headless: true });
|
|
20
|
+
|
|
21
|
+
const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
|
|
22
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
23
|
+
await ctx.addInitScript(() => {
|
|
24
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
25
|
+
});
|
|
26
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
27
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
28
|
+
const r = await route.fetch();
|
|
29
|
+
const b = await r.json();
|
|
30
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
31
|
+
const mk = (alias, status, model) => ({
|
|
32
|
+
alias, status, model, runtime: 'cli-claude-code',
|
|
33
|
+
network_id: nid, project_dir: null,
|
|
34
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
35
|
+
});
|
|
36
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
37
|
+
mk('alpha', 'working', 'claude-opus-4'),
|
|
38
|
+
mk('beta', 'idle', 'gpt-4o'),
|
|
39
|
+
] } });
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
const now = Date.now();
|
|
43
|
+
// 1 message to populate flowLinks → active-links chip is interactive
|
|
44
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [
|
|
45
|
+
{ id: 'm0', from_alias: 'alpha', to_alias: 'beta', content: 'hi',
|
|
46
|
+
network_id: 'default', created_at: new Date(now - 10000).toISOString() },
|
|
47
|
+
] } }));
|
|
48
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
49
|
+
|
|
50
|
+
const page = await ctx.newPage();
|
|
51
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
52
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 2, { timeout: 30000 });
|
|
53
|
+
await page.waitForTimeout(400);
|
|
54
|
+
|
|
55
|
+
// Pin status + vendor to surface filter pills + intersection chip
|
|
56
|
+
await page.evaluate(() => {
|
|
57
|
+
window.dispatchEvent(new CustomEvent('anet:topo-pin', { detail: { kind: 'status', value: 'working' } }));
|
|
58
|
+
window.dispatchEvent(new CustomEvent('anet:topo-pin', { detail: { kind: 'vendor', value: 'A' } }));
|
|
59
|
+
});
|
|
60
|
+
await page.waitForTimeout(300);
|
|
61
|
+
|
|
62
|
+
const inspect = () => page.evaluate(() => {
|
|
63
|
+
const has = (sel) => {
|
|
64
|
+
const el = document.querySelector(sel);
|
|
65
|
+
return el && (el.className || '').includes('anet-topo-chip-focus');
|
|
66
|
+
};
|
|
67
|
+
return {
|
|
68
|
+
pressureSeg_working: has('[data-pressure-seg="working"]'),
|
|
69
|
+
workingChip: has('[data-working-chip]'),
|
|
70
|
+
onlineChip: has('[data-online-chip]'),
|
|
71
|
+
vendorLetter_A: has('[data-vendor-letter="A"]'),
|
|
72
|
+
activeLinks: has('[data-active-links-chip]'),
|
|
73
|
+
filterPill_status: has('[data-active-filter="status"]'),
|
|
74
|
+
filterPill_vendor: has('[data-active-filter="vendor"]'),
|
|
75
|
+
intersectionChip: has('[data-pin-intersection]'),
|
|
76
|
+
};
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
const result = await inspect();
|
|
80
|
+
await browser.close();
|
|
81
|
+
|
|
82
|
+
const results = {
|
|
83
|
+
pressureSeg_focusClass: result.pressureSeg_working === true,
|
|
84
|
+
workingChip_focusClass: result.workingChip === true,
|
|
85
|
+
onlineChip_focusClass: result.onlineChip === true,
|
|
86
|
+
vendorLetter_focusClass: result.vendorLetter_A === true,
|
|
87
|
+
activeLinks_focusClass: result.activeLinks === true,
|
|
88
|
+
filterPillStatus_focusClass: result.filterPill_status === true,
|
|
89
|
+
filterPillVendor_focusClass: result.filterPill_vendor === true,
|
|
90
|
+
intersectionChip_focusClass: result.intersectionChip === true,
|
|
91
|
+
};
|
|
92
|
+
const ok = Object.values(results).every(Boolean);
|
|
93
|
+
console.log(`${ok ? '✅' : '❌'} chip focus class:`, JSON.stringify(results),
|
|
94
|
+
`\n raw=`, result);
|
|
95
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/* Round 154 verification: TopoGraph chrome buttons gain stable
|
|
2
|
+
* data-* hooks for tests + focus-visible ring matching the
|
|
3
|
+
* dashboard's cyan accent (browser default focus outline often
|
|
4
|
+
* vanishes on the dark canvas).
|
|
5
|
+
*
|
|
6
|
+
* Chrome inventory (bottom-right of canvas):
|
|
7
|
+
* data-topo-chrome (wrapper div)
|
|
8
|
+
* data-topo-chrome-nodesize=S|M|L (segmented control, R113)
|
|
9
|
+
* data-topo-chrome-nodesize-active="true|false"
|
|
10
|
+
* data-topo-chrome-zoom-out (R104)
|
|
11
|
+
* data-topo-chrome-zoom-level (readout, also R104)
|
|
12
|
+
* data-topo-chrome-zoom-in
|
|
13
|
+
* data-topo-chrome-reset
|
|
14
|
+
* data-topo-chrome-fullscreen
|
|
15
|
+
* data-topo-chrome-fullscreen-active="true|false"
|
|
16
|
+
*
|
|
17
|
+
* Each button gains focus-visible:ring-1 ring-cyan-400/60. Tabs
|
|
18
|
+
* land somewhere visible.
|
|
19
|
+
*
|
|
20
|
+
* Test: every chrome button surfaces its data attribute, plus the
|
|
21
|
+
* three S/M/L buttons report active correctly when one is picked.
|
|
22
|
+
*/
|
|
23
|
+
import { chromium } from 'playwright';
|
|
24
|
+
import { readFileSync } from 'node:fs';
|
|
25
|
+
|
|
26
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
27
|
+
const browser = await chromium.launch({ headless: true });
|
|
28
|
+
|
|
29
|
+
const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
|
|
30
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
31
|
+
await ctx.addInitScript(() => {
|
|
32
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
33
|
+
});
|
|
34
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
35
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
36
|
+
const r = await route.fetch();
|
|
37
|
+
const b = await r.json();
|
|
38
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
39
|
+
const mk = (alias) => ({
|
|
40
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
41
|
+
network_id: nid, project_dir: null,
|
|
42
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
43
|
+
});
|
|
44
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('alpha'), mk('beta')] } });
|
|
45
|
+
});
|
|
46
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
47
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
48
|
+
|
|
49
|
+
const page = await ctx.newPage();
|
|
50
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
51
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 2, { timeout: 30000 });
|
|
52
|
+
await page.waitForSelector('[data-topo-chrome]', { timeout: 10000 });
|
|
53
|
+
await page.waitForTimeout(300);
|
|
54
|
+
|
|
55
|
+
const inspect = () => page.evaluate(() => {
|
|
56
|
+
const sel = (s) => document.querySelector(s);
|
|
57
|
+
const all = (s) => [...document.querySelectorAll(s)];
|
|
58
|
+
return {
|
|
59
|
+
wrapper: !!sel('[data-topo-chrome]'),
|
|
60
|
+
nodesizeS: sel('[data-topo-chrome-nodesize="S"]')?.getAttribute('data-topo-chrome-nodesize-active'),
|
|
61
|
+
nodesizeM: sel('[data-topo-chrome-nodesize="M"]')?.getAttribute('data-topo-chrome-nodesize-active'),
|
|
62
|
+
nodesizeL: sel('[data-topo-chrome-nodesize="L"]')?.getAttribute('data-topo-chrome-nodesize-active'),
|
|
63
|
+
zoomOut: !!sel('[data-topo-chrome-zoom-out]'),
|
|
64
|
+
zoomLevel: sel('[data-topo-chrome-zoom-level]')?.textContent?.trim(),
|
|
65
|
+
zoomIn: !!sel('[data-topo-chrome-zoom-in]'),
|
|
66
|
+
reset: !!sel('[data-topo-chrome-reset]'),
|
|
67
|
+
fullscreen: !!sel('[data-topo-chrome-fullscreen]'),
|
|
68
|
+
fullscreenActive: sel('[data-topo-chrome-fullscreen]')?.getAttribute('data-topo-chrome-fullscreen-active'),
|
|
69
|
+
// focus-visible ring is a CSS pseudo-class; just verify the
|
|
70
|
+
// className carries the focus-visible:ring tokens.
|
|
71
|
+
chromeButtonsHaveFocusRing: all('[data-topo-chrome] button').every(b =>
|
|
72
|
+
(b.className || '').includes('focus-visible:ring')),
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
const before = await inspect();
|
|
77
|
+
|
|
78
|
+
// Click L → it becomes active, M becomes inactive (default)
|
|
79
|
+
await page.locator('[data-topo-chrome-nodesize="L"]').click();
|
|
80
|
+
await page.waitForTimeout(150);
|
|
81
|
+
const afterL = await inspect();
|
|
82
|
+
|
|
83
|
+
await browser.close();
|
|
84
|
+
|
|
85
|
+
const results = {
|
|
86
|
+
wrapper_present: before.wrapper === true,
|
|
87
|
+
nodesizeS_present: before.nodesizeS === 'false',
|
|
88
|
+
nodesizeM_activeDefault: before.nodesizeM === 'true', // default scale 0.84 → M
|
|
89
|
+
nodesizeL_present: before.nodesizeL === 'false',
|
|
90
|
+
zoomOut_present: before.zoomOut === true,
|
|
91
|
+
zoomLevel_100pct: before.zoomLevel === '100%',
|
|
92
|
+
zoomIn_present: before.zoomIn === true,
|
|
93
|
+
reset_present: before.reset === true,
|
|
94
|
+
fullscreen_present: before.fullscreen === true,
|
|
95
|
+
fullscreenActive_false: before.fullscreenActive === 'false',
|
|
96
|
+
focusRing_onAllButtons: before.chromeButtonsHaveFocusRing === true,
|
|
97
|
+
|
|
98
|
+
// After clicking L: active flips to L
|
|
99
|
+
afterL_LActive: afterL.nodesizeL === 'true',
|
|
100
|
+
afterL_MInactive: afterL.nodesizeM === 'false',
|
|
101
|
+
afterL_SInactive: afterL.nodesizeS === 'false',
|
|
102
|
+
};
|
|
103
|
+
const ok = Object.values(results).every(Boolean);
|
|
104
|
+
console.log(`${ok ? '✅' : '❌'} chrome a11y:`, JSON.stringify(results),
|
|
105
|
+
`\n before=`, before,
|
|
106
|
+
`\n afterL=`, afterL);
|
|
107
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{HDGD0NmF9vDyCt2Vv_4gv → GhmfeNhT5uJCY6SB1K0fJ}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|