@sleep2agi/agent-network-dashboard 0.5.3-preview.74 → 0.5.3-preview.76
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 +5 -5
- 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/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +2 -2
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
- package/.next/server/app/admin.html +2 -2
- package/.next/server/app/admin.rsc +2 -2
- package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
- package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +3 -3
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +3 -3
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +3 -3
- package/.next/server/app/login.segments/_full.segment.rsc +3 -3
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +2 -2
- package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/logs.html +2 -2
- package/.next/server/app/logs.rsc +2 -2
- package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
- package/.next/server/app/messages.html +2 -2
- package/.next/server/app/messages.rsc +2 -2
- package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
- package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node/page_client-reference-manifest.js +1 -1
- package/.next/server/app/node.html +2 -2
- package/.next/server/app/node.rsc +2 -2
- package/.next/server/app/node.segments/_full.segment.rsc +2 -2
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +2 -2
- package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
- package/.next/server/app/nodes.html +2 -2
- package/.next/server/app/nodes.rsc +2 -2
- package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +2 -2
- package/.next/server/app/server-logs.rsc +2 -2
- package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/networks.html +2 -2
- package/.next/server/app/settings/networks.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +2 -2
- package/.next/server/app/settings/tokens.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +3 -3
- package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
- package/.next/server/app/tasks.html +2 -2
- package/.next/server/app/tasks.rsc +2 -2
- package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
- package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +2 -2
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0nen2q__0xj5y.js → 02c-y-wnaqfko.js} +1 -1
- package/.next/static/chunks/{0kn6uw7kdzqmb.js → 08wot-nqxohck.js} +1 -1
- package/.next/static/chunks/{0dl7n87ozjehm.css → 0l0qml9uwy7fm.css} +1 -1
- package/.next/static/chunks/{0pse5n51pfgmp.js → 0vlz~vgcjzz00.js} +1 -1
- package/.next/static/chunks/{04ty1y7vqj51_.js → 0zdzl-bc3bggd.js} +2 -2
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +94 -8
- package/package.json +1 -1
- package/scripts/topo-group-label-member-alias-hover-test.mjs +125 -0
- package/scripts/topo-legend-swatch-member-alias-match-test.mjs +139 -0
- /package/.next/static/{-Ap6mdNr338P4dKzUWI9f → JETu37K-Slnu1KFPrpLjy}/_buildManifest.js +0 -0
- /package/.next/static/{-Ap6mdNr338P4dKzUWI9f → JETu37K-Slnu1KFPrpLjy}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{-Ap6mdNr338P4dKzUWI9f → JETu37K-Slnu1KFPrpLjy}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":252,"timestamp":222546429476,"id":4,"parentId":1,"tags":{},"startTime":1779030518676,"traceId":"a3663256e18c5940"},{"name":"load-custom-routes","duration":511,"timestamp":222546429878,"id":5,"parentId":1,"tags":{},"startTime":1779030518676,"traceId":"a3663256e18c5940"},{"name":"create-dist-dir","duration":686,"timestamp":222546430431,"id":6,"parentId":1,"tags":{},"startTime":1779030518677,"traceId":"a3663256e18c5940"},{"name":"clean","duration":31024,"timestamp":222546431773,"id":7,"parentId":1,"tags":{},"startTime":1779030518678,"traceId":"a3663256e18c5940"},{"name":"discover-routes","duration":10256,"timestamp":222546541099,"id":8,"parentId":1,"tags":{},"startTime":1779030518787,"traceId":"a3663256e18c5940"},{"name":"create-root-mapping","duration":110,"timestamp":222546551410,"id":9,"parentId":1,"tags":{},"startTime":1779030518798,"traceId":"a3663256e18c5940"},{"name":"generate-route-types","duration":36571,"timestamp":222546554054,"id":10,"parentId":1,"tags":{},"startTime":1779030518800,"traceId":"a3663256e18c5940"},{"name":"public-dir-conflict-check","duration":97,"timestamp":222546590715,"id":11,"parentId":1,"tags":{},"startTime":1779030518837,"traceId":"a3663256e18c5940"},{"name":"generate-routes-manifest","duration":5050,"timestamp":222546590943,"id":12,"parentId":1,"tags":{},"startTime":1779030518837,"traceId":"a3663256e18c5940"},{"name":"run-turbopack","duration":5969926,"timestamp":222546601372,"id":14,"parentId":1,"tags":{},"startTime":1779030518848,"traceId":"a3663256e18c5940"},{"name":"turbopack-build-events","duration":71,"timestamp":222546898262,"id":15,"parentId":1,"tags":{},"startTime":1779030519145,"traceId":"a3663256e18c5940"},{"name":"run-typescript","duration":9408453,"timestamp":222552581811,"id":16,"parentId":1,"tags":{},"startTime":1779030524828,"traceId":"a3663256e18c5940"},{"name":"generate-required-server-files","duration":2472,"timestamp":222561991437,"id":18,"parentId":1,"tags":{},"startTime":1779030534238,"traceId":"a3663256e18c5940"},{"name":"check-static-error-page","duration":16708,"timestamp":222562162224,"id":20,"parentId":19,"tags":{},"startTime":1779030534409,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":531531,"timestamp":222562182783,"id":65,"parentId":22,"tags":{},"startTime":1779030534429,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":548973,"timestamp":222562165500,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779030534412,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":579555,"timestamp":222562182901,"id":66,"parentId":25,"tags":{},"startTime":1779030534429,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":593898,"timestamp":222562168660,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779030534415,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":600266,"timestamp":222562183202,"id":69,"parentId":28,"tags":{},"startTime":1779030534429,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":614357,"timestamp":222562169198,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779030534415,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":605810,"timestamp":222562183970,"id":73,"parentId":33,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":619758,"timestamp":222562170107,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779030534416,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":614519,"timestamp":222562183768,"id":72,"parentId":32,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":628439,"timestamp":222562169931,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779030534416,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":635117,"timestamp":222562181422,"id":64,"parentId":21,"tags":{},"startTime":1779030534428,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":652830,"timestamp":222562163787,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779030534410,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":636545,"timestamp":222562184084,"id":74,"parentId":34,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":650327,"timestamp":222562170366,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779030534417,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":645513,"timestamp":222562182986,"id":67,"parentId":26,"tags":{},"startTime":1779030534429,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":659707,"timestamp":222562168846,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779030534415,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":644787,"timestamp":222562184118,"id":75,"parentId":35,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":658416,"timestamp":222562170542,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779030534417,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":645698,"timestamp":222562183507,"id":70,"parentId":29,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":659907,"timestamp":222562169331,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779030534416,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":649854,"timestamp":222562184206,"id":79,"parentId":39,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":661866,"timestamp":222562172236,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779030534419,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":664173,"timestamp":222562184176,"id":77,"parentId":37,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":676988,"timestamp":222562171418,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779030534418,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":664922,"timestamp":222562183692,"id":71,"parentId":30,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":679167,"timestamp":222562169484,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779030534416,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":664757,"timestamp":222562184235,"id":81,"parentId":42,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":676304,"timestamp":222562172770,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779030534419,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":681254,"timestamp":222562184265,"id":83,"parentId":45,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":692102,"timestamp":222562173471,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779030534420,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":681474,"timestamp":222562184221,"id":80,"parentId":40,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":693364,"timestamp":222562172359,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779030534419,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":681658,"timestamp":222562184194,"id":78,"parentId":38,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":693808,"timestamp":222562172088,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779030534418,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":682477,"timestamp":222562184280,"id":84,"parentId":46,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":693207,"timestamp":222562173597,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779030534420,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":685732,"timestamp":222562184253,"id":82,"parentId":44,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":696728,"timestamp":222562173317,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779030534420,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":692572,"timestamp":222562184297,"id":85,"parentId":47,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":702640,"timestamp":222562174273,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779030534421,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":693948,"timestamp":222562183122,"id":68,"parentId":27,"tags":{},"startTime":1779030534429,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":708116,"timestamp":222562168985,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779030534415,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":692859,"timestamp":222562184348,"id":88,"parentId":50,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":701184,"timestamp":222562176045,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779030534422,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":697281,"timestamp":222562184312,"id":86,"parentId":48,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":707229,"timestamp":222562174406,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779030534421,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":688608,"timestamp":222562197699,"id":92,"parentId":41,"tags":{},"startTime":1779030534444,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":713869,"timestamp":222562172479,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779030534419,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":691645,"timestamp":222562199020,"id":93,"parentId":43,"tags":{},"startTime":1779030534445,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":717739,"timestamp":222562172968,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779030534419,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":698363,"timestamp":222562192504,"id":90,"parentId":24,"tags":{},"startTime":1779030534439,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":724808,"timestamp":222562166091,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779030534412,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":709224,"timestamp":222562184363,"id":89,"parentId":51,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":717497,"timestamp":222562176137,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779030534422,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":710044,"timestamp":222562184329,"id":87,"parentId":49,"tags":{},"startTime":1779030534431,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":718570,"timestamp":222562175844,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779030534422,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":719057,"timestamp":222562184138,"id":76,"parentId":36,"tags":{},"startTime":1779030534430,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":732031,"timestamp":222562171221,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779030534417,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":712598,"timestamp":222562205937,"id":99,"parentId":56,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":741545,"timestamp":222562177040,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779030534423,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":731479,"timestamp":222562193725,"id":91,"parentId":31,"tags":{},"startTime":1779030534440,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":755637,"timestamp":222562169619,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779030534416,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":721618,"timestamp":222562205953,"id":100,"parentId":58,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":749967,"timestamp":222562177650,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779030534424,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":727246,"timestamp":222562208146,"id":102,"parentId":61,"tags":{},"startTime":1779030534454,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":757140,"timestamp":222562178334,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779030534425,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":743297,"timestamp":222562205909,"id":97,"parentId":54,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":772556,"timestamp":222562176696,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779030534423,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":741570,"timestamp":222562208182,"id":103,"parentId":62,"tags":{},"startTime":1779030534454,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":771301,"timestamp":222562178497,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779030534425,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":747106,"timestamp":222562205811,"id":94,"parentId":23,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":787173,"timestamp":222562165792,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779030534412,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":747486,"timestamp":222562205873,"id":95,"parentId":52,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":776954,"timestamp":222562176444,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779030534423,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":731690,"timestamp":222562224791,"id":105,"parentId":60,"tags":{},"startTime":1779030534471,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":778566,"timestamp":222562177954,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779030534424,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":748391,"timestamp":222562208200,"id":104,"parentId":63,"tags":{},"startTime":1779030534454,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":777952,"timestamp":222562178656,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779030534425,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":753941,"timestamp":222562205920,"id":98,"parentId":55,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":783067,"timestamp":222562176844,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779030534423,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":710436,"timestamp":222562250623,"id":106,"parentId":57,"tags":{},"startTime":1779030534497,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":783876,"timestamp":222562177231,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779030534424,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":756197,"timestamp":222562205892,"id":96,"parentId":53,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":785544,"timestamp":222562176582,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779030534423,"traceId":"a3663256e18c5940"},{"name":"is-page-static","duration":777265,"timestamp":222562206114,"id":101,"parentId":59,"tags":{},"startTime":1779030534452,"traceId":"a3663256e18c5940"},{"name":"check-page","duration":805608,"timestamp":222562177807,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779030534424,"traceId":"a3663256e18c5940"},{"name":"static-check","duration":822414,"timestamp":222562161045,"id":19,"parentId":1,"tags":{},"startTime":1779030534407,"traceId":"a3663256e18c5940"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":319,"timestamp":223566401661,"id":4,"parentId":1,"tags":{},"startTime":1779031538648,"traceId":"cc1ad07771d74b0b"},{"name":"load-custom-routes","duration":514,"timestamp":223566402143,"id":5,"parentId":1,"tags":{},"startTime":1779031538648,"traceId":"cc1ad07771d74b0b"},{"name":"create-dist-dir","duration":734,"timestamp":223566402702,"id":6,"parentId":1,"tags":{},"startTime":1779031538649,"traceId":"cc1ad07771d74b0b"},{"name":"clean","duration":34196,"timestamp":223566404134,"id":7,"parentId":1,"tags":{},"startTime":1779031538650,"traceId":"cc1ad07771d74b0b"},{"name":"discover-routes","duration":10383,"timestamp":223566522258,"id":8,"parentId":1,"tags":{},"startTime":1779031538769,"traceId":"cc1ad07771d74b0b"},{"name":"create-root-mapping","duration":165,"timestamp":223566532718,"id":9,"parentId":1,"tags":{},"startTime":1779031538779,"traceId":"cc1ad07771d74b0b"},{"name":"generate-route-types","duration":26356,"timestamp":223566535678,"id":10,"parentId":1,"tags":{},"startTime":1779031538782,"traceId":"cc1ad07771d74b0b"},{"name":"public-dir-conflict-check","duration":194,"timestamp":223566562151,"id":11,"parentId":1,"tags":{},"startTime":1779031538808,"traceId":"cc1ad07771d74b0b"},{"name":"generate-routes-manifest","duration":6073,"timestamp":223566562539,"id":12,"parentId":1,"tags":{},"startTime":1779031538809,"traceId":"cc1ad07771d74b0b"},{"name":"run-turbopack","duration":8036429,"timestamp":223566592380,"id":14,"parentId":1,"tags":{},"startTime":1779031538839,"traceId":"cc1ad07771d74b0b"},{"name":"turbopack-build-events","duration":109,"timestamp":223566920418,"id":15,"parentId":1,"tags":{},"startTime":1779031539167,"traceId":"cc1ad07771d74b0b"},{"name":"run-typescript","duration":12213767,"timestamp":223574646259,"id":16,"parentId":1,"tags":{},"startTime":1779031546893,"traceId":"cc1ad07771d74b0b"},{"name":"generate-required-server-files","duration":2557,"timestamp":223586861487,"id":18,"parentId":1,"tags":{},"startTime":1779031559108,"traceId":"cc1ad07771d74b0b"},{"name":"check-static-error-page","duration":17483,"timestamp":223587082160,"id":20,"parentId":19,"tags":{},"startTime":1779031559328,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":641686,"timestamp":223587103984,"id":64,"parentId":21,"tags":{},"startTime":1779031559350,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":662010,"timestamp":223587083828,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779031559330,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":645125,"timestamp":223587104643,"id":67,"parentId":26,"tags":{},"startTime":1779031559351,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":660607,"timestamp":223587089232,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":650965,"timestamp":223587105322,"id":72,"parentId":32,"tags":{},"startTime":1779031559352,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":666170,"timestamp":223587090187,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":685553,"timestamp":223587104403,"id":65,"parentId":22,"tags":{},"startTime":1779031559351,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":704417,"timestamp":223587085654,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779031559332,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":687264,"timestamp":223587105461,"id":73,"parentId":33,"tags":{},"startTime":1779031559352,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":702476,"timestamp":223587090317,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779031559337,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":689303,"timestamp":223587105122,"id":70,"parentId":29,"tags":{},"startTime":1779031559351,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":704866,"timestamp":223587089611,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":693829,"timestamp":223587104842,"id":69,"parentId":28,"tags":{},"startTime":1779031559351,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":709230,"timestamp":223587089489,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":699555,"timestamp":223587108493,"id":76,"parentId":36,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":717017,"timestamp":223587091090,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779031559337,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":708508,"timestamp":223587108450,"id":75,"parentId":35,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":726457,"timestamp":223587090579,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779031559337,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":725061,"timestamp":223587108551,"id":79,"parentId":39,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":742119,"timestamp":223587091551,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":733943,"timestamp":223587108560,"id":80,"parentId":40,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":750887,"timestamp":223587091680,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":743115,"timestamp":223587108572,"id":81,"parentId":42,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":759694,"timestamp":223587092083,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":744497,"timestamp":223587108539,"id":78,"parentId":38,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":761652,"timestamp":223587091438,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":747971,"timestamp":223587108584,"id":82,"parentId":44,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":764121,"timestamp":223587092476,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779031559339,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":749045,"timestamp":223587108523,"id":77,"parentId":37,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":766317,"timestamp":223587091295,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":753065,"timestamp":223587108605,"id":84,"parentId":46,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":768995,"timestamp":223587092718,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779031559339,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":755491,"timestamp":223587108620,"id":85,"parentId":47,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":769772,"timestamp":223587094402,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779031559341,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":761264,"timestamp":223587105261,"id":71,"parentId":30,"tags":{},"startTime":1779031559352,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":776867,"timestamp":223587089765,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":758182,"timestamp":223587108633,"id":86,"parentId":48,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":772322,"timestamp":223587094530,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779031559341,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":761957,"timestamp":223587108641,"id":87,"parentId":49,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":775989,"timestamp":223587094656,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779031559341,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":770200,"timestamp":223587108654,"id":88,"parentId":50,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":784166,"timestamp":223587094751,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779031559341,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":762174,"timestamp":223587116981,"id":90,"parentId":24,"tags":{},"startTime":1779031559363,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":792937,"timestamp":223587086260,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779031559333,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":771280,"timestamp":223587108667,"id":89,"parentId":51,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":785162,"timestamp":223587094833,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779031559341,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":766173,"timestamp":223587118156,"id":91,"parentId":31,"tags":{},"startTime":1779031559364,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":794479,"timestamp":223587089888,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":765751,"timestamp":223587124314,"id":93,"parentId":43,"tags":{},"startTime":1779031559371,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":797893,"timestamp":223587092217,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":770519,"timestamp":223587122944,"id":92,"parentId":41,"tags":{},"startTime":1779031559369,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":801715,"timestamp":223587091795,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779031559338,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":760190,"timestamp":223587134087,"id":94,"parentId":23,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":808348,"timestamp":223587085966,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779031559332,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":767424,"timestamp":223587134148,"id":97,"parentId":54,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":806011,"timestamp":223587095599,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779031559342,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":775181,"timestamp":223587134162,"id":98,"parentId":55,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":813574,"timestamp":223587095809,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779031559342,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":800964,"timestamp":223587108592,"id":83,"parentId":45,"tags":{},"startTime":1779031559355,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":816990,"timestamp":223587092605,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779031559339,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":782507,"timestamp":223587134178,"id":99,"parentId":56,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":820670,"timestamp":223587096063,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779031559342,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":820498,"timestamp":223587104530,"id":66,"parentId":25,"tags":{},"startTime":1779031559351,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":836024,"timestamp":223587089057,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779031559335,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":794017,"timestamp":223587134314,"id":101,"parentId":59,"tags":{},"startTime":1779031559381,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":831279,"timestamp":223587097115,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779031559343,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":842723,"timestamp":223587105538,"id":74,"parentId":34,"tags":{},"startTime":1779031559352,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":857869,"timestamp":223587090455,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779031559337,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":814119,"timestamp":223587134354,"id":103,"parentId":62,"tags":{},"startTime":1779031559381,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":849274,"timestamp":223587099227,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779031559346,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":793285,"timestamp":223587162669,"id":105,"parentId":57,"tags":{},"startTime":1779031559409,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":859719,"timestamp":223587096312,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779031559343,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":857360,"timestamp":223587104745,"id":68,"parentId":27,"tags":{},"startTime":1779031559351,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":872797,"timestamp":223587089357,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779031559336,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":788657,"timestamp":223587177559,"id":106,"parentId":60,"tags":{},"startTime":1779031559424,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":868955,"timestamp":223587097302,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779031559344,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":836299,"timestamp":223587134121,"id":95,"parentId":52,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":875206,"timestamp":223587095269,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779031559342,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":846450,"timestamp":223587134138,"id":96,"parentId":53,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":885199,"timestamp":223587095447,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779031559342,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":873988,"timestamp":223587134338,"id":102,"parentId":61,"tags":{},"startTime":1779031559381,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":909352,"timestamp":223587099048,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779031559345,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":876520,"timestamp":223587134193,"id":100,"parentId":58,"tags":{},"startTime":1779031559380,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":913887,"timestamp":223587096889,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779031559343,"traceId":"cc1ad07771d74b0b"},{"name":"is-page-static","duration":924261,"timestamp":223587134364,"id":104,"parentId":63,"tags":{},"startTime":1779031559381,"traceId":"cc1ad07771d74b0b"},{"name":"check-page","duration":959304,"timestamp":223587099384,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779031559346,"traceId":"cc1ad07771d74b0b"},{"name":"static-check","duration":977808,"timestamp":223587080913,"id":19,"parentId":1,"tags":{},"startTime":1779031559327,"traceId":"cc1ad07771d74b0b"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":662,"timestamp":223588068721,"id":108,"parentId":1,"tags":{},"startTime":1779031560315,"traceId":"cc1ad07771d74b0b"},{"name":"load-dotenv","duration":73,"timestamp":223588084409,"id":111,"parentId":110,"tags":{},"startTime":1779031560331,"traceId":"cc1ad07771d74b0b"},{"name":"run-export-path-map","duration":1053,"timestamp":223588087734,"id":112,"parentId":110,"tags":{},"startTime":1779031560334,"traceId":"cc1ad07771d74b0b"},{"name":"next-export","duration":778006,"timestamp":223588082538,"id":110,"parentId":1,"tags":{},"startTime":1779031560329,"traceId":"cc1ad07771d74b0b"},{"name":"move-exported-app-not-found-","duration":472,"timestamp":223588864278,"id":113,"parentId":109,"tags":{},"startTime":1779031561111,"traceId":"cc1ad07771d74b0b"},{"name":"move-exported-app-global-error-","duration":344,"timestamp":223588864844,"id":114,"parentId":109,"tags":{},"startTime":1779031561111,"traceId":"cc1ad07771d74b0b"},{"name":"static-generation","duration":793481,"timestamp":223588073760,"id":109,"parentId":1,"tags":{},"startTime":1779031560320,"traceId":"cc1ad07771d74b0b"},{"name":"write-routes-manifest","duration":537,"timestamp":223588867533,"id":115,"parentId":1,"tags":{},"startTime":1779031561114,"traceId":"cc1ad07771d74b0b"},{"name":"print-tree-view","duration":6794,"timestamp":223588887797,"id":116,"parentId":1,"tags":{},"startTime":1779031561134,"traceId":"cc1ad07771d74b0b"},{"name":"write-route-bundle-stats","duration":14561,"timestamp":223588894637,"id":117,"parentId":1,"tags":{},"startTime":1779031561141,"traceId":"cc1ad07771d74b0b"},{"name":"telemetry-flush","duration":22165,"timestamp":223588909252,"id":118,"parentId":1,"tags":{},"startTime":1779031561156,"traceId":"cc1ad07771d74b0b"},{"name":"next-build","duration":22584353,"timestamp":223566347123,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779031538593,"traceId":"cc1ad07771d74b0b"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":8036429,"timestamp":223566592380,"id":14,"parentId":1,"tags":{},"startTime":1779031538839,"traceId":"cc1ad07771d74b0b"},{"name":"turbopack-build-events","duration":109,"timestamp":223566920418,"id":15,"parentId":1,"tags":{},"startTime":1779031539167,"traceId":"cc1ad07771d74b0b"},{"name":"run-typescript","duration":12213767,"timestamp":223574646259,"id":16,"parentId":1,"tags":{},"startTime":1779031546893,"traceId":"cc1ad07771d74b0b"},{"name":"static-check","duration":977808,"timestamp":223587080913,"id":19,"parentId":1,"tags":{},"startTime":1779031559327,"traceId":"cc1ad07771d74b0b"},{"name":"static-generation","duration":793481,"timestamp":223588073760,"id":109,"parentId":1,"tags":{},"startTime":1779031560320,"traceId":"cc1ad07771d74b0b"},{"name":"telemetry-flush","duration":22165,"timestamp":223588909252,"id":118,"parentId":1,"tags":{},"startTime":1779031561156,"traceId":"cc1ad07771d74b0b"},{"name":"next-build","duration":22584353,"timestamp":223566347123,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779031538593,"traceId":"cc1ad07771d74b0b"}]
|
|
@@ -5211,6 +5211,30 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5211
5211
|
a node click. Restrained dashed container + group-name label. */}
|
|
5212
5212
|
{groupBoxes.map((box, boxIdx) => {
|
|
5213
5213
|
const isHovered = activeGroup === box.key;
|
|
5214
|
+
/* Round 561 / Loop — inspection-overrides-encoding family
|
|
5215
|
+
4th anchor. When operator hovers a NODE ALIAS on the
|
|
5216
|
+
canvas, the group-label that CONTAINS that node lifts
|
|
5217
|
+
to full opacity, signalling "this is the cluster
|
|
5218
|
+
whose member you're inspecting".
|
|
5219
|
+
Family progression (4 anchors now):
|
|
5220
|
+
R484 recent-row timestamp brightens on alias hover
|
|
5221
|
+
R485 edge particle opacity lifts on alias hover
|
|
5222
|
+
R486 minimap dot opacity lifts on alias hover
|
|
5223
|
+
R561 group-label opacity lifts on member-alias hover ← this round
|
|
5224
|
+
Pure paint axis (opacity only) — same restraint as
|
|
5225
|
+
R486. NOT bundled into the existing `isHovered` flag
|
|
5226
|
+
so the marching-ants live animation (gated on
|
|
5227
|
+
`!isPinned && !isHovered`) keeps running; the box
|
|
5228
|
+
rect stroke widen / fill brighten / letter-spacing
|
|
5229
|
+
/ filter glow gates stay tied to direct label
|
|
5230
|
+
hover/pin semantics.
|
|
5231
|
+
Mirror of R486's pattern: `hoveredAlias === s.alias`
|
|
5232
|
+
extends a focused opacity branch independent from
|
|
5233
|
+
the rest-state encoding (online/offline). R561 here:
|
|
5234
|
+
`groupKeys[hoveredAlias] === box.key` extends a
|
|
5235
|
+
cluster-awareness opacity branch independent from
|
|
5236
|
+
the existing isHovered / isPinned semantics. */
|
|
5237
|
+
const isMemberAliasHovered = !!hoveredAlias && groupKeys[hoveredAlias] === box.key;
|
|
5214
5238
|
// R68: distinguish "locked by click" from "currently hovered".
|
|
5215
5239
|
// R63 made pinned and hovered identical (both hit isHovered
|
|
5216
5240
|
// via activeGroup). A user with one team pinned should see at
|
|
@@ -5452,10 +5476,29 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5452
5476
|
// motion layers (hub / ring / group) keep a coherent
|
|
5453
5477
|
// tempo grammar. Default 12s when working=0 doesn't
|
|
5454
5478
|
// matter — the className is only applied when working>0.
|
|
5455
|
-
|
|
5479
|
+
/* Round 561 — marching-ants gate refined to halt only
|
|
5480
|
+
on direct-label-hover (or pin), NOT on member-alias-
|
|
5481
|
+
hover. Pre-R561 `isHovered` covered BOTH cases via
|
|
5482
|
+
the line 1044 fallback `hoveredGroup ?? (hoveredAlias
|
|
5483
|
+
→ groupKeys[hoveredAlias])` — so hovering ANY member
|
|
5484
|
+
node halted the ants, treating indirect inspection
|
|
5485
|
+
the same as direct attention.
|
|
5486
|
+
R561 differentiates: ants now keep running during
|
|
5487
|
+
member-alias hover (indirect / cluster-awareness
|
|
5488
|
+
inspection), halting ONLY on direct label hover or
|
|
5489
|
+
pin. The cluster's live signal stays alive while
|
|
5490
|
+
operator inspects member nodes — distinct visual
|
|
5491
|
+
telegraph for "directly attending this cluster"
|
|
5492
|
+
vs "inspecting one of its members".
|
|
5493
|
+
Gate uses `hoveredGroupLabel === box.key` directly
|
|
5494
|
+
(the LABEL hover state) instead of `isHovered`
|
|
5495
|
+
(which combines label-hover + member-alias-hover
|
|
5496
|
+
via activeGroup). data-group-box-live + the live
|
|
5497
|
+
className both flip on the same refined gate. */
|
|
5498
|
+
data-group-box-live={!isPinned && hoveredGroupLabel !== box.key && box.statuses.working > 0 ? 'true' : 'false'}
|
|
5456
5499
|
data-group-box-march-dur={marchDur}
|
|
5457
5500
|
data-group-box-lifted={(isPinned || isHovered) ? 'true' : 'false'}
|
|
5458
|
-
className={!isPinned &&
|
|
5501
|
+
className={!isPinned && hoveredGroupLabel !== box.key && box.statuses.working > 0 ? 'anet-topo-groupbox-live' : undefined}
|
|
5459
5502
|
// R142: drop-shadow filter when pinned or hovered. Box
|
|
5460
5503
|
// visually "rises off the canvas" — same vocabulary
|
|
5461
5504
|
// R18 KPI cards + R135 overlay panels use. Idle group
|
|
@@ -5762,9 +5805,18 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5762
5805
|
(currently opacity 0.55 → 1 was snapping).
|
|
5763
5806
|
data-group-label-opacity attr exposes the resolved
|
|
5764
5807
|
value for tests. */
|
|
5765
|
-
|
|
5766
|
-
|
|
5808
|
+
/* Round 561 — opacity ladder gains inspection-
|
|
5809
|
+
overrides-encoding branch via isMemberAliasHovered.
|
|
5810
|
+
Resolution order (most-emphatic first):
|
|
5811
|
+
isPinned || isHovered → 1 (direct attention)
|
|
5812
|
+
isMemberAliasHovered → 1 (R561 inspection)
|
|
5813
|
+
box.isOrphan → 0.4 (R551 orphan rest)
|
|
5814
|
+
(default) → 0.55
|
|
5815
|
+
R484/R485/R486-family mirror. */
|
|
5816
|
+
opacity={isPinned || isHovered || isMemberAliasHovered ? 1 : box.isOrphan ? 0.4 : 0.55}
|
|
5817
|
+
data-group-label-opacity={isPinned || isHovered || isMemberAliasHovered ? 1 : box.isOrphan ? 0.4 : 0.55}
|
|
5767
5818
|
data-group-label-hovered={isHovered && !isPinned ? 'true' : 'false'}
|
|
5819
|
+
data-group-label-member-alias-hovered={isMemberAliasHovered ? 'true' : 'false'}
|
|
5768
5820
|
data-group-label-font-weight={isPinned ? '800' : '700'}
|
|
5769
5821
|
/* Round 479 / Loop — extend drop-shadow visual-polish
|
|
5770
5822
|
family to a 4th anchor: group-label parent text
|
|
@@ -11545,6 +11597,34 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
11545
11597
|
const isPinned = pinnedStatus === row.key;
|
|
11546
11598
|
const isRowHovered = hoveredStatus === row.key;
|
|
11547
11599
|
const isLifted = isRowHovered || isPinned;
|
|
11600
|
+
/* Round 562 / Loop — inspection-overrides-encoding family
|
|
11601
|
+
5th anchor at the legend-swatch scope. When operator
|
|
11602
|
+
hovers a NODE ALIAS on the canvas, the legend swatch
|
|
11603
|
+
that matches that node's status tier lifts r + drop-
|
|
11604
|
+
shadow (R197 + R537 axes) — telegraphing "your
|
|
11605
|
+
inspected node is in this status group".
|
|
11606
|
+
Mirror of R486 minimap-dot inspection-override at the
|
|
11607
|
+
legend-swatch scope.
|
|
11608
|
+
Family progression (5 anchors):
|
|
11609
|
+
R484 recent-row timestamp on alias hover
|
|
11610
|
+
R485 edge particle opacity on alias hover
|
|
11611
|
+
R486 minimap dot opacity to 1.0 on alias hover
|
|
11612
|
+
R561 group-label opacity-1 + ants-gate refinement
|
|
11613
|
+
R562 legend-swatch r+glow on member-alias-matching ← this round
|
|
11614
|
+
Restraint: ONLY swatch lifts, NOT label/fill/ls/fw
|
|
11615
|
+
axes. Direct row-hover gets full treatment; inspection
|
|
11616
|
+
signal gets swatch-only lift — distinct "lighter"
|
|
11617
|
+
visual register matching R561's ants-gate approach
|
|
11618
|
+
(indirect inspection ≠ direct attention). */
|
|
11619
|
+
const hoveredSession = hoveredAlias
|
|
11620
|
+
? (onlineNodes.find(s => s.alias === hoveredAlias) ?? offlineNodes.find(s => s.alias === hoveredAlias))
|
|
11621
|
+
: null;
|
|
11622
|
+
const hoveredAliasRowKey: 'working' | 'idle' | 'offline' | null = !hoveredSession ? null
|
|
11623
|
+
: hoveredSession.status === 'working' ? 'working'
|
|
11624
|
+
: offlineNodes.includes(hoveredSession) ? 'offline'
|
|
11625
|
+
: 'idle';
|
|
11626
|
+
const isMemberAliasMatching = hoveredAliasRowKey === row.key;
|
|
11627
|
+
const isSwatchLifted = isLifted || isMemberAliasMatching;
|
|
11548
11628
|
return (
|
|
11549
11629
|
<g
|
|
11550
11630
|
key={row.key}
|
|
@@ -11704,11 +11784,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
11704
11784
|
r="6"
|
|
11705
11785
|
fill={row.fill}
|
|
11706
11786
|
data-legend-swatch={row.key}
|
|
11707
|
-
data-legend-swatch-state={isPinned ? 'pinned' : isRowHovered ? 'hover' : 'idle'}
|
|
11708
|
-
data-legend-swatch-glow={
|
|
11787
|
+
data-legend-swatch-state={isPinned ? 'pinned' : isRowHovered ? 'hover' : isMemberAliasMatching ? 'member-alias-matching' : 'idle'}
|
|
11788
|
+
data-legend-swatch-glow={isSwatchLifted ? 'true' : 'false'}
|
|
11789
|
+
data-legend-swatch-member-alias-matching={isMemberAliasMatching ? 'true' : 'false'}
|
|
11709
11790
|
style={{
|
|
11710
|
-
|
|
11711
|
-
|
|
11791
|
+
/* R562: swatch lifts on direct row hover, pin, OR
|
|
11792
|
+
member-alias-matching (operator inspecting a node
|
|
11793
|
+
whose status matches this row's tier). Pure paint
|
|
11794
|
+
+ geometry axes — label/fill/ls/fw stay tied to
|
|
11795
|
+
direct row-hover semantics. */
|
|
11796
|
+
r: isSwatchLifted ? '7px' : '6px',
|
|
11797
|
+
filter: isSwatchLifted
|
|
11712
11798
|
? `drop-shadow(0 0 3px ${row.fill}99)`
|
|
11713
11799
|
: undefined,
|
|
11714
11800
|
transition: 'r 150ms ease-out, filter 150ms ease-out',
|
package/package.json
CHANGED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/* Round 561 verification: group-label opacity lifts to 1.0 when
|
|
2
|
+
* operator hovers a NODE ALIAS that's a member of this group.
|
|
3
|
+
* 4th anchor in the inspection-overrides-encoding family.
|
|
4
|
+
*
|
|
5
|
+
* Mock: 3 'alpha-' prefix sessions (1 group) + 3 standalone
|
|
6
|
+
* (orphan band). Hover the alpha-1 node → group 'alpha·' label
|
|
7
|
+
* should lift opacity 0.55 → 1.0.
|
|
8
|
+
*
|
|
9
|
+
* Test phases:
|
|
10
|
+
* 1. confirm grid layout active
|
|
11
|
+
* 2. rest: group 'alpha·' opacity = 0.55
|
|
12
|
+
* 3. hover a node from alpha group → 'alpha·' opacity = 1.0,
|
|
13
|
+
* member-alias-hovered attr = 'true'
|
|
14
|
+
* 4. orphan group should NOT lift (its members aren't hovered)
|
|
15
|
+
* 5. source-side regex confirms wiring
|
|
16
|
+
*/
|
|
17
|
+
import { chromium } from 'playwright';
|
|
18
|
+
import { readFileSync } from 'node:fs';
|
|
19
|
+
|
|
20
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
21
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
22
|
+
|
|
23
|
+
const browser = await chromium.launch({ headless: true });
|
|
24
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
25
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
26
|
+
await ctx.addInitScript(() => {
|
|
27
|
+
try {
|
|
28
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
29
|
+
localStorage.setItem('anet-topo-layout', 'grid');
|
|
30
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
31
|
+
} catch {}
|
|
32
|
+
});
|
|
33
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
34
|
+
const r = await route.fetch();
|
|
35
|
+
const b = await r.json();
|
|
36
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
37
|
+
const mk = (alias, status = 'idle') => ({
|
|
38
|
+
alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
39
|
+
network_id: nid, project_dir: null,
|
|
40
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
41
|
+
});
|
|
42
|
+
// alpha-group has WORKING members → ants run at rest. Hovering a
|
|
43
|
+
// member alias should keep ants running (R561 refined gate).
|
|
44
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
45
|
+
mk('alpha·1', 'working'), mk('alpha·2', 'working'), mk('alpha·3'),
|
|
46
|
+
mk('foo'), mk('bar'), mk('baz'),
|
|
47
|
+
] } });
|
|
48
|
+
});
|
|
49
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
50
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
51
|
+
const page = await ctx.newPage();
|
|
52
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
53
|
+
await page.waitForSelector('[data-group-label]', { timeout: 15000 });
|
|
54
|
+
await page.waitForTimeout(500);
|
|
55
|
+
|
|
56
|
+
const probeGroups = async () => {
|
|
57
|
+
return page.evaluate(() => {
|
|
58
|
+
const els = Array.from(document.querySelectorAll('[data-group-label]'));
|
|
59
|
+
return els.map(el => {
|
|
60
|
+
// Find the matching outer <g> with data-group-box-live to read the
|
|
61
|
+
// ants-gate refinement. The box rect sits within the same parent
|
|
62
|
+
// group as the label — both nest under the per-band <g> in the
|
|
63
|
+
// groupBoxes.map() loop.
|
|
64
|
+
const parent = el.closest('g')?.parentElement || null;
|
|
65
|
+
const boxRect = parent?.querySelector('[data-group-box-live]') || null;
|
|
66
|
+
return {
|
|
67
|
+
key: el.getAttribute('data-group-label'),
|
|
68
|
+
orphan: el.getAttribute('data-group-label-orphan') === 'true',
|
|
69
|
+
opacityAttr: el.getAttribute('data-group-label-opacity'),
|
|
70
|
+
computedOpacity: getComputedStyle(el).opacity,
|
|
71
|
+
memberAliasHovered: el.getAttribute('data-group-label-member-alias-hovered') === 'true',
|
|
72
|
+
boxLive: boxRect?.getAttribute('data-group-box-live'),
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
const restGroups = await probeGroups();
|
|
79
|
+
|
|
80
|
+
// Hover a node from the alpha group.
|
|
81
|
+
await page.hover('g[data-node="alpha·1"]');
|
|
82
|
+
await page.waitForTimeout(400);
|
|
83
|
+
const hoverGroups = await probeGroups();
|
|
84
|
+
|
|
85
|
+
await browser.close();
|
|
86
|
+
|
|
87
|
+
const restAlpha = restGroups.find(g => g.key === 'alpha·');
|
|
88
|
+
const restOrphan = restGroups.find(g => g.orphan);
|
|
89
|
+
const hoverAlpha = hoverGroups.find(g => g.key === 'alpha·');
|
|
90
|
+
const hoverOrphan = hoverGroups.find(g => g.orphan);
|
|
91
|
+
|
|
92
|
+
const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
93
|
+
const sourceFlag = /const isMemberAliasHovered = !!hoveredAlias && groupKeys\[hoveredAlias\] === box\.key;/.test(src);
|
|
94
|
+
const sourceOpacity = /opacity=\{isPinned \|\| isHovered \|\| isMemberAliasHovered \? 1 : box\.isOrphan \? 0\.4 : 0\.55\}/.test(src);
|
|
95
|
+
const sourceAttr = /data-group-label-member-alias-hovered=/.test(src);
|
|
96
|
+
|
|
97
|
+
const results = {
|
|
98
|
+
alpha_present: !!restAlpha,
|
|
99
|
+
orphan_present: !!restOrphan,
|
|
100
|
+
rest_alpha_opacity_0_55: restAlpha?.computedOpacity === '0.55',
|
|
101
|
+
rest_alpha_attr_not_hovered: restAlpha?.memberAliasHovered === false,
|
|
102
|
+
rest_orphan_opacity_0_4: restOrphan?.computedOpacity === '0.4',
|
|
103
|
+
hover_alpha_opacity_1: hoverAlpha?.computedOpacity === '1',
|
|
104
|
+
hover_alpha_attr_hovered: hoverAlpha?.memberAliasHovered === true,
|
|
105
|
+
hover_orphan_opacity_unchanged: hoverOrphan?.computedOpacity === '0.4',
|
|
106
|
+
hover_orphan_attr_not_hovered: hoverOrphan?.memberAliasHovered === false,
|
|
107
|
+
// R561 ants-gate refinement: alpha group has working members.
|
|
108
|
+
// Rest: ants run ('true'). Pre-R561 hovering a member alias
|
|
109
|
+
// halted ants ('false'); R561 keeps them running on member-alias
|
|
110
|
+
// hover ('true'). Direct label hover would still halt — not
|
|
111
|
+
// exercised here.
|
|
112
|
+
rest_alpha_ants_running: restAlpha?.boxLive === 'true',
|
|
113
|
+
hover_alpha_ants_keep_running: hoverAlpha?.boxLive === 'true',
|
|
114
|
+
source_flag: sourceFlag,
|
|
115
|
+
source_opacity: sourceOpacity,
|
|
116
|
+
source_attr: sourceAttr,
|
|
117
|
+
};
|
|
118
|
+
const ok = Object.values(results).every(Boolean);
|
|
119
|
+
console.log(`${ok ? '✅' : '❌'} R561 group-label member-alias-hover opacity lift (4th anchor in inspection-overrides-encoding):`,
|
|
120
|
+
JSON.stringify(results, null, 2),
|
|
121
|
+
'\n rest alpha:', JSON.stringify(restAlpha),
|
|
122
|
+
'\n rest orphan:', JSON.stringify(restOrphan),
|
|
123
|
+
'\n hover alpha:', JSON.stringify(hoverAlpha),
|
|
124
|
+
'\n hover orphan:', JSON.stringify(hoverOrphan));
|
|
125
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/* Round 562 verification: legend-row swatch lifts r + drop-shadow
|
|
2
|
+
* when operator hovers a node alias whose status matches the row's
|
|
3
|
+
* tier. 5th anchor in inspection-overrides-encoding family.
|
|
4
|
+
*
|
|
5
|
+
* Mock: alpha·1 (working) + alpha·2 (idle) + alpha·3 (offline).
|
|
6
|
+
* Hover alpha·1 → 'working' legend swatch should lift; idle +
|
|
7
|
+
* offline swatches stay at rest.
|
|
8
|
+
*
|
|
9
|
+
* Test phases:
|
|
10
|
+
* 1. rest: all 3 swatches r=6, filter=none, attr='false'
|
|
11
|
+
* 2. hover alpha·1 (working) → working swatch r=7, filter contains
|
|
12
|
+
* drop-shadow with green hex; idle + offline unchanged
|
|
13
|
+
* 3. hover alpha·2 (idle) → idle swatch lifts, others rest
|
|
14
|
+
* 4. hover alpha·3 (offline) → offline swatch lifts, others rest
|
|
15
|
+
* 5. source-side regex confirms wiring
|
|
16
|
+
*/
|
|
17
|
+
import { chromium } from 'playwright';
|
|
18
|
+
import { readFileSync } from 'node:fs';
|
|
19
|
+
|
|
20
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
21
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
22
|
+
|
|
23
|
+
const browser = await chromium.launch({ headless: true });
|
|
24
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
|
|
25
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
26
|
+
await ctx.addInitScript(() => {
|
|
27
|
+
try {
|
|
28
|
+
localStorage.setItem('anet-theme', 'cyber');
|
|
29
|
+
localStorage.setItem('anet-topo-layout', 'ring');
|
|
30
|
+
sessionStorage.setItem('anet_v3_auth', '1');
|
|
31
|
+
} catch {}
|
|
32
|
+
});
|
|
33
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
34
|
+
const r = await route.fetch();
|
|
35
|
+
const b = await r.json();
|
|
36
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
37
|
+
const mk = (alias, status) => ({
|
|
38
|
+
alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
39
|
+
network_id: nid, project_dir: null,
|
|
40
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
41
|
+
});
|
|
42
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
43
|
+
mk('alpha·1', 'working'),
|
|
44
|
+
mk('alpha·2', 'idle'),
|
|
45
|
+
mk('alpha·3', 'offline'),
|
|
46
|
+
] } });
|
|
47
|
+
});
|
|
48
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
49
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
50
|
+
const page = await ctx.newPage();
|
|
51
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
|
|
52
|
+
await page.waitForSelector('[data-legend-swatch="working"]', { timeout: 15000 });
|
|
53
|
+
await page.waitForTimeout(500);
|
|
54
|
+
|
|
55
|
+
const probeSwatch = (key) => page.evaluate((k) => {
|
|
56
|
+
const el = document.querySelector(`[data-legend-swatch="${k}"]`);
|
|
57
|
+
if (!el) return null;
|
|
58
|
+
const cs = getComputedStyle(el);
|
|
59
|
+
return {
|
|
60
|
+
r: cs.r,
|
|
61
|
+
filter: cs.filter,
|
|
62
|
+
state: el.getAttribute('data-legend-swatch-state'),
|
|
63
|
+
matching: el.getAttribute('data-legend-swatch-member-alias-matching') === 'true',
|
|
64
|
+
glow: el.getAttribute('data-legend-swatch-glow') === 'true',
|
|
65
|
+
};
|
|
66
|
+
}, key);
|
|
67
|
+
|
|
68
|
+
const restWorking = await probeSwatch('working');
|
|
69
|
+
const restIdle = await probeSwatch('idle');
|
|
70
|
+
const restOffline = await probeSwatch('offline');
|
|
71
|
+
|
|
72
|
+
// Hover working node
|
|
73
|
+
await page.hover('g[data-node="alpha·1"]');
|
|
74
|
+
await page.waitForTimeout(400);
|
|
75
|
+
const hoverWorkingWorking = await probeSwatch('working');
|
|
76
|
+
const hoverWorkingIdle = await probeSwatch('idle');
|
|
77
|
+
const hoverWorkingOffline = await probeSwatch('offline');
|
|
78
|
+
|
|
79
|
+
// Move away to reset
|
|
80
|
+
await page.mouse.move(0, 0);
|
|
81
|
+
await page.waitForTimeout(300);
|
|
82
|
+
|
|
83
|
+
// Hover idle node
|
|
84
|
+
await page.hover('g[data-node="alpha·2"]');
|
|
85
|
+
await page.waitForTimeout(400);
|
|
86
|
+
const hoverIdleIdle = await probeSwatch('idle');
|
|
87
|
+
|
|
88
|
+
// Move away and hover offline node
|
|
89
|
+
await page.mouse.move(0, 0);
|
|
90
|
+
await page.waitForTimeout(300);
|
|
91
|
+
await page.hover('g[data-node="alpha·3"]');
|
|
92
|
+
await page.waitForTimeout(400);
|
|
93
|
+
const hoverOfflineOffline = await probeSwatch('offline');
|
|
94
|
+
|
|
95
|
+
await browser.close();
|
|
96
|
+
|
|
97
|
+
const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
|
|
98
|
+
const sourceFlag = /const isMemberAliasMatching = hoveredAliasRowKey === row\.key;/.test(src);
|
|
99
|
+
const sourceLifted = /const isSwatchLifted = isLifted \|\| isMemberAliasMatching;/.test(src);
|
|
100
|
+
const sourceR = /r: isSwatchLifted \? '7px' : '6px'/.test(src);
|
|
101
|
+
const sourceFilter = /filter: isSwatchLifted/.test(src);
|
|
102
|
+
const sourceAttr = /data-legend-swatch-member-alias-matching=/.test(src);
|
|
103
|
+
|
|
104
|
+
const results = {
|
|
105
|
+
// Rest state — all swatches r=6, no glow
|
|
106
|
+
rest_working_r_6: restWorking?.r === '6px',
|
|
107
|
+
rest_working_filter_none: restWorking?.filter === 'none',
|
|
108
|
+
rest_working_matching_false: restWorking?.matching === false,
|
|
109
|
+
rest_idle_r_6: restIdle?.r === '6px',
|
|
110
|
+
rest_offline_r_6: restOffline?.r === '6px',
|
|
111
|
+
// Hover working node → working swatch lifts; idle + offline stay
|
|
112
|
+
hover_working_w_r_7: hoverWorkingWorking?.r === '7px',
|
|
113
|
+
hover_working_w_matching: hoverWorkingWorking?.matching === true,
|
|
114
|
+
hover_working_w_glow: /drop-shadow\(/.test(hoverWorkingWorking?.filter || ''),
|
|
115
|
+
hover_working_i_r_6: hoverWorkingIdle?.r === '6px',
|
|
116
|
+
hover_working_o_r_6: hoverWorkingOffline?.r === '6px',
|
|
117
|
+
// Hover idle node → idle swatch lifts
|
|
118
|
+
hover_idle_i_r_7: hoverIdleIdle?.r === '7px',
|
|
119
|
+
hover_idle_i_matching: hoverIdleIdle?.matching === true,
|
|
120
|
+
// Hover offline node → offline swatch lifts
|
|
121
|
+
hover_offline_o_r_7: hoverOfflineOffline?.r === '7px',
|
|
122
|
+
hover_offline_o_matching: hoverOfflineOffline?.matching === true,
|
|
123
|
+
// Source
|
|
124
|
+
source_flag: sourceFlag,
|
|
125
|
+
source_lifted: sourceLifted,
|
|
126
|
+
source_r: sourceR,
|
|
127
|
+
source_filter: sourceFilter,
|
|
128
|
+
source_attr: sourceAttr,
|
|
129
|
+
};
|
|
130
|
+
const ok = Object.values(results).every(Boolean);
|
|
131
|
+
console.log(`${ok ? '✅' : '❌'} R562 legend-swatch inspection-overrides-encoding (5th anchor):`,
|
|
132
|
+
JSON.stringify(results, null, 2),
|
|
133
|
+
'\n rest working:', JSON.stringify(restWorking),
|
|
134
|
+
'\n rest idle:', JSON.stringify(restIdle),
|
|
135
|
+
'\n rest offline:', JSON.stringify(restOffline),
|
|
136
|
+
'\n hover alpha·1 (working) → working:', JSON.stringify(hoverWorkingWorking),
|
|
137
|
+
'\n hover alpha·2 (idle) → idle:', JSON.stringify(hoverIdleIdle),
|
|
138
|
+
'\n hover alpha·3 (offline) → offline:', JSON.stringify(hoverOfflineOffline));
|
|
139
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{-Ap6mdNr338P4dKzUWI9f → JETu37K-Slnu1KFPrpLjy}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|