@sleep2agi/agent-network-dashboard 0.5.3-preview.62 → 0.5.3-preview.64

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 (155) 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 +5 -5
  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/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +2 -2
  14. package/.next/server/app/_not-found.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/admin.html +2 -2
  23. package/.next/server/app/admin.rsc +2 -2
  24. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  27. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  30. package/.next/server/app/index.html +2 -2
  31. package/.next/server/app/index.rsc +3 -3
  32. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  34. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  36. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/login.html +2 -2
  39. package/.next/server/app/login.rsc +3 -3
  40. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  41. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  46. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/logs.html +2 -2
  48. package/.next/server/app/logs.rsc +2 -2
  49. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  52. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  55. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/messages.html +2 -2
  57. package/.next/server/app/messages.rsc +2 -2
  58. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  59. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  64. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/node.html +2 -2
  66. package/.next/server/app/node.rsc +2 -2
  67. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  68. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  70. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  72. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  73. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/nodes.html +2 -2
  75. package/.next/server/app/nodes.rsc +2 -2
  76. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  77. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  81. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/server-logs.html +2 -2
  85. package/.next/server/app/server-logs.rsc +2 -2
  86. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  87. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  88. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  89. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  90. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  91. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/settings/networks.html +2 -2
  94. package/.next/server/app/settings/networks.rsc +2 -2
  95. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  96. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  97. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  98. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  100. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  102. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/settings/tokens.html +2 -2
  105. package/.next/server/app/settings/tokens.rsc +2 -2
  106. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  109. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  112. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/settings.html +2 -2
  114. package/.next/server/app/settings.rsc +3 -3
  115. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  116. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  118. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  119. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  120. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  121. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/tasks.html +2 -2
  124. package/.next/server/app/tasks.rsc +2 -2
  125. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  126. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  127. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  128. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  129. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  130. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  131. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js +1 -1
  132. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  133. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +2 -2
  134. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  135. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  136. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  137. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  138. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  139. package/.next/server/middleware-build-manifest.js +3 -3
  140. package/.next/server/pages/404.html +2 -2
  141. package/.next/server/pages/500.html +1 -1
  142. package/.next/static/chunks/{00y53h8_u35cg.js → 048v9oc0w_.ln.js} +1 -1
  143. package/.next/static/chunks/{0bff50p7ajjci.css → 09goheht8rdsk.css} +1 -1
  144. package/.next/static/chunks/{0wze4ikcar3mf.js → 10lbt.rxsmzna.js} +1 -1
  145. package/.next/static/chunks/{0d1~~r6okjk_i.js → 126wayiih-fb0.js} +1 -1
  146. package/.next/static/chunks/{08iv20jfham40.js → 14rrh3c05u1i2.js} +2 -2
  147. package/.next/trace +2 -2
  148. package/.next/trace-build +1 -1
  149. package/app/components/TopoGraph.tsx +80 -3
  150. package/package.json +1 -1
  151. package/scripts/topo-brand-logo-hover-rotate-test.mjs +93 -0
  152. package/scripts/topo-panel-title-glow-test.mjs +111 -0
  153. /package/.next/static/{ITy75Ne_n2qTxA-EuBapV → mHvWWPp7W7xiQRnKt8PLC}/_buildManifest.js +0 -0
  154. /package/.next/static/{ITy75Ne_n2qTxA-EuBapV → mHvWWPp7W7xiQRnKt8PLC}/_clientMiddlewareManifest.js +0 -0
  155. /package/.next/static/{ITy75Ne_n2qTxA-EuBapV → mHvWWPp7W7xiQRnKt8PLC}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":292,"timestamp":218379199632,"id":4,"parentId":1,"tags":{},"startTime":1779026351446,"traceId":"98156e653ec0263c"},{"name":"load-custom-routes","duration":575,"timestamp":218379200123,"id":5,"parentId":1,"tags":{},"startTime":1779026351446,"traceId":"98156e653ec0263c"},{"name":"create-dist-dir","duration":744,"timestamp":218379200752,"id":6,"parentId":1,"tags":{},"startTime":1779026351447,"traceId":"98156e653ec0263c"},{"name":"clean","duration":38449,"timestamp":218379202219,"id":7,"parentId":1,"tags":{},"startTime":1779026351448,"traceId":"98156e653ec0263c"},{"name":"discover-routes","duration":10722,"timestamp":218379339819,"id":8,"parentId":1,"tags":{},"startTime":1779026351586,"traceId":"98156e653ec0263c"},{"name":"create-root-mapping","duration":143,"timestamp":218379350628,"id":9,"parentId":1,"tags":{},"startTime":1779026351597,"traceId":"98156e653ec0263c"},{"name":"generate-route-types","duration":37656,"timestamp":218379353467,"id":10,"parentId":1,"tags":{},"startTime":1779026351600,"traceId":"98156e653ec0263c"},{"name":"public-dir-conflict-check","duration":127,"timestamp":218379391215,"id":11,"parentId":1,"tags":{},"startTime":1779026351637,"traceId":"98156e653ec0263c"},{"name":"generate-routes-manifest","duration":5068,"timestamp":218379391517,"id":12,"parentId":1,"tags":{},"startTime":1779026351638,"traceId":"98156e653ec0263c"},{"name":"run-turbopack","duration":6627830,"timestamp":218379403093,"id":14,"parentId":1,"tags":{},"startTime":1779026351649,"traceId":"98156e653ec0263c"},{"name":"turbopack-build-events","duration":129,"timestamp":218379735706,"id":15,"parentId":1,"tags":{},"startTime":1779026351982,"traceId":"98156e653ec0263c"},{"name":"run-typescript","duration":9926412,"timestamp":218386038341,"id":16,"parentId":1,"tags":{},"startTime":1779026358285,"traceId":"98156e653ec0263c"},{"name":"generate-required-server-files","duration":2438,"timestamp":218395965960,"id":18,"parentId":1,"tags":{},"startTime":1779026368212,"traceId":"98156e653ec0263c"},{"name":"check-static-error-page","duration":16990,"timestamp":218396192341,"id":20,"parentId":19,"tags":{},"startTime":1779026368439,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":525077,"timestamp":218396213957,"id":65,"parentId":22,"tags":{},"startTime":1779026368460,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":546846,"timestamp":218396195822,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779026368442,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":638053,"timestamp":218396214141,"id":66,"parentId":25,"tags":{},"startTime":1779026368460,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":653011,"timestamp":218396199288,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779026368446,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":655810,"timestamp":218396214409,"id":68,"parentId":27,"tags":{},"startTime":1779026368461,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":670696,"timestamp":218396199612,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779026368446,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":656112,"timestamp":218396219435,"id":73,"parentId":33,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":674774,"timestamp":218396200846,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779026368447,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":664045,"timestamp":218396219242,"id":72,"parentId":32,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":682709,"timestamp":218396200657,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779026368447,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":669734,"timestamp":218396219546,"id":75,"parentId":35,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":688153,"timestamp":218396201193,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779026368447,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":675109,"timestamp":218396219568,"id":76,"parentId":36,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":692985,"timestamp":218396201751,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779026368448,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":682253,"timestamp":218396219521,"id":74,"parentId":34,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":700814,"timestamp":218396201027,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779026368447,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":683427,"timestamp":218396219601,"id":77,"parentId":37,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":701110,"timestamp":218396201987,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779026368448,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":687882,"timestamp":218396219614,"id":78,"parentId":38,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":705369,"timestamp":218396202189,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779026368448,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":694607,"timestamp":218396219642,"id":80,"parentId":40,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":711805,"timestamp":218396202494,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779026368449,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":699986,"timestamp":218396219628,"id":79,"parentId":39,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":717333,"timestamp":218396202332,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779026368449,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":704567,"timestamp":218396219664,"id":82,"parentId":44,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":720785,"timestamp":218396203490,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779026368450,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":713114,"timestamp":218396214525,"id":69,"parentId":28,"tags":{},"startTime":1779026368461,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":727929,"timestamp":218396199758,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779026368446,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":708580,"timestamp":218396219677,"id":83,"parentId":45,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":724656,"timestamp":218396203645,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779026368450,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":712969,"timestamp":218396219690,"id":84,"parentId":46,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":728925,"timestamp":218396203779,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779026368450,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":713775,"timestamp":218396219701,"id":85,"parentId":47,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":729605,"timestamp":218396203933,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779026368450,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":718745,"timestamp":218396219727,"id":87,"parentId":49,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":732632,"timestamp":218396205894,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779026368452,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":721696,"timestamp":218396219654,"id":81,"parentId":42,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":738438,"timestamp":218396202981,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779026368449,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":725410,"timestamp":218396219739,"id":88,"parentId":50,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":739237,"timestamp":218396205961,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779026368452,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":726191,"timestamp":218396219748,"id":89,"parentId":51,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":739915,"timestamp":218396206068,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779026368452,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":723231,"timestamp":218396227319,"id":90,"parentId":24,"tags":{},"startTime":1779026368474,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":754117,"timestamp":218396196484,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779026368443,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":726714,"timestamp":218396228472,"id":91,"parentId":31,"tags":{},"startTime":1779026368475,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":754982,"timestamp":218396200304,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779026368447,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":740536,"timestamp":218396214961,"id":71,"parentId":30,"tags":{},"startTime":1779026368461,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":755399,"timestamp":218396200139,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779026368446,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":726218,"timestamp":218396230369,"id":93,"parentId":43,"tags":{},"startTime":1779026368477,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":753470,"timestamp":218396203161,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779026368449,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":738265,"timestamp":218396219714,"id":86,"parentId":48,"tags":{},"startTime":1779026368466,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":752312,"timestamp":218396205743,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779026368452,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":741572,"timestamp":218396229244,"id":92,"parentId":41,"tags":{},"startTime":1779026368476,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":768253,"timestamp":218396202637,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779026368449,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":759153,"timestamp":218396214283,"id":67,"parentId":26,"tags":{},"startTime":1779026368461,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":774020,"timestamp":218396199469,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779026368446,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":772291,"timestamp":218396214782,"id":70,"parentId":29,"tags":{},"startTime":1779026368461,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":787206,"timestamp":218396199931,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779026368446,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":760284,"timestamp":218396258267,"id":94,"parentId":23,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":822428,"timestamp":218396196200,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779026368442,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":768564,"timestamp":218396258380,"id":100,"parentId":58,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":819308,"timestamp":218396207725,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779026368454,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":813708,"timestamp":218396213504,"id":64,"parentId":21,"tags":{},"startTime":1779026368460,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":833104,"timestamp":218396194140,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779026368440,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":770196,"timestamp":218396258321,"id":95,"parentId":52,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":822183,"timestamp":218396206415,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779026368453,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":774619,"timestamp":218396258333,"id":96,"parentId":53,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":826436,"timestamp":218396206581,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779026368453,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":777315,"timestamp":218396258492,"id":101,"parentId":59,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":828029,"timestamp":218396208045,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779026368454,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":780302,"timestamp":218396258346,"id":97,"parentId":54,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":831985,"timestamp":218396206697,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779026368453,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":780220,"timestamp":218396258523,"id":103,"parentId":62,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":829873,"timestamp":218396208886,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779026368455,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":782040,"timestamp":218396258535,"id":104,"parentId":63,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":831546,"timestamp":218396209068,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779026368455,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":783394,"timestamp":218396258547,"id":105,"parentId":60,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":833734,"timestamp":218396208247,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779026368455,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":765025,"timestamp":218396280746,"id":106,"parentId":57,"tags":{},"startTime":1779026368527,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":838621,"timestamp":218396207200,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779026368453,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":796661,"timestamp":218396258513,"id":102,"parentId":61,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":847190,"timestamp":218396208711,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779026368455,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":816678,"timestamp":218396258358,"id":98,"parentId":55,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":868256,"timestamp":218396206850,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779026368453,"traceId":"98156e653ec0263c"},{"name":"is-page-static","duration":832879,"timestamp":218396258371,"id":99,"parentId":56,"tags":{},"startTime":1779026368505,"traceId":"98156e653ec0263c"},{"name":"check-page","duration":884308,"timestamp":218396206997,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779026368453,"traceId":"98156e653ec0263c"},{"name":"static-check","duration":900193,"timestamp":218396191161,"id":19,"parentId":1,"tags":{},"startTime":1779026368437,"traceId":"98156e653ec0263c"}]
2
- [{"name":"write-routes-manifest","duration":644,"timestamp":218397103404,"id":108,"parentId":1,"tags":{},"startTime":1779026369350,"traceId":"98156e653ec0263c"},{"name":"load-dotenv","duration":63,"timestamp":218397118819,"id":111,"parentId":110,"tags":{},"startTime":1779026369365,"traceId":"98156e653ec0263c"},{"name":"run-export-path-map","duration":603,"timestamp":218397121546,"id":112,"parentId":110,"tags":{},"startTime":1779026369368,"traceId":"98156e653ec0263c"},{"name":"next-export","duration":595624,"timestamp":218397117602,"id":110,"parentId":1,"tags":{},"startTime":1779026369364,"traceId":"98156e653ec0263c"},{"name":"move-exported-app-not-found-","duration":666,"timestamp":218397717626,"id":113,"parentId":109,"tags":{},"startTime":1779026369964,"traceId":"98156e653ec0263c"},{"name":"move-exported-app-global-error-","duration":577,"timestamp":218397718405,"id":114,"parentId":109,"tags":{},"startTime":1779026369965,"traceId":"98156e653ec0263c"},{"name":"static-generation","duration":612282,"timestamp":218397109230,"id":109,"parentId":1,"tags":{},"startTime":1779026369356,"traceId":"98156e653ec0263c"},{"name":"write-routes-manifest","duration":506,"timestamp":218397721845,"id":115,"parentId":1,"tags":{},"startTime":1779026369968,"traceId":"98156e653ec0263c"},{"name":"print-tree-view","duration":4427,"timestamp":218397741284,"id":116,"parentId":1,"tags":{},"startTime":1779026369988,"traceId":"98156e653ec0263c"},{"name":"write-route-bundle-stats","duration":14303,"timestamp":218397745751,"id":117,"parentId":1,"tags":{},"startTime":1779026369992,"traceId":"98156e653ec0263c"},{"name":"telemetry-flush","duration":18405,"timestamp":218397760087,"id":118,"parentId":1,"tags":{},"startTime":1779026370006,"traceId":"98156e653ec0263c"},{"name":"next-build","duration":18636584,"timestamp":218379141949,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779026351388,"traceId":"98156e653ec0263c"}]
1
+ [{"name":"generate-buildid","duration":248,"timestamp":219313322409,"id":4,"parentId":1,"tags":{},"startTime":1779027285569,"traceId":"94894fd076347093"},{"name":"load-custom-routes","duration":542,"timestamp":219313322796,"id":5,"parentId":1,"tags":{},"startTime":1779027285569,"traceId":"94894fd076347093"},{"name":"create-dist-dir","duration":689,"timestamp":219313323380,"id":6,"parentId":1,"tags":{},"startTime":1779027285570,"traceId":"94894fd076347093"},{"name":"clean","duration":38420,"timestamp":219313324772,"id":7,"parentId":1,"tags":{},"startTime":1779027285571,"traceId":"94894fd076347093"},{"name":"discover-routes","duration":31467,"timestamp":219313456331,"id":8,"parentId":1,"tags":{},"startTime":1779027285703,"traceId":"94894fd076347093"},{"name":"create-root-mapping","duration":133,"timestamp":219313487891,"id":9,"parentId":1,"tags":{},"startTime":1779027285734,"traceId":"94894fd076347093"},{"name":"generate-route-types","duration":19982,"timestamp":219313490759,"id":10,"parentId":1,"tags":{},"startTime":1779027285737,"traceId":"94894fd076347093"},{"name":"public-dir-conflict-check","duration":131,"timestamp":219313510868,"id":11,"parentId":1,"tags":{},"startTime":1779027285757,"traceId":"94894fd076347093"},{"name":"generate-routes-manifest","duration":5184,"timestamp":219313511195,"id":12,"parentId":1,"tags":{},"startTime":1779027285757,"traceId":"94894fd076347093"},{"name":"run-turbopack","duration":6513353,"timestamp":219313530268,"id":14,"parentId":1,"tags":{},"startTime":1779027285777,"traceId":"94894fd076347093"},{"name":"turbopack-build-events","duration":87,"timestamp":219313838432,"id":15,"parentId":1,"tags":{},"startTime":1779027286085,"traceId":"94894fd076347093"},{"name":"run-typescript","duration":9823050,"timestamp":219320051756,"id":16,"parentId":1,"tags":{},"startTime":1779027292298,"traceId":"94894fd076347093"},{"name":"generate-required-server-files","duration":2308,"timestamp":219329876025,"id":18,"parentId":1,"tags":{},"startTime":1779027302122,"traceId":"94894fd076347093"},{"name":"check-static-error-page","duration":12881,"timestamp":219330045101,"id":20,"parentId":19,"tags":{},"startTime":1779027302291,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":431268,"timestamp":219330061550,"id":65,"parentId":22,"tags":{},"startTime":1779027302308,"traceId":"94894fd076347093"},{"name":"check-page","duration":445644,"timestamp":219330047409,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779027302294,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":536414,"timestamp":219330061880,"id":68,"parentId":27,"tags":{},"startTime":1779027302308,"traceId":"94894fd076347093"},{"name":"check-page","duration":548221,"timestamp":219330050166,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779027302296,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":546529,"timestamp":219330062442,"id":71,"parentId":30,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":558510,"timestamp":219330050573,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":555178,"timestamp":219330062281,"id":70,"parentId":29,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":567107,"timestamp":219330050415,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":555673,"timestamp":219330061989,"id":69,"parentId":28,"tags":{},"startTime":1779027302308,"traceId":"94894fd076347093"},{"name":"check-page","duration":567404,"timestamp":219330050290,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":558550,"timestamp":219330062684,"id":73,"parentId":33,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":570208,"timestamp":219330051094,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":570554,"timestamp":219330061276,"id":64,"parentId":21,"tags":{},"startTime":1779027302308,"traceId":"94894fd076347093"},{"name":"check-page","duration":585671,"timestamp":219330046243,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779027302293,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":570999,"timestamp":219330062811,"id":76,"parentId":36,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":582006,"timestamp":219330051870,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779027302298,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":577484,"timestamp":219330062868,"id":78,"parentId":38,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":588193,"timestamp":219330052218,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779027302298,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":580870,"timestamp":219330062511,"id":72,"parentId":32,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":592484,"timestamp":219330050941,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":583775,"timestamp":219330062791,"id":75,"parentId":35,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":595270,"timestamp":219330051347,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779027302298,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":591386,"timestamp":219330062894,"id":80,"parentId":40,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":601954,"timestamp":219330052380,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":594272,"timestamp":219330061756,"id":67,"parentId":26,"tags":{},"startTime":1779027302308,"traceId":"94894fd076347093"},{"name":"check-page","duration":606035,"timestamp":219330050033,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779027302296,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":594552,"timestamp":219330062767,"id":74,"parentId":34,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":606143,"timestamp":219330051216,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":606649,"timestamp":219330061653,"id":66,"parentId":25,"tags":{},"startTime":1779027302308,"traceId":"94894fd076347093"},{"name":"check-page","duration":618531,"timestamp":219330049826,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779027302296,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":605587,"timestamp":219330062933,"id":83,"parentId":45,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":615478,"timestamp":219330053077,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":608373,"timestamp":219330062910,"id":81,"parentId":42,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":618727,"timestamp":219330052620,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":610295,"timestamp":219330062919,"id":82,"parentId":44,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":620339,"timestamp":219330052929,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":610539,"timestamp":219330062881,"id":79,"parentId":39,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":621146,"timestamp":219330052309,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":612526,"timestamp":219330062947,"id":84,"parentId":46,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":622322,"timestamp":219330053190,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":618170,"timestamp":219330062993,"id":86,"parentId":48,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":626531,"timestamp":219330054678,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779027302301,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":614458,"timestamp":219330066897,"id":90,"parentId":24,"tags":{},"startTime":1779027302313,"traceId":"94894fd076347093"},{"name":"check-page","duration":633594,"timestamp":219330047794,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779027302294,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":621228,"timestamp":219330063033,"id":88,"parentId":50,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":629483,"timestamp":219330054824,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779027302301,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":623068,"timestamp":219330068229,"id":91,"parentId":31,"tags":{},"startTime":1779027302315,"traceId":"94894fd076347093"},{"name":"check-page","duration":640677,"timestamp":219330050665,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779027302297,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":622535,"timestamp":219330070940,"id":93,"parentId":43,"tags":{},"startTime":1779027302317,"traceId":"94894fd076347093"},{"name":"check-page","duration":640807,"timestamp":219330052713,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":640529,"timestamp":219330063042,"id":89,"parentId":51,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":648750,"timestamp":219330054886,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779027302301,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":640780,"timestamp":219330063021,"id":87,"parentId":49,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":649067,"timestamp":219330054769,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779027302301,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":642754,"timestamp":219330062956,"id":85,"parentId":47,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":651195,"timestamp":219330054575,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779027302301,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":645386,"timestamp":219330062841,"id":77,"parentId":37,"tags":{},"startTime":1779027302309,"traceId":"94894fd076347093"},{"name":"check-page","duration":656192,"timestamp":219330052079,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779027302298,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":642682,"timestamp":219330069246,"id":92,"parentId":41,"tags":{},"startTime":1779027302316,"traceId":"94894fd076347093"},{"name":"check-page","duration":659534,"timestamp":219330052440,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779027302299,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":643092,"timestamp":219330073733,"id":99,"parentId":56,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":661102,"timestamp":219330055782,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779027302302,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":650430,"timestamp":219330073873,"id":101,"parentId":59,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":667619,"timestamp":219330056728,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779027302303,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":662699,"timestamp":219330073894,"id":102,"parentId":61,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":679271,"timestamp":219330057394,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779027302304,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":680173,"timestamp":219330073903,"id":103,"parentId":62,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":696581,"timestamp":219330057553,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779027302304,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":684695,"timestamp":219330073916,"id":104,"parentId":63,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":701074,"timestamp":219330057715,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779027302304,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":685565,"timestamp":219330073680,"id":95,"parentId":52,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":704122,"timestamp":219330055174,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779027302301,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":690123,"timestamp":219330073691,"id":96,"parentId":53,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":708580,"timestamp":219330055278,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779027302302,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":681680,"timestamp":219330084349,"id":105,"parentId":60,"tags":{},"startTime":1779027302331,"traceId":"94894fd076347093"},{"name":"check-page","duration":709140,"timestamp":219330056930,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779027302303,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":692662,"timestamp":219330073741,"id":100,"parentId":58,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":709910,"timestamp":219330056521,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779027302303,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":668517,"timestamp":219330098075,"id":106,"parentId":57,"tags":{},"startTime":1779027302344,"traceId":"94894fd076347093"},{"name":"check-page","duration":710553,"timestamp":219330056073,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779027302302,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":700010,"timestamp":219330073650,"id":94,"parentId":23,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":726081,"timestamp":219330047617,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779027302294,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":700457,"timestamp":219330073704,"id":97,"parentId":54,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":718814,"timestamp":219330055374,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779027302302,"traceId":"94894fd076347093"},{"name":"is-page-static","duration":708353,"timestamp":219330073716,"id":98,"parentId":55,"tags":{},"startTime":1779027302320,"traceId":"94894fd076347093"},{"name":"check-page","duration":726586,"timestamp":219330055530,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779027302302,"traceId":"94894fd076347093"},{"name":"static-check","duration":737923,"timestamp":219330044245,"id":19,"parentId":1,"tags":{},"startTime":1779027302291,"traceId":"94894fd076347093"}]
2
+ [{"name":"write-routes-manifest","duration":502,"timestamp":219330792211,"id":108,"parentId":1,"tags":{},"startTime":1779027303038,"traceId":"94894fd076347093"},{"name":"load-dotenv","duration":47,"timestamp":219330804227,"id":111,"parentId":110,"tags":{},"startTime":1779027303051,"traceId":"94894fd076347093"},{"name":"run-export-path-map","duration":732,"timestamp":219330806919,"id":112,"parentId":110,"tags":{},"startTime":1779027303053,"traceId":"94894fd076347093"},{"name":"next-export","duration":580937,"timestamp":219330802858,"id":110,"parentId":1,"tags":{},"startTime":1779027303049,"traceId":"94894fd076347093"},{"name":"move-exported-app-not-found-","duration":525,"timestamp":219331387040,"id":113,"parentId":109,"tags":{},"startTime":1779027303633,"traceId":"94894fd076347093"},{"name":"move-exported-app-global-error-","duration":372,"timestamp":219331387656,"id":114,"parentId":109,"tags":{},"startTime":1779027303634,"traceId":"94894fd076347093"},{"name":"static-generation","duration":592928,"timestamp":219330796880,"id":109,"parentId":1,"tags":{},"startTime":1779027303043,"traceId":"94894fd076347093"},{"name":"write-routes-manifest","duration":424,"timestamp":219331390072,"id":115,"parentId":1,"tags":{},"startTime":1779027303636,"traceId":"94894fd076347093"},{"name":"print-tree-view","duration":4358,"timestamp":219331405160,"id":116,"parentId":1,"tags":{},"startTime":1779027303651,"traceId":"94894fd076347093"},{"name":"write-route-bundle-stats","duration":16232,"timestamp":219331409555,"id":117,"parentId":1,"tags":{},"startTime":1779027303656,"traceId":"94894fd076347093"},{"name":"telemetry-flush","duration":17653,"timestamp":219331425814,"id":118,"parentId":1,"tags":{},"startTime":1779027303672,"traceId":"94894fd076347093"},{"name":"next-build","duration":18171515,"timestamp":219313271984,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779027285518,"traceId":"94894fd076347093"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6627830,"timestamp":218379403093,"id":14,"parentId":1,"tags":{},"startTime":1779026351649,"traceId":"98156e653ec0263c"},{"name":"turbopack-build-events","duration":129,"timestamp":218379735706,"id":15,"parentId":1,"tags":{},"startTime":1779026351982,"traceId":"98156e653ec0263c"},{"name":"run-typescript","duration":9926412,"timestamp":218386038341,"id":16,"parentId":1,"tags":{},"startTime":1779026358285,"traceId":"98156e653ec0263c"},{"name":"static-check","duration":900193,"timestamp":218396191161,"id":19,"parentId":1,"tags":{},"startTime":1779026368437,"traceId":"98156e653ec0263c"},{"name":"static-generation","duration":612282,"timestamp":218397109230,"id":109,"parentId":1,"tags":{},"startTime":1779026369356,"traceId":"98156e653ec0263c"},{"name":"telemetry-flush","duration":18405,"timestamp":218397760087,"id":118,"parentId":1,"tags":{},"startTime":1779026370006,"traceId":"98156e653ec0263c"},{"name":"next-build","duration":18636584,"timestamp":218379141949,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779026351388,"traceId":"98156e653ec0263c"}]
1
+ [{"name":"run-turbopack","duration":6513353,"timestamp":219313530268,"id":14,"parentId":1,"tags":{},"startTime":1779027285777,"traceId":"94894fd076347093"},{"name":"turbopack-build-events","duration":87,"timestamp":219313838432,"id":15,"parentId":1,"tags":{},"startTime":1779027286085,"traceId":"94894fd076347093"},{"name":"run-typescript","duration":9823050,"timestamp":219320051756,"id":16,"parentId":1,"tags":{},"startTime":1779027292298,"traceId":"94894fd076347093"},{"name":"static-check","duration":737923,"timestamp":219330044245,"id":19,"parentId":1,"tags":{},"startTime":1779027302291,"traceId":"94894fd076347093"},{"name":"static-generation","duration":592928,"timestamp":219330796880,"id":109,"parentId":1,"tags":{},"startTime":1779027303043,"traceId":"94894fd076347093"},{"name":"telemetry-flush","duration":17653,"timestamp":219331425814,"id":118,"parentId":1,"tags":{},"startTime":1779027303672,"traceId":"94894fd076347093"},{"name":"next-build","duration":18171515,"timestamp":219313271984,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779027285518,"traceId":"94894fd076347093"}]
@@ -1777,11 +1777,37 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
1777
1777
  ONLY brand surface that's a candidate for hover affordance,
1778
1778
  since it sits in the chrome-band where the cursor
1779
1779
  naturally passes during normal use. */}
1780
+ {/* Round 549 / Loop — extends R548 (hover:scale-105) with a
1781
+ subtle hover:rotate-6 rotation. Pairs scale + rotate on
1782
+ the brand mark, same idiom as R547 added to the pill ×
1783
+ close buttons (scale-110 + rotate-12) but at gentler
1784
+ amounts: 105% vs 110% scale and 6° vs 12° rotation —
1785
+ brand marks want restraint vs interactive close buttons.
1786
+
1787
+ The crescent-moon shape (curved cutout via mask) reads
1788
+ visually distinct as it rotates — the asymmetric cutout
1789
+ swings into a fresh angle, telegraphing "this brand mark
1790
+ is alive without being loud". The 6° landing lands the
1791
+ moon's cusp pointing slightly NE rather than straight up,
1792
+ a small but legible reveal of the shape's geometry.
1793
+
1794
+ Tailwind 4 emits BOTH `scale: 1.05` AND `rotate: 6deg`
1795
+ as INDIVIDUAL CSS properties (not a combined transform
1796
+ string — see R547 banked pattern). The className keeps
1797
+ transition-transform so both axes ease at the same 200ms
1798
+ cadence; transform-gpu hint stays so the compositor
1799
+ promotes both axes to GPU layers.
1800
+
1801
+ data-topo-brand-logo-hover-rotate attr surfaces the
1802
+ landing rotation for tests. Pair with R548's
1803
+ data-topo-brand-logo-hover-scale attr — both attrs
1804
+ advertise the dual-axis hover signature. */}
1780
1805
  <svg
1781
1806
  width="40" height="40" viewBox="0 0 32 32" aria-hidden
1782
- className="shrink-0 transition-transform duration-200 ease-out hover:scale-105 transform-gpu"
1807
+ className="shrink-0 transition-transform duration-200 ease-out hover:scale-105 hover:rotate-6 transform-gpu"
1783
1808
  data-topo-brand-logo
1784
1809
  data-topo-brand-logo-hover-scale="1.05"
1810
+ data-topo-brand-logo-hover-rotate="6deg"
1785
1811
  style={{
1786
1812
  color: isLight ? '#0d9488' : '#67e8f9',
1787
1813
  cursor: 'default',
@@ -9663,7 +9689,48 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
9663
9689
  200ms ease-out' alongside R345's ls + R55's fill
9664
9690
  200ms. data-recent-panel-title-fw exposes the
9665
9691
  resolved weight for tests. */}
9666
- <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={activeEdgeKey ? '800' : '700'} letterSpacing={hoveredPanel === 'recent' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out' }} data-recent-panel-title data-recent-panel-title-fw={activeEdgeKey ? '800' : '700'} data-recent-panel-title-active={activeEdgeKey ? 'true' : 'false'}>recent signal</text>
9692
+ {/* Round 550 / Loop drop-shadow visual-polish family
9693
+ extends to a 14th anchor: the recent-panel header
9694
+ title gains a soft pal.legendAccent glow when the
9695
+ panel has an active row (activeEdgeKey). Pre-R550
9696
+ the title's state-flip on active was 2-axis (R482
9697
+ fw 700→800 + R345 ls 0.3→0.4 when panel-hovered);
9698
+ R550 adds the paint axis so the title brightens
9699
+ paint-wise alongside the typographic tightening when
9700
+ a row inside its panel is locked.
9701
+
9702
+ Hue: pal.legendAccent + hex alpha '80' (~50%) — same
9703
+ strength as R479 group-label pin-glow at the parent
9704
+ panel-title scope. 2px blur reads soft; cyan accent
9705
+ ties the title visually to the active row's pin
9706
+ colour (cyber: cyan-300 / light: teal-600). Hex+alpha
9707
+ concat safe — pal.legendAccent is '#67e8f9' (cyber)
9708
+ or '#0d9488' (light), both 6-digit hex (banked R541:
9709
+ hex sources use hex+alpha; only hsl/color()/dynamic
9710
+ sources need color-mix).
9711
+
9712
+ Drop-shadow visual-polish family extension (14
9713
+ anchors now):
9714
+ R476 hub digit hover-gated emerald
9715
+ R477 legend pin-ring pin-gated row.fill
9716
+ R478 recent-row pip freshness cyan
9717
+ R479 group-label text pin-gated cyan
9718
+ R532-R536 hub-cluster glow QUINTET
9719
+ R537 legend swatch hover/pin row.fill
9720
+ R538 group-label hover-precedence
9721
+ R540 edge-badge text pin-gated cyan
9722
+ R543-R546 pin-active pill 4-variant arc
9723
+ R550 recent-panel title pin-gated cyan ← this round
9724
+ R550 legend-panel title pin-gated cyan ← sibling (next text below)
9725
+
9726
+ filter is paint-only; bbox unchanged; overlap-test
9727
+ invariants hold. transition list extends to include
9728
+ 'filter 200ms ease-out' alongside R345 ls + R482 fw
9729
+ + R55 fill 200ms — one motion-coherent 3-axis active-
9730
+ state lift.
9731
+ data-recent-panel-title-glow attr exposes the gate
9732
+ state for tests. */}
9733
+ <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={activeEdgeKey ? '800' : '700'} letterSpacing={hoveredPanel === 'recent' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out', filter: activeEdgeKey ? `drop-shadow(0 0 2px ${pal.legendAccent}80)` : undefined }} data-recent-panel-title data-recent-panel-title-fw={activeEdgeKey ? '800' : '700'} data-recent-panel-title-active={activeEdgeKey ? 'true' : 'false'} data-recent-panel-title-glow={activeEdgeKey ? 'true' : 'false'}>recent signal</text>
9667
9734
  {/* R96: header count now matches what the rows show. Pre-R96
9668
9735
  this read "X msgs" off the raw messages array, but the
9669
9736
  rows below render DEDUPED flowLinks — so a fleet with 10
@@ -11002,7 +11069,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
11002
11069
  data-legend-panel-title-fw + -active exposed for tests. */}
11003
11070
  {/* R345 sibling — legend panel title same hover letter-
11004
11071
  spacing tween 0.3 → 0.4 on panel hover. */}
11005
- <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={pinnedStatus ? '800' : '700'} letterSpacing={hoveredPanel === 'legend' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out' }} data-legend-panel-title data-legend-panel-title-fw={pinnedStatus ? '800' : '700'} data-legend-panel-title-active={pinnedStatus ? 'true' : 'false'}>legend</text>
11072
+ {/* Round 550 sibling legend-panel header title mirrors
11073
+ the recent-panel title above: drop-shadow glow on
11074
+ pin-gated active state (pinnedStatus). Same hue
11075
+ (pal.legendAccent + hex alpha 80), same 2px blur,
11076
+ same 200ms ease-out cadence. Family lifts to 15
11077
+ anchors with this sibling (counted as R550-sibling
11078
+ for accounting parity with R532-R536 hub-cluster
11079
+ glow quintet pattern — two co-shipping anchors
11080
+ under a single round number).
11081
+ data-legend-panel-title-glow attr added. */}
11082
+ <text x="13" y="21" fill={pal.legendHeadline} fontSize="12" fontFamily="monospace" fontWeight={pinnedStatus ? '800' : '700'} letterSpacing={hoveredPanel === 'legend' ? '0.4' : '0.3'} style={{ transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out', filter: pinnedStatus ? `drop-shadow(0 0 2px ${pal.legendAccent}80)` : undefined }} data-legend-panel-title data-legend-panel-title-fw={pinnedStatus ? '800' : '700'} data-legend-panel-title-active={pinnedStatus ? 'true' : 'false'} data-legend-panel-title-glow={pinnedStatus ? 'true' : 'false'}>legend</text>
11006
11083
  {/* Round 257 / Loop: legend panel header count picks up the
11007
11084
  symmetric 13L/13R inner-padding pattern from the recent-
11008
11085
  signal panel. Pre-R257 the legend header was 13px from
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.62",
3
+ "version": "0.5.3-preview.64",
4
4
  "description": "Agent Network Dashboard \u2014 Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,93 @@
1
+ /* Round 549 verification: title-block brand logo gains hover:rotate-6
2
+ * paired with R548's hover:scale-105. Banked R547 Tailwind 4 pattern —
3
+ * probe BOTH cs.scale AND cs.rotate (individual CSS properties, not
4
+ * combined transform).
5
+ *
6
+ * Test phases:
7
+ * 1. rest: scale='none' (or '1'), rotate='none' (or '0deg')
8
+ * 2. hover: scale='1.05', rotate='6deg'
9
+ * 3. source-side regex confirms className + data-attr wired
10
+ */
11
+ import { chromium } from 'playwright';
12
+ import { readFileSync } from 'node:fs';
13
+
14
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
15
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
16
+
17
+ const browser = await chromium.launch({ headless: true });
18
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
19
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
20
+ await ctx.addInitScript(() => {
21
+ try {
22
+ localStorage.setItem('anet-theme', 'cyber');
23
+ localStorage.setItem('anet-topo-layout', 'ring');
24
+ sessionStorage.setItem('anet_v3_auth', '1');
25
+ } catch {}
26
+ });
27
+ await ctx.route('**/api/hub/status*', async (route) => {
28
+ const r = await route.fetch();
29
+ const b = await r.json();
30
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
31
+ const mk = (alias) => ({
32
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
33
+ network_id: nid, project_dir: null,
34
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
35
+ });
36
+ await route.fulfill({ response: r, json: { ...b, sessions: [mk('a·1')] } });
37
+ });
38
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
39
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
40
+ const page = await ctx.newPage();
41
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
42
+ await page.waitForSelector('[data-topo-brand-logo]', { timeout: 15000 });
43
+ await page.waitForTimeout(500);
44
+
45
+ const sel = '[data-topo-brand-logo]';
46
+ const rest = await page.evaluate((s) => {
47
+ const el = document.querySelector(s);
48
+ if (!el) return null;
49
+ const cs = getComputedStyle(el);
50
+ return {
51
+ attrScale: el.getAttribute('data-topo-brand-logo-hover-scale'),
52
+ attrRotate: el.getAttribute('data-topo-brand-logo-hover-rotate'),
53
+ scale: cs.scale,
54
+ rotate: cs.rotate,
55
+ };
56
+ }, sel);
57
+
58
+ await page.hover(sel);
59
+ await page.waitForTimeout(400);
60
+ const hover = await page.evaluate((s) => {
61
+ const el = document.querySelector(s);
62
+ if (!el) return null;
63
+ const cs = getComputedStyle(el);
64
+ return { scale: cs.scale, rotate: cs.rotate };
65
+ }, sel);
66
+
67
+ await browser.close();
68
+
69
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
70
+ const sourceClassNameWired =
71
+ /className="shrink-0 transition-transform duration-200 ease-out hover:scale-105 hover:rotate-6 transform-gpu"/.test(src);
72
+ const sourceScaleAttrWired =
73
+ /data-topo-brand-logo-hover-scale="1\.05"/.test(src);
74
+ const sourceRotateAttrWired =
75
+ /data-topo-brand-logo-hover-rotate="6deg"/.test(src);
76
+
77
+ const results = {
78
+ rest_scale_idle: rest?.scale === 'none' || rest?.scale === '1',
79
+ rest_rotate_idle: rest?.rotate === 'none' || rest?.rotate === '0deg',
80
+ rest_attr_scale_105: rest?.attrScale === '1.05',
81
+ rest_attr_rotate_6deg: rest?.attrRotate === '6deg',
82
+ hover_scale_105: hover?.scale === '1.05',
83
+ hover_rotate_6deg: hover?.rotate === '6deg',
84
+ source_classname: sourceClassNameWired,
85
+ source_scale_attr: sourceScaleAttrWired,
86
+ source_rotate_attr: sourceRotateAttrWired,
87
+ };
88
+ const ok = Object.values(results).every(Boolean);
89
+ console.log(`${ok ? '✅' : '❌'} R549 brand-logo hover-rotate-6 (paired with R548 scale-105):`,
90
+ JSON.stringify(results, null, 2),
91
+ '\n rest:', JSON.stringify(rest),
92
+ '\n hover:', JSON.stringify(hover));
93
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,111 @@
1
+ /* Round 550 verification: panel-title texts (recent + legend) gain
2
+ * pal.legendAccent drop-shadow on active state. 14th + 15th anchors
3
+ * in drop-shadow family (counted as R550 + sibling).
4
+ *
5
+ * Source-canonical for the LIVE state probe (DOM filter readback via
6
+ * SVG is reliable here — text element, no shared-gate IIFE). Pin
7
+ * trigger: click a status legend row to set pinnedStatus → glow on
8
+ * legend-panel title. activeEdgeKey would require flow data — for
9
+ * recent-panel just source-side regex confirms the wiring.
10
+ *
11
+ * Test phases:
12
+ * 1. rest: both panel titles' computed filter = 'none'
13
+ * 2. legend title — click pressure-bar working seg to pin → filter
14
+ * contains drop-shadow with the cyan accent
15
+ * 3. source regex confirms both texts wired with the filter
16
+ * conditional + transition list extension
17
+ */
18
+ import { chromium } from 'playwright';
19
+ import { readFileSync } from 'node:fs';
20
+
21
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
22
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
23
+
24
+ const browser = await chromium.launch({ headless: true });
25
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
26
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
27
+ await ctx.addInitScript(() => {
28
+ try {
29
+ localStorage.setItem('anet-theme', 'cyber');
30
+ localStorage.setItem('anet-topo-layout', 'ring');
31
+ sessionStorage.setItem('anet_v3_auth', '1');
32
+ } 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('a·1', 'working'), mk('a·2', 'idle'), mk('a·3', 'offline'),
45
+ ] } });
46
+ });
47
+ // Provide one message so flowLinks > 0 → recent-panel renders.
48
+ // buildFlowLinks reads from_alias/to_alias/content/created_at (banked R520).
49
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
50
+ { from_alias: 'a·1', to_alias: 'a·2', content: 'hi', created_at: fresh },
51
+ ] } }));
52
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
53
+ const page = await ctx.newPage();
54
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
55
+ await page.waitForSelector('[data-legend-panel-title]', { timeout: 15000 });
56
+ await page.waitForTimeout(500);
57
+
58
+ // Phase 1: rest filters
59
+ const restLegend = await page.evaluate(() => {
60
+ const el = document.querySelector('[data-legend-panel-title]');
61
+ if (!el) return null;
62
+ const cs = getComputedStyle(el);
63
+ return { filter: cs.filter, glowAttr: el.getAttribute('data-legend-panel-title-glow') };
64
+ });
65
+ const restRecent = await page.evaluate(() => {
66
+ const el = document.querySelector('[data-recent-panel-title]');
67
+ if (!el) return null;
68
+ const cs = getComputedStyle(el);
69
+ return { filter: cs.filter, glowAttr: el.getAttribute('data-recent-panel-title-glow') };
70
+ });
71
+
72
+ // Phase 2: click pressure-bar working seg to pin → triggers
73
+ // pinnedStatus='working' → legend title should glow.
74
+ await page.click('[data-pressure-seg="working"]');
75
+ await page.waitForTimeout(400);
76
+ const pinnedLegend = await page.evaluate(() => {
77
+ const el = document.querySelector('[data-legend-panel-title]');
78
+ if (!el) return null;
79
+ const cs = getComputedStyle(el);
80
+ return { filter: cs.filter, glowAttr: el.getAttribute('data-legend-panel-title-glow') };
81
+ });
82
+
83
+ await browser.close();
84
+
85
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
86
+ const sourceRecentFilter =
87
+ /filter: activeEdgeKey \? `drop-shadow\(0 0 2px \$\{pal\.legendAccent\}80\)` : undefined/.test(src);
88
+ const sourceLegendFilter =
89
+ /filter: pinnedStatus \? `drop-shadow\(0 0 2px \$\{pal\.legendAccent\}80\)` : undefined/.test(src);
90
+ const sourceRecentTransition =
91
+ /transition: 'fill 200ms ease-out, letter-spacing 200ms ease-out, font-weight 200ms ease-out, filter 200ms ease-out'/.test(src);
92
+
93
+ const results = {
94
+ rest_legend_filter_none: restLegend?.filter === 'none',
95
+ rest_recent_filter_none: restRecent?.filter === 'none',
96
+ rest_legend_glow_attr_false: restLegend?.glowAttr === 'false',
97
+ rest_recent_glow_attr_false: restRecent?.glowAttr === 'false',
98
+ pinned_legend_glow_attr: pinnedLegend?.glowAttr === 'true',
99
+ // Computed filter contains drop-shadow with rgb/rgba (hex+alpha resolves to rgba)
100
+ pinned_legend_filter_set: /drop-shadow\(/.test(pinnedLegend?.filter || ''),
101
+ source_recent_filter: sourceRecentFilter,
102
+ source_legend_filter: sourceLegendFilter,
103
+ source_recent_transition: sourceRecentTransition,
104
+ };
105
+ const ok = Object.values(results).every(Boolean);
106
+ console.log(`${ok ? '✅' : '❌'} R550 panel-title pin-gated drop-shadow (14th + 15th anchors):`,
107
+ JSON.stringify(results, null, 2),
108
+ '\n rest legend:', JSON.stringify(restLegend),
109
+ '\n rest recent:', JSON.stringify(restRecent),
110
+ '\n pinned legend:', JSON.stringify(pinnedLegend));
111
+ process.exit(ok ? 0 : 1);