@sleep2agi/agent-network-dashboard 0.5.1-preview.1 → 0.5.1-preview.11
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 +6 -6
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +3 -3
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/0qtk58rfhepeo.js +1 -0
- package/.next/static/chunks/0s2jh27ig6a.q.js +4 -0
- package/.next/static/chunks/17q6k~a.gl31q.js +1 -0
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +171 -16
- package/package.json +1 -1
- package/scripts/topo-active-links-freshness-color-test.mjs +86 -0
- package/scripts/topo-filter-pill-weight-test.mjs +75 -0
- package/scripts/topo-minimap-viewport-hover-test.mjs +109 -0
- package/scripts/topo-more-flows-hover-letterspacing-test.mjs +98 -0
- package/scripts/topo-panel-count-letterspacing-test.mjs +89 -0
- package/scripts/topo-panel-rect-opacity-hover-test.mjs +109 -0
- package/scripts/topo-panel-title-hover-letterspacing-test.mjs +97 -0
- package/scripts/topo-pin-intersection-unit-test.mjs +100 -0
- package/scripts/topo-reset-hover-rotate-test.mjs +102 -0
- package/scripts/topo-zoom-level-hover-letterspacing-test.mjs +91 -0
- package/.next/static/chunks/0wratil0li9xw.js +0 -4
- package/.next/static/chunks/10paf4uz-_0g1.js +0 -1
- package/.next/static/chunks/12wcm9omjb_x6.js +0 -1
- /package/.next/static/{4t8OH-lNFieRsHEC2eZfD → Ac38WRM1JjpuTYJKsfcUB}/_buildManifest.js +0 -0
- /package/.next/static/{4t8OH-lNFieRsHEC2eZfD → Ac38WRM1JjpuTYJKsfcUB}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{4t8OH-lNFieRsHEC2eZfD → Ac38WRM1JjpuTYJKsfcUB}/_ssgManifest.js +0 -0
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":312,"timestamp":129752449608,"id":4,"parentId":1,"tags":{},"startTime":1778937724696,"traceId":"3806f387c4204f42"},{"name":"load-custom-routes","duration":497,"timestamp":129752450102,"id":5,"parentId":1,"tags":{},"startTime":1778937724696,"traceId":"3806f387c4204f42"},{"name":"create-dist-dir","duration":904,"timestamp":129752450643,"id":6,"parentId":1,"tags":{},"startTime":1778937724697,"traceId":"3806f387c4204f42"},{"name":"clean","duration":37998,"timestamp":129752452491,"id":7,"parentId":1,"tags":{},"startTime":1778937724699,"traceId":"3806f387c4204f42"},{"name":"discover-routes","duration":11195,"timestamp":129752573544,"id":8,"parentId":1,"tags":{},"startTime":1778937724820,"traceId":"3806f387c4204f42"},{"name":"create-root-mapping","duration":131,"timestamp":129752584804,"id":9,"parentId":1,"tags":{},"startTime":1778937724831,"traceId":"3806f387c4204f42"},{"name":"generate-route-types","duration":34172,"timestamp":129752588153,"id":10,"parentId":1,"tags":{},"startTime":1778937724834,"traceId":"3806f387c4204f42"},{"name":"public-dir-conflict-check","duration":101,"timestamp":129752622421,"id":11,"parentId":1,"tags":{},"startTime":1778937724869,"traceId":"3806f387c4204f42"},{"name":"generate-routes-manifest","duration":5399,"timestamp":129752622657,"id":12,"parentId":1,"tags":{},"startTime":1778937724869,"traceId":"3806f387c4204f42"},{"name":"run-turbopack","duration":5717587,"timestamp":129752633304,"id":14,"parentId":1,"tags":{},"startTime":1778937724880,"traceId":"3806f387c4204f42"},{"name":"turbopack-build-events","duration":104,"timestamp":129752922101,"id":15,"parentId":1,"tags":{},"startTime":1778937725168,"traceId":"3806f387c4204f42"},{"name":"run-typescript","duration":9168792,"timestamp":129758358900,"id":16,"parentId":1,"tags":{},"startTime":1778937730605,"traceId":"3806f387c4204f42"},{"name":"generate-required-server-files","duration":1958,"timestamp":129767528584,"id":18,"parentId":1,"tags":{},"startTime":1778937739775,"traceId":"3806f387c4204f42"},{"name":"check-static-error-page","duration":15254,"timestamp":129767692356,"id":20,"parentId":19,"tags":{},"startTime":1778937739939,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":458887,"timestamp":129767711265,"id":65,"parentId":22,"tags":{},"startTime":1778937739958,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":474595,"timestamp":129767695733,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778937739942,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":555410,"timestamp":129767711556,"id":67,"parentId":26,"tags":{},"startTime":1778937739958,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":567922,"timestamp":129767699140,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778937739945,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":571069,"timestamp":129767719285,"id":72,"parentId":32,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":590396,"timestamp":129767700038,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":589993,"timestamp":129767711430,"id":66,"parentId":25,"tags":{},"startTime":1778937739958,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":602562,"timestamp":129767698929,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778937739945,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":584468,"timestamp":129767719472,"id":73,"parentId":33,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":603854,"timestamp":129767700167,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":589968,"timestamp":129767719595,"id":75,"parentId":35,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":609231,"timestamp":129767700391,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778937739947,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":596402,"timestamp":129767719613,"id":76,"parentId":36,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":615173,"timestamp":129767700900,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778937739947,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":596672,"timestamp":129767719563,"id":74,"parentId":34,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":615989,"timestamp":129767700274,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778937739947,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":597202,"timestamp":129767719202,"id":71,"parentId":30,"tags":{},"startTime":1778937739965,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":616779,"timestamp":129767699661,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":602243,"timestamp":129767719636,"id":77,"parentId":37,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":620826,"timestamp":129767701129,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778937739947,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":605142,"timestamp":129767719668,"id":80,"parentId":40,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":623386,"timestamp":129767701464,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778937739948,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":621835,"timestamp":129767710852,"id":64,"parentId":21,"tags":{},"startTime":1778937739957,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":638602,"timestamp":129767694130,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778937739940,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":613969,"timestamp":129767719649,"id":78,"parentId":38,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":632388,"timestamp":129767701273,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778937739948,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":616723,"timestamp":129767719679,"id":81,"parentId":42,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":634610,"timestamp":129767701851,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778937739948,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":623773,"timestamp":129767719659,"id":79,"parentId":39,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":642102,"timestamp":129767701373,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778937739948,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":623916,"timestamp":129767719699,"id":83,"parentId":45,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":641215,"timestamp":129767702425,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778937739949,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":630345,"timestamp":129767719731,"id":86,"parentId":48,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":647380,"timestamp":129767702749,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778937739949,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":632916,"timestamp":129767719709,"id":84,"parentId":46,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":650147,"timestamp":129767702535,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778937739949,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":636200,"timestamp":129767719741,"id":87,"parentId":49,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":652278,"timestamp":129767703704,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778937739950,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":639054,"timestamp":129767719751,"id":88,"parentId":50,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":655026,"timestamp":129767703833,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778937739950,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":647339,"timestamp":129767714548,"id":68,"parentId":27,"tags":{},"startTime":1778937739961,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":662659,"timestamp":129767699269,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":642336,"timestamp":129767719762,"id":89,"parentId":51,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":658204,"timestamp":129767703930,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778937739950,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":641875,"timestamp":129767723197,"id":90,"parentId":24,"tags":{},"startTime":1778937739969,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":668856,"timestamp":129767696260,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778937739943,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":639858,"timestamp":129767729708,"id":93,"parentId":43,"tags":{},"startTime":1778937739976,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":667619,"timestamp":129767701988,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778937739948,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":658235,"timestamp":129767714712,"id":69,"parentId":28,"tags":{},"startTime":1778937739961,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":673602,"timestamp":129767699387,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":659505,"timestamp":129767725426,"id":91,"parentId":31,"tags":{},"startTime":1778937739972,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":685215,"timestamp":129767699771,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":665433,"timestamp":129767719720,"id":85,"parentId":47,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":682542,"timestamp":129767702647,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778937739949,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":670502,"timestamp":129767727412,"id":92,"parentId":41,"tags":{},"startTime":1778937739974,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":696398,"timestamp":129767701572,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778937739948,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":689226,"timestamp":129767714959,"id":70,"parentId":29,"tags":{},"startTime":1778937739961,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":704727,"timestamp":129767699507,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778937739946,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":703284,"timestamp":129767719689,"id":82,"parentId":44,"tags":{},"startTime":1778937739966,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":720773,"timestamp":129767702295,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778937739949,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":696051,"timestamp":129767735290,"id":100,"parentId":58,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":725300,"timestamp":129767706126,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778937739952,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":701636,"timestamp":129767735213,"id":94,"parentId":23,"tags":{},"startTime":1778937739981,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":740870,"timestamp":129767696036,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778937739942,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":704102,"timestamp":129767735411,"id":101,"parentId":59,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":733398,"timestamp":129767706343,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778937739953,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":709880,"timestamp":129767735427,"id":102,"parentId":61,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":738331,"timestamp":129767707022,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778937739953,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":721450,"timestamp":129767735447,"id":104,"parentId":63,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":749643,"timestamp":129767707333,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778937739954,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":721940,"timestamp":129767735262,"id":97,"parentId":54,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":752493,"timestamp":129767704748,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778937739951,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":722138,"timestamp":129767735272,"id":98,"parentId":55,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":752475,"timestamp":129767704973,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778937739951,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":715420,"timestamp":129767746311,"id":105,"parentId":60,"tags":{},"startTime":1778937739993,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":755228,"timestamp":129767706543,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778937739953,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":704207,"timestamp":129767759411,"id":106,"parentId":57,"tags":{},"startTime":1778937740006,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":758166,"timestamp":129767705488,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778937739952,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":736023,"timestamp":129767735437,"id":103,"parentId":62,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":764350,"timestamp":129767707181,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778937739953,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":740344,"timestamp":129767735251,"id":96,"parentId":53,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":771067,"timestamp":129767704575,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778937739951,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":745872,"timestamp":129767735240,"id":95,"parentId":52,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":776785,"timestamp":129767704364,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778937739951,"traceId":"3806f387c4204f42"},{"name":"is-page-static","duration":751805,"timestamp":129767735281,"id":99,"parentId":56,"tags":{},"startTime":1778937739982,"traceId":"3806f387c4204f42"},{"name":"check-page","duration":781907,"timestamp":129767705210,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778937739951,"traceId":"3806f387c4204f42"},{"name":"static-check","duration":795832,"timestamp":129767691325,"id":19,"parentId":1,"tags":{},"startTime":1778937739938,"traceId":"3806f387c4204f42"}]
|
|
2
|
-
[{"name":"write-routes-manifest","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":325,"timestamp":133060553020,"id":4,"parentId":1,"tags":{},"startTime":1778941032799,"traceId":"aed8c4a27ab998ac"},{"name":"load-custom-routes","duration":484,"timestamp":133060553500,"id":5,"parentId":1,"tags":{},"startTime":1778941032800,"traceId":"aed8c4a27ab998ac"},{"name":"create-dist-dir","duration":756,"timestamp":133060554061,"id":6,"parentId":1,"tags":{},"startTime":1778941032800,"traceId":"aed8c4a27ab998ac"},{"name":"clean","duration":35106,"timestamp":133060555556,"id":7,"parentId":1,"tags":{},"startTime":1778941032802,"traceId":"aed8c4a27ab998ac"},{"name":"discover-routes","duration":11398,"timestamp":133060672248,"id":8,"parentId":1,"tags":{},"startTime":1778941032919,"traceId":"aed8c4a27ab998ac"},{"name":"create-root-mapping","duration":130,"timestamp":133060683704,"id":9,"parentId":1,"tags":{},"startTime":1778941032930,"traceId":"aed8c4a27ab998ac"},{"name":"generate-route-types","duration":37301,"timestamp":133060686485,"id":10,"parentId":1,"tags":{},"startTime":1778941032933,"traceId":"aed8c4a27ab998ac"},{"name":"public-dir-conflict-check","duration":103,"timestamp":133060723875,"id":11,"parentId":1,"tags":{},"startTime":1778941032970,"traceId":"aed8c4a27ab998ac"},{"name":"generate-routes-manifest","duration":5086,"timestamp":133060724135,"id":12,"parentId":1,"tags":{},"startTime":1778941032970,"traceId":"aed8c4a27ab998ac"},{"name":"run-turbopack","duration":5900025,"timestamp":133060735450,"id":14,"parentId":1,"tags":{},"startTime":1778941032982,"traceId":"aed8c4a27ab998ac"},{"name":"turbopack-build-events","duration":73,"timestamp":133061016652,"id":15,"parentId":1,"tags":{},"startTime":1778941033263,"traceId":"aed8c4a27ab998ac"},{"name":"run-typescript","duration":9138305,"timestamp":133066644397,"id":16,"parentId":1,"tags":{},"startTime":1778941038891,"traceId":"aed8c4a27ab998ac"},{"name":"generate-required-server-files","duration":3081,"timestamp":133075784149,"id":18,"parentId":1,"tags":{},"startTime":1778941048030,"traceId":"aed8c4a27ab998ac"},{"name":"check-static-error-page","duration":18839,"timestamp":133075942150,"id":20,"parentId":19,"tags":{},"startTime":1778941048188,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":399280,"timestamp":133075965883,"id":65,"parentId":22,"tags":{},"startTime":1778941048212,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":419716,"timestamp":133075945612,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778941048192,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":539395,"timestamp":133075966910,"id":71,"parentId":30,"tags":{},"startTime":1778941048213,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":555421,"timestamp":133075951018,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778941048197,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":543601,"timestamp":133075966978,"id":72,"parentId":32,"tags":{},"startTime":1778941048213,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":558598,"timestamp":133075952059,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778941048198,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":550863,"timestamp":133075967188,"id":73,"parentId":33,"tags":{},"startTime":1778941048213,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":565767,"timestamp":133075952381,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778941048199,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":552767,"timestamp":133075967275,"id":74,"parentId":34,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":567572,"timestamp":133075952540,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778941048199,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":557505,"timestamp":133075967309,"id":75,"parentId":35,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":572173,"timestamp":133075952689,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778941048199,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":559054,"timestamp":133075966201,"id":67,"parentId":26,"tags":{},"startTime":1778941048212,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":575195,"timestamp":133075950110,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778941048196,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":562065,"timestamp":133075967332,"id":76,"parentId":36,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":576177,"timestamp":133075953264,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778941048200,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":568734,"timestamp":133075967382,"id":78,"parentId":38,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":582554,"timestamp":133075953622,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778941048200,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":572710,"timestamp":133075967399,"id":79,"parentId":39,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":586428,"timestamp":133075953726,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778941048200,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":581672,"timestamp":133075967415,"id":80,"parentId":40,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":595306,"timestamp":133075953832,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778941048200,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":584145,"timestamp":133075966322,"id":68,"parentId":27,"tags":{},"startTime":1778941048213,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":600141,"timestamp":133075950378,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778941048197,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":587206,"timestamp":133075966437,"id":69,"parentId":28,"tags":{},"startTime":1778941048213,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":603173,"timestamp":133075950523,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778941048197,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":588863,"timestamp":133075967427,"id":81,"parentId":42,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":602111,"timestamp":133075954242,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778941048201,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":592754,"timestamp":133075965427,"id":64,"parentId":21,"tags":{},"startTime":1778941048212,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":614330,"timestamp":133075943891,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778941048190,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":590915,"timestamp":133075967442,"id":82,"parentId":44,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":603693,"timestamp":133075954695,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778941048201,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":591263,"timestamp":133075967362,"id":77,"parentId":37,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":605199,"timestamp":133075953471,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778941048200,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":596766,"timestamp":133075967469,"id":84,"parentId":46,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":609338,"timestamp":133075954945,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778941048201,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":596944,"timestamp":133075967520,"id":87,"parentId":49,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":607445,"timestamp":133075957057,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778941048203,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":598600,"timestamp":133075966058,"id":66,"parentId":25,"tags":{},"startTime":1778941048212,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":614791,"timestamp":133075949904,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778941048196,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":599913,"timestamp":133075966745,"id":70,"parentId":29,"tags":{},"startTime":1778941048213,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":615970,"timestamp":133075950727,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778941048197,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":600110,"timestamp":133075967457,"id":83,"parentId":45,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":612774,"timestamp":133075954833,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778941048201,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":604716,"timestamp":133075967547,"id":89,"parentId":51,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":615015,"timestamp":133075957306,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778941048204,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":604967,"timestamp":133075967532,"id":88,"parentId":50,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":615330,"timestamp":133075957201,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778941048203,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":598233,"timestamp":133075975697,"id":93,"parentId":43,"tags":{},"startTime":1778941048222,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":619571,"timestamp":133075954399,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778941048201,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":611740,"timestamp":133075974340,"id":92,"parentId":41,"tags":{},"startTime":1778941048221,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":632198,"timestamp":133075953929,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778941048200,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":632074,"timestamp":133075972372,"id":90,"parentId":24,"tags":{},"startTime":1778941048219,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":658358,"timestamp":133075946351,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778941048193,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":644395,"timestamp":133075967505,"id":86,"parentId":48,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":655078,"timestamp":133075956877,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778941048203,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":642730,"timestamp":133075973410,"id":91,"parentId":31,"tags":{},"startTime":1778941048220,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":664795,"timestamp":133075951394,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778941048198,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":668327,"timestamp":133075978212,"id":95,"parentId":52,"tags":{},"startTime":1778941048224,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":688906,"timestamp":133075957710,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778941048204,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":679009,"timestamp":133075978275,"id":100,"parentId":58,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":697857,"timestamp":133075959499,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778941048206,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":692491,"timestamp":133075967490,"id":85,"parentId":47,"tags":{},"startTime":1778941048214,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":704960,"timestamp":133075955099,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778941048201,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":682879,"timestamp":133075978222,"id":96,"parentId":53,"tags":{},"startTime":1778941048224,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":703253,"timestamp":133075957917,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778941048204,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":687776,"timestamp":133075978389,"id":101,"parentId":59,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":706485,"timestamp":133075959729,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778941048206,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":692050,"timestamp":133075978410,"id":102,"parentId":61,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":710092,"timestamp":133075960413,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778941048207,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":695858,"timestamp":133075978183,"id":94,"parentId":23,"tags":{},"startTime":1778941048224,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":728169,"timestamp":133075945926,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778941048192,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":696532,"timestamp":133075978418,"id":103,"parentId":62,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":714412,"timestamp":133075960579,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778941048207,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":697218,"timestamp":133075978431,"id":104,"parentId":63,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":714959,"timestamp":133075960732,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778941048207,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":697734,"timestamp":133075978238,"id":97,"parentId":54,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":717915,"timestamp":133075958114,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778941048204,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":694219,"timestamp":133075986244,"id":105,"parentId":60,"tags":{},"startTime":1778941048233,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":720586,"timestamp":133075959924,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778941048206,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":672077,"timestamp":133076011609,"id":106,"parentId":57,"tags":{},"startTime":1778941048258,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":724942,"timestamp":133075958785,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778941048205,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":710939,"timestamp":133075978251,"id":98,"parentId":55,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":730899,"timestamp":133075958328,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778941048205,"traceId":"aed8c4a27ab998ac"},{"name":"is-page-static","duration":711326,"timestamp":133075978265,"id":99,"parentId":56,"tags":{},"startTime":1778941048225,"traceId":"aed8c4a27ab998ac"},{"name":"check-page","duration":731098,"timestamp":133075958537,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778941048205,"traceId":"aed8c4a27ab998ac"},{"name":"static-check","duration":748740,"timestamp":133075940945,"id":19,"parentId":1,"tags":{},"startTime":1778941048187,"traceId":"aed8c4a27ab998ac"}]
|
|
2
|
+
[{"name":"write-routes-manifest","duration":505,"timestamp":133076701530,"id":108,"parentId":1,"tags":{},"startTime":1778941048948,"traceId":"aed8c4a27ab998ac"},{"name":"load-dotenv","duration":50,"timestamp":133076712582,"id":111,"parentId":110,"tags":{},"startTime":1778941048959,"traceId":"aed8c4a27ab998ac"},{"name":"run-export-path-map","duration":759,"timestamp":133076715323,"id":112,"parentId":110,"tags":{},"startTime":1778941048962,"traceId":"aed8c4a27ab998ac"},{"name":"next-export","duration":633563,"timestamp":133076711395,"id":110,"parentId":1,"tags":{},"startTime":1778941048958,"traceId":"aed8c4a27ab998ac"},{"name":"move-exported-app-not-found-","duration":573,"timestamp":133077347915,"id":113,"parentId":109,"tags":{},"startTime":1778941049594,"traceId":"aed8c4a27ab998ac"},{"name":"move-exported-app-global-error-","duration":402,"timestamp":133077348584,"id":114,"parentId":109,"tags":{},"startTime":1778941049595,"traceId":"aed8c4a27ab998ac"},{"name":"static-generation","duration":645230,"timestamp":133076705701,"id":109,"parentId":1,"tags":{},"startTime":1778941048952,"traceId":"aed8c4a27ab998ac"},{"name":"write-routes-manifest","duration":379,"timestamp":133077351219,"id":115,"parentId":1,"tags":{},"startTime":1778941049597,"traceId":"aed8c4a27ab998ac"},{"name":"print-tree-view","duration":4210,"timestamp":133077364219,"id":116,"parentId":1,"tags":{},"startTime":1778941049610,"traceId":"aed8c4a27ab998ac"},{"name":"write-route-bundle-stats","duration":13105,"timestamp":133077368460,"id":117,"parentId":1,"tags":{},"startTime":1778941049615,"traceId":"aed8c4a27ab998ac"},{"name":"telemetry-flush","duration":60171,"timestamp":133077381595,"id":118,"parentId":1,"tags":{},"startTime":1778941049628,"traceId":"aed8c4a27ab998ac"},{"name":"next-build","duration":16949182,"timestamp":133060492619,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778941032739,"traceId":"aed8c4a27ab998ac"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5900025,"timestamp":133060735450,"id":14,"parentId":1,"tags":{},"startTime":1778941032982,"traceId":"aed8c4a27ab998ac"},{"name":"turbopack-build-events","duration":73,"timestamp":133061016652,"id":15,"parentId":1,"tags":{},"startTime":1778941033263,"traceId":"aed8c4a27ab998ac"},{"name":"run-typescript","duration":9138305,"timestamp":133066644397,"id":16,"parentId":1,"tags":{},"startTime":1778941038891,"traceId":"aed8c4a27ab998ac"},{"name":"static-check","duration":748740,"timestamp":133075940945,"id":19,"parentId":1,"tags":{},"startTime":1778941048187,"traceId":"aed8c4a27ab998ac"},{"name":"static-generation","duration":645230,"timestamp":133076705701,"id":109,"parentId":1,"tags":{},"startTime":1778941048952,"traceId":"aed8c4a27ab998ac"},{"name":"telemetry-flush","duration":60171,"timestamp":133077381595,"id":118,"parentId":1,"tags":{},"startTime":1778941049628,"traceId":"aed8c4a27ab998ac"},{"name":"next-build","duration":16949182,"timestamp":133060492619,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778941032739,"traceId":"aed8c4a27ab998ac"}]
|
|
@@ -1026,6 +1026,42 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
1026
1026
|
// navigation footer. Drives the on-hover opacity boost + underline
|
|
1027
1027
|
// that signals interactivity, mirroring the hoveredHub idiom above.
|
|
1028
1028
|
const [hoveredRecentMore, setHoveredRecentMore] = useState(false);
|
|
1029
|
+
// Round 346 / Loop: minimap-container hover affordance. The minimap
|
|
1030
|
+
// is a click-target (role=button at line ~7810, recenter-on-click +
|
|
1031
|
+
// Enter→resetView) but pre-R346 nothing visually changed on hover —
|
|
1032
|
+
// the only hint was the `cursor: crosshair` style. R346 lifts the
|
|
1033
|
+
// viewport rect (strokeWidth 1.5 → 1.75 + opacity 0.9 → 1.0) when
|
|
1034
|
+
// the user enters the minimap, marking "this is the recenter target
|
|
1035
|
+
// and it's alive". Sibling polish to the R332 minimap rounded-md →
|
|
1036
|
+
// rounded-lg corner family — that round refined geometry, this one
|
|
1037
|
+
// gives the viewport indicator inside the geometry a hover state.
|
|
1038
|
+
// 280ms ease-out transition list matches R199 smoothView vocabulary
|
|
1039
|
+
// so the visual joins the existing rhythm on the same rect.
|
|
1040
|
+
const [hoveredMinimap, setHoveredMinimap] = useState(false);
|
|
1041
|
+
// Round 347 / Loop: zoom-level readout hover-state letter-spacing
|
|
1042
|
+
// tween (0 → 0.5 px). The readout sandwiched between zoom-out /
|
|
1043
|
+
// zoom-in is a passive percent display — pre-R347 it had no hover
|
|
1044
|
+
// feedback at all (only a `title` tooltip). R347 extends the R344
|
|
1045
|
+
// (`+N more flows` footer) + R345 (panel titles) hover-letter-
|
|
1046
|
+
// spacing family from panel/footer surfaces into the HTML chrome
|
|
1047
|
+
// strip. Hovering the readout spreads its digits 0.5 px, signalling
|
|
1048
|
+
// "this is alive". tabular-nums + minWidth: 46 from R225 still lock
|
|
1049
|
+
// the column so the tween doesn't shove neighbouring controls.
|
|
1050
|
+
// 200ms ease-out joins the existing R264 color/border transition
|
|
1051
|
+
// list on the same span.
|
|
1052
|
+
const [hoveredZoomLevel, setHoveredZoomLevel] = useState(false);
|
|
1053
|
+
// Round 350 / Loop: reset-button icon hover-rotate preview of the
|
|
1054
|
+
// R184 click-spin. Pre-R350 hovering the reset button only changed
|
|
1055
|
+
// the button bg (white/5); the icon inside stayed perfectly still.
|
|
1056
|
+
// R350 nudges the icon -8° on hover — a tactile hint that this
|
|
1057
|
+
// button rotates the icon on click. When the click fires, the
|
|
1058
|
+
// R184 anet-reset-spin keyframe animation overrides the hover
|
|
1059
|
+
// transform for its 450 ms run (CSS animations win over transitions
|
|
1060
|
+
// on the same property); when the animation ends + React removes
|
|
1061
|
+
// the className, the inline transform eases back to whatever the
|
|
1062
|
+
// hover state says — either -8° (still hovering) or 0 (mouse left).
|
|
1063
|
+
// 350th-round milestone polish.
|
|
1064
|
+
const [hoveredReset, setHoveredReset] = useState(false);
|
|
1029
1065
|
// R135: panel-wide hover-elevation. The recent-signal + legend
|
|
1030
1066
|
// panels both already host clickable rows (R56/R116 recent rows,
|
|
1031
1067
|
// R55/R61 legend rows) and a clickable footer (R133), so the
|
|
@@ -2259,7 +2295,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2259
2295
|
data-active-filter="status"
|
|
2260
2296
|
data-filter-match-count={matchCount}
|
|
2261
2297
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
2262
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2298
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2263
2299
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear filter'}
|
|
2264
2300
|
onClick={() => setPinnedStatus(null)}
|
|
2265
2301
|
style={{
|
|
@@ -2297,7 +2333,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2297
2333
|
data-active-filter="group"
|
|
2298
2334
|
data-filter-match-count={matchCount}
|
|
2299
2335
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
2300
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2336
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2301
2337
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear filter'}
|
|
2302
2338
|
onClick={() => setPinnedGroup(null)}
|
|
2303
2339
|
style={{
|
|
@@ -2347,7 +2383,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2347
2383
|
data-active-filter="vendor"
|
|
2348
2384
|
data-filter-match-count={matchCount}
|
|
2349
2385
|
data-filter-match-aliases={matchAliases.join(',')}
|
|
2350
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2386
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2351
2387
|
title={matchCount > 0 ? `${matchPreview}${matchSuffix} — click to clear` : 'Click to clear vendor filter'}
|
|
2352
2388
|
onClick={() => setPinnedVendor(null)}
|
|
2353
2389
|
style={{
|
|
@@ -2395,7 +2431,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2395
2431
|
data-filter-match-count={link.count}
|
|
2396
2432
|
data-filter-match-aliases={`${link.from},${link.to}`}
|
|
2397
2433
|
data-active-filter-edge-hot={isHot ? 'true' : 'false'}
|
|
2398
|
-
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2434
|
+
className="inline-flex items-center gap-1.5 px-2.5 py-1 rounded-md font-mono font-medium text-xs border anet-fade-in anet-topo-chip-focus"
|
|
2399
2435
|
title={`${link.from} → ${link.to} (${link.count} msg${link.count === 1 ? '' : 's'}${isHot ? ', hot lane · ≥ 10' : ''}) — click to clear`}
|
|
2400
2436
|
onClick={() => setPinnedEdgeKey(null)}
|
|
2401
2437
|
style={{
|
|
@@ -2586,7 +2622,22 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2586
2622
|
R150 pin-pill family parity now complete with
|
|
2587
2623
|
this composed-pin sibling). data-pin-intersection-
|
|
2588
2624
|
count-* attrs expose both spans for tests. */}
|
|
2589
|
-
|
|
2625
|
+
{/* Round 341 / Loop: middle " pins" unit word
|
|
2626
|
+
previously sat as a bare text node between the
|
|
2627
|
+
two count spans, while the matches-count span
|
|
2628
|
+
already carried opacity-0.7 (R335 + R324 era).
|
|
2629
|
+
The pinDimCount span is prominent and the
|
|
2630
|
+
matches count is recessive — but the literal
|
|
2631
|
+
" pins" was at FULL opacity, breaking the
|
|
2632
|
+
chip-internal hierarchy unified across R333/
|
|
2633
|
+
R335/R336/R337/R338/R340. R341 wraps " pins"
|
|
2634
|
+
in an opacity-0.7 span so the chip reads:
|
|
2635
|
+
pinDimCount (prominent value)
|
|
2636
|
+
" pins" (recessive unit)
|
|
2637
|
+
" · {N}" (recessive count)
|
|
2638
|
+
Three-tier hierarchy on a single chip; 7th
|
|
2639
|
+
surface in the chip-internal-hierarchy arc. */}
|
|
2640
|
+
<span className="tabular-nums" data-pin-intersection-count-dims>{pinDimCount}</span><span className="opacity-70" data-pin-intersection-unit> pins</span><span className="opacity-70 tabular-nums" data-pin-intersection-count-matches> · {matchAliases.length}</span>
|
|
2590
2641
|
{/* Round 237 / Loop: ⚠ warning glyph picks up the
|
|
2591
2642
|
always-mount-opacity-gate idiom. Pre-R237 the
|
|
2592
2643
|
glyph was conditionally rendered on isEmpty,
|
|
@@ -2900,8 +2951,19 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
2900
2951
|
const dotColor = isLight
|
|
2901
2952
|
? `rgba(13, 148, 136, ${alpha.toFixed(2)})`
|
|
2902
2953
|
: `rgba(34, 211, 238, ${alpha.toFixed(2)})`;
|
|
2954
|
+
// Round 342 / Loop: active-links chip freshness suffix
|
|
2955
|
+
// wrapper text-gray-500 → text-gray-400 (R317
|
|
2956
|
+
// subordinate-text-lift family applied to chrome
|
|
2957
|
+
// inactive Layout toggle + R333 vendor count suffix).
|
|
2958
|
+
// The "last 5s ago" suffix is chip-subordinate
|
|
2959
|
+
// metadata; gray-500 sat near-invisible against the
|
|
2960
|
+
// chip's outer color, gray-400 lifts it into the band
|
|
2961
|
+
// where the eye reads it as deliberate freshness
|
|
2962
|
+
// annotation. The freshness DOT keeps its own inline
|
|
2963
|
+
// color: dotColor — the lift only affects the trailing
|
|
2964
|
+
// literal "last {rel}" text.
|
|
2903
2965
|
return (
|
|
2904
|
-
<span className="text-gray-
|
|
2966
|
+
<span className="text-gray-400">
|
|
2905
2967
|
<span
|
|
2906
2968
|
data-active-links-freshness-dot
|
|
2907
2969
|
data-active-links-freshness-alpha={alpha.toFixed(2)}
|
|
@@ -6198,7 +6260,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6198
6260
|
x="0" y="0" width="230" height="88" rx="10"
|
|
6199
6261
|
fill={pal.legendBox.fill}
|
|
6200
6262
|
stroke={pal.legendBox.stroke}
|
|
6201
|
-
|
|
6263
|
+
// Round 348 / Loop: recent-signal panel rect opacity hover-
|
|
6264
|
+
// state bump — joins the panel-hover cue stack (R135 drop-
|
|
6265
|
+
// shadow boost + R345 title letter-spacing tween 0.3 → 0.4
|
|
6266
|
+
// + R266 fill theme-flip). Cyber 0.92 → 0.97, light 0.97 →
|
|
6267
|
+
// 1.0 on hoveredPanel === 'recent'. The panel "solidifies"
|
|
6268
|
+
// on hover — pure paint-level change, geometry-safe (bbox
|
|
6269
|
+
// unchanged so topo-overlap-test invariants hold). The
|
|
6270
|
+
// R247 transition list already includes `opacity 200ms
|
|
6271
|
+
// ease-out` so the value tween is automatic. Sibling
|
|
6272
|
+
// change at legend panel rect below (~line 7222).
|
|
6273
|
+
opacity={hoveredPanel === 'recent' ? (isLight ? 1 : 0.97) : (isLight ? 0.97 : 0.92)}
|
|
6202
6274
|
style={{
|
|
6203
6275
|
/* R135: drop-shadow intensifies on panel hover. Base
|
|
6204
6276
|
shadow (2px / 6px blur) signals card elevation
|
|
@@ -6250,7 +6322,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6250
6322
|
title (line ~6556) — both panels share the same
|
|
6251
6323
|
editorial-text-spacing convention. data-recent-panel-
|
|
6252
6324
|
title handle unchanged so R266 test still resolves. */}
|
|
6253
|
-
|
|
6325
|
+
{/* Round 345 / Loop: recent-signal panel title gains
|
|
6326
|
+
letter-spacing tween 0.3 → 0.4 on panel hover.
|
|
6327
|
+
hoveredPanel === 'recent' is set by the panel <g>
|
|
6328
|
+
wrapper's onMouseEnter (line ~6263 area). Sibling to
|
|
6329
|
+
R344 hover-letter-spacing applied to the +N more
|
|
6330
|
+
flows footer — same gesture vocabulary at a panel-
|
|
6331
|
+
title scope: hovering the panel chrome spreads the
|
|
6332
|
+
title 0.1 px, signalling "this is a coherent unit
|
|
6333
|
+
you're entering". transition list extends letter-
|
|
6334
|
+
spacing 200ms ease-out alongside existing fill 200ms. */}
|
|
6335
|
+
<text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight="700" letterSpacing={hoveredPanel === 'recent' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out' }} data-recent-panel-title>recent signal</text>
|
|
6254
6336
|
{/* R96: header count now matches what the rows show. Pre-R96
|
|
6255
6337
|
this read "X msgs" off the raw messages array, but the
|
|
6256
6338
|
rows below render DEDUPED flowLinks — so a fleet with 10
|
|
@@ -6325,6 +6407,21 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6325
6407
|
textAnchor="end"
|
|
6326
6408
|
fontSize="10"
|
|
6327
6409
|
fontFamily="monospace"
|
|
6410
|
+
// Round 349 / Loop: editorial letter-spacing 0.2 on the
|
|
6411
|
+
// recent-signal panel header count. Sits one tier below
|
|
6412
|
+
// the R301 panel title letterSpacing="0.3" so the panel
|
|
6413
|
+
// header reads as a 2-step hierarchy (title 0.3 / count
|
|
6414
|
+
// 0.2). Sibling change on the legend panel count below
|
|
6415
|
+
// closes the panel-pair editorial symmetry. Joins the
|
|
6416
|
+
// R285 / R289 / R301 / R302 / R304 / R325 editorial-
|
|
6417
|
+
// letterspacing tier at the panel-summary scope. The
|
|
6418
|
+
// R162 freshness fill, R225 tabular-nums, R311 fw=600,
|
|
6419
|
+
// R336 unit-tspan opacity-0.7 split all preserved —
|
|
6420
|
+
// the tier propagates to all descendant tspans via
|
|
6421
|
+
// SVG inheritance. data-recent-panel-count-letter-
|
|
6422
|
+
// spacing exposes the value for tests.
|
|
6423
|
+
letterSpacing="0.2"
|
|
6424
|
+
data-recent-panel-count-letter-spacing="0.2"
|
|
6328
6425
|
>
|
|
6329
6426
|
{/* Round 225 / Loop: tabular-nums on the panel-header
|
|
6330
6427
|
flow-count tspan. The "{N} flows" string lives in
|
|
@@ -7085,6 +7182,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7085
7182
|
preserved for the <title> tooltip — only the SVG
|
|
7086
7183
|
render splits. data-recent-panel-more-unit exposes
|
|
7087
7184
|
the unit tspan for tests. */}
|
|
7185
|
+
{/* Round 344 / Loop: footer hover gains letter-spacing
|
|
7186
|
+
tween 0.2 → 0.3. R325 set rest letter-spacing
|
|
7187
|
+
0.2 to join the editorial-spacing family; R344
|
|
7188
|
+
adds a 0.1px hover spread that layers on top of
|
|
7189
|
+
R195 cyan fill + R325 spacing + R133 underline
|
|
7190
|
+
so the footer reads "lit up and spaced" on
|
|
7191
|
+
hover — sibling to R218/R219/R220 pin-signature
|
|
7192
|
+
letter-spacing family applied to a hover-only
|
|
7193
|
+
surface. transition list extends letter-spacing
|
|
7194
|
+
200ms ease-out alongside the existing opacity/
|
|
7195
|
+
fill easings. */}
|
|
7088
7196
|
<text
|
|
7089
7197
|
x="115" y="82"
|
|
7090
7198
|
textAnchor="middle"
|
|
@@ -7092,12 +7200,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7092
7200
|
fontSize="9"
|
|
7093
7201
|
fontFamily="monospace"
|
|
7094
7202
|
fontStyle="italic"
|
|
7095
|
-
letterSpacing=
|
|
7203
|
+
letterSpacing={hoveredRecentMore ? '0.3' : '0.2'}
|
|
7096
7204
|
opacity={hoveredRecentMore ? 0.85 : 0.55}
|
|
7097
7205
|
textDecoration={hoveredRecentMore ? 'underline' : 'none'}
|
|
7098
7206
|
data-recent-panel-more={moreCount}
|
|
7099
7207
|
data-recent-panel-more-hovered={hoveredRecentMore ? 'true' : 'false'}
|
|
7100
|
-
style={{ transition: 'opacity 150ms ease-out, fill 200ms ease-out' }}
|
|
7208
|
+
style={{ transition: 'opacity 150ms ease-out, fill 200ms ease-out, letter-spacing 200ms ease-out' }}
|
|
7101
7209
|
>
|
|
7102
7210
|
{`+ ${moreCount}`}
|
|
7103
7211
|
<tspan opacity="0.7" data-recent-panel-more-unit>{` more flow${moreCount === 1 ? '' : 's'}`}</tspan>
|
|
@@ -7149,7 +7257,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7149
7257
|
x="0" y="0" width="224" height="88" rx="10"
|
|
7150
7258
|
fill={pal.legendBox.fill}
|
|
7151
7259
|
stroke={pal.legendBox.stroke}
|
|
7152
|
-
|
|
7260
|
+
// R348 sibling — legend panel rect opacity hover-state
|
|
7261
|
+
// bump 0.92 → 0.97 (cyber) / 0.97 → 1 (light) on
|
|
7262
|
+
// hoveredPanel === 'legend'. Pairs with the recent-signal
|
|
7263
|
+
// panel rect above so the two corner panels' hover cues
|
|
7264
|
+
// stay symmetric. Geometry-safe (paint-only).
|
|
7265
|
+
opacity={hoveredPanel === 'legend' ? (isLight ? 1 : 0.97) : (isLight ? 0.97 : 0.92)}
|
|
7153
7266
|
style={{
|
|
7154
7267
|
filter: hoveredPanel === 'legend'
|
|
7155
7268
|
? (isLight ? 'drop-shadow(0 4px 12px rgba(15,23,42,0.14))'
|
|
@@ -7172,7 +7285,9 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7172
7285
|
surrounding chrome eased; R266 closes both at once. */}
|
|
7173
7286
|
{/* R301: sibling to recent-signal panel title above —
|
|
7174
7287
|
same letterSpacing 0.3 for editorial parity. */}
|
|
7175
|
-
|
|
7288
|
+
{/* R345 sibling — legend panel title same hover letter-
|
|
7289
|
+
spacing tween 0.3 → 0.4 on panel hover. */}
|
|
7290
|
+
<text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight="700" letterSpacing={hoveredPanel === 'legend' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out' }} data-legend-panel-title>legend</text>
|
|
7176
7291
|
{/* Round 257 / Loop: legend panel header count picks up the
|
|
7177
7292
|
symmetric 13L/13R inner-padding pattern from the recent-
|
|
7178
7293
|
signal panel. Pre-R257 the legend header was 13px from
|
|
@@ -7236,7 +7351,14 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7236
7351
|
<text
|
|
7237
7352
|
x="211" y="21" textAnchor="end"
|
|
7238
7353
|
fill={pal.legendAccent} fontSize="10" fontFamily="monospace" fontWeight="600"
|
|
7354
|
+
// R349 sibling — legend panel header count picks up
|
|
7355
|
+
// letterSpacing="0.2", one tier below the R301 panel
|
|
7356
|
+
// title 0.3. Pairs with the recent-signal panel count
|
|
7357
|
+
// letter-spacing above so the two corner panels' header
|
|
7358
|
+
// typography stays editorially symmetric.
|
|
7359
|
+
letterSpacing="0.2"
|
|
7239
7360
|
data-legend-panel-count
|
|
7361
|
+
data-legend-panel-count-letter-spacing="0.2"
|
|
7240
7362
|
style={{
|
|
7241
7363
|
transition: 'fill 200ms ease-out',
|
|
7242
7364
|
fontVariantNumeric: 'tabular-nums',
|
|
@@ -7778,7 +7900,13 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7778
7900
|
resetView();
|
|
7779
7901
|
}
|
|
7780
7902
|
}}
|
|
7903
|
+
// R346: viewport rect hover affordance driven by parent.
|
|
7904
|
+
onMouseEnter={() => setHoveredMinimap(true)}
|
|
7905
|
+
onMouseLeave={() => setHoveredMinimap(false)}
|
|
7906
|
+
onFocus={() => setHoveredMinimap(true)}
|
|
7907
|
+
onBlur={() => setHoveredMinimap(false)}
|
|
7781
7908
|
data-topo-minimap
|
|
7909
|
+
data-topo-minimap-hovered={hoveredMinimap ? 'true' : 'false'}
|
|
7782
7910
|
>
|
|
7783
7911
|
<svg width={MW} height={MH} viewBox={`0 0 ${MW} ${MH}`} style={{ display: 'block' }}>
|
|
7784
7912
|
{/* Round 198 / Loop: minimap dots gain smooth status
|
|
@@ -7857,13 +7985,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
7857
7985
|
x={Math.max(0, rectX)} y={Math.max(0, rectY)}
|
|
7858
7986
|
width={Math.max(0, Math.min(MW - Math.max(0, rectX), rectW))}
|
|
7859
7987
|
height={Math.max(0, Math.min(MH - Math.max(0, rectY), rectH))}
|
|
7860
|
-
fill="none" stroke={pal.legendAccent}
|
|
7988
|
+
fill="none" stroke={pal.legendAccent}
|
|
7989
|
+
// R346: strokeWidth + opacity tween on container hover.
|
|
7990
|
+
strokeWidth={hoveredMinimap ? '1.75' : '1.5'}
|
|
7991
|
+
opacity={hoveredMinimap ? '1' : '0.9'}
|
|
7861
7992
|
data-topo-minimap-viewport
|
|
7862
7993
|
data-topo-minimap-viewport-smooth={smoothView ? 'true' : 'false'}
|
|
7994
|
+
data-topo-minimap-viewport-hover={hoveredMinimap ? 'true' : 'false'}
|
|
7863
7995
|
style={{
|
|
7864
7996
|
transition: smoothView
|
|
7865
|
-
? 'x 280ms ease-out, y 280ms ease-out, width 280ms ease-out, height 280ms ease-out'
|
|
7866
|
-
: '
|
|
7997
|
+
? 'x 280ms ease-out, y 280ms ease-out, width 280ms ease-out, height 280ms ease-out, stroke-width 200ms ease-out, opacity 200ms ease-out'
|
|
7998
|
+
: 'stroke-width 200ms ease-out, opacity 200ms ease-out',
|
|
7867
7999
|
} as React.CSSProperties}
|
|
7868
8000
|
/>
|
|
7869
8001
|
</svg>
|
|
@@ -8074,11 +8206,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
8074
8206
|
chromePopping === 'zoom-in' || chromePopping === 'zoom-out'
|
|
8075
8207
|
? 'true' : 'false'
|
|
8076
8208
|
}
|
|
8209
|
+
data-topo-chrome-zoom-level-hover={hoveredZoomLevel ? 'true' : 'false'}
|
|
8210
|
+
onMouseEnter={() => setHoveredZoomLevel(true)}
|
|
8211
|
+
onMouseLeave={() => setHoveredZoomLevel(false)}
|
|
8077
8212
|
style={{
|
|
8078
8213
|
color: pal.legendText,
|
|
8079
8214
|
borderColor: pal.containerBorder,
|
|
8080
8215
|
minWidth: 46,
|
|
8081
8216
|
display: 'inline-block',
|
|
8217
|
+
// R347: letter-spacing hover tween — extends R344/R345
|
|
8218
|
+
// hover-letter-spacing family into the chrome strip.
|
|
8219
|
+
letterSpacing: hoveredZoomLevel ? '0.5px' : '0',
|
|
8082
8220
|
/* Round 264 / Loop: zoom level readout gains theme-toggle
|
|
8083
8221
|
transition. The span has theme-driven color (pal.
|
|
8084
8222
|
legendText) + border-x (pal.containerBorder via the
|
|
@@ -8087,7 +8225,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
8087
8225
|
on theme flip while siblings eased. Sibling treatment
|
|
8088
8226
|
to the nodeSize + zoom wrapper transitions added this
|
|
8089
8227
|
round. */
|
|
8090
|
-
transition: 'color 200ms ease-out, border-color 200ms ease-out',
|
|
8228
|
+
transition: 'color 200ms ease-out, border-color 200ms ease-out, letter-spacing 200ms ease-out',
|
|
8091
8229
|
}}
|
|
8092
8230
|
title="Current zoom level"
|
|
8093
8231
|
>
|
|
@@ -8118,6 +8256,12 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
8118
8256
|
onClick={() => { armResetSpin(); resetView(); }}
|
|
8119
8257
|
data-topo-chrome-reset
|
|
8120
8258
|
data-topo-chrome-reset-spinning={resetSpinning ? 'true' : 'false'}
|
|
8259
|
+
data-topo-chrome-reset-hover={hoveredReset ? 'true' : 'false'}
|
|
8260
|
+
// R350: hover state drives the icon transform below.
|
|
8261
|
+
onMouseEnter={() => setHoveredReset(true)}
|
|
8262
|
+
onMouseLeave={() => setHoveredReset(false)}
|
|
8263
|
+
onFocus={() => setHoveredReset(true)}
|
|
8264
|
+
onBlur={() => setHoveredReset(false)}
|
|
8121
8265
|
// R196: press-state deepens before R184 reset-spin fires on
|
|
8122
8266
|
// release — mouse-down dim then 450ms spin = full handshake.
|
|
8123
8267
|
className="p-1.5 rounded-md border hover:bg-white/5 active:bg-white/10 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60"
|
|
@@ -8147,6 +8291,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
8147
8291
|
aria-hidden
|
|
8148
8292
|
className={resetSpinning ? 'anet-reset-spin' : undefined}
|
|
8149
8293
|
data-topo-chrome-reset-icon
|
|
8294
|
+
// R350: hover-rotate preview of the R184 click-spin.
|
|
8295
|
+
// Gated on !resetSpinning so the anet-reset-spin keyframe
|
|
8296
|
+
// owns transform during its 450ms run. transformOrigin
|
|
8297
|
+
// 'center' so rotation pivots around the icon's centre
|
|
8298
|
+
// (default would be top-left and the icon would arc).
|
|
8299
|
+
style={{
|
|
8300
|
+
transform: hoveredReset && !resetSpinning ? 'rotate(-8deg)' : 'rotate(0deg)',
|
|
8301
|
+
transformOrigin: 'center',
|
|
8302
|
+
transition: 'transform 200ms ease-out',
|
|
8303
|
+
}}
|
|
8304
|
+
data-topo-chrome-reset-icon-hover={hoveredReset && !resetSpinning ? 'true' : 'false'}
|
|
8150
8305
|
>
|
|
8151
8306
|
<path d="M3 12a9 9 0 1 0 9-9 9 9 0 0 0-6.4 2.6L3 8" />
|
|
8152
8307
|
<path d="M3 3v5h5" />
|
package/package.json
CHANGED
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/* Round 342 verification: active-links chip freshness suffix wrapper
|
|
2
|
+
* lifts text-gray-500 → text-gray-400 (R317 subordinate-text-lift
|
|
3
|
+
* family). Affects the literal "last {rel}" text; the freshness dot
|
|
4
|
+
* keeps its own inline color via `style={{color: dotColor}}`.
|
|
5
|
+
*
|
|
6
|
+
* Contract:
|
|
7
|
+
* - The wrapper span containing [data-active-links-freshness-dot]
|
|
8
|
+
* has className containing 'text-gray-400' (not 'text-gray-500').
|
|
9
|
+
* - Wrapper textContent includes 'last' (the trailing literal).
|
|
10
|
+
* - Freshness dot keeps its own color (not the wrapper's).
|
|
11
|
+
* - R341 pin-intersection " pins" unit + R317/R318 chrome
|
|
12
|
+
* regressions intact.
|
|
13
|
+
* - R294 pulse absent.
|
|
14
|
+
*/
|
|
15
|
+
import { chromium } from 'playwright';
|
|
16
|
+
import { readFileSync } from 'node:fs';
|
|
17
|
+
|
|
18
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
19
|
+
const browser = await chromium.launch({ headless: true });
|
|
20
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
21
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
22
|
+
await ctx.addInitScript(() => {
|
|
23
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
24
|
+
});
|
|
25
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
26
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
27
|
+
const r = await route.fetch();
|
|
28
|
+
const b = await r.json();
|
|
29
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
30
|
+
const mk = (alias) => ({
|
|
31
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
32
|
+
network_id: nid, project_dir: null,
|
|
33
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
34
|
+
});
|
|
35
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
36
|
+
mk('alpha'), mk('beta'), mk('gamma'),
|
|
37
|
+
] } });
|
|
38
|
+
});
|
|
39
|
+
// One recent message → active-links chip's freshness suffix renders.
|
|
40
|
+
const now = Date.now();
|
|
41
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
|
|
42
|
+
{ id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'ping',
|
|
43
|
+
network_id: 'default', created_at: new Date(now - 5000).toISOString() },
|
|
44
|
+
] } }));
|
|
45
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
46
|
+
|
|
47
|
+
const page = await ctx.newPage();
|
|
48
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
49
|
+
await page.waitForSelector('[data-active-links-freshness-dot]', { timeout: 15000 });
|
|
50
|
+
await page.waitForTimeout(300);
|
|
51
|
+
|
|
52
|
+
const probe = await page.evaluate(() => {
|
|
53
|
+
const dot = document.querySelector('[data-active-links-freshness-dot]');
|
|
54
|
+
const wrapper = dot?.parentElement || null;
|
|
55
|
+
return {
|
|
56
|
+
wrapperClass: wrapper?.className ?? '',
|
|
57
|
+
wrapperText: wrapper?.textContent ?? null,
|
|
58
|
+
dotInlineColor: dot?.getAttribute('style') ?? '',
|
|
59
|
+
// R341 regression.
|
|
60
|
+
pinIntersectionUnit: document.querySelector('[data-pin-intersection-unit]')?.className ?? '',
|
|
61
|
+
layoutInactiveCls: document.querySelector('[data-topo-chrome-layout="grid"]')?.className ?? '',
|
|
62
|
+
layoutActiveCls: document.querySelector('[data-topo-chrome-layout="ring"]')?.className ?? '',
|
|
63
|
+
pulseCount: document.querySelectorAll('[data-pulse-wrapper]').length,
|
|
64
|
+
};
|
|
65
|
+
});
|
|
66
|
+
await browser.close();
|
|
67
|
+
|
|
68
|
+
const results = {
|
|
69
|
+
wrapper_has_gray_400: /text-gray-400/.test(probe.wrapperClass),
|
|
70
|
+
wrapper_no_gray_500: !/text-gray-500/.test(probe.wrapperClass),
|
|
71
|
+
wrapper_text_last: /\blast\b/.test(probe.wrapperText || ''),
|
|
72
|
+
dot_has_inline_color: /color:/.test(probe.dotInlineColor),
|
|
73
|
+
// R341 regression — only triggers when a pin is active. Test
|
|
74
|
+
// doesn't click filters, so accept null OR opacity-70.
|
|
75
|
+
r341_pin_unit_or_absent: probe.pinIntersectionUnit === '' ||
|
|
76
|
+
/opacity-70/.test(probe.pinIntersectionUnit),
|
|
77
|
+
// R317 / R318 chrome regression.
|
|
78
|
+
r317_inactive_gray_400: probe.layoutInactiveCls.includes('text-gray-400'),
|
|
79
|
+
r318_active_font_medium: probe.layoutActiveCls.includes('font-medium'),
|
|
80
|
+
r294_pulse_absent: probe.pulseCount === 0,
|
|
81
|
+
};
|
|
82
|
+
const ok = Object.values(results).every(Boolean);
|
|
83
|
+
console.log(`${ok ? '✅' : '❌'} active-links freshness wrapper gray-400:`, JSON.stringify(results),
|
|
84
|
+
'\n wrapper class:', probe.wrapperClass,
|
|
85
|
+
'\n wrapper text:', JSON.stringify(probe.wrapperText));
|
|
86
|
+
process.exit(ok ? 0 : 1);
|