@sleep2agi/agent-network-dashboard 0.4.6-preview.141 → 0.4.6-preview.143
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.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- 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 +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- 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 +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- 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.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- 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 +1 -1
- 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/{17t-f~8myhwyf.js → 00g4ujct890wg.js} +1 -1
- package/.next/static/chunks/{0n7d-22onq9b..js → 0c-.4u7k3uwka.js} +1 -1
- package/.next/static/chunks/0lcyci-~n9~ys.js +4 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +78 -9
- package/package.json +1 -1
- package/scripts/topo-active-links-chip-nav-test.mjs +117 -0
- package/scripts/topo-panel-hover-elevation-test.mjs +118 -0
- package/.next/static/chunks/0uuulzr2axmob.js +0 -4
- /package/.next/static/{giNWS4tIwfQsKvMuZsBnM → Tgp0FuUzGI05ZC-_FwOmE}/_buildManifest.js +0 -0
- /package/.next/static/{giNWS4tIwfQsKvMuZsBnM → Tgp0FuUzGI05ZC-_FwOmE}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{giNWS4tIwfQsKvMuZsBnM → Tgp0FuUzGI05ZC-_FwOmE}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":405,"timestamp":52260459567,"id":4,"parentId":1,"tags":{},"startTime":1778860232706,"traceId":"c4f2494ba5a90dd6"},{"name":"load-custom-routes","duration":683,"timestamp":52260460145,"id":5,"parentId":1,"tags":{},"startTime":1778860232706,"traceId":"c4f2494ba5a90dd6"},{"name":"create-dist-dir","duration":822,"timestamp":52260460904,"id":6,"parentId":1,"tags":{},"startTime":1778860232707,"traceId":"c4f2494ba5a90dd6"},{"name":"clean","duration":611,"timestamp":52260462524,"id":7,"parentId":1,"tags":{},"startTime":1778860232709,"traceId":"c4f2494ba5a90dd6"},{"name":"discover-routes","duration":9290,"timestamp":52260550456,"id":8,"parentId":1,"tags":{},"startTime":1778860232797,"traceId":"c4f2494ba5a90dd6"},{"name":"create-root-mapping","duration":123,"timestamp":52260559808,"id":9,"parentId":1,"tags":{},"startTime":1778860232806,"traceId":"c4f2494ba5a90dd6"},{"name":"generate-route-types","duration":34286,"timestamp":52260562357,"id":10,"parentId":1,"tags":{},"startTime":1778860232809,"traceId":"c4f2494ba5a90dd6"},{"name":"public-dir-conflict-check","duration":116,"timestamp":52260596808,"id":11,"parentId":1,"tags":{},"startTime":1778860232843,"traceId":"c4f2494ba5a90dd6"},{"name":"generate-routes-manifest","duration":4100,"timestamp":52260597070,"id":12,"parentId":1,"tags":{},"startTime":1778860232843,"traceId":"c4f2494ba5a90dd6"},{"name":"run-turbopack","duration":5725005,"timestamp":52260607364,"id":14,"parentId":1,"tags":{},"startTime":1778860232854,"traceId":"c4f2494ba5a90dd6"},{"name":"turbopack-build-events","duration":76,"timestamp":52260893900,"id":15,"parentId":1,"tags":{},"startTime":1778860233140,"traceId":"c4f2494ba5a90dd6"},{"name":"run-typescript","duration":8477339,"timestamp":52266340643,"id":16,"parentId":1,"tags":{},"startTime":1778860238587,"traceId":"c4f2494ba5a90dd6"},{"name":"generate-required-server-files","duration":2584,"timestamp":52274819225,"id":18,"parentId":1,"tags":{},"startTime":1778860247065,"traceId":"c4f2494ba5a90dd6"},{"name":"check-static-error-page","duration":13235,"timestamp":52275012810,"id":20,"parentId":19,"tags":{},"startTime":1778860247259,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":411711,"timestamp":52275028815,"id":63,"parentId":22,"tags":{},"startTime":1778860247275,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":425081,"timestamp":52275015624,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778860247262,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":524348,"timestamp":52275029243,"id":66,"parentId":27,"tags":{},"startTime":1778860247276,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":534616,"timestamp":52275019070,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778860247265,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":522435,"timestamp":52275031501,"id":69,"parentId":30,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":534637,"timestamp":52275019349,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":530553,"timestamp":52275031724,"id":70,"parentId":32,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":542644,"timestamp":52275019693,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":531545,"timestamp":52275031091,"id":67,"parentId":28,"tags":{},"startTime":1778860247277,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":543534,"timestamp":52275019158,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778860247265,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":535702,"timestamp":52275029126,"id":65,"parentId":26,"tags":{},"startTime":1778860247275,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":545934,"timestamp":52275018962,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778860247265,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":535830,"timestamp":52275031954,"id":73,"parentId":35,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":547858,"timestamp":52275019990,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":539089,"timestamp":52275032120,"id":74,"parentId":36,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":550892,"timestamp":52275020361,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":546062,"timestamp":52275028448,"id":62,"parentId":21,"tags":{},"startTime":1778860247275,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":560167,"timestamp":52275014384,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778860247261,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":546305,"timestamp":52275028984,"id":64,"parentId":25,"tags":{},"startTime":1778860247275,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":556521,"timestamp":52275018806,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778860247265,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":548858,"timestamp":52275031812,"id":71,"parentId":33,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":560915,"timestamp":52275019798,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":548810,"timestamp":52275032219,"id":78,"parentId":40,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":560245,"timestamp":52275020829,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":566143,"timestamp":52275032166,"id":75,"parentId":37,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":577885,"timestamp":52275020490,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":566664,"timestamp":52275031914,"id":72,"parentId":34,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":578726,"timestamp":52275019893,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":566577,"timestamp":52275032183,"id":76,"parentId":38,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":578205,"timestamp":52275020588,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":568640,"timestamp":52275031329,"id":68,"parentId":29,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":580803,"timestamp":52275019244,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":573604,"timestamp":52275032303,"id":84,"parentId":46,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":584446,"timestamp":52275021540,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778860247268,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":574107,"timestamp":52275032262,"id":81,"parentId":43,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":585216,"timestamp":52275021203,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":581399,"timestamp":52275032246,"id":80,"parentId":42,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":592607,"timestamp":52275021095,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":581620,"timestamp":52275032231,"id":79,"parentId":41,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":593460,"timestamp":52275020954,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":586106,"timestamp":52275032288,"id":83,"parentId":45,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":597019,"timestamp":52275021419,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778860247268,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":586987,"timestamp":52275032277,"id":82,"parentId":44,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":598001,"timestamp":52275021305,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778860247268,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":579508,"timestamp":52275040287,"id":88,"parentId":24,"tags":{},"startTime":1778860247287,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":603538,"timestamp":52275016303,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778860247263,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":579447,"timestamp":52275044620,"id":89,"parentId":31,"tags":{},"startTime":1778860247291,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":604654,"timestamp":52275019458,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778860247266,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":596615,"timestamp":52275032345,"id":87,"parentId":49,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":605594,"timestamp":52275023425,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778860247270,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":597267,"timestamp":52275032329,"id":86,"parentId":48,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":607824,"timestamp":52275021812,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778860247268,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":604037,"timestamp":52275032199,"id":77,"parentId":39,"tags":{},"startTime":1778860247278,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":615563,"timestamp":52275020720,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778860247267,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":629936,"timestamp":52275032318,"id":85,"parentId":47,"tags":{},"startTime":1778860247279,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":640640,"timestamp":52275021694,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778860247268,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":615281,"timestamp":52275047264,"id":95,"parentId":54,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":638262,"timestamp":52275024328,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778860247271,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":623224,"timestamp":52275047297,"id":97,"parentId":57,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":645392,"timestamp":52275025185,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778860247271,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":630899,"timestamp":52275047313,"id":98,"parentId":59,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":652632,"timestamp":52275025638,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778860247272,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":633355,"timestamp":52275047144,"id":90,"parentId":23,"tags":{},"startTime":1778860247293,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":664559,"timestamp":52275015988,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778860247262,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":633483,"timestamp":52275047222,"id":92,"parentId":51,"tags":{},"startTime":1778860247293,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":656845,"timestamp":52275023911,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778860247270,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":633878,"timestamp":52275047204,"id":91,"parentId":50,"tags":{},"startTime":1778860247293,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":657344,"timestamp":52275023776,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778860247270,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":634770,"timestamp":52275052921,"id":101,"parentId":58,"tags":{},"startTime":1778860247299,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":662426,"timestamp":52275025322,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778860247272,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":640492,"timestamp":52275047357,"id":100,"parentId":61,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":662059,"timestamp":52275025836,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778860247272,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":641227,"timestamp":52275047336,"id":99,"parentId":60,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":662869,"timestamp":52275025742,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778860247272,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":620092,"timestamp":52275070243,"id":102,"parentId":55,"tags":{},"startTime":1778860247317,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":665877,"timestamp":52275024492,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778860247271,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":643200,"timestamp":52275047249,"id":94,"parentId":53,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":666280,"timestamp":52275024188,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778860247270,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":647450,"timestamp":52275047238,"id":93,"parentId":52,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":670683,"timestamp":52275024043,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778860247270,"traceId":"c4f2494ba5a90dd6"},{"name":"is-page-static","duration":674877,"timestamp":52275047285,"id":96,"parentId":56,"tags":{},"startTime":1778860247294,"traceId":"c4f2494ba5a90dd6"},{"name":"check-page","duration":697232,"timestamp":52275024978,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778860247271,"traceId":"c4f2494ba5a90dd6"},{"name":"static-check","duration":710358,"timestamp":52275011897,"id":19,"parentId":1,"tags":{},"startTime":1778860247258,"traceId":"c4f2494ba5a90dd6"},{"name":"write-routes-manifest","duration":412,"timestamp":52275728922,"id":104,"parentId":1,"tags":{},"startTime":1778860247975,"traceId":"c4f2494ba5a90dd6"},{"name":"load-dotenv","duration":41,"timestamp":52275739479,"id":107,"parentId":106,"tags":{},"startTime":1778860247986,"traceId":"c4f2494ba5a90dd6"},{"name":"run-export-path-map","duration":890,"timestamp":52275743584,"id":108,"parentId":106,"tags":{},"startTime":1778860247990,"traceId":"c4f2494ba5a90dd6"},{"name":"next-export","duration":567258,"timestamp":52275738296,"id":106,"parentId":1,"tags":{},"startTime":1778860247985,"traceId":"c4f2494ba5a90dd6"}]
|
|
2
|
-
[{"name":"move-exported-app-not-found-","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":260,"timestamp":53029493510,"id":4,"parentId":1,"tags":{},"startTime":1778861001740,"traceId":"1867395b661d04ea"},{"name":"load-custom-routes","duration":519,"timestamp":53029493911,"id":5,"parentId":1,"tags":{},"startTime":1778861001740,"traceId":"1867395b661d04ea"},{"name":"create-dist-dir","duration":618,"timestamp":53029494479,"id":6,"parentId":1,"tags":{},"startTime":1778861001741,"traceId":"1867395b661d04ea"},{"name":"clean","duration":523,"timestamp":53029495711,"id":7,"parentId":1,"tags":{},"startTime":1778861001742,"traceId":"1867395b661d04ea"},{"name":"discover-routes","duration":8148,"timestamp":53029577833,"id":8,"parentId":1,"tags":{},"startTime":1778861001824,"traceId":"1867395b661d04ea"},{"name":"create-root-mapping","duration":119,"timestamp":53029586075,"id":9,"parentId":1,"tags":{},"startTime":1778861001832,"traceId":"1867395b661d04ea"},{"name":"generate-route-types","duration":31755,"timestamp":53029588380,"id":10,"parentId":1,"tags":{},"startTime":1778861001835,"traceId":"1867395b661d04ea"},{"name":"public-dir-conflict-check","duration":98,"timestamp":53029620302,"id":11,"parentId":1,"tags":{},"startTime":1778861001867,"traceId":"1867395b661d04ea"},{"name":"generate-routes-manifest","duration":4758,"timestamp":53029620517,"id":12,"parentId":1,"tags":{},"startTime":1778861001867,"traceId":"1867395b661d04ea"},{"name":"run-turbopack","duration":5485039,"timestamp":53029630021,"id":14,"parentId":1,"tags":{},"startTime":1778861001876,"traceId":"1867395b661d04ea"},{"name":"turbopack-build-events","duration":119,"timestamp":53029916946,"id":15,"parentId":1,"tags":{},"startTime":1778861002163,"traceId":"1867395b661d04ea"},{"name":"run-typescript","duration":8920853,"timestamp":53035123343,"id":16,"parentId":1,"tags":{},"startTime":1778861007370,"traceId":"1867395b661d04ea"},{"name":"generate-required-server-files","duration":2415,"timestamp":53044045407,"id":18,"parentId":1,"tags":{},"startTime":1778861016292,"traceId":"1867395b661d04ea"},{"name":"check-static-error-page","duration":16403,"timestamp":53044216630,"id":20,"parentId":19,"tags":{},"startTime":1778861016463,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":428740,"timestamp":53044238091,"id":63,"parentId":22,"tags":{},"startTime":1778861016484,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":446988,"timestamp":53044220028,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778861016466,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":514883,"timestamp":53044238763,"id":67,"parentId":28,"tags":{},"startTime":1778861016485,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":529541,"timestamp":53044224208,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778861016470,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":525029,"timestamp":53044237732,"id":62,"parentId":21,"tags":{},"startTime":1778861016484,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":544439,"timestamp":53044218396,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778861016465,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":544430,"timestamp":53044238941,"id":68,"parentId":29,"tags":{},"startTime":1778861016485,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":559056,"timestamp":53044224397,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778861016471,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":556047,"timestamp":53044239341,"id":70,"parentId":32,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":570506,"timestamp":53044225019,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778861016471,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":557534,"timestamp":53044238212,"id":64,"parentId":25,"tags":{},"startTime":1778861016484,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":572434,"timestamp":53044223359,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778861016470,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":559918,"timestamp":53044238334,"id":65,"parentId":26,"tags":{},"startTime":1778861016485,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":574768,"timestamp":53044223545,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778861016470,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":570181,"timestamp":53044239677,"id":75,"parentId":37,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":583672,"timestamp":53044226308,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":578611,"timestamp":53044239137,"id":69,"parentId":30,"tags":{},"startTime":1778861016485,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":593249,"timestamp":53044224580,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778861016471,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":584480,"timestamp":53044239494,"id":72,"parentId":34,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":598746,"timestamp":53044225339,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778861016472,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":584779,"timestamp":53044239530,"id":73,"parentId":35,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":598853,"timestamp":53044225502,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778861016472,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":587551,"timestamp":53044239712,"id":77,"parentId":39,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":600720,"timestamp":53044226593,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":593603,"timestamp":53044239645,"id":74,"parentId":36,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":607207,"timestamp":53044226087,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778861016472,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":593727,"timestamp":53044239737,"id":79,"parentId":41,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":606677,"timestamp":53044226819,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":595208,"timestamp":53044238456,"id":66,"parentId":27,"tags":{},"startTime":1778861016485,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":609987,"timestamp":53044223707,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778861016470,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":594422,"timestamp":53044239408,"id":71,"parentId":33,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":608662,"timestamp":53044225194,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778861016471,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":594424,"timestamp":53044239697,"id":76,"parentId":38,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":607702,"timestamp":53044226469,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":602697,"timestamp":53044239753,"id":80,"parentId":42,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":615564,"timestamp":53044226952,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":602870,"timestamp":53044239824,"id":85,"parentId":47,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":613640,"timestamp":53044229092,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778861016475,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":603053,"timestamp":53044239812,"id":84,"parentId":46,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":614017,"timestamp":53044228884,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778861016475,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":603322,"timestamp":53044239722,"id":78,"parentId":40,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":616377,"timestamp":53044226708,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":605348,"timestamp":53044239779,"id":82,"parentId":44,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":617954,"timestamp":53044227227,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778861016474,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":605642,"timestamp":53044239794,"id":83,"parentId":45,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":618115,"timestamp":53044227359,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778861016474,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":605783,"timestamp":53044239839,"id":86,"parentId":48,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":616435,"timestamp":53044229224,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778861016475,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":609289,"timestamp":53044239855,"id":87,"parentId":49,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":619867,"timestamp":53044229334,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778861016476,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":601784,"timestamp":53044251756,"id":88,"parentId":24,"tags":{},"startTime":1778861016498,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":632957,"timestamp":53044220638,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778861016467,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":595458,"timestamp":53044258259,"id":89,"parentId":31,"tags":{},"startTime":1778861016505,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":629030,"timestamp":53044224716,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778861016471,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":618395,"timestamp":53044239768,"id":81,"parentId":43,"tags":{},"startTime":1778861016486,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":631103,"timestamp":53044227105,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778861016473,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":604759,"timestamp":53044260963,"id":94,"parentId":53,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":635366,"timestamp":53044230405,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778861016477,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":611041,"timestamp":53044265072,"id":97,"parentId":57,"tags":{},"startTime":1778861016511,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":644448,"timestamp":53044231745,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778861016478,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":618476,"timestamp":53044265106,"id":98,"parentId":59,"tags":{},"startTime":1778861016511,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":651223,"timestamp":53044232424,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778861016479,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":636010,"timestamp":53044265131,"id":99,"parentId":60,"tags":{},"startTime":1778861016511,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":668641,"timestamp":53044232587,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778861016479,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":640504,"timestamp":53044260916,"id":91,"parentId":50,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":671742,"timestamp":53044229734,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778861016476,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":642722,"timestamp":53044265151,"id":100,"parentId":61,"tags":{},"startTime":1778861016511,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":675193,"timestamp":53044232746,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778861016479,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":651776,"timestamp":53044260934,"id":92,"parentId":51,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":682855,"timestamp":53044229919,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778861016476,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":654116,"timestamp":53044260979,"id":95,"parentId":54,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":684507,"timestamp":53044230635,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778861016477,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":628930,"timestamp":53044286780,"id":102,"parentId":58,"tags":{},"startTime":1778861016533,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":683804,"timestamp":53044231948,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778861016478,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":655415,"timestamp":53044260880,"id":90,"parentId":23,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":695973,"timestamp":53044220363,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778861016467,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":656575,"timestamp":53044260992,"id":96,"parentId":56,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":686089,"timestamp":53044231520,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778861016478,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":641804,"timestamp":53044277442,"id":101,"parentId":55,"tags":{},"startTime":1778861016524,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":688380,"timestamp":53044230903,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778861016477,"traceId":"1867395b661d04ea"},{"name":"is-page-static","duration":661051,"timestamp":53044260947,"id":93,"parentId":52,"tags":{},"startTime":1778861016507,"traceId":"1867395b661d04ea"},{"name":"check-page","duration":691904,"timestamp":53044230166,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778861016476,"traceId":"1867395b661d04ea"},{"name":"static-check","duration":706858,"timestamp":53044215257,"id":19,"parentId":1,"tags":{},"startTime":1778861016462,"traceId":"1867395b661d04ea"},{"name":"write-routes-manifest","duration":560,"timestamp":53044929535,"id":104,"parentId":1,"tags":{},"startTime":1778861017176,"traceId":"1867395b661d04ea"},{"name":"load-dotenv","duration":47,"timestamp":53044940692,"id":107,"parentId":106,"tags":{},"startTime":1778861017187,"traceId":"1867395b661d04ea"},{"name":"run-export-path-map","duration":586,"timestamp":53044943369,"id":108,"parentId":106,"tags":{},"startTime":1778861017190,"traceId":"1867395b661d04ea"},{"name":"next-export","duration":588433,"timestamp":53044939486,"id":106,"parentId":1,"tags":{},"startTime":1778861017186,"traceId":"1867395b661d04ea"}]
|
|
2
|
+
[{"name":"move-exported-app-not-found-","duration":3123,"timestamp":53045531265,"id":109,"parentId":105,"tags":{},"startTime":1778861017778,"traceId":"1867395b661d04ea"},{"name":"move-exported-app-global-error-","duration":1150,"timestamp":53045534492,"id":110,"parentId":105,"tags":{},"startTime":1778861017781,"traceId":"1867395b661d04ea"},{"name":"static-generation","duration":603831,"timestamp":53044933828,"id":105,"parentId":1,"tags":{},"startTime":1778861017180,"traceId":"1867395b661d04ea"},{"name":"write-routes-manifest","duration":502,"timestamp":53045537861,"id":111,"parentId":1,"tags":{},"startTime":1778861017784,"traceId":"1867395b661d04ea"},{"name":"print-tree-view","duration":3759,"timestamp":53045544933,"id":112,"parentId":1,"tags":{},"startTime":1778861017791,"traceId":"1867395b661d04ea"},{"name":"write-route-bundle-stats","duration":17248,"timestamp":53045548723,"id":113,"parentId":1,"tags":{},"startTime":1778861017795,"traceId":"1867395b661d04ea"},{"name":"telemetry-flush","duration":68419,"timestamp":53045566020,"id":114,"parentId":1,"tags":{},"startTime":1778861017812,"traceId":"1867395b661d04ea"},{"name":"next-build","duration":16190343,"timestamp":53029444154,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778861001690,"traceId":"1867395b661d04ea"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5485039,"timestamp":53029630021,"id":14,"parentId":1,"tags":{},"startTime":1778861001876,"traceId":"1867395b661d04ea"},{"name":"turbopack-build-events","duration":119,"timestamp":53029916946,"id":15,"parentId":1,"tags":{},"startTime":1778861002163,"traceId":"1867395b661d04ea"},{"name":"run-typescript","duration":8920853,"timestamp":53035123343,"id":16,"parentId":1,"tags":{},"startTime":1778861007370,"traceId":"1867395b661d04ea"},{"name":"static-check","duration":706858,"timestamp":53044215257,"id":19,"parentId":1,"tags":{},"startTime":1778861016462,"traceId":"1867395b661d04ea"},{"name":"static-generation","duration":603831,"timestamp":53044933828,"id":105,"parentId":1,"tags":{},"startTime":1778861017180,"traceId":"1867395b661d04ea"},{"name":"telemetry-flush","duration":68419,"timestamp":53045566020,"id":114,"parentId":1,"tags":{},"startTime":1778861017812,"traceId":"1867395b661d04ea"},{"name":"next-build","duration":16190343,"timestamp":53029444154,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778861001690,"traceId":"1867395b661d04ea"}]
|
|
@@ -853,6 +853,14 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
853
853
|
// navigation footer. Drives the on-hover opacity boost + underline
|
|
854
854
|
// that signals interactivity, mirroring the hoveredHub idiom above.
|
|
855
855
|
const [hoveredRecentMore, setHoveredRecentMore] = useState(false);
|
|
856
|
+
// R135: panel-wide hover-elevation. The recent-signal + legend
|
|
857
|
+
// panels both already host clickable rows (R56/R116 recent rows,
|
|
858
|
+
// R55/R61 legend rows) and a clickable footer (R133), so the
|
|
859
|
+
// chrome itself is interactive territory. Drop-shadow boost on
|
|
860
|
+
// mouseenter says "this whole panel is alive" — matches the R18
|
|
861
|
+
// KPI-card-hover idiom from the Overview page. Single state for
|
|
862
|
+
// both panels since they don't overlap; null when neither hovered.
|
|
863
|
+
const [hoveredPanel, setHoveredPanel] = useState<'recent' | 'legend' | null>(null);
|
|
856
864
|
// Round 80 / Loop: vendor-letter hover in the distribution chip. The
|
|
857
865
|
// chip already names vendor mix (`C:5 G:3 ?:1`); hover a letter and
|
|
858
866
|
// every node from OTHER vendors dims. Surfaces the breakdown spatially
|
|
@@ -1857,18 +1865,40 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1857
1865
|
.map(l => `${l.from}→${l.to} (${l.count})`)
|
|
1858
1866
|
.join(', ');
|
|
1859
1867
|
const flowSuffix = flowLinks.length > 6 ? ` + ${flowLinks.length - 6} more` : '';
|
|
1860
|
-
|
|
1868
|
+
// R136: the chip already had cursor:pointer when flowLinks
|
|
1869
|
+
// > 0 (line 1877) — but no onClick was wired. The cursor
|
|
1870
|
+
// lied; users got the affordance signal with no follow-
|
|
1871
|
+
// through. Wire it to /messages, mirroring R133's footer-
|
|
1872
|
+
// nav idiom. Hover (R77) keeps its semantic "preview all
|
|
1873
|
+
// flows on canvas"; click is the action "open the full
|
|
1874
|
+
// list". Two distinct gestures, both meaningful. The
|
|
1875
|
+
// tooltip grows a "click to open" tail when interactive.
|
|
1876
|
+
// Drop the chip out of click territory entirely when
|
|
1877
|
+
// flowLinks is empty — no flows = no list to open.
|
|
1878
|
+
const isInteractive = flowLinks.length > 0;
|
|
1879
|
+
const tooltip = !isInteractive
|
|
1861
1880
|
? undefined
|
|
1862
|
-
: `${flowList}${flowSuffix} — hover brightens all`;
|
|
1881
|
+
: `${flowList}${flowSuffix} — hover brightens all · click to open /messages`;
|
|
1863
1882
|
return (
|
|
1864
1883
|
<span
|
|
1865
1884
|
className="hidden sm:inline px-2.5 py-1 rounded-md bg-gray-500/10 text-gray-400 border border-gray-500/20"
|
|
1866
1885
|
data-active-links-chip
|
|
1867
1886
|
data-active-links-flow-count={flowLinks.length}
|
|
1887
|
+
data-active-links-clickable={isInteractive ? 'true' : 'false'}
|
|
1868
1888
|
title={tooltip}
|
|
1869
|
-
|
|
1870
|
-
|
|
1889
|
+
role={isInteractive ? 'link' : undefined}
|
|
1890
|
+
tabIndex={isInteractive ? 0 : undefined}
|
|
1891
|
+
style={{ cursor: isInteractive ? 'pointer' : undefined }}
|
|
1892
|
+
onMouseEnter={() => { if (isInteractive) setHoveredActiveLinks(true); }}
|
|
1871
1893
|
onMouseLeave={() => setHoveredActiveLinks(false)}
|
|
1894
|
+
onClick={() => { if (isInteractive) router.push('/messages'); }}
|
|
1895
|
+
onKeyDown={(e) => {
|
|
1896
|
+
if (!isInteractive) return;
|
|
1897
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
1898
|
+
e.preventDefault();
|
|
1899
|
+
router.push('/messages');
|
|
1900
|
+
}
|
|
1901
|
+
}}
|
|
1872
1902
|
>
|
|
1873
1903
|
{flowLinks.length} active link{flowLinks.length === 1 ? '' : 's'}
|
|
1874
1904
|
{rel ? <span className="text-gray-500"> · last {rel}</span> : null}
|
|
@@ -3392,13 +3422,35 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
3392
3422
|
panels carry the filter. The filter is on the rect, not
|
|
3393
3423
|
the parent <g>, so it doesn't shadow the rows + text inside
|
|
3394
3424
|
— only the panel chrome lifts. */}
|
|
3395
|
-
<g
|
|
3425
|
+
<g
|
|
3426
|
+
transform="translate(16, 16)"
|
|
3427
|
+
data-topo-panel="recent"
|
|
3428
|
+
data-topo-panel-hovered={hoveredPanel === 'recent' ? 'true' : 'false'}
|
|
3429
|
+
onMouseEnter={() => setHoveredPanel('recent')}
|
|
3430
|
+
onMouseLeave={() => setHoveredPanel(prev => prev === 'recent' ? null : prev)}
|
|
3431
|
+
>
|
|
3396
3432
|
<rect
|
|
3397
3433
|
x="0" y="0" width="230" height="84" rx="10"
|
|
3398
3434
|
fill={pal.legendBox.fill}
|
|
3399
3435
|
stroke={pal.legendBox.stroke}
|
|
3400
3436
|
opacity={isLight ? 0.97 : 0.92}
|
|
3401
|
-
style={{
|
|
3437
|
+
style={{
|
|
3438
|
+
/* R135: drop-shadow intensifies on panel hover. Base
|
|
3439
|
+
shadow (2px / 6px blur) signals card elevation
|
|
3440
|
+
(R57); hovered (4px / 12px blur) tells the user
|
|
3441
|
+
the whole chrome is interactive territory — rows
|
|
3442
|
+
pin (R116), footer navigates (R133), legend rows
|
|
3443
|
+
pin status (R61). Reuses R18's KPI-card hover-
|
|
3444
|
+
elevation idiom for visual consistency. Theme-
|
|
3445
|
+
aware shadow colour stays the same; just the
|
|
3446
|
+
spread + blur grow. */
|
|
3447
|
+
filter: hoveredPanel === 'recent'
|
|
3448
|
+
? (isLight ? 'drop-shadow(0 4px 12px rgba(15,23,42,0.14))'
|
|
3449
|
+
: 'drop-shadow(0 4px 12px rgba(0,0,0,0.65))')
|
|
3450
|
+
: (isLight ? 'drop-shadow(0 2px 6px rgba(15,23,42,0.08))'
|
|
3451
|
+
: 'drop-shadow(0 2px 6px rgba(0,0,0,0.45))'),
|
|
3452
|
+
transition: 'filter 200ms ease-out',
|
|
3453
|
+
}}
|
|
3402
3454
|
data-topo-panel-elevation="recent"
|
|
3403
3455
|
/>
|
|
3404
3456
|
<text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight="700">recent signal</text>
|
|
@@ -3663,17 +3715,34 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
3663
3715
|
The row text brightens to legendHeadline while hovered as
|
|
3664
3716
|
a small affordance hint. Geometry unchanged — the new
|
|
3665
3717
|
<g> wrappers only carry pointer handlers. */}
|
|
3666
|
-
<g
|
|
3718
|
+
<g
|
|
3719
|
+
transform="translate(760, 16)"
|
|
3720
|
+
data-topo-panel="legend"
|
|
3721
|
+
data-topo-panel-hovered={hoveredPanel === 'legend' ? 'true' : 'false'}
|
|
3722
|
+
onMouseEnter={() => setHoveredPanel('legend')}
|
|
3723
|
+
onMouseLeave={() => setHoveredPanel(prev => prev === 'legend' ? null : prev)}
|
|
3724
|
+
>
|
|
3667
3725
|
{/* R57: matching drop-shadow elevation to the legend panel.
|
|
3668
3726
|
R106: panel height grew 96 → 104 to seat the new header
|
|
3669
3727
|
line + 4 px row-shift below it (so the new header text
|
|
3670
|
-
doesn't overlap the row-1 hitbox region).
|
|
3728
|
+
doesn't overlap the row-1 hitbox region).
|
|
3729
|
+
R135: hover-elevation mirrors the recent-signal panel
|
|
3730
|
+
rect at line ~3299. Both panels grow their shadow on
|
|
3731
|
+
hover to telegraph "the chrome is interactive" since
|
|
3732
|
+
their rows pin / nav. */}
|
|
3671
3733
|
<rect
|
|
3672
3734
|
x="0" y="0" width="224" height="104" rx="10"
|
|
3673
3735
|
fill={pal.legendBox.fill}
|
|
3674
3736
|
stroke={pal.legendBox.stroke}
|
|
3675
3737
|
opacity={isLight ? 0.97 : 0.92}
|
|
3676
|
-
style={{
|
|
3738
|
+
style={{
|
|
3739
|
+
filter: hoveredPanel === 'legend'
|
|
3740
|
+
? (isLight ? 'drop-shadow(0 4px 12px rgba(15,23,42,0.14))'
|
|
3741
|
+
: 'drop-shadow(0 4px 12px rgba(0,0,0,0.65))')
|
|
3742
|
+
: (isLight ? 'drop-shadow(0 2px 6px rgba(15,23,42,0.08))'
|
|
3743
|
+
: 'drop-shadow(0 2px 6px rgba(0,0,0,0.45))'),
|
|
3744
|
+
transition: 'filter 200ms ease-out',
|
|
3745
|
+
}}
|
|
3677
3746
|
data-topo-panel-elevation="legend"
|
|
3678
3747
|
/>
|
|
3679
3748
|
{/* R106 / Loop: panel header — symmetric with the recent-
|
package/package.json
CHANGED
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/* Round 136 verification: the "N active links" chip in the chip
|
|
2
|
+
* row becomes a clickable nav to /messages when flowLinks.length
|
|
3
|
+
* > 0. Closes the cursor-pointer-lying bug — the chip already had
|
|
4
|
+
* cursor:pointer set when interactive, but no onClick handler was
|
|
5
|
+
* wired (line 1877 of TopoGraph.tsx pre-R136). Mirrors R133 footer-
|
|
6
|
+
* nav idiom and generalizes "click to open the full flow list"
|
|
7
|
+
* across the chip row, not just the recent-signal panel.
|
|
8
|
+
*
|
|
9
|
+
* Two-state behavior:
|
|
10
|
+
* - flowLinks.length === 0 → not interactive: no role=link, no
|
|
11
|
+
* cursor:pointer, no onClick fires
|
|
12
|
+
* - flowLinks.length > 0 → role=link, tabIndex=0, cursor:pointer,
|
|
13
|
+
* onClick → /messages, tooltip mentions "click to open"
|
|
14
|
+
*
|
|
15
|
+
* Hover still boosts edges (R77) regardless — that's a separate
|
|
16
|
+
* gesture.
|
|
17
|
+
*/
|
|
18
|
+
import { chromium } from 'playwright';
|
|
19
|
+
import { readFileSync } from 'node:fs';
|
|
20
|
+
|
|
21
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
22
|
+
|
|
23
|
+
async function probeWithFlows(pairCount) {
|
|
24
|
+
const browser = await chromium.launch({ headless: true });
|
|
25
|
+
const ctx = await browser.newContext({ viewport: { width: 1400, height: 1500 } });
|
|
26
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
27
|
+
await ctx.addInitScript(() => {
|
|
28
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
29
|
+
});
|
|
30
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
31
|
+
const aliases = ['alpha', 'beta', 'gamma', 'delta', 'epsilon'];
|
|
32
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
33
|
+
const r = await route.fetch();
|
|
34
|
+
const b = await r.json();
|
|
35
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
36
|
+
const mk = (alias) => ({
|
|
37
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
38
|
+
network_id: nid, project_dir: null,
|
|
39
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
40
|
+
});
|
|
41
|
+
await route.fulfill({ response: r, json: { ...b, sessions: aliases.map(mk) } });
|
|
42
|
+
});
|
|
43
|
+
const now = Date.now();
|
|
44
|
+
const msgs = [];
|
|
45
|
+
for (let i = 0; i < pairCount; i++) {
|
|
46
|
+
msgs.push({
|
|
47
|
+
id: `m${i}`,
|
|
48
|
+
from_alias: aliases[i % aliases.length],
|
|
49
|
+
to_alias: aliases[(i + 1) % aliases.length],
|
|
50
|
+
content: 'hi',
|
|
51
|
+
network_id: 'default',
|
|
52
|
+
created_at: new Date(now - (20000 + i * 1000)).toISOString(),
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: msgs } }));
|
|
56
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
57
|
+
|
|
58
|
+
const page = await ctx.newPage();
|
|
59
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
60
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 5, { timeout: 30000 });
|
|
61
|
+
await page.waitForSelector('[data-active-links-chip]', { timeout: 10000 });
|
|
62
|
+
await page.waitForTimeout(400);
|
|
63
|
+
|
|
64
|
+
const probe = await page.evaluate(() => {
|
|
65
|
+
const chip = document.querySelector('[data-active-links-chip]');
|
|
66
|
+
return {
|
|
67
|
+
flowCount: chip?.getAttribute('data-active-links-flow-count'),
|
|
68
|
+
clickable: chip?.getAttribute('data-active-links-clickable'),
|
|
69
|
+
role: chip?.getAttribute('role'),
|
|
70
|
+
tabindex: chip?.getAttribute('tabindex'),
|
|
71
|
+
cursor: (chip?.getAttribute('style') || '').includes('cursor: pointer'),
|
|
72
|
+
title: chip?.getAttribute('title'),
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
let finalUrl = null;
|
|
77
|
+
if (pairCount > 0) {
|
|
78
|
+
await page.locator('[data-active-links-chip]').click();
|
|
79
|
+
await page.waitForURL('**/messages', { timeout: 10000 });
|
|
80
|
+
finalUrl = page.url();
|
|
81
|
+
}
|
|
82
|
+
await browser.close();
|
|
83
|
+
return { probe, finalUrl };
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const empty = await probeWithFlows(0);
|
|
87
|
+
const oneFlow = await probeWithFlows(1);
|
|
88
|
+
const many = await probeWithFlows(3);
|
|
89
|
+
|
|
90
|
+
const results = {
|
|
91
|
+
// Empty (0 flows) — not interactive
|
|
92
|
+
empty_flowCount0: empty.probe.flowCount === '0',
|
|
93
|
+
empty_clickableFalse: empty.probe.clickable === 'false',
|
|
94
|
+
empty_noRole: empty.probe.role === null || empty.probe.role === undefined,
|
|
95
|
+
empty_noTabIndex: empty.probe.tabindex === null || empty.probe.tabindex === undefined,
|
|
96
|
+
empty_noPointer: !empty.probe.cursor,
|
|
97
|
+
empty_noTooltip: !empty.probe.title,
|
|
98
|
+
|
|
99
|
+
// 1 flow — interactive
|
|
100
|
+
one_flowCount1: oneFlow.probe.flowCount === '1',
|
|
101
|
+
one_clickableTrue: oneFlow.probe.clickable === 'true',
|
|
102
|
+
one_roleLink: oneFlow.probe.role === 'link',
|
|
103
|
+
one_tabIndex0: oneFlow.probe.tabindex === '0',
|
|
104
|
+
one_cursorPointer: oneFlow.probe.cursor,
|
|
105
|
+
one_titleMentionsOpen: (oneFlow.probe.title || '').includes('click to open'),
|
|
106
|
+
one_navigatedToMessages: /\/messages$/.test(oneFlow.finalUrl || ''),
|
|
107
|
+
|
|
108
|
+
// 3 flows — same interactive shape
|
|
109
|
+
many_clickableTrue: many.probe.clickable === 'true',
|
|
110
|
+
many_navigatedToMessages: /\/messages$/.test(many.finalUrl || ''),
|
|
111
|
+
};
|
|
112
|
+
const ok = Object.values(results).every(Boolean);
|
|
113
|
+
console.log(`${ok ? '✅' : '❌'} active-links chip nav:`, JSON.stringify(results),
|
|
114
|
+
`\n empty=`, empty,
|
|
115
|
+
`\n oneFlow=`, oneFlow,
|
|
116
|
+
`\n many=`, many);
|
|
117
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/* Round 135 verification: both overlay panels (recent-signal +
|
|
2
|
+
* legend) drop-shadow boosts on mouseenter, restores on leave.
|
|
3
|
+
* Mirrors R18's KPI-card hover-elevation from the Overview page.
|
|
4
|
+
*
|
|
5
|
+
* Why both panels: each panel chrome already hosts interactive
|
|
6
|
+
* rows (R56/R116 recent rows, R55/R61 legend rows) and footer
|
|
7
|
+
* nav (R133). Hover-lift signals "this whole panel is alive"
|
|
8
|
+
* without misleading users that the panel itself is clickable —
|
|
9
|
+
* the underlying click affordances are still the rows + footer.
|
|
10
|
+
*
|
|
11
|
+
* State transitions tested:
|
|
12
|
+
* 1. Neither panel hovered → both data-topo-panel-hovered="false",
|
|
13
|
+
* both rect filters = baseline (2px/6px blur)
|
|
14
|
+
* 2. Hover recent → that panel hovered=true, filter boosted
|
|
15
|
+
* (4px/12px blur); legend still baseline
|
|
16
|
+
* 3. Leave recent (move far away) → recent restored
|
|
17
|
+
* 4. Hover legend → legend hovered=true, filter boosted
|
|
18
|
+
* 5. Leave legend → legend restored
|
|
19
|
+
*
|
|
20
|
+
* Filter inline-string detection: the boosted variant carries the
|
|
21
|
+
* `4px 12px` magic numbers in its drop-shadow argument.
|
|
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
|
+
|
|
35
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
36
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
37
|
+
const r = await route.fetch();
|
|
38
|
+
const b = await r.json();
|
|
39
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
40
|
+
const mk = (alias, status) => ({
|
|
41
|
+
alias, status, model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
42
|
+
network_id: nid, project_dir: null,
|
|
43
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
44
|
+
});
|
|
45
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
46
|
+
mk('alpha', 'working'), mk('beta', 'idle'), mk('gamma', 'working'),
|
|
47
|
+
] } });
|
|
48
|
+
});
|
|
49
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
50
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
51
|
+
const page = await ctx.newPage();
|
|
52
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
53
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 3, { timeout: 30000 });
|
|
54
|
+
await page.waitForSelector('[data-topo-panel="recent"]', { timeout: 10000 });
|
|
55
|
+
await page.waitForTimeout(400);
|
|
56
|
+
|
|
57
|
+
const inspect = () => page.evaluate(() => {
|
|
58
|
+
const get = (key) => {
|
|
59
|
+
const g = document.querySelector(`[data-topo-panel="${key}"]`);
|
|
60
|
+
const rect = g?.querySelector('rect[data-topo-panel-elevation]');
|
|
61
|
+
return {
|
|
62
|
+
hovered: g?.getAttribute('data-topo-panel-hovered'),
|
|
63
|
+
filter: (rect?.getAttribute('style') || ''),
|
|
64
|
+
};
|
|
65
|
+
};
|
|
66
|
+
return { recent: get('recent'), legend: get('legend') };
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
// State 1 — neither hovered
|
|
70
|
+
const s1 = await inspect();
|
|
71
|
+
|
|
72
|
+
// State 2 — hover recent
|
|
73
|
+
await page.locator('[data-topo-panel="recent"]').hover();
|
|
74
|
+
await page.waitForTimeout(300);
|
|
75
|
+
const s2 = await inspect();
|
|
76
|
+
|
|
77
|
+
// State 3 — leave recent (move far away from both panels)
|
|
78
|
+
await page.mouse.move(700, 350);
|
|
79
|
+
await page.waitForTimeout(300);
|
|
80
|
+
const s3 = await inspect();
|
|
81
|
+
|
|
82
|
+
// State 4 — hover legend
|
|
83
|
+
await page.locator('[data-topo-panel="legend"]').hover();
|
|
84
|
+
await page.waitForTimeout(300);
|
|
85
|
+
const s4 = await inspect();
|
|
86
|
+
|
|
87
|
+
// State 5 — leave legend
|
|
88
|
+
await page.mouse.move(500, 350);
|
|
89
|
+
await page.waitForTimeout(300);
|
|
90
|
+
const s5 = await inspect();
|
|
91
|
+
|
|
92
|
+
await browser.close();
|
|
93
|
+
|
|
94
|
+
const isBoosted = (style) => /4px\s+12px/.test(style);
|
|
95
|
+
const isBase = (style) => /2px\s+6px/.test(style) && !/4px\s+12px/.test(style);
|
|
96
|
+
|
|
97
|
+
const results = {
|
|
98
|
+
s1_recent_notHovered: s1.recent.hovered === 'false',
|
|
99
|
+
s1_legend_notHovered: s1.legend.hovered === 'false',
|
|
100
|
+
s1_recent_baseShadow: isBase(s1.recent.filter),
|
|
101
|
+
s1_legend_baseShadow: isBase(s1.legend.filter),
|
|
102
|
+
|
|
103
|
+
s2_recent_hovered: s2.recent.hovered === 'true',
|
|
104
|
+
s2_recent_boosted: isBoosted(s2.recent.filter),
|
|
105
|
+
s2_legend_stillBase: s2.legend.hovered === 'false' && isBase(s2.legend.filter),
|
|
106
|
+
|
|
107
|
+
s3_recent_restored: s3.recent.hovered === 'false' && isBase(s3.recent.filter),
|
|
108
|
+
|
|
109
|
+
s4_legend_hovered: s4.legend.hovered === 'true',
|
|
110
|
+
s4_legend_boosted: isBoosted(s4.legend.filter),
|
|
111
|
+
s4_recent_stillBase: s4.recent.hovered === 'false' && isBase(s4.recent.filter),
|
|
112
|
+
|
|
113
|
+
s5_legend_restored: s5.legend.hovered === 'false' && isBase(s5.legend.filter),
|
|
114
|
+
};
|
|
115
|
+
const ok = Object.values(results).every(Boolean);
|
|
116
|
+
console.log(`${ok ? '✅' : '❌'} panel hover elevation:`, JSON.stringify(results),
|
|
117
|
+
`\n s1=`, s1, `\n s2=`, s2, `\n s3=`, s3, `\n s4=`, s4, `\n s5=`, s5);
|
|
118
|
+
process.exit(ok ? 0 : 1);
|