@sleep2agi/agent-network-dashboard 0.5.1-preview.5 → 0.5.1-preview.7
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/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/static/chunks/{0txa4xkx0-7v-.js → 0bja1amnrg3li.js} +1 -1
- package/.next/static/chunks/0k~uc0~~19hyy.js +4 -0
- package/.next/static/chunks/{020yd2d3i1yew.js → 0wtq_6dnzems6.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +39 -5
- package/package.json +1 -1
- package/scripts/topo-minimap-viewport-hover-test.mjs +109 -0
- package/scripts/topo-panel-title-hover-letterspacing-test.mjs +97 -0
- package/.next/static/chunks/0xvj-x25qdu55.js +0 -4
- /package/.next/static/{s_gujwHXFfXWh2_yQC6Gk → x9zCCrMkHsIYlXNY791KF}/_buildManifest.js +0 -0
- /package/.next/static/{s_gujwHXFfXWh2_yQC6Gk → x9zCCrMkHsIYlXNY791KF}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{s_gujwHXFfXWh2_yQC6Gk → x9zCCrMkHsIYlXNY791KF}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":286,"timestamp":131156399756,"id":4,"parentId":1,"tags":{},"startTime":1778939128646,"traceId":"45607791fce15510"},{"name":"load-custom-routes","duration":491,"timestamp":131156400211,"id":5,"parentId":1,"tags":{},"startTime":1778939128646,"traceId":"45607791fce15510"},{"name":"create-dist-dir","duration":728,"timestamp":131156400748,"id":6,"parentId":1,"tags":{},"startTime":1778939128647,"traceId":"45607791fce15510"},{"name":"clean","duration":30286,"timestamp":131156402174,"id":7,"parentId":1,"tags":{},"startTime":1778939128648,"traceId":"45607791fce15510"},{"name":"discover-routes","duration":14754,"timestamp":131156515149,"id":8,"parentId":1,"tags":{},"startTime":1778939128761,"traceId":"45607791fce15510"},{"name":"create-root-mapping","duration":190,"timestamp":131156529978,"id":9,"parentId":1,"tags":{},"startTime":1778939128776,"traceId":"45607791fce15510"},{"name":"generate-route-types","duration":43619,"timestamp":131156533424,"id":10,"parentId":1,"tags":{},"startTime":1778939128780,"traceId":"45607791fce15510"},{"name":"public-dir-conflict-check","duration":103,"timestamp":131156577140,"id":11,"parentId":1,"tags":{},"startTime":1778939128823,"traceId":"45607791fce15510"},{"name":"generate-routes-manifest","duration":5214,"timestamp":131156577359,"id":12,"parentId":1,"tags":{},"startTime":1778939128824,"traceId":"45607791fce15510"},{"name":"run-turbopack","duration":6283510,"timestamp":131156588724,"id":14,"parentId":1,"tags":{},"startTime":1778939128835,"traceId":"45607791fce15510"},{"name":"turbopack-build-events","duration":102,"timestamp":131156892092,"id":15,"parentId":1,"tags":{},"startTime":1778939129138,"traceId":"45607791fce15510"},{"name":"run-typescript","duration":9636823,"timestamp":131162880746,"id":16,"parentId":1,"tags":{},"startTime":1778939135127,"traceId":"45607791fce15510"},{"name":"generate-required-server-files","duration":2514,"timestamp":131172518810,"id":18,"parentId":1,"tags":{},"startTime":1778939144765,"traceId":"45607791fce15510"},{"name":"check-static-error-page","duration":12299,"timestamp":131172682316,"id":20,"parentId":19,"tags":{},"startTime":1778939144929,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":466548,"timestamp":131172699079,"id":65,"parentId":22,"tags":{},"startTime":1778939144945,"traceId":"45607791fce15510"},{"name":"check-page","duration":481241,"timestamp":131172684561,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778939144931,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":575054,"timestamp":131172699449,"id":68,"parentId":27,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":587642,"timestamp":131172687149,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778939144933,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":579250,"timestamp":131172699548,"id":69,"parentId":28,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":591629,"timestamp":131172687237,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":580411,"timestamp":131172698670,"id":64,"parentId":21,"tags":{},"startTime":1778939144945,"traceId":"45607791fce15510"},{"name":"check-page","duration":595675,"timestamp":131172683444,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778939144930,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":580944,"timestamp":131172699968,"id":71,"parentId":30,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":593525,"timestamp":131172687444,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":586165,"timestamp":131172700049,"id":72,"parentId":32,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":598639,"timestamp":131172687730,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":593869,"timestamp":131172700339,"id":76,"parentId":36,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":605641,"timestamp":131172688623,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778939144935,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":599356,"timestamp":131172699346,"id":67,"parentId":26,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":611701,"timestamp":131172687057,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778939144933,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":601062,"timestamp":131172700367,"id":77,"parentId":37,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":612709,"timestamp":131172688774,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778939144935,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":603768,"timestamp":131172700388,"id":78,"parentId":38,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":615330,"timestamp":131172688874,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778939144935,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":611298,"timestamp":131172700322,"id":75,"parentId":35,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":623551,"timestamp":131172688134,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":621112,"timestamp":131172700212,"id":73,"parentId":33,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":633506,"timestamp":131172687866,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":633503,"timestamp":131172700404,"id":79,"parentId":39,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":645026,"timestamp":131172688937,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778939144935,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":642915,"timestamp":131172700414,"id":80,"parentId":40,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":654364,"timestamp":131172689018,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778939144935,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":643255,"timestamp":131172700442,"id":82,"parentId":44,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":654020,"timestamp":131172689723,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778939144936,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":643824,"timestamp":131172700428,"id":81,"parentId":42,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":655023,"timestamp":131172689298,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778939144936,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":644053,"timestamp":131172700451,"id":83,"parentId":45,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":654700,"timestamp":131172689861,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778939144936,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":647971,"timestamp":131172699229,"id":66,"parentId":25,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":660363,"timestamp":131172686882,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778939144933,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":648202,"timestamp":131172700478,"id":85,"parentId":47,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":657493,"timestamp":131172691232,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":653484,"timestamp":131172700513,"id":88,"parentId":50,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":662597,"timestamp":131172691457,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":653725,"timestamp":131172700500,"id":87,"parentId":49,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":662855,"timestamp":131172691399,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":659992,"timestamp":131172699824,"id":70,"parentId":29,"tags":{},"startTime":1778939144946,"traceId":"45607791fce15510"},{"name":"check-page","duration":672519,"timestamp":131172687340,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":663830,"timestamp":131172700291,"id":74,"parentId":34,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":676189,"timestamp":131172687983,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":661527,"timestamp":131172706715,"id":91,"parentId":31,"tags":{},"startTime":1778939144953,"traceId":"45607791fce15510"},{"name":"check-page","duration":680767,"timestamp":131172687525,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778939144934,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":667988,"timestamp":131172700465,"id":84,"parentId":46,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":677456,"timestamp":131172691031,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778939144937,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":668324,"timestamp":131172700491,"id":86,"parentId":48,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":677530,"timestamp":131172691321,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":671222,"timestamp":131172707574,"id":92,"parentId":41,"tags":{},"startTime":1778939144954,"traceId":"45607791fce15510"},{"name":"check-page","duration":689785,"timestamp":131172689109,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778939144935,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":678583,"timestamp":131172700526,"id":89,"parentId":51,"tags":{},"startTime":1778939144947,"traceId":"45607791fce15510"},{"name":"check-page","duration":687645,"timestamp":131172691506,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":670344,"timestamp":131172708944,"id":93,"parentId":43,"tags":{},"startTime":1778939144955,"traceId":"45607791fce15510"},{"name":"check-page","duration":689891,"timestamp":131172689429,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778939144936,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":674128,"timestamp":131172705313,"id":90,"parentId":24,"tags":{},"startTime":1778939144952,"traceId":"45607791fce15510"},{"name":"check-page","duration":694497,"timestamp":131172684970,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778939144931,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":673544,"timestamp":131172720170,"id":99,"parentId":56,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":701243,"timestamp":131172692525,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778939144939,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":701250,"timestamp":131172720320,"id":101,"parentId":59,"tags":{},"startTime":1778939144967,"traceId":"45607791fce15510"},{"name":"check-page","duration":728234,"timestamp":131172693417,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778939144940,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":709965,"timestamp":131172720345,"id":102,"parentId":61,"tags":{},"startTime":1778939144967,"traceId":"45607791fce15510"},{"name":"check-page","duration":736355,"timestamp":131172694052,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778939144940,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":723738,"timestamp":131172720124,"id":96,"parentId":53,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":751997,"timestamp":131172691941,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":725033,"timestamp":131172720361,"id":103,"parentId":62,"tags":{},"startTime":1778939144967,"traceId":"45607791fce15510"},{"name":"check-page","duration":751253,"timestamp":131172694205,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778939144940,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":731869,"timestamp":131172720105,"id":95,"parentId":52,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":760282,"timestamp":131172691794,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":732125,"timestamp":131172720373,"id":104,"parentId":63,"tags":{},"startTime":1778939144967,"traceId":"45607791fce15510"},{"name":"check-page","duration":758186,"timestamp":131172694361,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778939144941,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":732927,"timestamp":131172720389,"id":105,"parentId":60,"tags":{},"startTime":1778939144967,"traceId":"45607791fce15510"},{"name":"check-page","duration":759754,"timestamp":131172693606,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778939144940,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":738834,"timestamp":131172720186,"id":100,"parentId":58,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":765857,"timestamp":131172693215,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778939144939,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":739434,"timestamp":131172720151,"id":98,"parentId":55,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":767345,"timestamp":131172692308,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778939144939,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":726410,"timestamp":131172733729,"id":106,"parentId":57,"tags":{},"startTime":1778939144980,"traceId":"45607791fce15510"},{"name":"check-page","duration":767390,"timestamp":131172692781,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778939144939,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":764822,"timestamp":131172720068,"id":94,"parentId":23,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":800166,"timestamp":131172684791,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778939144931,"traceId":"45607791fce15510"},{"name":"is-page-static","duration":766847,"timestamp":131172720136,"id":97,"parentId":54,"tags":{},"startTime":1778939144966,"traceId":"45607791fce15510"},{"name":"check-page","duration":794942,"timestamp":131172692115,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778939144938,"traceId":"45607791fce15510"},{"name":"static-check","duration":805636,"timestamp":131172681464,"id":19,"parentId":1,"tags":{},"startTime":1778939144928,"traceId":"45607791fce15510"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":289,"timestamp":131859220990,"id":4,"parentId":1,"tags":{},"startTime":1778939831467,"traceId":"2c89ced662eff440"},{"name":"load-custom-routes","duration":457,"timestamp":131859221415,"id":5,"parentId":1,"tags":{},"startTime":1778939831468,"traceId":"2c89ced662eff440"},{"name":"create-dist-dir","duration":660,"timestamp":131859221913,"id":6,"parentId":1,"tags":{},"startTime":1778939831468,"traceId":"2c89ced662eff440"},{"name":"clean","duration":31729,"timestamp":131859223259,"id":7,"parentId":1,"tags":{},"startTime":1778939831470,"traceId":"2c89ced662eff440"},{"name":"discover-routes","duration":23601,"timestamp":131859339277,"id":8,"parentId":1,"tags":{},"startTime":1778939831586,"traceId":"2c89ced662eff440"},{"name":"create-root-mapping","duration":141,"timestamp":131859362939,"id":9,"parentId":1,"tags":{},"startTime":1778939831609,"traceId":"2c89ced662eff440"},{"name":"generate-route-types","duration":18967,"timestamp":131859365447,"id":10,"parentId":1,"tags":{},"startTime":1778939831612,"traceId":"2c89ced662eff440"},{"name":"public-dir-conflict-check","duration":99,"timestamp":131859384490,"id":11,"parentId":1,"tags":{},"startTime":1778939831631,"traceId":"2c89ced662eff440"},{"name":"generate-routes-manifest","duration":4708,"timestamp":131859384700,"id":12,"parentId":1,"tags":{},"startTime":1778939831631,"traceId":"2c89ced662eff440"},{"name":"run-turbopack","duration":6439608,"timestamp":131859395194,"id":14,"parentId":1,"tags":{},"startTime":1778939831641,"traceId":"2c89ced662eff440"},{"name":"turbopack-build-events","duration":95,"timestamp":131859691202,"id":15,"parentId":1,"tags":{},"startTime":1778939831937,"traceId":"2c89ced662eff440"},{"name":"run-typescript","duration":10262708,"timestamp":131865851445,"id":16,"parentId":1,"tags":{},"startTime":1778939838098,"traceId":"2c89ced662eff440"},{"name":"generate-required-server-files","duration":3283,"timestamp":131876115165,"id":18,"parentId":1,"tags":{},"startTime":1778939848361,"traceId":"2c89ced662eff440"},{"name":"check-static-error-page","duration":16032,"timestamp":131876325265,"id":20,"parentId":19,"tags":{},"startTime":1778939848572,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":624279,"timestamp":131876345837,"id":65,"parentId":22,"tags":{},"startTime":1778939848592,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":641093,"timestamp":131876329180,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778939848575,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":761884,"timestamp":131876346741,"id":71,"parentId":30,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":775860,"timestamp":131876332865,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778939848579,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":765034,"timestamp":131876346595,"id":70,"parentId":29,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":779199,"timestamp":131876332511,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778939848579,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":766479,"timestamp":131876345440,"id":64,"parentId":21,"tags":{},"startTime":1778939848592,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":784438,"timestamp":131876327516,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778939848574,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":770715,"timestamp":131876346802,"id":72,"parentId":32,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":784245,"timestamp":131876333322,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778939848580,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":774217,"timestamp":131876346013,"id":66,"parentId":25,"tags":{},"startTime":1778939848592,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":788258,"timestamp":131876332020,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778939848578,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":798725,"timestamp":131876346231,"id":68,"parentId":27,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":817605,"timestamp":131876332292,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778939848579,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":803370,"timestamp":131876346976,"id":73,"parentId":33,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":816932,"timestamp":131876333465,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778939848580,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":814998,"timestamp":131876347111,"id":76,"parentId":36,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":827835,"timestamp":131876334349,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":822902,"timestamp":131876347090,"id":75,"parentId":35,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":836283,"timestamp":131876333788,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778939848580,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":823087,"timestamp":131876347163,"id":79,"parentId":39,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":835505,"timestamp":131876334786,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":828839,"timestamp":131876347137,"id":77,"parentId":37,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":841509,"timestamp":131876334530,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":829147,"timestamp":131876347180,"id":80,"parentId":40,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":841465,"timestamp":131876334901,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":834604,"timestamp":131876347150,"id":78,"parentId":38,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":847144,"timestamp":131876334654,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":834743,"timestamp":131876347216,"id":83,"parentId":45,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":844469,"timestamp":131876337524,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":834930,"timestamp":131876347203,"id":82,"parentId":44,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":846654,"timestamp":131876335513,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778939848582,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":839360,"timestamp":131876347238,"id":85,"parentId":47,"tags":{},"startTime":1778939848594,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":848966,"timestamp":131876337691,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":844512,"timestamp":131876347066,"id":74,"parentId":34,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":858032,"timestamp":131876333591,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778939848580,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":844485,"timestamp":131876347261,"id":87,"parentId":49,"tags":{},"startTime":1778939848594,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":853942,"timestamp":131876337832,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":848525,"timestamp":131876347193,"id":81,"parentId":42,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":860560,"timestamp":131876335221,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":853152,"timestamp":131876347274,"id":88,"parentId":50,"tags":{},"startTime":1778939848594,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":862577,"timestamp":131876337897,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":853848,"timestamp":131876347229,"id":84,"parentId":46,"tags":{},"startTime":1778939848594,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":863500,"timestamp":131876337620,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":849296,"timestamp":131876354307,"id":90,"parentId":24,"tags":{},"startTime":1778939848601,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":874008,"timestamp":131876329640,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778939848576,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":849230,"timestamp":131876358887,"id":91,"parentId":31,"tags":{},"startTime":1778939848605,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":875143,"timestamp":131876333029,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778939848579,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":861900,"timestamp":131876347250,"id":86,"parentId":48,"tags":{},"startTime":1778939848594,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":871447,"timestamp":131876337748,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":848825,"timestamp":131876361056,"id":93,"parentId":43,"tags":{},"startTime":1778939848607,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":874608,"timestamp":131876335315,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778939848582,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":864045,"timestamp":131876347285,"id":89,"parentId":51,"tags":{},"startTime":1778939848594,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":873432,"timestamp":131876337949,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778939848584,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":844476,"timestamp":131876369265,"id":94,"parentId":23,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":884334,"timestamp":131876329452,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778939848576,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":855823,"timestamp":131876359779,"id":92,"parentId":41,"tags":{},"startTime":1778939848606,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":880677,"timestamp":131876334972,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778939848581,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":851736,"timestamp":131876369339,"id":98,"parentId":55,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":882304,"timestamp":131876338813,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778939848585,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":859777,"timestamp":131876369363,"id":100,"parentId":58,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":889377,"timestamp":131876339807,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778939848586,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":884860,"timestamp":131876346339,"id":69,"parentId":28,"tags":{},"startTime":1778939848593,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":898843,"timestamp":131876332406,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778939848579,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":870578,"timestamp":131876369488,"id":101,"parentId":59,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":900090,"timestamp":131876340054,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778939848586,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":881921,"timestamp":131876369521,"id":103,"parentId":62,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":910645,"timestamp":131876340845,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778939848587,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":889900,"timestamp":131876369531,"id":104,"parentId":63,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":918448,"timestamp":131876341031,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778939848587,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":914302,"timestamp":131876346126,"id":67,"parentId":26,"tags":{},"startTime":1778939848592,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":928304,"timestamp":131876332181,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778939848578,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":878151,"timestamp":131876388546,"id":105,"parentId":60,"tags":{},"startTime":1778939848635,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":926493,"timestamp":131876340246,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778939848587,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":899076,"timestamp":131876369315,"id":96,"parentId":53,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":929995,"timestamp":131876338440,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778939848585,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":908554,"timestamp":131876369353,"id":99,"parentId":56,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":938888,"timestamp":131876339065,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778939848585,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":917427,"timestamp":131876369299,"id":95,"parentId":52,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":948512,"timestamp":131876338264,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778939848585,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":917996,"timestamp":131876369325,"id":97,"parentId":54,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":948768,"timestamp":131876338601,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778939848585,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":943030,"timestamp":131876369508,"id":102,"parentId":61,"tags":{},"startTime":1778939848616,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":971906,"timestamp":131876340688,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778939848587,"traceId":"2c89ced662eff440"},{"name":"is-page-static","duration":898731,"timestamp":131876418997,"id":106,"parentId":57,"tags":{},"startTime":1778939848665,"traceId":"2c89ced662eff440"},{"name":"check-page","duration":978470,"timestamp":131876339305,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778939848586,"traceId":"2c89ced662eff440"},{"name":"static-check","duration":993753,"timestamp":131876324056,"id":19,"parentId":1,"tags":{},"startTime":1778939848570,"traceId":"2c89ced662eff440"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":491,"timestamp":131877328266,"id":108,"parentId":1,"tags":{},"startTime":1778939849575,"traceId":"2c89ced662eff440"},{"name":"load-dotenv","duration":54,"timestamp":131877340310,"id":111,"parentId":110,"tags":{},"startTime":1778939849587,"traceId":"2c89ced662eff440"},{"name":"run-export-path-map","duration":619,"timestamp":131877342772,"id":112,"parentId":110,"tags":{},"startTime":1778939849589,"traceId":"2c89ced662eff440"},{"name":"next-export","duration":650230,"timestamp":131877339072,"id":110,"parentId":1,"tags":{},"startTime":1778939849585,"traceId":"2c89ced662eff440"},{"name":"move-exported-app-not-found-","duration":758,"timestamp":131877993632,"id":113,"parentId":109,"tags":{},"startTime":1778939850240,"traceId":"2c89ced662eff440"},{"name":"move-exported-app-global-error-","duration":691,"timestamp":131877994528,"id":114,"parentId":109,"tags":{},"startTime":1778939850241,"traceId":"2c89ced662eff440"},{"name":"static-generation","duration":664066,"timestamp":131877333322,"id":109,"parentId":1,"tags":{},"startTime":1778939849580,"traceId":"2c89ced662eff440"},{"name":"write-routes-manifest","duration":411,"timestamp":131877997619,"id":115,"parentId":1,"tags":{},"startTime":1778939850244,"traceId":"2c89ced662eff440"},{"name":"print-tree-view","duration":5496,"timestamp":131878016830,"id":116,"parentId":1,"tags":{},"startTime":1778939850263,"traceId":"2c89ced662eff440"},{"name":"write-route-bundle-stats","duration":15861,"timestamp":131878022371,"id":117,"parentId":1,"tags":{},"startTime":1778939850269,"traceId":"2c89ced662eff440"},{"name":"telemetry-flush","duration":19802,"timestamp":131878038278,"id":118,"parentId":1,"tags":{},"startTime":1778939850285,"traceId":"2c89ced662eff440"},{"name":"next-build","duration":18888752,"timestamp":131859169363,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778939831416,"traceId":"2c89ced662eff440"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":6439608,"timestamp":131859395194,"id":14,"parentId":1,"tags":{},"startTime":1778939831641,"traceId":"2c89ced662eff440"},{"name":"turbopack-build-events","duration":95,"timestamp":131859691202,"id":15,"parentId":1,"tags":{},"startTime":1778939831937,"traceId":"2c89ced662eff440"},{"name":"run-typescript","duration":10262708,"timestamp":131865851445,"id":16,"parentId":1,"tags":{},"startTime":1778939838098,"traceId":"2c89ced662eff440"},{"name":"static-check","duration":993753,"timestamp":131876324056,"id":19,"parentId":1,"tags":{},"startTime":1778939848570,"traceId":"2c89ced662eff440"},{"name":"static-generation","duration":664066,"timestamp":131877333322,"id":109,"parentId":1,"tags":{},"startTime":1778939849580,"traceId":"2c89ced662eff440"},{"name":"telemetry-flush","duration":19802,"timestamp":131878038278,"id":118,"parentId":1,"tags":{},"startTime":1778939850285,"traceId":"2c89ced662eff440"},{"name":"next-build","duration":18888752,"timestamp":131859169363,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778939831416,"traceId":"2c89ced662eff440"}]
|
|
@@ -1026,6 +1026,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1026
1026
|
// navigation footer. Drives the on-hover opacity boost + underline
|
|
1027
1027
|
// that signals interactivity, mirroring the hoveredHub idiom above.
|
|
1028
1028
|
const [hoveredRecentMore, setHoveredRecentMore] = useState(false);
|
|
1029
|
+
// Round 346 / Loop: minimap-container hover affordance. The minimap
|
|
1030
|
+
// is a click-target (role=button at line ~7810, recenter-on-click +
|
|
1031
|
+
// Enter→resetView) but pre-R346 nothing visually changed on hover —
|
|
1032
|
+
// the only hint was the `cursor: crosshair` style. R346 lifts the
|
|
1033
|
+
// viewport rect (strokeWidth 1.5 → 1.75 + opacity 0.9 → 1.0) when
|
|
1034
|
+
// the user enters the minimap, marking "this is the recenter target
|
|
1035
|
+
// and it's alive". Sibling polish to the R332 minimap rounded-md →
|
|
1036
|
+
// rounded-lg corner family — that round refined geometry, this one
|
|
1037
|
+
// gives the viewport indicator inside the geometry a hover state.
|
|
1038
|
+
// 280ms ease-out transition list matches R199 smoothView vocabulary
|
|
1039
|
+
// so the visual joins the existing rhythm on the same rect.
|
|
1040
|
+
const [hoveredMinimap, setHoveredMinimap] = useState(false);
|
|
1029
1041
|
// R135: panel-wide hover-elevation. The recent-signal + legend
|
|
1030
1042
|
// panels both already host clickable rows (R56/R116 recent rows,
|
|
1031
1043
|
// R55/R61 legend rows) and a clickable footer (R133), so the
|
|
@@ -6276,7 +6288,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6276
6288
|
title (line ~6556) — both panels share the same
|
|
6277
6289
|
editorial-text-spacing convention. data-recent-panel-
|
|
6278
6290
|
title handle unchanged so R266 test still resolves. */}
|
|
6279
|
-
|
|
6291
|
+
{/* Round 345 / Loop: recent-signal panel title gains
|
|
6292
|
+
letter-spacing tween 0.3 → 0.4 on panel hover.
|
|
6293
|
+
hoveredPanel === 'recent' is set by the panel <g>
|
|
6294
|
+
wrapper's onMouseEnter (line ~6263 area). Sibling to
|
|
6295
|
+
R344 hover-letter-spacing applied to the +N more
|
|
6296
|
+
flows footer — same gesture vocabulary at a panel-
|
|
6297
|
+
title scope: hovering the panel chrome spreads the
|
|
6298
|
+
title 0.1 px, signalling "this is a coherent unit
|
|
6299
|
+
you're entering". transition list extends letter-
|
|
6300
|
+
spacing 200ms ease-out alongside existing fill 200ms. */}
|
|
6301
|
+
<text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight="700" letterSpacing={hoveredPanel === 'recent' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out' }} data-recent-panel-title>recent signal</text>
|
|
6280
6302
|
{/* R96: header count now matches what the rows show. Pre-R96
|
|
6281
6303
|
this read "X msgs" off the raw messages array, but the
|
|
6282
6304
|
rows below render DEDUPED flowLinks — so a fleet with 10
|
|
@@ -7209,7 +7231,9 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7209
7231
|
surrounding chrome eased; R266 closes both at once. */}
|
|
7210
7232
|
{/* R301: sibling to recent-signal panel title above —
|
|
7211
7233
|
same letterSpacing 0.3 for editorial parity. */}
|
|
7212
|
-
|
|
7234
|
+
{/* R345 sibling — legend panel title same hover letter-
|
|
7235
|
+
spacing tween 0.3 → 0.4 on panel hover. */}
|
|
7236
|
+
<text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight="700" letterSpacing={hoveredPanel === 'legend' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out' }} data-legend-panel-title>legend</text>
|
|
7213
7237
|
{/* Round 257 / Loop: legend panel header count picks up the
|
|
7214
7238
|
symmetric 13L/13R inner-padding pattern from the recent-
|
|
7215
7239
|
signal panel. Pre-R257 the legend header was 13px from
|
|
@@ -7815,7 +7839,13 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7815
7839
|
resetView();
|
|
7816
7840
|
}
|
|
7817
7841
|
}}
|
|
7842
|
+
// R346: viewport rect hover affordance driven by parent.
|
|
7843
|
+
onMouseEnter={() => setHoveredMinimap(true)}
|
|
7844
|
+
onMouseLeave={() => setHoveredMinimap(false)}
|
|
7845
|
+
onFocus={() => setHoveredMinimap(true)}
|
|
7846
|
+
onBlur={() => setHoveredMinimap(false)}
|
|
7818
7847
|
data-topo-minimap
|
|
7848
|
+
data-topo-minimap-hovered={hoveredMinimap ? 'true' : 'false'}
|
|
7819
7849
|
>
|
|
7820
7850
|
<svg width={MW} height={MH} viewBox={`0 0 ${MW} ${MH}`} style={{ display: 'block' }}>
|
|
7821
7851
|
{/* Round 198 / Loop: minimap dots gain smooth status
|
|
@@ -7894,13 +7924,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7894
7924
|
x={Math.max(0, rectX)} y={Math.max(0, rectY)}
|
|
7895
7925
|
width={Math.max(0, Math.min(MW - Math.max(0, rectX), rectW))}
|
|
7896
7926
|
height={Math.max(0, Math.min(MH - Math.max(0, rectY), rectH))}
|
|
7897
|
-
fill="none" stroke={pal.legendAccent}
|
|
7927
|
+
fill="none" stroke={pal.legendAccent}
|
|
7928
|
+
// R346: strokeWidth + opacity tween on container hover.
|
|
7929
|
+
strokeWidth={hoveredMinimap ? '1.75' : '1.5'}
|
|
7930
|
+
opacity={hoveredMinimap ? '1' : '0.9'}
|
|
7898
7931
|
data-topo-minimap-viewport
|
|
7899
7932
|
data-topo-minimap-viewport-smooth={smoothView ? 'true' : 'false'}
|
|
7933
|
+
data-topo-minimap-viewport-hover={hoveredMinimap ? 'true' : 'false'}
|
|
7900
7934
|
style={{
|
|
7901
7935
|
transition: smoothView
|
|
7902
|
-
? 'x 280ms ease-out, y 280ms ease-out, width 280ms ease-out, height 280ms ease-out'
|
|
7903
|
-
: '
|
|
7936
|
+
? 'x 280ms ease-out, y 280ms ease-out, width 280ms ease-out, height 280ms ease-out, stroke-width 200ms ease-out, opacity 200ms ease-out'
|
|
7937
|
+
: 'stroke-width 200ms ease-out, opacity 200ms ease-out',
|
|
7904
7938
|
} as React.CSSProperties}
|
|
7905
7939
|
/>
|
|
7906
7940
|
</svg>
|
package/package.json
CHANGED
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/* Round 346 verification: minimap viewport rect gains a hover-state
|
|
2
|
+
* affordance — strokeWidth 1.5 → 1.75 + opacity 0.9 → 1.0 when the
|
|
3
|
+
* user enters the minimap container. The minimap is a recenter click-
|
|
4
|
+
* target (role=button at line ~7810), but pre-R346 the only hover hint
|
|
5
|
+
* was `cursor: crosshair`. R346 lifts the viewport rect to mark "this
|
|
6
|
+
* is the recenter target and it's alive". Sibling polish to R332
|
|
7
|
+
* minimap rounded-md → rounded-lg corner family — that round refined
|
|
8
|
+
* geometry, this one gives the viewport indicator inside the geometry
|
|
9
|
+
* a hover state.
|
|
10
|
+
*
|
|
11
|
+
* Contract:
|
|
12
|
+
* - Rest: viewport rect stroke-width=1.5, opacity=0.9.
|
|
13
|
+
* - Hover container: stroke-width=1.75, opacity=1.
|
|
14
|
+
* - Inline transition list contains 'stroke-width' AND 'opacity'.
|
|
15
|
+
* - data-topo-minimap-hovered toggles 'false' → 'true' on enter.
|
|
16
|
+
* - data-topo-minimap-viewport-hover mirrors hover state on the rect.
|
|
17
|
+
* - Pre-R346 invariants intact: rect still data-topo-minimap-viewport,
|
|
18
|
+
* R287 stroke=1.5 rest value, R199 smoothView transition list
|
|
19
|
+
* extended (not replaced).
|
|
20
|
+
*/
|
|
21
|
+
import { chromium } from 'playwright';
|
|
22
|
+
import { readFileSync } from 'node:fs';
|
|
23
|
+
|
|
24
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
25
|
+
const browser = await chromium.launch({ headless: true });
|
|
26
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
27
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
28
|
+
await ctx.addInitScript(() => {
|
|
29
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
30
|
+
});
|
|
31
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
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: 'claude-code-cli',
|
|
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: [
|
|
42
|
+
mk('alpha-1'), mk('alpha-2'), mk('alpha-3'),
|
|
43
|
+
mk('beta-1'), mk('beta-2'), mk('beta-3'),
|
|
44
|
+
mk('gamma-1'), mk('gamma-2'), mk('gamma-3'),
|
|
45
|
+
] } });
|
|
46
|
+
});
|
|
47
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
48
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
49
|
+
|
|
50
|
+
const page = await ctx.newPage();
|
|
51
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
52
|
+
// Minimap only mounts when view is non-default (zoom !== 1 or pan).
|
|
53
|
+
// Click zoom-in to trigger mount.
|
|
54
|
+
await page.waitForSelector('[data-topo-chrome-zoom-in]', { timeout: 15000 });
|
|
55
|
+
await page.click('[data-topo-chrome-zoom-in]');
|
|
56
|
+
await page.waitForTimeout(200);
|
|
57
|
+
await page.click('[data-topo-chrome-zoom-in]');
|
|
58
|
+
await page.waitForSelector('[data-topo-minimap-viewport]', { timeout: 5000 });
|
|
59
|
+
await page.waitForTimeout(400);
|
|
60
|
+
|
|
61
|
+
// Rest probe.
|
|
62
|
+
const restProbe = await page.evaluate(() => {
|
|
63
|
+
const rect = document.querySelector('[data-topo-minimap-viewport]');
|
|
64
|
+
const container = document.querySelector('[data-topo-minimap]');
|
|
65
|
+
return {
|
|
66
|
+
strokeWidth: rect?.getAttribute('stroke-width') ?? null,
|
|
67
|
+
opacity: rect?.getAttribute('opacity') ?? null,
|
|
68
|
+
transition: rect ? getComputedStyle(rect).transition : null,
|
|
69
|
+
rectHoverAttr: rect?.getAttribute('data-topo-minimap-viewport-hover') ?? null,
|
|
70
|
+
contHoverAttr: container?.getAttribute('data-topo-minimap-hovered') ?? null,
|
|
71
|
+
};
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
// Hover the minimap container.
|
|
75
|
+
await page.hover('[data-topo-minimap]');
|
|
76
|
+
await page.waitForTimeout(250);
|
|
77
|
+
const hoverProbe = await page.evaluate(() => {
|
|
78
|
+
const rect = document.querySelector('[data-topo-minimap-viewport]');
|
|
79
|
+
const container = document.querySelector('[data-topo-minimap]');
|
|
80
|
+
return {
|
|
81
|
+
strokeWidth: rect?.getAttribute('stroke-width') ?? null,
|
|
82
|
+
opacity: rect?.getAttribute('opacity') ?? null,
|
|
83
|
+
rectHoverAttr: rect?.getAttribute('data-topo-minimap-viewport-hover') ?? null,
|
|
84
|
+
contHoverAttr: container?.getAttribute('data-topo-minimap-hovered') ?? null,
|
|
85
|
+
};
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
await browser.close();
|
|
89
|
+
|
|
90
|
+
const hasTrans = (s, prop) =>
|
|
91
|
+
new RegExp(`${prop}\\s+\\d*\\.?\\d*s|${prop}\\s+\\d+ms`, 'i').test(s || '');
|
|
92
|
+
|
|
93
|
+
const results = {
|
|
94
|
+
rest_sw_1_5: restProbe.strokeWidth === '1.5',
|
|
95
|
+
rest_op_0_9: restProbe.opacity === '0.9',
|
|
96
|
+
rest_cont_false: restProbe.contHoverAttr === 'false',
|
|
97
|
+
rest_rect_false: restProbe.rectHoverAttr === 'false',
|
|
98
|
+
trans_has_strokew: hasTrans(restProbe.transition, 'stroke-width'),
|
|
99
|
+
trans_has_opacity: hasTrans(restProbe.transition, 'opacity'),
|
|
100
|
+
hover_sw_1_75: hoverProbe.strokeWidth === '1.75',
|
|
101
|
+
hover_op_1: hoverProbe.opacity === '1',
|
|
102
|
+
hover_cont_true: hoverProbe.contHoverAttr === 'true',
|
|
103
|
+
hover_rect_true: hoverProbe.rectHoverAttr === 'true',
|
|
104
|
+
};
|
|
105
|
+
const ok = Object.values(results).every(Boolean);
|
|
106
|
+
console.log(`${ok ? '✅' : '❌'} minimap viewport hover affordance:`, JSON.stringify(results),
|
|
107
|
+
'\n rest: ', restProbe,
|
|
108
|
+
'\n hover:', hoverProbe);
|
|
109
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/* Round 345 verification: panel titles ("recent signal" + "legend")
|
|
2
|
+
* gain letter-spacing tween 0.3 → 0.4 on panel hover. Sibling to
|
|
3
|
+
* R344 hover-letter-spacing applied to the +N more flows footer —
|
|
4
|
+
* same gesture vocabulary at panel-title scope.
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - Rest: both titles letterSpacing 0.3.
|
|
8
|
+
* - Hover recent panel: recent-panel-title letterSpacing 0.4.
|
|
9
|
+
* - Hover legend panel: legend-panel-title letterSpacing 0.4
|
|
10
|
+
* (separately).
|
|
11
|
+
* - Inline transition list contains 'letter-spacing' on both.
|
|
12
|
+
* - R344 footer hover regression intact (when flowLinks > 3).
|
|
13
|
+
* - R317/R318/R294 chrome + pulse regressions intact.
|
|
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
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
21
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
22
|
+
await ctx.addInitScript(() => {
|
|
23
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
24
|
+
});
|
|
25
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
26
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
27
|
+
const r = await route.fetch();
|
|
28
|
+
const b = await r.json();
|
|
29
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
30
|
+
const mk = (alias) => ({
|
|
31
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
32
|
+
network_id: nid, project_dir: null,
|
|
33
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
34
|
+
});
|
|
35
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [ mk('alpha'), mk('beta'), mk('gamma') ] } });
|
|
36
|
+
});
|
|
37
|
+
// One message → recent-signal panel mounts so its title is testable.
|
|
38
|
+
const now = Date.now();
|
|
39
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
|
|
40
|
+
{ id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'ping',
|
|
41
|
+
network_id: 'default', created_at: new Date(now - 5000).toISOString() },
|
|
42
|
+
] } }));
|
|
43
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
44
|
+
|
|
45
|
+
const page = await ctx.newPage();
|
|
46
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
47
|
+
await page.waitForSelector('[data-recent-panel-title]', { timeout: 15000 });
|
|
48
|
+
await page.waitForSelector('[data-legend-panel-title]', { timeout: 5000 });
|
|
49
|
+
await page.waitForTimeout(300);
|
|
50
|
+
|
|
51
|
+
// Rest probe.
|
|
52
|
+
const restProbe = await page.evaluate(() => {
|
|
53
|
+
const r = document.querySelector('[data-recent-panel-title]');
|
|
54
|
+
const l = document.querySelector('[data-legend-panel-title]');
|
|
55
|
+
return {
|
|
56
|
+
recentLetterSp: r?.getAttribute('letter-spacing') ?? null,
|
|
57
|
+
recentTrans: r ? getComputedStyle(r).transition : null,
|
|
58
|
+
legendLetterSp: l?.getAttribute('letter-spacing') ?? null,
|
|
59
|
+
legendTrans: l ? getComputedStyle(l).transition : null,
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Hover the recent panel via its data attribute.
|
|
64
|
+
await page.hover('[data-topo-panel="recent"]');
|
|
65
|
+
await page.waitForTimeout(300);
|
|
66
|
+
const recentHoverProbe = await page.evaluate(() => {
|
|
67
|
+
const r = document.querySelector('[data-recent-panel-title]');
|
|
68
|
+
return { letterSp: r?.getAttribute('letter-spacing') ?? null };
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
// Move to legend panel.
|
|
72
|
+
await page.hover('[data-topo-panel="legend"]');
|
|
73
|
+
await page.waitForTimeout(300);
|
|
74
|
+
const legendHoverProbe = await page.evaluate(() => {
|
|
75
|
+
const l = document.querySelector('[data-legend-panel-title]');
|
|
76
|
+
return { letterSp: l?.getAttribute('letter-spacing') ?? null };
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
await browser.close();
|
|
80
|
+
|
|
81
|
+
const hasLetterSpacingTrans = (s) =>
|
|
82
|
+
/letter-spacing\s+\d*\.?\d*s|letter-spacing\s+\d+ms/i.test(s || '');
|
|
83
|
+
|
|
84
|
+
const results = {
|
|
85
|
+
rest_recent_0_3: restProbe.recentLetterSp === '0.3',
|
|
86
|
+
rest_legend_0_3: restProbe.legendLetterSp === '0.3',
|
|
87
|
+
recent_transition_has_ls: hasLetterSpacingTrans(restProbe.recentTrans),
|
|
88
|
+
legend_transition_has_ls: hasLetterSpacingTrans(restProbe.legendTrans),
|
|
89
|
+
hover_recent_0_4: recentHoverProbe.letterSp === '0.4',
|
|
90
|
+
hover_legend_0_4: legendHoverProbe.letterSp === '0.4',
|
|
91
|
+
};
|
|
92
|
+
const ok = Object.values(results).every(Boolean);
|
|
93
|
+
console.log(`${ok ? '✅' : '❌'} panel title hover letter-spacing:`, JSON.stringify(results),
|
|
94
|
+
'\n rest: ', restProbe,
|
|
95
|
+
'\n hover recent:', recentHoverProbe,
|
|
96
|
+
'\n hover legend:', legendHoverProbe);
|
|
97
|
+
process.exit(ok ? 0 : 1);
|