@sleep2agi/agent-network-dashboard 0.4.6-preview.173 → 0.4.6-preview.175
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/{048v3hawx8v7a.js → 0mchz1dcdphpm.js} +1 -1
- package/.next/static/chunks/{0yc-~i84tz01f.js → 0nvqjslg7-oow.js} +1 -1
- package/.next/static/chunks/0ovm05~5qcocw.js +4 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +66 -4
- package/package.json +1 -1
- package/scripts/topo-node-stroke-transition-test.mjs +103 -0
- package/scripts/topo-view-smooth-test.mjs +131 -0
- package/.next/static/chunks/0-v9pe.kbdxy7.js +0 -4
- /package/.next/static/{9-y2wmAxITSg9y648KZhQ → 5D9ZP7oWmL5NQe1UryHlb}/_buildManifest.js +0 -0
- /package/.next/static/{9-y2wmAxITSg9y648KZhQ → 5D9ZP7oWmL5NQe1UryHlb}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{9-y2wmAxITSg9y648KZhQ → 5D9ZP7oWmL5NQe1UryHlb}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":253,"timestamp":63237588413,"id":4,"parentId":1,"tags":{},"startTime":1778871209835,"traceId":"d5b099edc93c16b5"},{"name":"load-custom-routes","duration":523,"timestamp":63237588811,"id":5,"parentId":1,"tags":{},"startTime":1778871209835,"traceId":"d5b099edc93c16b5"},{"name":"create-dist-dir","duration":675,"timestamp":63237589378,"id":6,"parentId":1,"tags":{},"startTime":1778871209836,"traceId":"d5b099edc93c16b5"},{"name":"clean","duration":495,"timestamp":63237590684,"id":7,"parentId":1,"tags":{},"startTime":1778871209837,"traceId":"d5b099edc93c16b5"},{"name":"discover-routes","duration":8956,"timestamp":63237668578,"id":8,"parentId":1,"tags":{},"startTime":1778871209915,"traceId":"d5b099edc93c16b5"},{"name":"create-root-mapping","duration":102,"timestamp":63237677583,"id":9,"parentId":1,"tags":{},"startTime":1778871209924,"traceId":"d5b099edc93c16b5"},{"name":"generate-route-types","duration":31603,"timestamp":63237679926,"id":10,"parentId":1,"tags":{},"startTime":1778871209926,"traceId":"d5b099edc93c16b5"},{"name":"public-dir-conflict-check","duration":90,"timestamp":63237711603,"id":11,"parentId":1,"tags":{},"startTime":1778871209958,"traceId":"d5b099edc93c16b5"},{"name":"generate-routes-manifest","duration":5249,"timestamp":63237711812,"id":12,"parentId":1,"tags":{},"startTime":1778871209958,"traceId":"d5b099edc93c16b5"},{"name":"run-turbopack","duration":5158092,"timestamp":63237723506,"id":14,"parentId":1,"tags":{},"startTime":1778871209970,"traceId":"d5b099edc93c16b5"},{"name":"turbopack-build-events","duration":109,"timestamp":63238010321,"id":15,"parentId":1,"tags":{},"startTime":1778871210257,"traceId":"d5b099edc93c16b5"},{"name":"run-typescript","duration":8244995,"timestamp":63242893674,"id":16,"parentId":1,"tags":{},"startTime":1778871215140,"traceId":"d5b099edc93c16b5"},{"name":"generate-required-server-files","duration":2413,"timestamp":63251139841,"id":18,"parentId":1,"tags":{},"startTime":1778871223386,"traceId":"d5b099edc93c16b5"},{"name":"check-static-error-page","duration":11314,"timestamp":63251308814,"id":20,"parentId":19,"tags":{},"startTime":1778871223555,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":374305,"timestamp":63251322893,"id":63,"parentId":22,"tags":{},"startTime":1778871223569,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":386270,"timestamp":63251311094,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778871223557,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":531383,"timestamp":63251323106,"id":65,"parentId":26,"tags":{},"startTime":1778871223569,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":541080,"timestamp":63251313506,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778871223560,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":540992,"timestamp":63251324686,"id":69,"parentId":30,"tags":{},"startTime":1778871223571,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":551556,"timestamp":63251314216,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778871223560,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":545046,"timestamp":63251324979,"id":71,"parentId":33,"tags":{},"startTime":1778871223571,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":555499,"timestamp":63251314593,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778871223561,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":548569,"timestamp":63251322978,"id":64,"parentId":25,"tags":{},"startTime":1778871223569,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":558266,"timestamp":63251313338,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778871223560,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":548323,"timestamp":63251323453,"id":67,"parentId":28,"tags":{},"startTime":1778871223570,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":557975,"timestamp":63251313943,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778871223560,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":551690,"timestamp":63251327519,"id":72,"parentId":34,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":564592,"timestamp":63251314670,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778871223561,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":558301,"timestamp":63251322609,"id":62,"parentId":21,"tags":{},"startTime":1778871223569,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":571012,"timestamp":63251309948,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778871223556,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":557823,"timestamp":63251324905,"id":70,"parentId":32,"tags":{},"startTime":1778871223571,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":568289,"timestamp":63251314504,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778871223561,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":562922,"timestamp":63251323215,"id":66,"parentId":27,"tags":{},"startTime":1778871223569,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":572378,"timestamp":63251313800,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778871223560,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":563021,"timestamp":63251327712,"id":75,"parentId":37,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":575535,"timestamp":63251315256,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":563210,"timestamp":63251327769,"id":78,"parentId":40,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":578579,"timestamp":63251315473,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":566595,"timestamp":63251327678,"id":74,"parentId":36,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":579188,"timestamp":63251315125,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778871223561,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":569009,"timestamp":63251327782,"id":79,"parentId":41,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":581266,"timestamp":63251315565,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":569224,"timestamp":63251327753,"id":77,"parentId":39,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":581626,"timestamp":63251315408,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":573044,"timestamp":63251327829,"id":83,"parentId":45,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":585085,"timestamp":63251315834,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":573686,"timestamp":63251327816,"id":82,"parentId":44,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":585789,"timestamp":63251315770,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":577316,"timestamp":63251327838,"id":84,"parentId":46,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":589300,"timestamp":63251315893,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":578413,"timestamp":63251327851,"id":85,"parentId":47,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":590327,"timestamp":63251315980,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":585302,"timestamp":63251323608,"id":68,"parentId":29,"tags":{},"startTime":1778871223570,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":594866,"timestamp":63251314088,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778871223560,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":581561,"timestamp":63251327867,"id":86,"parentId":48,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":593397,"timestamp":63251316071,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":579611,"timestamp":63251336725,"id":89,"parentId":31,"tags":{},"startTime":1778871223583,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":602081,"timestamp":63251314298,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778871223561,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":589128,"timestamp":63251327555,"id":73,"parentId":35,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":601957,"timestamp":63251314761,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778871223561,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":589084,"timestamp":63251327804,"id":81,"parentId":43,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":601224,"timestamp":63251315694,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":606471,"timestamp":63251327791,"id":80,"parentId":42,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":618718,"timestamp":63251315632,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":606662,"timestamp":63251327877,"id":87,"parentId":49,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":616972,"timestamp":63251317606,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778871223564,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":601694,"timestamp":63251335580,"id":88,"parentId":24,"tags":{},"startTime":1778871223582,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":625820,"timestamp":63251311492,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778871223558,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":623509,"timestamp":63251327728,"id":76,"parentId":38,"tags":{},"startTime":1778871223574,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":635946,"timestamp":63251315344,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778871223562,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":625072,"timestamp":63251342349,"id":96,"parentId":56,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":648436,"timestamp":63251319041,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778871223565,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":631200,"timestamp":63251342261,"id":90,"parentId":23,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":662203,"timestamp":63251311312,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778871223558,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":632196,"timestamp":63251342362,"id":97,"parentId":57,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":655415,"timestamp":63251319189,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778871223565,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":638941,"timestamp":63251342371,"id":98,"parentId":59,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":661778,"timestamp":63251319573,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778871223566,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":641485,"timestamp":63251342301,"id":92,"parentId":51,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":665786,"timestamp":63251318062,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778871223564,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":646076,"timestamp":63251342389,"id":99,"parentId":60,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":668805,"timestamp":63251319713,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778871223566,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":635009,"timestamp":63251353919,"id":101,"parentId":55,"tags":{},"startTime":1778871223600,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":670335,"timestamp":63251318628,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778871223565,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":646648,"timestamp":63251342405,"id":100,"parentId":61,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":669217,"timestamp":63251319863,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778871223566,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":648317,"timestamp":63251342327,"id":94,"parentId":53,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":672361,"timestamp":63251318316,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778871223565,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":630453,"timestamp":63251363228,"id":102,"parentId":58,"tags":{},"startTime":1778871223610,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":674422,"timestamp":63251319306,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778871223566,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":653426,"timestamp":63251342286,"id":91,"parentId":50,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":677823,"timestamp":63251317931,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778871223564,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":658287,"timestamp":63251342336,"id":95,"parentId":54,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":682207,"timestamp":63251318450,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778871223565,"traceId":"d5b099edc93c16b5"},{"name":"is-page-static","duration":663630,"timestamp":63251342314,"id":93,"parentId":52,"tags":{},"startTime":1778871223589,"traceId":"d5b099edc93c16b5"},{"name":"check-page","duration":687793,"timestamp":63251318181,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778871223564,"traceId":"d5b099edc93c16b5"},{"name":"static-check","duration":698008,"timestamp":63251308030,"id":19,"parentId":1,"tags":{},"startTime":1778871223554,"traceId":"d5b099edc93c16b5"},{"name":"write-routes-manifest","duration":501,"timestamp":63252014727,"id":104,"parentId":1,"tags":{},"startTime":1778871224261,"traceId":"d5b099edc93c16b5"},{"name":"load-dotenv","duration":42,"timestamp":63252026330,"id":107,"parentId":106,"tags":{},"startTime":1778871224273,"traceId":"d5b099edc93c16b5"},{"name":"run-export-path-map","duration":670,"timestamp":63252028725,"id":108,"parentId":106,"tags":{},"startTime":1778871224275,"traceId":"d5b099edc93c16b5"},{"name":"next-export","duration":584142,"timestamp":63252025136,"id":106,"parentId":1,"tags":{},"startTime":1778871224271,"traceId":"d5b099edc93c16b5"}]
|
|
2
|
-
[{"name":"move-exported-app-not-found-","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":274,"timestamp":63968093111,"id":4,"parentId":1,"tags":{},"startTime":1778871940339,"traceId":"8680eb7153e90972"},{"name":"load-custom-routes","duration":495,"timestamp":63968093538,"id":5,"parentId":1,"tags":{},"startTime":1778871940340,"traceId":"8680eb7153e90972"},{"name":"create-dist-dir","duration":647,"timestamp":63968094077,"id":6,"parentId":1,"tags":{},"startTime":1778871940340,"traceId":"8680eb7153e90972"},{"name":"clean","duration":482,"timestamp":63968095383,"id":7,"parentId":1,"tags":{},"startTime":1778871940342,"traceId":"8680eb7153e90972"},{"name":"discover-routes","duration":9004,"timestamp":63968177533,"id":8,"parentId":1,"tags":{},"startTime":1778871940424,"traceId":"8680eb7153e90972"},{"name":"create-root-mapping","duration":197,"timestamp":63968186593,"id":9,"parentId":1,"tags":{},"startTime":1778871940433,"traceId":"8680eb7153e90972"},{"name":"generate-route-types","duration":29824,"timestamp":63968188962,"id":10,"parentId":1,"tags":{},"startTime":1778871940435,"traceId":"8680eb7153e90972"},{"name":"public-dir-conflict-check","duration":115,"timestamp":63968218929,"id":11,"parentId":1,"tags":{},"startTime":1778871940465,"traceId":"8680eb7153e90972"},{"name":"generate-routes-manifest","duration":4034,"timestamp":63968219163,"id":12,"parentId":1,"tags":{},"startTime":1778871940465,"traceId":"8680eb7153e90972"},{"name":"run-turbopack","duration":5267884,"timestamp":63968229168,"id":14,"parentId":1,"tags":{},"startTime":1778871940475,"traceId":"8680eb7153e90972"},{"name":"turbopack-build-events","duration":70,"timestamp":63968502392,"id":15,"parentId":1,"tags":{},"startTime":1778871940749,"traceId":"8680eb7153e90972"},{"name":"run-typescript","duration":8552049,"timestamp":63973506194,"id":16,"parentId":1,"tags":{},"startTime":1778871945752,"traceId":"8680eb7153e90972"},{"name":"generate-required-server-files","duration":2317,"timestamp":63982059560,"id":18,"parentId":1,"tags":{},"startTime":1778871954306,"traceId":"8680eb7153e90972"},{"name":"check-static-error-page","duration":14474,"timestamp":63982216904,"id":20,"parentId":19,"tags":{},"startTime":1778871954463,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":435957,"timestamp":63982234318,"id":63,"parentId":22,"tags":{},"startTime":1778871954481,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":450369,"timestamp":63982220051,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778871954466,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":516801,"timestamp":63982234550,"id":65,"parentId":26,"tags":{},"startTime":1778871954481,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":528189,"timestamp":63982223274,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":515414,"timestamp":63982236274,"id":68,"parentId":29,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":528096,"timestamp":63982223639,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":525888,"timestamp":63982234439,"id":64,"parentId":25,"tags":{},"startTime":1778871954481,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":537286,"timestamp":63982223099,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778871954469,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":532254,"timestamp":63982233911,"id":62,"parentId":21,"tags":{},"startTime":1778871954480,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":547746,"timestamp":63982218475,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778871954465,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":539347,"timestamp":63982236092,"id":67,"parentId":28,"tags":{},"startTime":1778871954482,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":551966,"timestamp":63982223528,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":542843,"timestamp":63982236603,"id":70,"parentId":32,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":555338,"timestamp":63982224161,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":544751,"timestamp":63982236769,"id":72,"parentId":34,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":557176,"timestamp":63982224386,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778871954471,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":545455,"timestamp":63982236676,"id":71,"parentId":33,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":557896,"timestamp":63982224281,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778871954471,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":550782,"timestamp":63982236984,"id":76,"parentId":38,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":562441,"timestamp":63982225366,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":558701,"timestamp":63982236969,"id":75,"parentId":37,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":570489,"timestamp":63982225229,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":561845,"timestamp":63982236998,"id":77,"parentId":39,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":573424,"timestamp":63982225464,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":563126,"timestamp":63982237040,"id":79,"parentId":41,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":574565,"timestamp":63982225649,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":570976,"timestamp":63982236931,"id":74,"parentId":36,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":582922,"timestamp":63982225031,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778871954471,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":571064,"timestamp":63982237054,"id":80,"parentId":42,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":582371,"timestamp":63982225780,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":571234,"timestamp":63982237030,"id":78,"parentId":40,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":582733,"timestamp":63982225558,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":571430,"timestamp":63982237067,"id":81,"parentId":43,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":582647,"timestamp":63982225893,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":576844,"timestamp":63982237087,"id":83,"parentId":45,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":587873,"timestamp":63982226111,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":577073,"timestamp":63982237099,"id":84,"parentId":46,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":588010,"timestamp":63982226204,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":580286,"timestamp":63982236424,"id":69,"parentId":30,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":592982,"timestamp":63982223786,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":581122,"timestamp":63982237135,"id":87,"parentId":49,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":590325,"timestamp":63982227976,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778871954474,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":582862,"timestamp":63982237122,"id":86,"parentId":48,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":592193,"timestamp":63982227847,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778871954474,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":583216,"timestamp":63982237112,"id":85,"parentId":47,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":594187,"timestamp":63982226326,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778871954473,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":582311,"timestamp":63982240546,"id":88,"parentId":24,"tags":{},"startTime":1778871954487,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":602347,"timestamp":63982220551,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778871954467,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":584810,"timestamp":63982241674,"id":89,"parentId":31,"tags":{},"startTime":1778871954488,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":602619,"timestamp":63982223903,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":595896,"timestamp":63982235742,"id":66,"parentId":27,"tags":{},"startTime":1778871954482,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":608280,"timestamp":63982223400,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778871954470,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":597572,"timestamp":63982237079,"id":82,"parentId":44,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":608712,"timestamp":63982225983,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778871954472,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":606790,"timestamp":63982236806,"id":73,"parentId":35,"tags":{},"startTime":1778871954483,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":619105,"timestamp":63982224530,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778871954471,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":604007,"timestamp":63982248126,"id":96,"parentId":56,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":622142,"timestamp":63982230033,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778871954476,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":610593,"timestamp":63982248135,"id":97,"parentId":57,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":628541,"timestamp":63982230242,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778871954477,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":621915,"timestamp":63982248148,"id":98,"parentId":59,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":639270,"timestamp":63982230839,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778871954477,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":630170,"timestamp":63982248025,"id":90,"parentId":23,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":657924,"timestamp":63982220315,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778871954467,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":631006,"timestamp":63982248164,"id":99,"parentId":60,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":648265,"timestamp":63982230979,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778871954477,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":634730,"timestamp":63982248073,"id":92,"parentId":51,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":654263,"timestamp":63982228593,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778871954475,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":636843,"timestamp":63982248090,"id":93,"parentId":52,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":656200,"timestamp":63982228780,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778871954475,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":636901,"timestamp":63982248180,"id":100,"parentId":61,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":653973,"timestamp":63982231135,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778871954477,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":623053,"timestamp":63982262981,"id":101,"parentId":55,"tags":{},"startTime":1778871954509,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":656626,"timestamp":63982229448,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778871954476,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":638992,"timestamp":63982248057,"id":91,"parentId":50,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":658669,"timestamp":63982228428,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778871954475,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":615765,"timestamp":63982273555,"id":102,"parentId":58,"tags":{},"startTime":1778871954520,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":658931,"timestamp":63982230418,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778871954477,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":653066,"timestamp":63982248113,"id":95,"parentId":54,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":672001,"timestamp":63982229207,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778871954475,"traceId":"8680eb7153e90972"},{"name":"is-page-static","duration":666113,"timestamp":63982248099,"id":94,"parentId":53,"tags":{},"startTime":1778871954494,"traceId":"8680eb7153e90972"},{"name":"check-page","duration":685264,"timestamp":63982228985,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778871954475,"traceId":"8680eb7153e90972"},{"name":"static-check","duration":698525,"timestamp":63982215765,"id":19,"parentId":1,"tags":{},"startTime":1778871954462,"traceId":"8680eb7153e90972"},{"name":"write-routes-manifest","duration":419,"timestamp":63982922219,"id":104,"parentId":1,"tags":{},"startTime":1778871955168,"traceId":"8680eb7153e90972"},{"name":"load-dotenv","duration":47,"timestamp":63982933766,"id":107,"parentId":106,"tags":{},"startTime":1778871955180,"traceId":"8680eb7153e90972"},{"name":"run-export-path-map","duration":688,"timestamp":63982936522,"id":108,"parentId":106,"tags":{},"startTime":1778871955183,"traceId":"8680eb7153e90972"},{"name":"next-export","duration":550553,"timestamp":63982932536,"id":106,"parentId":1,"tags":{},"startTime":1778871955179,"traceId":"8680eb7153e90972"}]
|
|
2
|
+
[{"name":"move-exported-app-not-found-","duration":2354,"timestamp":63983486966,"id":109,"parentId":105,"tags":{},"startTime":1778871955733,"traceId":"8680eb7153e90972"},{"name":"move-exported-app-global-error-","duration":567,"timestamp":63983489426,"id":110,"parentId":105,"tags":{},"startTime":1778871955736,"traceId":"8680eb7153e90972"},{"name":"static-generation","duration":565197,"timestamp":63982926668,"id":105,"parentId":1,"tags":{},"startTime":1778871955173,"traceId":"8680eb7153e90972"},{"name":"write-routes-manifest","duration":417,"timestamp":63983492067,"id":111,"parentId":1,"tags":{},"startTime":1778871955738,"traceId":"8680eb7153e90972"},{"name":"print-tree-view","duration":3387,"timestamp":63983511074,"id":112,"parentId":1,"tags":{},"startTime":1778871955757,"traceId":"8680eb7153e90972"},{"name":"write-route-bundle-stats","duration":12464,"timestamp":63983514490,"id":113,"parentId":1,"tags":{},"startTime":1778871955761,"traceId":"8680eb7153e90972"},{"name":"telemetry-flush","duration":28975,"timestamp":63983526987,"id":114,"parentId":1,"tags":{},"startTime":1778871955773,"traceId":"8680eb7153e90972"},{"name":"next-build","duration":15512635,"timestamp":63968043362,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778871940290,"traceId":"8680eb7153e90972"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5267884,"timestamp":63968229168,"id":14,"parentId":1,"tags":{},"startTime":1778871940475,"traceId":"8680eb7153e90972"},{"name":"turbopack-build-events","duration":70,"timestamp":63968502392,"id":15,"parentId":1,"tags":{},"startTime":1778871940749,"traceId":"8680eb7153e90972"},{"name":"run-typescript","duration":8552049,"timestamp":63973506194,"id":16,"parentId":1,"tags":{},"startTime":1778871945752,"traceId":"8680eb7153e90972"},{"name":"static-check","duration":698525,"timestamp":63982215765,"id":19,"parentId":1,"tags":{},"startTime":1778871954462,"traceId":"8680eb7153e90972"},{"name":"static-generation","duration":565197,"timestamp":63982926668,"id":105,"parentId":1,"tags":{},"startTime":1778871955173,"traceId":"8680eb7153e90972"},{"name":"telemetry-flush","duration":28975,"timestamp":63983526987,"id":114,"parentId":1,"tags":{},"startTime":1778871955773,"traceId":"8680eb7153e90972"},{"name":"next-build","duration":15512635,"timestamp":63968043362,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778871940290,"traceId":"8680eb7153e90972"}]
|
|
@@ -1180,16 +1180,41 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1180
1180
|
return { zoom: nz, x: cx0 - (cx0 - prev.x) * ratio, y: cy0 - (cy0 - prev.y) * ratio };
|
|
1181
1181
|
});
|
|
1182
1182
|
};
|
|
1183
|
-
|
|
1183
|
+
// Round 168 / Loop: smoothView is a one-shot flag that arms a
|
|
1184
|
+
// CSS transition on the viewport <g> transform attribute. Set
|
|
1185
|
+
// true when resetView/fitView fires; the inline style on the
|
|
1186
|
+
// viewport <g> reads this flag and conditionally applies
|
|
1187
|
+
// `transition: transform 300ms ease-out`. Auto-clears after
|
|
1188
|
+
// 350ms (just past the transition end) via setTimeout so
|
|
1189
|
+
// subsequent pan/wheel zoom stays snappy with no lag. Keeping
|
|
1190
|
+
// it as state (vs ref) so the React rerender re-applies the
|
|
1191
|
+
// style attribute synchronously when the transform also
|
|
1192
|
+
// changes — both attribute mutation and transition class
|
|
1193
|
+
// arrive in the same paint frame, which is what triggers the
|
|
1194
|
+
// browser to animate between the old and new transform values.
|
|
1195
|
+
const [smoothView, setSmoothView] = useState(false);
|
|
1196
|
+
const armSmoothView = () => {
|
|
1197
|
+
setSmoothView(true);
|
|
1198
|
+
setTimeout(() => setSmoothView(false), 350);
|
|
1199
|
+
};
|
|
1200
|
+
const resetView = () => {
|
|
1201
|
+
armSmoothView();
|
|
1202
|
+
setView({ zoom: 1, x: 0, y: 0 });
|
|
1203
|
+
};
|
|
1184
1204
|
|
|
1185
1205
|
// Round 29 / Loop: `f` = fit-to-content. Shared by the Round 28
|
|
1186
1206
|
// first-paint auto-fit effect and the keyboard handler so the math is
|
|
1187
1207
|
// in one place. When content already fits at natural zoom, this is
|
|
1188
1208
|
// effectively a "recenter" — `f` always lands on a known good view.
|
|
1209
|
+
// R168: arm smoothView so the transition glides instead of snapping
|
|
1210
|
+
// when the operator invokes fit-to-content via the hub click (R52),
|
|
1211
|
+
// chrome button, `f` key, or palette command.
|
|
1189
1212
|
const fitView = useCallback(() => {
|
|
1190
1213
|
const zoom = !gridContentBottom || gridContentBottom <= VIEWBOX_H
|
|
1191
1214
|
? 1
|
|
1192
1215
|
: Math.max(ZOOM_MIN, Math.min(1, VIEWBOX_H / gridContentBottom));
|
|
1216
|
+
setSmoothView(true);
|
|
1217
|
+
setTimeout(() => setSmoothView(false), 350);
|
|
1193
1218
|
setView({ zoom, x: 0, y: 0 });
|
|
1194
1219
|
}, [gridContentBottom]);
|
|
1195
1220
|
|
|
@@ -2208,8 +2233,21 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2208
2233
|
<rect width="1000" height="680" fill="url(#topo-panel)" />
|
|
2209
2234
|
|
|
2210
2235
|
{/* Round 103 (issue #81): everything inside this <g> zooms + pans
|
|
2211
|
-
together. transform order = translate then scale.
|
|
2212
|
-
|
|
2236
|
+
together. transform order = translate then scale.
|
|
2237
|
+
Round 168 / Loop: smoothView arms a one-shot transition on
|
|
2238
|
+
the transform attribute, active only when resetView/fitView
|
|
2239
|
+
fires. Pan (R103 pointer drag) and wheel zoom never set the
|
|
2240
|
+
flag, so they stay snappy with no lag. Pressing `0`, `f`,
|
|
2241
|
+
clicking the hub (R52), or chrome reset/fit buttons triggers
|
|
2242
|
+
a 300ms ease-out glide instead of a jolt. Respects prefers-
|
|
2243
|
+
reduced-motion via the R29 globals.css blanket override that
|
|
2244
|
+
neutralises transition-duration universally. */}
|
|
2245
|
+
<g
|
|
2246
|
+
transform={`translate(${view.x} ${view.y}) scale(${view.zoom})`}
|
|
2247
|
+
data-topo-viewport
|
|
2248
|
+
data-topo-viewport-smooth={smoothView ? 'true' : 'false'}
|
|
2249
|
+
style={smoothView ? { transition: 'transform 300ms ease-out' } : undefined}
|
|
2250
|
+
>
|
|
2213
2251
|
{/* Issue #87: radar/ring ambiance renders only in ring layout —
|
|
2214
2252
|
grid mode drops it so the concentric rings don't sit behind a
|
|
2215
2253
|
rectangular grid. */}
|
|
@@ -3625,6 +3663,27 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
3625
3663
|
style={{ pointerEvents: 'none', transition: 'opacity 180ms ease-out' }}
|
|
3626
3664
|
/>
|
|
3627
3665
|
)}
|
|
3666
|
+
{/* Round 167 / Loop: extend the node status-ring
|
|
3667
|
+
transition to include stroke-width — symmetric
|
|
3668
|
+
with R165 (pressure-bar width) and R166 (edge
|
|
3669
|
+
stroke-width). Pre-R167 only fill+stroke colors
|
|
3670
|
+
transitioned smoothly; stroke-width snapped from
|
|
3671
|
+
3 (online) to 1.5 (offline) when a session
|
|
3672
|
+
transitioned. With stroke-width in the transition
|
|
3673
|
+
list the ring smoothly contracts as a node goes
|
|
3674
|
+
offline (or expands when it comes back).
|
|
3675
|
+
strokeDasharray stays binary (none ↔ '5 5')
|
|
3676
|
+
because dash values don't interpolate cleanly
|
|
3677
|
+
between continuous and discrete forms.
|
|
3678
|
+
Inline style replaces the Tailwind transition-
|
|
3679
|
+
[fill,stroke] className for stable arbitrary
|
|
3680
|
+
property compilation. Respects prefers-reduced-
|
|
3681
|
+
motion via R29 globals.css blanket override.
|
|
3682
|
+
data-node-status-ring exposes this circle for
|
|
3683
|
+
test probing — the overlap-test guard on
|
|
3684
|
+
stroke-width="3"/"1.5" still works against the
|
|
3685
|
+
DOM attribute value (React-rendered, not
|
|
3686
|
+
interpolated). */}
|
|
3628
3687
|
<circle
|
|
3629
3688
|
cx={pos.x}
|
|
3630
3689
|
cy={pos.y}
|
|
@@ -3634,7 +3693,10 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
3634
3693
|
strokeWidth={isOnline ? 3 : 1.5}
|
|
3635
3694
|
strokeDasharray={isOnline ? 'none' : '5 5'}
|
|
3636
3695
|
filter={isOnline && !isLight ? 'url(#topo-glow)' : undefined}
|
|
3637
|
-
|
|
3696
|
+
data-node-status-ring={status.label}
|
|
3697
|
+
style={{
|
|
3698
|
+
transition: 'fill 300ms ease-out, stroke 300ms ease-out, stroke-width 300ms ease-out',
|
|
3699
|
+
}}
|
|
3638
3700
|
/>
|
|
3639
3701
|
{/* Issue #96: node "avatar" is now driven by the model
|
|
3640
3702
|
vendor. Decision order:
|
package/package.json
CHANGED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/* Round 167 verification: node status-ring picks up stroke-width
|
|
2
|
+
* transition.
|
|
3
|
+
*
|
|
4
|
+
* Pre-R167 the node outer ring (cx,cy,r,fill,stroke + binary
|
|
5
|
+
* stroke-width 3/1.5 + dasharray) had transition-[fill,stroke]
|
|
6
|
+
* duration-300 — colors transitioned but stroke-width snapped
|
|
7
|
+
* when a session went working → offline. R167 adds stroke-width
|
|
8
|
+
* to the transition list (300ms ease-out), symmetric with R165
|
|
9
|
+
* (pressure-bar width) and R166 (edge stroke-width).
|
|
10
|
+
*
|
|
11
|
+
* Test:
|
|
12
|
+
* 1. Mock 2 working + 2 offline sessions
|
|
13
|
+
* 2. Probe each node's status ring (via data-node-status-ring)
|
|
14
|
+
* 3. Working ring: strokeWidth=3, transition includes
|
|
15
|
+
* 'stroke-width 300ms'
|
|
16
|
+
* 4. Offline ring: strokeWidth=1.5, dasharray='5 5',
|
|
17
|
+
* transition includes 'stroke-width 300ms'
|
|
18
|
+
* 5. Both rings expose data-node-status-ring with the status
|
|
19
|
+
* label
|
|
20
|
+
*
|
|
21
|
+
* The DOM attribute reflects the React-rendered value, not the
|
|
22
|
+
* CSS-interpolated value during transitions — so the R51
|
|
23
|
+
* overlap-test's stroke-width=3 / 1.5 selectors still match.
|
|
24
|
+
*/
|
|
25
|
+
import { chromium } from 'playwright';
|
|
26
|
+
import { readFileSync } from 'node:fs';
|
|
27
|
+
|
|
28
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
29
|
+
const browser = await chromium.launch({ headless: true });
|
|
30
|
+
|
|
31
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
32
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
33
|
+
await ctx.addInitScript(() => {
|
|
34
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
38
|
+
const stale = new Date(Date.now() - 10 * 60 * 1000).toISOString();
|
|
39
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
40
|
+
const r = await route.fetch();
|
|
41
|
+
const b = await r.json();
|
|
42
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
43
|
+
const mk = (alias, status, last) => ({
|
|
44
|
+
alias, status, model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
45
|
+
network_id: nid, project_dir: null,
|
|
46
|
+
created_at: last, updated_at: last, last_seen_at: last,
|
|
47
|
+
});
|
|
48
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
49
|
+
mk('w1', 'working', fresh), mk('w2', 'working', fresh),
|
|
50
|
+
mk('o1', 'offline', stale), mk('o2', 'offline', stale),
|
|
51
|
+
] } });
|
|
52
|
+
});
|
|
53
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
54
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
55
|
+
|
|
56
|
+
const page = await ctx.newPage();
|
|
57
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
58
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
|
|
59
|
+
await page.waitForSelector('[data-node-status-ring]', { timeout: 10000 });
|
|
60
|
+
await page.waitForTimeout(400);
|
|
61
|
+
|
|
62
|
+
const probe = await page.evaluate(() => {
|
|
63
|
+
const rings = [...document.querySelectorAll('[data-node-status-ring]')];
|
|
64
|
+
return rings.map(r => ({
|
|
65
|
+
label: r.getAttribute('data-node-status-ring'),
|
|
66
|
+
strokeWidth: parseFloat(r.getAttribute('stroke-width')),
|
|
67
|
+
dasharray: r.getAttribute('stroke-dasharray'),
|
|
68
|
+
inlineTransition: r.style.transition || '',
|
|
69
|
+
computedTransition: getComputedStyle(r).transition || '',
|
|
70
|
+
}));
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
await browser.close();
|
|
74
|
+
|
|
75
|
+
const working = probe.filter(p => p.label === 'working');
|
|
76
|
+
const offline = probe.filter(p => p.label === 'offline');
|
|
77
|
+
|
|
78
|
+
const allHaveStrokeWidth = probe.every(p =>
|
|
79
|
+
p.inlineTransition.includes('stroke-width 300ms') ||
|
|
80
|
+
/stroke-width\s+0\.3s|stroke-width\s+300ms/.test(p.computedTransition));
|
|
81
|
+
const allHaveFill = probe.every(p =>
|
|
82
|
+
p.inlineTransition.includes('fill 300ms') ||
|
|
83
|
+
/fill\s+0\.3s|fill\s+300ms/.test(p.computedTransition));
|
|
84
|
+
const allHaveStroke = probe.every(p =>
|
|
85
|
+
p.inlineTransition.includes('stroke 300ms') ||
|
|
86
|
+
/[^-]stroke\s+0\.3s|[^-]stroke\s+300ms/.test(p.computedTransition));
|
|
87
|
+
|
|
88
|
+
const results = {
|
|
89
|
+
four_rings_found: probe.length === 4,
|
|
90
|
+
two_working_rings: working.length === 2,
|
|
91
|
+
two_offline_rings: offline.length === 2,
|
|
92
|
+
working_strokeWidth_3: working.every(p => p.strokeWidth === 3),
|
|
93
|
+
offline_strokeWidth_15: offline.every(p => p.strokeWidth === 1.5),
|
|
94
|
+
working_no_dasharray: working.every(p => p.dasharray === 'none' || !p.dasharray),
|
|
95
|
+
offline_dasharray_5_5: offline.every(p => p.dasharray === '5 5'),
|
|
96
|
+
all_have_stroke_width_transition: allHaveStrokeWidth,
|
|
97
|
+
all_have_fill_transition: allHaveFill,
|
|
98
|
+
all_have_stroke_transition: allHaveStroke,
|
|
99
|
+
};
|
|
100
|
+
const ok = Object.values(results).every(Boolean);
|
|
101
|
+
console.log(`${ok ? '✅' : '❌'} node status-ring transition:`, JSON.stringify(results),
|
|
102
|
+
`\n rings=`, probe);
|
|
103
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/* Round 168 verification: smooth viewport transition on reset/fit.
|
|
2
|
+
*
|
|
3
|
+
* Pre-R168 resetView/fitView snapped the <g transform> from
|
|
4
|
+
* current zoom/pan to {zoom:1, x:0, y:0} in one frame. Pressing
|
|
5
|
+
* `0` or clicking the hub jolted the eye.
|
|
6
|
+
*
|
|
7
|
+
* R168 arms a one-shot smoothView flag when resetView/fitView
|
|
8
|
+
* fires; the viewport <g> reads this flag and conditionally
|
|
9
|
+
* applies `transition: transform 300ms ease-out`. Auto-clears
|
|
10
|
+
* 350ms later. Pan (R103 drag) and wheel zoom never set the
|
|
11
|
+
* flag, so interactive view changes stay snappy.
|
|
12
|
+
*
|
|
13
|
+
* Test:
|
|
14
|
+
* 1. Load page → idle state, smoothView=false (no transition)
|
|
15
|
+
* 2. Zoom in twice via '+' to set non-default view
|
|
16
|
+
* 3. Press '0' (resetView) → smoothView=true, viewport <g>
|
|
17
|
+
* has style.transition = 'transform 300ms ease-out'
|
|
18
|
+
* 4. Wait 450ms → smoothView=false again, transition cleared
|
|
19
|
+
* 5. Repeat with 'f' (fitView)
|
|
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
|
+
|
|
27
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
28
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
29
|
+
await ctx.addInitScript(() => {
|
|
30
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
34
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
35
|
+
const r = await route.fetch();
|
|
36
|
+
const b = await r.json();
|
|
37
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
38
|
+
const mk = (alias) => ({
|
|
39
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'cli-claude-code',
|
|
40
|
+
network_id: nid, project_dir: null,
|
|
41
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
42
|
+
});
|
|
43
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('alpha'), mk('beta'), mk('gamma')] } });
|
|
44
|
+
});
|
|
45
|
+
await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
|
|
46
|
+
await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
|
|
47
|
+
|
|
48
|
+
const page = await ctx.newPage();
|
|
49
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
50
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 3, { timeout: 30000 });
|
|
51
|
+
await page.waitForSelector('[data-topo-viewport]', { timeout: 10000 });
|
|
52
|
+
await page.waitForTimeout(400);
|
|
53
|
+
|
|
54
|
+
// Idle: smoothView=false, no transition style.
|
|
55
|
+
const idle = await page.evaluate(() => {
|
|
56
|
+
const g = document.querySelector('[data-topo-viewport]');
|
|
57
|
+
return {
|
|
58
|
+
smooth: g?.getAttribute('data-topo-viewport-smooth'),
|
|
59
|
+
transition: g?.style?.transition || '',
|
|
60
|
+
};
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Zoom in twice → set non-default view
|
|
64
|
+
await page.keyboard.press('+');
|
|
65
|
+
await page.keyboard.press('+');
|
|
66
|
+
await page.waitForTimeout(150);
|
|
67
|
+
const zoomBefore = await page.evaluate(() =>
|
|
68
|
+
document.querySelector('[data-topo-chrome-zoom-level]')?.textContent?.trim());
|
|
69
|
+
|
|
70
|
+
// Press 0 (resetView) → smoothView=true. Probe within the
|
|
71
|
+
// 350ms window so the style is still set.
|
|
72
|
+
await page.keyboard.press('0');
|
|
73
|
+
// Small delay so React commits the state update.
|
|
74
|
+
await page.waitForTimeout(50);
|
|
75
|
+
const duringReset = await page.evaluate(() => {
|
|
76
|
+
const g = document.querySelector('[data-topo-viewport]');
|
|
77
|
+
return {
|
|
78
|
+
smooth: g?.getAttribute('data-topo-viewport-smooth'),
|
|
79
|
+
transition: g?.style?.transition || '',
|
|
80
|
+
};
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
// Wait past the 350ms window
|
|
84
|
+
await page.waitForTimeout(450);
|
|
85
|
+
const afterReset = await page.evaluate(() => {
|
|
86
|
+
const g = document.querySelector('[data-topo-viewport]');
|
|
87
|
+
return {
|
|
88
|
+
smooth: g?.getAttribute('data-topo-viewport-smooth'),
|
|
89
|
+
transition: g?.style?.transition || '',
|
|
90
|
+
};
|
|
91
|
+
});
|
|
92
|
+
const zoomAfter = await page.evaluate(() =>
|
|
93
|
+
document.querySelector('[data-topo-chrome-zoom-level]')?.textContent?.trim());
|
|
94
|
+
|
|
95
|
+
// Now zoom in again and press 'f' (fitView) — same arming path
|
|
96
|
+
await page.keyboard.press('+');
|
|
97
|
+
await page.keyboard.press('+');
|
|
98
|
+
await page.waitForTimeout(150);
|
|
99
|
+
await page.keyboard.press('f');
|
|
100
|
+
await page.waitForTimeout(50);
|
|
101
|
+
const duringFit = await page.evaluate(() => {
|
|
102
|
+
const g = document.querySelector('[data-topo-viewport]');
|
|
103
|
+
return {
|
|
104
|
+
smooth: g?.getAttribute('data-topo-viewport-smooth'),
|
|
105
|
+
transition: g?.style?.transition || '',
|
|
106
|
+
};
|
|
107
|
+
});
|
|
108
|
+
|
|
109
|
+
await browser.close();
|
|
110
|
+
|
|
111
|
+
const results = {
|
|
112
|
+
viewport_found: idle !== null,
|
|
113
|
+
idle_smooth_false: idle.smooth === 'false',
|
|
114
|
+
idle_no_transition: !idle.transition.includes('transform'),
|
|
115
|
+
zoomed_before_reset: zoomBefore !== '100%',
|
|
116
|
+
reset_armed_smooth: duringReset.smooth === 'true',
|
|
117
|
+
reset_transition_set: duringReset.transition.includes('transform 300ms'),
|
|
118
|
+
after_reset_smooth_false: afterReset.smooth === 'false',
|
|
119
|
+
after_reset_no_transition: !afterReset.transition.includes('transform'),
|
|
120
|
+
reset_landed_at_100: zoomAfter === '100%',
|
|
121
|
+
fit_armed_smooth: duringFit.smooth === 'true',
|
|
122
|
+
fit_transition_set: duringFit.transition.includes('transform 300ms'),
|
|
123
|
+
};
|
|
124
|
+
const ok = Object.values(results).every(Boolean);
|
|
125
|
+
console.log(`${ok ? '✅' : '❌'} view smooth transition:`, JSON.stringify(results),
|
|
126
|
+
`\n idle =`, idle,
|
|
127
|
+
`\n duringReset =`, duringReset,
|
|
128
|
+
`\n afterReset =`, afterReset,
|
|
129
|
+
`\n duringFit =`, duringFit,
|
|
130
|
+
`\n zoom before/after = ${zoomBefore} → ${zoomAfter}`);
|
|
131
|
+
process.exit(ok ? 0 : 1);
|