@sleep2agi/agent-network-dashboard 0.5.1-preview.84 → 0.5.1-preview.86

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.
Files changed (140) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +4 -4
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  121. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  126. package/.next/server/middleware-build-manifest.js +3 -3
  127. package/.next/server/pages/404.html +1 -1
  128. package/.next/server/pages/500.html +1 -1
  129. package/.next/static/chunks/{137kx4am.plq0.js → 0m2ov4f4blo_2.js} +1 -1
  130. package/.next/static/chunks/{0e4mwvkhqvpll.js → 0pvnxqnhwx197.js} +1 -1
  131. package/.next/static/chunks/{0fa.ddz6h..y8.js → 0~zeh49ku2m9p.js} +1 -1
  132. package/.next/trace +2 -2
  133. package/.next/trace-build +1 -1
  134. package/app/components/TopoGraph.tsx +44 -6
  135. package/package.json +1 -1
  136. package/scripts/topo-hub-digit-fw-hover-test.mjs +102 -0
  137. package/scripts/topo-panel-count-fw-hover-test.mjs +105 -0
  138. /package/.next/static/{X1VuHrHHlmCGXa31B-tn5 → 3lHl_wtL-1lp7p3HiTkPs}/_buildManifest.js +0 -0
  139. /package/.next/static/{X1VuHrHHlmCGXa31B-tn5 → 3lHl_wtL-1lp7p3HiTkPs}/_clientMiddlewareManifest.js +0 -0
  140. /package/.next/static/{X1VuHrHHlmCGXa31B-tn5 → 3lHl_wtL-1lp7p3HiTkPs}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":308,"timestamp":157196289933,"id":4,"parentId":1,"tags":{},"startTime":1778965168536,"traceId":"bdb33cbcc11faad7"},{"name":"load-custom-routes","duration":485,"timestamp":157196290393,"id":5,"parentId":1,"tags":{},"startTime":1778965168537,"traceId":"bdb33cbcc11faad7"},{"name":"create-dist-dir","duration":731,"timestamp":157196290922,"id":6,"parentId":1,"tags":{},"startTime":1778965168537,"traceId":"bdb33cbcc11faad7"},{"name":"clean","duration":35064,"timestamp":157196292427,"id":7,"parentId":1,"tags":{},"startTime":1778965168539,"traceId":"bdb33cbcc11faad7"},{"name":"discover-routes","duration":10959,"timestamp":157196414188,"id":8,"parentId":1,"tags":{},"startTime":1778965168660,"traceId":"bdb33cbcc11faad7"},{"name":"create-root-mapping","duration":126,"timestamp":157196425207,"id":9,"parentId":1,"tags":{},"startTime":1778965168671,"traceId":"bdb33cbcc11faad7"},{"name":"generate-route-types","duration":33890,"timestamp":157196428283,"id":10,"parentId":1,"tags":{},"startTime":1778965168675,"traceId":"bdb33cbcc11faad7"},{"name":"public-dir-conflict-check","duration":101,"timestamp":157196462268,"id":11,"parentId":1,"tags":{},"startTime":1778965168709,"traceId":"bdb33cbcc11faad7"},{"name":"generate-routes-manifest","duration":4962,"timestamp":157196462495,"id":12,"parentId":1,"tags":{},"startTime":1778965168709,"traceId":"bdb33cbcc11faad7"},{"name":"run-turbopack","duration":5937545,"timestamp":157196474542,"id":14,"parentId":1,"tags":{},"startTime":1778965168721,"traceId":"bdb33cbcc11faad7"},{"name":"turbopack-build-events","duration":106,"timestamp":157196779578,"id":15,"parentId":1,"tags":{},"startTime":1778965169026,"traceId":"bdb33cbcc11faad7"},{"name":"run-typescript","duration":9375323,"timestamp":157202433169,"id":16,"parentId":1,"tags":{},"startTime":1778965174679,"traceId":"bdb33cbcc11faad7"},{"name":"generate-required-server-files","duration":1961,"timestamp":157211809558,"id":18,"parentId":1,"tags":{},"startTime":1778965184056,"traceId":"bdb33cbcc11faad7"},{"name":"check-static-error-page","duration":15753,"timestamp":157211981225,"id":20,"parentId":19,"tags":{},"startTime":1778965184228,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":476743,"timestamp":157212000202,"id":65,"parentId":22,"tags":{},"startTime":1778965184246,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":492512,"timestamp":157211984628,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778965184231,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":539793,"timestamp":157212002356,"id":70,"parentId":29,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":553784,"timestamp":157211988459,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778965184235,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":546343,"timestamp":157212002570,"id":72,"parentId":32,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":559894,"timestamp":157211989088,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778965184235,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":553898,"timestamp":157212000367,"id":66,"parentId":25,"tags":{},"startTime":1778965184247,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":566477,"timestamp":157211987848,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778965184234,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":563325,"timestamp":157212001953,"id":68,"parentId":27,"tags":{},"startTime":1778965184248,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":577162,"timestamp":157211988194,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778965184234,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":566370,"timestamp":157212001787,"id":67,"parentId":26,"tags":{},"startTime":1778965184248,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":580289,"timestamp":157211988040,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778965184234,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":570000,"timestamp":157211999808,"id":64,"parentId":21,"tags":{},"startTime":1778965184246,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":587049,"timestamp":157211982810,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778965184229,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":568422,"timestamp":157212002836,"id":75,"parentId":35,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":582059,"timestamp":157211989513,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778965184236,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":572287,"timestamp":157212002859,"id":76,"parentId":36,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":585065,"timestamp":157211990127,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778965184236,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":576447,"timestamp":157212002724,"id":73,"parentId":33,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":589965,"timestamp":157211989242,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778965184236,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":583028,"timestamp":157212002098,"id":69,"parentId":28,"tags":{},"startTime":1778965184248,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":596836,"timestamp":157211988330,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778965184235,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":587628,"timestamp":157212002926,"id":79,"parentId":39,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":599971,"timestamp":157211990621,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778965184237,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":592600,"timestamp":157212002946,"id":81,"parentId":42,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":604481,"timestamp":157211991118,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778965184237,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":595278,"timestamp":157212002958,"id":82,"parentId":44,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":606695,"timestamp":157211991580,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778965184238,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":600291,"timestamp":157212002808,"id":74,"parentId":34,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":613764,"timestamp":157211989376,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778965184236,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":604907,"timestamp":157212002990,"id":85,"parentId":47,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":615955,"timestamp":157211991981,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778965184238,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":615296,"timestamp":157212002913,"id":78,"parentId":38,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":627766,"timestamp":157211990508,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778965184237,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":615483,"timestamp":157212002938,"id":80,"parentId":40,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":627724,"timestamp":157211990724,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778965184237,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":615574,"timestamp":157212002982,"id":84,"parentId":46,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":626714,"timestamp":157211991864,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778965184238,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":615666,"timestamp":157212003018,"id":86,"parentId":48,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":626582,"timestamp":157211992127,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778965184238,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":615858,"timestamp":157212002969,"id":83,"parentId":45,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":627127,"timestamp":157211991726,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778965184238,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":612899,"timestamp":157212011571,"id":91,"parentId":31,"tags":{},"startTime":1778965184258,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":635738,"timestamp":157211988774,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778965184235,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":624857,"timestamp":157212003050,"id":89,"parentId":51,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":635452,"timestamp":157211992501,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778965184239,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":624018,"timestamp":157212010368,"id":90,"parentId":24,"tags":{},"startTime":1778965184257,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":649250,"timestamp":157211985222,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778965184231,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":631708,"timestamp":157212003038,"id":88,"parentId":50,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":642423,"timestamp":157211992391,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778965184239,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":617114,"timestamp":157212017935,"id":93,"parentId":43,"tags":{},"startTime":1778965184264,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":643840,"timestamp":157211991267,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778965184238,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":634997,"timestamp":157212002500,"id":71,"parentId":30,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":648931,"timestamp":157211988608,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778965184235,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":627886,"timestamp":157212012447,"id":92,"parentId":41,"tags":{},"startTime":1778965184259,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":649533,"timestamp":157211990846,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778965184237,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":638344,"timestamp":157212003030,"id":87,"parentId":49,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":649139,"timestamp":157211992276,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778965184239,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":651677,"timestamp":157212002900,"id":77,"parentId":37,"tags":{},"startTime":1778965184249,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":664302,"timestamp":157211990324,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778965184237,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":629720,"timestamp":157212033693,"id":100,"parentId":58,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":668229,"timestamp":157211995234,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778965184242,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":639316,"timestamp":157212033816,"id":101,"parentId":59,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":677701,"timestamp":157211995495,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778965184242,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":645044,"timestamp":157212033832,"id":102,"parentId":61,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":682672,"timestamp":157211996268,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778965184243,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":658598,"timestamp":157212033844,"id":103,"parentId":62,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":696038,"timestamp":157211996456,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778965184243,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":659422,"timestamp":157212033646,"id":96,"parentId":53,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":699887,"timestamp":157211993228,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778965184240,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":665092,"timestamp":157212033859,"id":104,"parentId":63,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":702381,"timestamp":157211996641,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778965184243,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":666226,"timestamp":157212033616,"id":95,"parentId":52,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":706899,"timestamp":157211992979,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778965184239,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":666375,"timestamp":157212033582,"id":94,"parentId":23,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":715040,"timestamp":157211984940,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778965184231,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":666711,"timestamp":157212033870,"id":105,"parentId":60,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":704880,"timestamp":157211995737,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778965184242,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":671834,"timestamp":157212033669,"id":98,"parentId":55,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":711662,"timestamp":157211993875,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778965184240,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":655724,"timestamp":157212050682,"id":106,"parentId":57,"tags":{},"startTime":1778965184297,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":711870,"timestamp":157211994554,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778965184241,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":682285,"timestamp":157212033681,"id":99,"parentId":56,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":721811,"timestamp":157211994217,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778965184240,"traceId":"bdb33cbcc11faad7"},{"name":"is-page-static","duration":699721,"timestamp":157212033660,"id":97,"parentId":54,"tags":{},"startTime":1778965184280,"traceId":"bdb33cbcc11faad7"},{"name":"check-page","duration":739977,"timestamp":157211993445,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778965184240,"traceId":"bdb33cbcc11faad7"},{"name":"static-check","duration":753249,"timestamp":157211980221,"id":19,"parentId":1,"tags":{},"startTime":1778965184227,"traceId":"bdb33cbcc11faad7"}]
2
- [{"name":"write-routes-manifest","duration":523,"timestamp":157212742444,"id":108,"parentId":1,"tags":{},"startTime":1778965184989,"traceId":"bdb33cbcc11faad7"},{"name":"load-dotenv","duration":65,"timestamp":157212755210,"id":111,"parentId":110,"tags":{},"startTime":1778965185001,"traceId":"bdb33cbcc11faad7"},{"name":"run-export-path-map","duration":790,"timestamp":157212761517,"id":112,"parentId":110,"tags":{},"startTime":1778965185008,"traceId":"bdb33cbcc11faad7"},{"name":"next-export","duration":594191,"timestamp":157212753724,"id":110,"parentId":1,"tags":{},"startTime":1778965185000,"traceId":"bdb33cbcc11faad7"},{"name":"move-exported-app-not-found-","duration":608,"timestamp":157213351708,"id":113,"parentId":109,"tags":{},"startTime":1778965185598,"traceId":"bdb33cbcc11faad7"},{"name":"move-exported-app-global-error-","duration":429,"timestamp":157213352407,"id":114,"parentId":109,"tags":{},"startTime":1778965185599,"traceId":"bdb33cbcc11faad7"},{"name":"static-generation","duration":607625,"timestamp":157212747213,"id":109,"parentId":1,"tags":{},"startTime":1778965184993,"traceId":"bdb33cbcc11faad7"},{"name":"write-routes-manifest","duration":347,"timestamp":157213355095,"id":115,"parentId":1,"tags":{},"startTime":1778965185601,"traceId":"bdb33cbcc11faad7"},{"name":"print-tree-view","duration":3950,"timestamp":157213373646,"id":116,"parentId":1,"tags":{},"startTime":1778965185620,"traceId":"bdb33cbcc11faad7"},{"name":"write-route-bundle-stats","duration":12682,"timestamp":157213377623,"id":117,"parentId":1,"tags":{},"startTime":1778965185624,"traceId":"bdb33cbcc11faad7"},{"name":"telemetry-flush","duration":21352,"timestamp":157213390330,"id":118,"parentId":1,"tags":{},"startTime":1778965185637,"traceId":"bdb33cbcc11faad7"},{"name":"next-build","duration":17178591,"timestamp":157196233115,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778965168479,"traceId":"bdb33cbcc11faad7"}]
1
+ [{"name":"generate-buildid","duration":366,"timestamp":158130769808,"id":4,"parentId":1,"tags":{},"startTime":1778966103016,"traceId":"f7c5d78ed774df1b"},{"name":"load-custom-routes","duration":514,"timestamp":158130770384,"id":5,"parentId":1,"tags":{},"startTime":1778966103017,"traceId":"f7c5d78ed774df1b"},{"name":"create-dist-dir","duration":671,"timestamp":158130770941,"id":6,"parentId":1,"tags":{},"startTime":1778966103017,"traceId":"f7c5d78ed774df1b"},{"name":"clean","duration":28741,"timestamp":158130772248,"id":7,"parentId":1,"tags":{},"startTime":1778966103019,"traceId":"f7c5d78ed774df1b"},{"name":"discover-routes","duration":16972,"timestamp":158130880519,"id":8,"parentId":1,"tags":{},"startTime":1778966103127,"traceId":"f7c5d78ed774df1b"},{"name":"create-root-mapping","duration":157,"timestamp":158130897557,"id":9,"parentId":1,"tags":{},"startTime":1778966103144,"traceId":"f7c5d78ed774df1b"},{"name":"generate-route-types","duration":35464,"timestamp":158130900356,"id":10,"parentId":1,"tags":{},"startTime":1778966103147,"traceId":"f7c5d78ed774df1b"},{"name":"public-dir-conflict-check","duration":164,"timestamp":158130935944,"id":11,"parentId":1,"tags":{},"startTime":1778966103182,"traceId":"f7c5d78ed774df1b"},{"name":"generate-routes-manifest","duration":5833,"timestamp":158130936320,"id":12,"parentId":1,"tags":{},"startTime":1778966103183,"traceId":"f7c5d78ed774df1b"},{"name":"run-turbopack","duration":5483570,"timestamp":158130948585,"id":14,"parentId":1,"tags":{},"startTime":1778966103195,"traceId":"f7c5d78ed774df1b"},{"name":"turbopack-build-events","duration":72,"timestamp":158131233579,"id":15,"parentId":1,"tags":{},"startTime":1778966103480,"traceId":"f7c5d78ed774df1b"},{"name":"run-typescript","duration":8953990,"timestamp":158136440279,"id":16,"parentId":1,"tags":{},"startTime":1778966108687,"traceId":"f7c5d78ed774df1b"},{"name":"generate-required-server-files","duration":2742,"timestamp":158145395342,"id":18,"parentId":1,"tags":{},"startTime":1778966117642,"traceId":"f7c5d78ed774df1b"},{"name":"check-static-error-page","duration":10947,"timestamp":158145559887,"id":20,"parentId":19,"tags":{},"startTime":1778966117806,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":450986,"timestamp":158145573340,"id":65,"parentId":22,"tags":{},"startTime":1778966117820,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":462295,"timestamp":158145562192,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778966117808,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":537013,"timestamp":158145573729,"id":69,"parentId":28,"tags":{},"startTime":1778966117820,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":546111,"timestamp":158145564747,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":549965,"timestamp":158145573617,"id":68,"parentId":27,"tags":{},"startTime":1778966117820,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":559004,"timestamp":158145564666,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":549951,"timestamp":158145574457,"id":72,"parentId":32,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":559185,"timestamp":158145565286,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778966117812,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":555478,"timestamp":158145574694,"id":74,"parentId":34,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":564756,"timestamp":158145565471,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778966117812,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":560642,"timestamp":158145574722,"id":75,"parentId":35,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":569809,"timestamp":158145565609,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778966117812,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":576779,"timestamp":158145574742,"id":76,"parentId":36,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":585480,"timestamp":158145566114,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778966117812,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":578318,"timestamp":158145573509,"id":67,"parentId":26,"tags":{},"startTime":1778966117820,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":587285,"timestamp":158145564582,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":582442,"timestamp":158145573033,"id":64,"parentId":21,"tags":{},"startTime":1778966117819,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":594472,"timestamp":158145561067,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778966117807,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":581106,"timestamp":158145574622,"id":73,"parentId":33,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":590392,"timestamp":158145565385,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778966117812,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":582502,"timestamp":158145573435,"id":66,"parentId":25,"tags":{},"startTime":1778966117820,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":591516,"timestamp":158145564448,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":585309,"timestamp":158145574785,"id":77,"parentId":37,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":593836,"timestamp":158145566302,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":586317,"timestamp":158145574212,"id":70,"parentId":29,"tags":{},"startTime":1778966117820,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":595695,"timestamp":158145564875,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":586068,"timestamp":158145574849,"id":82,"parentId":44,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":593780,"timestamp":158145567177,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":591795,"timestamp":158145574874,"id":84,"parentId":46,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":599385,"timestamp":158145567327,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":592095,"timestamp":158145574861,"id":83,"parentId":45,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":599728,"timestamp":158145567264,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":592509,"timestamp":158145574823,"id":80,"parentId":40,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":600802,"timestamp":158145566586,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":597555,"timestamp":158145574910,"id":87,"parentId":49,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":604966,"timestamp":158145567548,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":601726,"timestamp":158145574919,"id":88,"parentId":50,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":609109,"timestamp":158145567611,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":602278,"timestamp":158145574883,"id":85,"parentId":47,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":609805,"timestamp":158145567396,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":605245,"timestamp":158145574797,"id":78,"parentId":38,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":613639,"timestamp":158145566442,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":605446,"timestamp":158145574935,"id":89,"parentId":51,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":612716,"timestamp":158145567707,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":602328,"timestamp":158145582105,"id":90,"parentId":24,"tags":{},"startTime":1778966117828,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":621901,"timestamp":158145562573,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778966117809,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":599945,"timestamp":158145588652,"id":93,"parentId":43,"tags":{},"startTime":1778966117835,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":621684,"timestamp":158145566949,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":616418,"timestamp":158145574897,"id":86,"parentId":48,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":623893,"timestamp":158145567462,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":620911,"timestamp":158145574379,"id":71,"parentId":30,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":630349,"timestamp":158145564986,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":614950,"timestamp":158145583322,"id":91,"parentId":31,"tags":{},"startTime":1778966117830,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":633223,"timestamp":158145565092,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778966117811,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":631435,"timestamp":158145587299,"id":92,"parentId":41,"tags":{},"startTime":1778966117834,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":652171,"timestamp":158145566648,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":645609,"timestamp":158145574837,"id":81,"parentId":42,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":653650,"timestamp":158145566847,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":655082,"timestamp":158145596403,"id":94,"parentId":23,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":689158,"timestamp":158145562396,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778966117809,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":662873,"timestamp":158145596501,"id":100,"parentId":58,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":689918,"timestamp":158145569518,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778966117816,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":670071,"timestamp":158145596621,"id":101,"parentId":59,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":697059,"timestamp":158145569691,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778966117816,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":677529,"timestamp":158145596639,"id":102,"parentId":61,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":703999,"timestamp":158145570245,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778966117817,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":686386,"timestamp":158145596430,"id":95,"parentId":52,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":714734,"timestamp":158145568142,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778966117814,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":694361,"timestamp":158145596653,"id":103,"parentId":62,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":720669,"timestamp":158145570405,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778966117817,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":716447,"timestamp":158145574810,"id":79,"parentId":39,"tags":{},"startTime":1778966117821,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":724775,"timestamp":158145566521,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778966117813,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":700829,"timestamp":158145596667,"id":104,"parentId":63,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":726993,"timestamp":158145570554,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778966117817,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":702852,"timestamp":158145596677,"id":105,"parentId":60,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":729724,"timestamp":158145569851,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778966117816,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":703418,"timestamp":158145596474,"id":98,"parentId":55,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":731335,"timestamp":158145568600,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778966117815,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":705477,"timestamp":158145596464,"id":97,"parentId":54,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":733552,"timestamp":158145568432,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778966117815,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":696806,"timestamp":158145605276,"id":106,"parentId":57,"tags":{},"startTime":1778966117852,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":733017,"timestamp":158145569092,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778966117815,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":711021,"timestamp":158145596450,"id":96,"parentId":53,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":739224,"timestamp":158145568296,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778966117815,"traceId":"f7c5d78ed774df1b"},{"name":"is-page-static","duration":717908,"timestamp":158145596487,"id":99,"parentId":56,"tags":{},"startTime":1778966117843,"traceId":"f7c5d78ed774df1b"},{"name":"check-page","duration":745607,"timestamp":158145568828,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778966117815,"traceId":"f7c5d78ed774df1b"},{"name":"static-check","duration":755299,"timestamp":158145559194,"id":19,"parentId":1,"tags":{},"startTime":1778966117805,"traceId":"f7c5d78ed774df1b"}]
2
+ [{"name":"write-routes-manifest","duration":534,"timestamp":158146323150,"id":108,"parentId":1,"tags":{},"startTime":1778966118569,"traceId":"f7c5d78ed774df1b"},{"name":"load-dotenv","duration":56,"timestamp":158146336024,"id":111,"parentId":110,"tags":{},"startTime":1778966118582,"traceId":"f7c5d78ed774df1b"},{"name":"run-export-path-map","duration":866,"timestamp":158146339268,"id":112,"parentId":110,"tags":{},"startTime":1778966118586,"traceId":"f7c5d78ed774df1b"},{"name":"next-export","duration":624251,"timestamp":158146334120,"id":110,"parentId":1,"tags":{},"startTime":1778966118580,"traceId":"f7c5d78ed774df1b"},{"name":"move-exported-app-not-found-","duration":569,"timestamp":158146962276,"id":113,"parentId":109,"tags":{},"startTime":1778966119209,"traceId":"f7c5d78ed774df1b"},{"name":"move-exported-app-global-error-","duration":427,"timestamp":158146962945,"id":114,"parentId":109,"tags":{},"startTime":1778966119209,"traceId":"f7c5d78ed774df1b"},{"name":"static-generation","duration":637731,"timestamp":158146327587,"id":109,"parentId":1,"tags":{},"startTime":1778966118574,"traceId":"f7c5d78ed774df1b"},{"name":"write-routes-manifest","duration":408,"timestamp":158146965574,"id":115,"parentId":1,"tags":{},"startTime":1778966119212,"traceId":"f7c5d78ed774df1b"},{"name":"print-tree-view","duration":5149,"timestamp":158146982810,"id":116,"parentId":1,"tags":{},"startTime":1778966119229,"traceId":"f7c5d78ed774df1b"},{"name":"write-route-bundle-stats","duration":12756,"timestamp":158146987996,"id":117,"parentId":1,"tags":{},"startTime":1778966119234,"traceId":"f7c5d78ed774df1b"},{"name":"telemetry-flush","duration":31606,"timestamp":158147000785,"id":118,"parentId":1,"tags":{},"startTime":1778966119247,"traceId":"f7c5d78ed774df1b"},{"name":"next-build","duration":16313526,"timestamp":158130718895,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778966102965,"traceId":"f7c5d78ed774df1b"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5937545,"timestamp":157196474542,"id":14,"parentId":1,"tags":{},"startTime":1778965168721,"traceId":"bdb33cbcc11faad7"},{"name":"turbopack-build-events","duration":106,"timestamp":157196779578,"id":15,"parentId":1,"tags":{},"startTime":1778965169026,"traceId":"bdb33cbcc11faad7"},{"name":"run-typescript","duration":9375323,"timestamp":157202433169,"id":16,"parentId":1,"tags":{},"startTime":1778965174679,"traceId":"bdb33cbcc11faad7"},{"name":"static-check","duration":753249,"timestamp":157211980221,"id":19,"parentId":1,"tags":{},"startTime":1778965184227,"traceId":"bdb33cbcc11faad7"},{"name":"static-generation","duration":607625,"timestamp":157212747213,"id":109,"parentId":1,"tags":{},"startTime":1778965184993,"traceId":"bdb33cbcc11faad7"},{"name":"telemetry-flush","duration":21352,"timestamp":157213390330,"id":118,"parentId":1,"tags":{},"startTime":1778965185637,"traceId":"bdb33cbcc11faad7"},{"name":"next-build","duration":17178591,"timestamp":157196233115,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778965168479,"traceId":"bdb33cbcc11faad7"}]
1
+ [{"name":"run-turbopack","duration":5483570,"timestamp":158130948585,"id":14,"parentId":1,"tags":{},"startTime":1778966103195,"traceId":"f7c5d78ed774df1b"},{"name":"turbopack-build-events","duration":72,"timestamp":158131233579,"id":15,"parentId":1,"tags":{},"startTime":1778966103480,"traceId":"f7c5d78ed774df1b"},{"name":"run-typescript","duration":8953990,"timestamp":158136440279,"id":16,"parentId":1,"tags":{},"startTime":1778966108687,"traceId":"f7c5d78ed774df1b"},{"name":"static-check","duration":755299,"timestamp":158145559194,"id":19,"parentId":1,"tags":{},"startTime":1778966117805,"traceId":"f7c5d78ed774df1b"},{"name":"static-generation","duration":637731,"timestamp":158146327587,"id":109,"parentId":1,"tags":{},"startTime":1778966118574,"traceId":"f7c5d78ed774df1b"},{"name":"telemetry-flush","duration":31606,"timestamp":158147000785,"id":118,"parentId":1,"tags":{},"startTime":1778966119247,"traceId":"f7c5d78ed774df1b"},{"name":"next-build","duration":16313526,"timestamp":158130718895,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778966102965,"traceId":"f7c5d78ed774df1b"}]
@@ -5693,7 +5693,20 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5693
5693
  attr exposes the value for tests. */
5694
5694
  fontSize="12"
5695
5695
  fontFamily="monospace"
5696
- fontWeight="700"
5696
+ /* R425 — hub digit fontWeight 700 → 800 on hoveredHub.
5697
+ Closes the "data tightens under attention" pattern
5698
+ across three focal scopes: chip-digit (R416, chip
5699
+ scope) → panel-digit (R424, panel-header scope) →
5700
+ hub-digit (R425, hub focal scope). The hub digit is
5701
+ the most-read scalar on the topology; adding a weight
5702
+ axis on hover stacks with the R209 scale-1.08 + R177
5703
+ ring grow + R370 halo opacity + R386 highlight
5704
+ opacity hub-hover gestures, giving the focal point
5705
+ a typographic axis alongside its scale/structure cues.
5706
+ R360 fontSize=12 + R225 tabular-nums + R209 scale +
5707
+ R253 fill transition all preserved. Transition list
5708
+ extends to include font-weight 200ms ease-out. */
5709
+ fontWeight={hoveredHub ? '800' : '700'}
5697
5710
  opacity={workingCount > 0 ? 1 : 0}
5698
5711
  data-topo-hub-working-count={workingCount}
5699
5712
  data-topo-hub-working-count-font-size="12"
@@ -5730,7 +5743,10 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5730
5743
  transform: !reducedMotion && hoveredHub ? 'scale(1.08)' : 'scale(1)',
5731
5744
  transformBox: 'fill-box',
5732
5745
  transformOrigin: 'center',
5733
- transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out',
5746
+ /* R425: font-weight 200ms appended so the hover fw
5747
+ bump 700 → 800 eases under the same cadence as
5748
+ R209 scale + R253 fill + R213 opacity. */
5749
+ transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out, font-weight 200ms ease-out',
5734
5750
  fontVariantNumeric: 'tabular-nums',
5735
5751
  }}
5736
5752
  >
@@ -7563,13 +7579,27 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
7563
7579
  tests + count value reads still resolve via
7564
7580
  .textContent. data-recent-panel-count-unit on
7565
7581
  the inner unit tspan for R336 introspection. */}
7582
+ {/* R424 — recent-signal panel count digit fontWeight
7583
+ 600 → 700 on panel hover. Closes the 5-layer panel
7584
+ hover cue stack with a typographic-weight axis at
7585
+ the panel-header data scope: depth (R135 drop-
7586
+ shadow) + solidity (R348 fill opacity) + spacing
7587
+ (R345 title letter-spacing) + edge color (R423
7588
+ stroke tint) + weight (THIS, digit fw). Sibling
7589
+ pattern to R416 chip-digit-hover-bold at chip
7590
+ scope — same "data tightens under attention"
7591
+ idiom now at the panel-header data scope. R311
7592
+ base fw=600 + R225 tabular-nums + R162 fill
7593
+ transition + R336 unit-tspan opacity-0.7 all
7594
+ preserved; only the weight axis tweens via R247's
7595
+ transition shape (added font-weight to the list). */}
7566
7596
  <tspan
7567
7597
  fill={freshFill}
7568
- fontWeight="600"
7598
+ fontWeight={hoveredPanel === 'recent' ? '700' : '600'}
7569
7599
  data-recent-panel-count
7570
7600
  data-recent-panel-count-freshness-alpha={alpha.toFixed(2)}
7571
7601
  style={{
7572
- transition: 'fill 200ms ease-out',
7602
+ transition: 'fill 200ms ease-out, font-weight 200ms ease-out',
7573
7603
  fontVariantNumeric: 'tabular-nums',
7574
7604
  }}
7575
7605
  >{flowLinks.length}<tspan opacity="0.7" data-recent-panel-count-unit> flows</tspan></tspan>
@@ -8551,9 +8581,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
8551
8581
  R336 introspection; the parent .textContent still
8552
8582
  reads "{N} node(s)" so existing R310 count tests via
8553
8583
  textContent unchanged. */}
8584
+ {/* R424 sibling — legend panel count digit fontWeight 600
8585
+ → 700 on panel hover. Closes 5-layer panel hover cue
8586
+ stack symmetric across both side panels (recent-signal
8587
+ + legend): depth (R135) + solidity (R348) + spacing
8588
+ (R345) + edge color (R423) + weight (R424). R310 base
8589
+ fw=600 + R292 tabular-nums + R266 fill transition + R336
8590
+ unit-tspan opacity-0.7 all preserved. Same "data tightens
8591
+ under attention" idiom R416 established at chip scope. */}
8554
8592
  <text
8555
8593
  x="211" y="21" textAnchor="end"
8556
- fill={pal.legendAccent} fontSize="10" fontFamily="monospace" fontWeight="600"
8594
+ fill={pal.legendAccent} fontSize="10" fontFamily="monospace" fontWeight={hoveredPanel === 'legend' ? '700' : '600'}
8557
8595
  // R349 sibling — legend panel header count picks up
8558
8596
  // letterSpacing="0.2", one tier below the R301 panel
8559
8597
  // title 0.3. Pairs with the recent-signal panel count
@@ -8563,7 +8601,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
8563
8601
  data-legend-panel-count
8564
8602
  data-legend-panel-count-letter-spacing="0.2"
8565
8603
  style={{
8566
- transition: 'fill 200ms ease-out',
8604
+ transition: 'fill 200ms ease-out, font-weight 200ms ease-out',
8567
8605
  fontVariantNumeric: 'tabular-nums',
8568
8606
  }}
8569
8607
  >{sessions.length}<tspan opacity="0.7" data-legend-panel-count-unit> node{sessions.length === 1 ? '' : 's'}</tspan></text>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.1-preview.84",
3
+ "version": "0.5.1-preview.86",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,102 @@
1
+ /* Round 425 verification: hub digit fontWeight 700 → 800 on
2
+ * hoveredHub. Closes the "data tightens under attention" pattern
3
+ * across three focal scopes:
4
+ * chip-digit (R416, chip scope)
5
+ * panel-digit (R424, panel-header scope)
6
+ * hub-digit (R425, hub focal scope)
7
+ *
8
+ * Contract:
9
+ * - rest state: hub digit attr font-weight === '700'
10
+ * - hover state: digit attr font-weight === '800'
11
+ * - geometry/family invariants preserved:
12
+ * fontSize=12 (R360), tabular-nums (R225),
13
+ * R209 scale-1.08 transform on hover
14
+ * - source-file probe confirms wired conditional + transition list
15
+ */
16
+ import { chromium } from 'playwright';
17
+ import { readFileSync } from 'node:fs';
18
+
19
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
20
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
21
+
22
+ const browser = await chromium.launch({ headless: true });
23
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
24
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
25
+ await ctx.addInitScript(() => {
26
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
27
+ });
28
+ await ctx.route('**/api/hub/status*', async (route) => {
29
+ const r = await route.fetch();
30
+ const b = await r.json();
31
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
32
+ const mk = (alias, status) => ({
33
+ alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
34
+ network_id: nid, project_dir: null,
35
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
36
+ });
37
+ // include working sessions so workingCount > 0 → digit visible
38
+ await route.fulfill({ response: r, json: { ...b, sessions: [
39
+ mk('alpha', 'working'),
40
+ mk('beta', 'working'),
41
+ mk('gamma', 'idle'),
42
+ ] } });
43
+ });
44
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
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-topo-hub-working-count]', { timeout: 15000 });
50
+ await page.waitForTimeout(400);
51
+
52
+ const readDigit = () => page.evaluate(() => {
53
+ const t = document.querySelector('[data-topo-hub-working-count]');
54
+ if (!t) return null;
55
+ return {
56
+ text: t.textContent,
57
+ fw: t.getAttribute('font-weight'),
58
+ fontSize: t.getAttribute('font-size'),
59
+ hovered: t.getAttribute('data-topo-hub-working-count-hovered'),
60
+ count_attr: t.getAttribute('data-topo-hub-working-count'),
61
+ };
62
+ });
63
+
64
+ const rest = await readDigit();
65
+
66
+ // Trigger hub hover via the hub <g> element (data-topo-hub).
67
+ const hubBox = await page.evaluate(() => {
68
+ const hub = document.querySelector('[data-topo-hub]');
69
+ if (!hub) return null;
70
+ const b = hub.getBoundingClientRect();
71
+ return { x: b.x + b.width / 2, y: b.y + b.height / 2 };
72
+ });
73
+ let hover = null;
74
+ if (hubBox) {
75
+ await page.mouse.move(hubBox.x, hubBox.y);
76
+ await page.waitForTimeout(300);
77
+ hover = await readDigit();
78
+ // move mouse away to release hover for clean teardown
79
+ await page.mouse.move(0, 0);
80
+ }
81
+
82
+ // Source-file verification
83
+ const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
84
+ const sourceWired = /fontWeight=\{hoveredHub \? '800' : '700'\}/.test(fileText);
85
+ const sourceTransition = /transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out, font-weight 200ms ease-out'/.test(fileText);
86
+
87
+ await browser.close();
88
+
89
+ const results = {
90
+ rest_mounted: !!rest,
91
+ rest_fw_700: rest?.fw === '700',
92
+ rest_font_size_12: rest?.fontSize === '12',
93
+ rest_hovered_false: rest?.hovered === 'false',
94
+ hover_fw_800: hover?.fw === '800',
95
+ hover_hovered_true: hover?.hovered === 'true',
96
+ source_hover_wired: sourceWired,
97
+ source_transition_wired: sourceTransition,
98
+ };
99
+ const ok = Object.values(results).every(Boolean);
100
+ console.log(`${ok ? '✅' : '❌'} hub digit fw hover:`, JSON.stringify(results),
101
+ '\n rest:', rest, '\n hover:', hover);
102
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,105 @@
1
+ /* Round 424 verification: panel header count digit fontWeight 600 →
2
+ * 700 on panel hover. Closes the 5-layer panel hover cue stack with
3
+ * a typographic-weight axis at the panel-header data scope:
4
+ * R135 drop-shadow (depth)
5
+ * R348 fill opacity (solidity)
6
+ * R345 title letter-spacing (spacing)
7
+ * R423 stroke→legendAccent (color/edge)
8
+ * R424 count digit fw 600→700 (weight)
9
+ *
10
+ * Contract:
11
+ * - rest state: data-recent-panel-count + data-legend-panel-count
12
+ * tspans report computed font-weight matching rest branch (600)
13
+ * - geometry / R311 / R310 invariants preserved (digit text reads,
14
+ * R348 rest opacity '0.92' still applies to outer rect)
15
+ * - source-file probe verifies both panels are wired with
16
+ * `hoveredPanel === '<key>' ? '700' : '600'` conditional
17
+ * - panel hover dispatch on the panel <g> is unreliable
18
+ * (React's onMouseEnter non-bubbling synthetic — same R423
19
+ * finding); source-file verification is the canonical contract
20
+ * for the hover branch, same pattern R348/R394/R412/R423 used.
21
+ */
22
+ import { chromium } from 'playwright';
23
+ import { readFileSync } from 'node:fs';
24
+
25
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
26
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
27
+
28
+ const browser = await chromium.launch({ headless: true });
29
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
30
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
31
+ await ctx.addInitScript(() => {
32
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
33
+ });
34
+ await ctx.route('**/api/hub/status*', async (route) => {
35
+ const r = await route.fetch();
36
+ const b = await r.json();
37
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
38
+ const mk = (alias, status) => ({
39
+ alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
40
+ network_id: nid, project_dir: null,
41
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
42
+ });
43
+ await route.fulfill({ response: r, json: { ...b, sessions: [
44
+ mk('alpha', 'working'),
45
+ mk('beta', 'idle'),
46
+ ] } });
47
+ });
48
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({
49
+ json: { messages: [
50
+ { id: 'm1', from_alias: 'alpha', to_alias: 'beta', content: 'ping', created_at: fresh, network_id: 'default' },
51
+ ] },
52
+ }));
53
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
54
+
55
+ const page = await ctx.newPage();
56
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
57
+ await page.waitForSelector('[data-recent-panel-count], [data-legend-panel-count]', { timeout: 15000 });
58
+ await page.waitForTimeout(400);
59
+
60
+ const rest = await page.evaluate(() => {
61
+ const r = document.querySelector('[data-recent-panel-count]');
62
+ const l = document.querySelector('[data-legend-panel-count]');
63
+ return {
64
+ recent: r ? {
65
+ fw_attr: r.getAttribute('font-weight'),
66
+ fw_computed: getComputedStyle(r).fontWeight,
67
+ text: r.textContent,
68
+ } : null,
69
+ legend: l ? {
70
+ fw_attr: l.getAttribute('font-weight'),
71
+ fw_computed: getComputedStyle(l).fontWeight,
72
+ text: l.textContent,
73
+ } : null,
74
+ };
75
+ });
76
+
77
+ // Source-file verification — runtime hover dispatch on the panel <g>
78
+ // is unreliable (R423 finding). Same source-file probe pattern.
79
+ const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
80
+ const recentSourceWired = /fontWeight=\{hoveredPanel === 'recent' \? '700' : '600'\}/.test(fileText);
81
+ const legendSourceWired = /fontWeight=\{hoveredPanel === 'legend' \? '700' : '600'\}/.test(fileText);
82
+ // R247 transition list extended to include font-weight on both
83
+ const recentTransitionWired = /transition: 'fill 200ms ease-out, font-weight 200ms ease-out'/.test(fileText);
84
+
85
+ await browser.close();
86
+
87
+ const results = {
88
+ // mount / textContent invariants
89
+ recent_mounted: !!rest.recent,
90
+ legend_mounted: !!rest.legend,
91
+ recent_has_flows: /flows/.test(rest.recent?.text || ''),
92
+ legend_has_nodes: /node/.test(rest.legend?.text || ''),
93
+ // rest font-weight resolves to base 600 (string '600' from attr or computed)
94
+ recent_rest_fw_600: rest.recent?.fw_attr === '600' || rest.recent?.fw_computed === '600',
95
+ legend_rest_fw_600: rest.legend?.fw_attr === '600' || rest.legend?.fw_computed === '600',
96
+ // source-file: both panels wired with conditional fw branch
97
+ source_recent_hover_wired: recentSourceWired,
98
+ source_legend_hover_wired: legendSourceWired,
99
+ // transition list extended to font-weight
100
+ source_transition_wired: recentTransitionWired,
101
+ };
102
+ const ok = Object.values(results).every(Boolean);
103
+ console.log(`${ok ? '✅' : '❌'} panel count digit fw hover:`, JSON.stringify(results),
104
+ '\n rest:', rest);
105
+ process.exit(ok ? 0 : 1);