@sleep2agi/agent-network-dashboard 0.5.3-preview.190 → 0.5.3-preview.192

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 (143) 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.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/[root-of-the-server]__0sv~g.o._.js +1 -1
  121. package/.next/server/chunks/ssr/[root-of-the-server]__0sv~g.o._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  126. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  127. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  128. package/.next/server/middleware-build-manifest.js +3 -3
  129. package/.next/server/pages/404.html +1 -1
  130. package/.next/server/pages/500.html +1 -1
  131. package/.next/static/chunks/{0osspkjtv1dk2.js → 0.iaxw9y8~m1d.js} +1 -1
  132. package/.next/static/chunks/{0o01l1qmfdi3-.js → 086n4~n2onq_x.js} +1 -1
  133. package/.next/static/chunks/{0j1nt4ofa0hc2.js → 0f4_u59n6_nz-.js} +1 -1
  134. package/.next/static/chunks/{0~3e3_uoc82~s.js → 0u8dow37_bxcf.js} +3 -3
  135. package/.next/trace +2 -2
  136. package/.next/trace-build +1 -1
  137. package/app/components/TopoGraph.tsx +54 -2
  138. package/package.json +1 -1
  139. package/scripts/topo-edge-flow-rail-halo-layers-test.mjs +89 -0
  140. package/scripts/topo-edge-visible-halo-layers-test.mjs +87 -0
  141. /package/.next/static/{2xpTxt9Ens4aaIcEyes5Q → cvVlwhaOBHJTngpFViB5F}/_buildManifest.js +0 -0
  142. /package/.next/static/{2xpTxt9Ens4aaIcEyes5Q → cvVlwhaOBHJTngpFViB5F}/_clientMiddlewareManifest.js +0 -0
  143. /package/.next/static/{2xpTxt9Ens4aaIcEyes5Q → cvVlwhaOBHJTngpFViB5F}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":633,"timestamp":259518810975,"id":4,"parentId":1,"tags":{},"startTime":1779067491057,"traceId":"f96c08ac3e3c16db"},{"name":"load-custom-routes","duration":681,"timestamp":259518811855,"id":5,"parentId":1,"tags":{},"startTime":1779067491058,"traceId":"f96c08ac3e3c16db"},{"name":"create-dist-dir","duration":985,"timestamp":259518812608,"id":6,"parentId":1,"tags":{},"startTime":1779067491059,"traceId":"f96c08ac3e3c16db"},{"name":"clean","duration":36561,"timestamp":259518814509,"id":7,"parentId":1,"tags":{},"startTime":1779067491061,"traceId":"f96c08ac3e3c16db"},{"name":"discover-routes","duration":30563,"timestamp":259518943493,"id":8,"parentId":1,"tags":{},"startTime":1779067491190,"traceId":"f96c08ac3e3c16db"},{"name":"create-root-mapping","duration":121,"timestamp":259518974120,"id":9,"parentId":1,"tags":{},"startTime":1779067491220,"traceId":"f96c08ac3e3c16db"},{"name":"generate-route-types","duration":28899,"timestamp":259518980611,"id":10,"parentId":1,"tags":{},"startTime":1779067491227,"traceId":"f96c08ac3e3c16db"},{"name":"public-dir-conflict-check","duration":103,"timestamp":259519009600,"id":11,"parentId":1,"tags":{},"startTime":1779067491256,"traceId":"f96c08ac3e3c16db"},{"name":"generate-routes-manifest","duration":5119,"timestamp":259519009810,"id":12,"parentId":1,"tags":{},"startTime":1779067491256,"traceId":"f96c08ac3e3c16db"},{"name":"run-turbopack","duration":6768201,"timestamp":259519031934,"id":14,"parentId":1,"tags":{},"startTime":1779067491278,"traceId":"f96c08ac3e3c16db"},{"name":"turbopack-build-events","duration":105,"timestamp":259519398512,"id":15,"parentId":1,"tags":{},"startTime":1779067491645,"traceId":"f96c08ac3e3c16db"},{"name":"run-typescript","duration":10347206,"timestamp":259525823409,"id":16,"parentId":1,"tags":{},"startTime":1779067498070,"traceId":"f96c08ac3e3c16db"},{"name":"generate-required-server-files","duration":2419,"timestamp":259536171942,"id":18,"parentId":1,"tags":{},"startTime":1779067508418,"traceId":"f96c08ac3e3c16db"},{"name":"check-static-error-page","duration":12507,"timestamp":259536333144,"id":20,"parentId":19,"tags":{},"startTime":1779067508579,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":468213,"timestamp":259536350383,"id":65,"parentId":22,"tags":{},"startTime":1779067508597,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":482869,"timestamp":259536335887,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779067508582,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":598908,"timestamp":259536351636,"id":71,"parentId":30,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":612006,"timestamp":259536338635,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":607452,"timestamp":259536351247,"id":69,"parentId":28,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":620323,"timestamp":259536338456,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":620265,"timestamp":259536351696,"id":72,"parentId":32,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":633068,"timestamp":259536338989,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":634962,"timestamp":259536351506,"id":70,"parentId":29,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":648004,"timestamp":259536338533,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":640574,"timestamp":259536350023,"id":64,"parentId":21,"tags":{},"startTime":1779067508596,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":655921,"timestamp":259536334737,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779067508581,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":653597,"timestamp":259536350994,"id":67,"parentId":26,"tags":{},"startTime":1779067508597,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":666427,"timestamp":259536338294,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":653574,"timestamp":259536351868,"id":73,"parentId":33,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":666362,"timestamp":259536339140,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":655382,"timestamp":259536351129,"id":68,"parentId":27,"tags":{},"startTime":1779067508597,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":668197,"timestamp":259536338375,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":660877,"timestamp":259536352036,"id":77,"parentId":37,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":672848,"timestamp":259536340190,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779067508586,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":674397,"timestamp":259536352050,"id":78,"parentId":38,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":686194,"timestamp":259536340305,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":677621,"timestamp":259536351945,"id":74,"parentId":34,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":690356,"timestamp":259536339256,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779067508586,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":692392,"timestamp":259536352085,"id":81,"parentId":42,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":703878,"timestamp":259536340675,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":699417,"timestamp":259536351974,"id":75,"parentId":35,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":712059,"timestamp":259536339391,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779067508586,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":703162,"timestamp":259536352113,"id":83,"parentId":45,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":712739,"timestamp":259536342598,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":704987,"timestamp":259536352063,"id":79,"parentId":39,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":716731,"timestamp":259536340370,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":705113,"timestamp":259536352136,"id":85,"parentId":47,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":714428,"timestamp":259536342875,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":715342,"timestamp":259536352100,"id":82,"parentId":44,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":726518,"timestamp":259536340984,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":716603,"timestamp":259536352163,"id":87,"parentId":49,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":725787,"timestamp":259536343030,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":723044,"timestamp":259536352149,"id":86,"parentId":48,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":732306,"timestamp":259536342937,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":731058,"timestamp":259536352126,"id":84,"parentId":46,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":740477,"timestamp":259536342761,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":710412,"timestamp":259536372967,"id":90,"parentId":31,"tags":{},"startTime":1779067508619,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":744686,"timestamp":259536338724,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779067508585,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":733962,"timestamp":259536352172,"id":88,"parentId":50,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":743088,"timestamp":259536343097,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":737388,"timestamp":259536352075,"id":80,"parentId":40,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":749119,"timestamp":259536340433,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":716912,"timestamp":259536375596,"id":91,"parentId":24,"tags":{},"startTime":1779067508622,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":756239,"timestamp":259536336319,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779067508583,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":740515,"timestamp":259536352185,"id":89,"parentId":51,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":749586,"timestamp":259536343147,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779067508589,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":707820,"timestamp":259536389140,"id":93,"parentId":43,"tags":{},"startTime":1779067508635,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":756252,"timestamp":259536340766,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":789385,"timestamp":259536351994,"id":76,"parentId":36,"tags":{},"startTime":1779067508598,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":801533,"timestamp":259536339931,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779067508586,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":765144,"timestamp":259536376527,"id":92,"parentId":41,"tags":{},"startTime":1779067508623,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":801216,"timestamp":259536340497,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779067508587,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":708826,"timestamp":259536445879,"id":98,"parentId":55,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":810719,"timestamp":259536344047,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779067508590,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":716048,"timestamp":259536445902,"id":100,"parentId":58,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":817310,"timestamp":259536344723,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779067508591,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":722469,"timestamp":259536445766,"id":94,"parentId":23,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":832162,"timestamp":259536336124,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779067508582,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":821535,"timestamp":259536350852,"id":66,"parentId":25,"tags":{},"startTime":1779067508597,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":834291,"timestamp":259536338170,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779067508584,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":726694,"timestamp":259536445927,"id":101,"parentId":59,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":827786,"timestamp":259536344875,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779067508591,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":727656,"timestamp":259536445864,"id":97,"parentId":54,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":829670,"timestamp":259536343890,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779067508590,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":730494,"timestamp":259536445946,"id":102,"parentId":61,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":831176,"timestamp":259536345306,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779067508592,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":734816,"timestamp":259536445983,"id":105,"parentId":57,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":836470,"timestamp":259536344363,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779067508591,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":734948,"timestamp":259536445970,"id":104,"parentId":63,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":835450,"timestamp":259536345491,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779067508592,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":738322,"timestamp":259536445996,"id":106,"parentId":60,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":839367,"timestamp":259536344993,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779067508591,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":748063,"timestamp":259536445853,"id":96,"parentId":53,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":850194,"timestamp":259536343778,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779067508590,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":758843,"timestamp":259536445822,"id":95,"parentId":52,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":861087,"timestamp":259536343634,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779067508590,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":765866,"timestamp":259536445892,"id":99,"parentId":56,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":867614,"timestamp":259536344201,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779067508590,"traceId":"f96c08ac3e3c16db"},{"name":"is-page-static","duration":794059,"timestamp":259536445960,"id":103,"parentId":62,"tags":{},"startTime":1779067508692,"traceId":"f96c08ac3e3c16db"},{"name":"check-page","duration":894672,"timestamp":259536345400,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779067508592,"traceId":"f96c08ac3e3c16db"},{"name":"static-check","duration":908791,"timestamp":259536331321,"id":19,"parentId":1,"tags":{},"startTime":1779067508578,"traceId":"f96c08ac3e3c16db"}]
2
- [{"name":"write-routes-manifest","duration":516,"timestamp":259537249728,"id":108,"parentId":1,"tags":{},"startTime":1779067509496,"traceId":"f96c08ac3e3c16db"},{"name":"load-dotenv","duration":62,"timestamp":259537261019,"id":111,"parentId":110,"tags":{},"startTime":1779067509507,"traceId":"f96c08ac3e3c16db"},{"name":"run-export-path-map","duration":578,"timestamp":259537263568,"id":112,"parentId":110,"tags":{},"startTime":1779067509510,"traceId":"f96c08ac3e3c16db"},{"name":"next-export","duration":668295,"timestamp":259537259696,"id":110,"parentId":1,"tags":{},"startTime":1779067509506,"traceId":"f96c08ac3e3c16db"},{"name":"move-exported-app-not-found-","duration":605,"timestamp":259537931810,"id":113,"parentId":109,"tags":{},"startTime":1779067510178,"traceId":"f96c08ac3e3c16db"},{"name":"move-exported-app-global-error-","duration":515,"timestamp":259537932573,"id":114,"parentId":109,"tags":{},"startTime":1779067510179,"traceId":"f96c08ac3e3c16db"},{"name":"static-generation","duration":681756,"timestamp":259537253748,"id":109,"parentId":1,"tags":{},"startTime":1779067509500,"traceId":"f96c08ac3e3c16db"},{"name":"write-routes-manifest","duration":462,"timestamp":259537935728,"id":115,"parentId":1,"tags":{},"startTime":1779067510182,"traceId":"f96c08ac3e3c16db"},{"name":"print-tree-view","duration":5082,"timestamp":259537954907,"id":116,"parentId":1,"tags":{},"startTime":1779067510201,"traceId":"f96c08ac3e3c16db"},{"name":"write-route-bundle-stats","duration":12559,"timestamp":259537960042,"id":117,"parentId":1,"tags":{},"startTime":1779067510206,"traceId":"f96c08ac3e3c16db"},{"name":"telemetry-flush","duration":22841,"timestamp":259537972639,"id":118,"parentId":1,"tags":{},"startTime":1779067510219,"traceId":"f96c08ac3e3c16db"},{"name":"next-build","duration":19247097,"timestamp":259518748418,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779067490995,"traceId":"f96c08ac3e3c16db"}]
1
+ [{"name":"generate-buildid","duration":297,"timestamp":260136270754,"id":4,"parentId":1,"tags":{},"startTime":1779068108517,"traceId":"745f127a6a6d6036"},{"name":"load-custom-routes","duration":443,"timestamp":260136271192,"id":5,"parentId":1,"tags":{},"startTime":1779068108517,"traceId":"745f127a6a6d6036"},{"name":"create-dist-dir","duration":686,"timestamp":260136271673,"id":6,"parentId":1,"tags":{},"startTime":1779068108518,"traceId":"745f127a6a6d6036"},{"name":"clean","duration":36923,"timestamp":260136272987,"id":7,"parentId":1,"tags":{},"startTime":1779068108519,"traceId":"745f127a6a6d6036"},{"name":"discover-routes","duration":19323,"timestamp":260136391832,"id":8,"parentId":1,"tags":{},"startTime":1779068108638,"traceId":"745f127a6a6d6036"},{"name":"create-root-mapping","duration":114,"timestamp":260136411214,"id":9,"parentId":1,"tags":{},"startTime":1779068108657,"traceId":"745f127a6a6d6036"},{"name":"generate-route-types","duration":21788,"timestamp":260136413782,"id":10,"parentId":1,"tags":{},"startTime":1779068108660,"traceId":"745f127a6a6d6036"},{"name":"public-dir-conflict-check","duration":96,"timestamp":260136435666,"id":11,"parentId":1,"tags":{},"startTime":1779068108682,"traceId":"745f127a6a6d6036"},{"name":"generate-routes-manifest","duration":4693,"timestamp":260136435867,"id":12,"parentId":1,"tags":{},"startTime":1779068108682,"traceId":"745f127a6a6d6036"},{"name":"run-turbopack","duration":6020459,"timestamp":260136445712,"id":14,"parentId":1,"tags":{},"startTime":1779068108692,"traceId":"745f127a6a6d6036"},{"name":"turbopack-build-events","duration":149,"timestamp":260136736976,"id":15,"parentId":1,"tags":{},"startTime":1779068108983,"traceId":"745f127a6a6d6036"},{"name":"run-typescript","duration":9358438,"timestamp":260142479018,"id":16,"parentId":1,"tags":{},"startTime":1779068114725,"traceId":"745f127a6a6d6036"},{"name":"generate-required-server-files","duration":1974,"timestamp":260151838382,"id":18,"parentId":1,"tags":{},"startTime":1779068124085,"traceId":"745f127a6a6d6036"},{"name":"check-static-error-page","duration":15061,"timestamp":260152025630,"id":20,"parentId":19,"tags":{},"startTime":1779068124272,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":428284,"timestamp":260152043424,"id":65,"parentId":22,"tags":{},"startTime":1779068124290,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":443073,"timestamp":260152028789,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1779068124275,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":536889,"timestamp":260152044244,"id":71,"parentId":30,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":548354,"timestamp":260152032872,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1779068124279,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":557763,"timestamp":260152043594,"id":67,"parentId":26,"tags":{},"startTime":1779068124290,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":569050,"timestamp":260152032385,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1779068124279,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":563274,"timestamp":260152044321,"id":72,"parentId":32,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":574337,"timestamp":260152033325,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1779068124280,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":581557,"timestamp":260152044577,"id":74,"parentId":34,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":592648,"timestamp":260152033569,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1779068124280,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":584272,"timestamp":260152044496,"id":73,"parentId":33,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":595379,"timestamp":260152033453,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1779068124280,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":587467,"timestamp":260152044612,"id":75,"parentId":35,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":598391,"timestamp":260152033748,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1779068124280,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":591529,"timestamp":260152044671,"id":77,"parentId":37,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":601658,"timestamp":260152034586,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1779068124281,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":594197,"timestamp":260152044637,"id":76,"parentId":36,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":604507,"timestamp":260152034389,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1779068124281,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":596094,"timestamp":260152044689,"id":78,"parentId":38,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":606098,"timestamp":260152034725,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1779068124281,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":601325,"timestamp":260152044721,"id":80,"parentId":40,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":611156,"timestamp":260152034931,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1779068124281,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":607863,"timestamp":260152043107,"id":64,"parentId":21,"tags":{},"startTime":1779068124289,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":623758,"timestamp":260152027276,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1779068124274,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":620387,"timestamp":260152044706,"id":79,"parentId":39,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":630326,"timestamp":260152034820,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1779068124281,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":640189,"timestamp":260152044737,"id":81,"parentId":42,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":649794,"timestamp":260152035286,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1779068124282,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":641772,"timestamp":260152043671,"id":68,"parentId":27,"tags":{},"startTime":1779068124290,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":653020,"timestamp":260152032502,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1779068124279,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":642204,"timestamp":260152043747,"id":69,"parentId":28,"tags":{},"startTime":1779068124290,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":653380,"timestamp":260152032616,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1779068124279,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":641534,"timestamp":260152044769,"id":83,"parentId":45,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":650465,"timestamp":260152035897,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1779068124282,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":642462,"timestamp":260152044070,"id":70,"parentId":29,"tags":{},"startTime":1779068124290,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":653849,"timestamp":260152032727,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1779068124279,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":652012,"timestamp":260152043520,"id":66,"parentId":25,"tags":{},"startTime":1779068124290,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":663414,"timestamp":260152032215,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1779068124278,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":650989,"timestamp":260152044810,"id":86,"parentId":48,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":659628,"timestamp":260152036229,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1779068124283,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":651382,"timestamp":260152044784,"id":84,"parentId":46,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":660214,"timestamp":260152036017,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1779068124282,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":653399,"timestamp":260152044828,"id":87,"parentId":49,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":661926,"timestamp":260152036348,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1779068124283,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":654897,"timestamp":260152044795,"id":85,"parentId":47,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":663608,"timestamp":260152036129,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1779068124282,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":639114,"timestamp":260152065220,"id":91,"parentId":31,"tags":{},"startTime":1779068124311,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":671352,"timestamp":260152033029,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1779068124279,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":686913,"timestamp":260152044855,"id":89,"parentId":51,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":695297,"timestamp":260152036549,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1779068124283,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":668366,"timestamp":260152063710,"id":90,"parentId":24,"tags":{},"startTime":1779068124310,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":702733,"timestamp":260152029381,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1779068124276,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":666062,"timestamp":260152066239,"id":92,"parentId":41,"tags":{},"startTime":1779068124313,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":697293,"timestamp":260152035041,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1779068124281,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":644489,"timestamp":260152087976,"id":93,"parentId":43,"tags":{},"startTime":1779068124334,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":697010,"timestamp":260152035482,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1779068124282,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":687773,"timestamp":260152044839,"id":88,"parentId":50,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":696192,"timestamp":260152036444,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1779068124283,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":703956,"timestamp":260152044753,"id":82,"parentId":44,"tags":{},"startTime":1779068124291,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":713003,"timestamp":260152035757,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1779068124282,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":610563,"timestamp":260152146591,"id":100,"parentId":58,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":718020,"timestamp":260152039184,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1779068124285,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":617875,"timestamp":260152146782,"id":101,"parentId":59,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":725269,"timestamp":260152039437,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1779068124286,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":625720,"timestamp":260152146806,"id":102,"parentId":61,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":732403,"timestamp":260152040189,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1779068124286,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":631652,"timestamp":260152146486,"id":94,"parentId":23,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":749059,"timestamp":260152029129,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1779068124275,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":637939,"timestamp":260152146829,"id":104,"parentId":63,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":744363,"timestamp":260152040466,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1779068124287,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":644247,"timestamp":260152146818,"id":103,"parentId":62,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":750778,"timestamp":260152040337,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1779068124287,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":645995,"timestamp":260152146533,"id":95,"parentId":52,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":755586,"timestamp":260152036993,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1779068124283,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":625137,"timestamp":260152169530,"id":106,"parentId":57,"tags":{},"startTime":1779068124416,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":756223,"timestamp":260152038480,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1779068124285,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":649298,"timestamp":260152146547,"id":96,"parentId":53,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":758693,"timestamp":260152037229,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1779068124284,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":636067,"timestamp":260152160021,"id":105,"parentId":60,"tags":{},"startTime":1779068124406,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":756445,"timestamp":260152039679,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1779068124286,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":650471,"timestamp":260152146568,"id":98,"parentId":55,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":759222,"timestamp":260152037855,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1779068124284,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":656352,"timestamp":260152146579,"id":99,"parentId":56,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":764816,"timestamp":260152038154,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1779068124284,"traceId":"745f127a6a6d6036"},{"name":"is-page-static","duration":661992,"timestamp":260152146557,"id":97,"parentId":54,"tags":{},"startTime":1779068124393,"traceId":"745f127a6a6d6036"},{"name":"check-page","duration":771056,"timestamp":260152037521,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1779068124284,"traceId":"745f127a6a6d6036"},{"name":"static-check","duration":784100,"timestamp":260152024520,"id":19,"parentId":1,"tags":{},"startTime":1779068124271,"traceId":"745f127a6a6d6036"}]
2
+ [{"name":"write-routes-manifest","duration":541,"timestamp":260152818193,"id":108,"parentId":1,"tags":{},"startTime":1779068125064,"traceId":"745f127a6a6d6036"},{"name":"load-dotenv","duration":47,"timestamp":260152831217,"id":111,"parentId":110,"tags":{},"startTime":1779068125077,"traceId":"745f127a6a6d6036"},{"name":"run-export-path-map","duration":557,"timestamp":260152833713,"id":112,"parentId":110,"tags":{},"startTime":1779068125080,"traceId":"745f127a6a6d6036"},{"name":"next-export","duration":604425,"timestamp":260152829974,"id":110,"parentId":1,"tags":{},"startTime":1779068125076,"traceId":"745f127a6a6d6036"},{"name":"move-exported-app-not-found-","duration":541,"timestamp":260153438589,"id":113,"parentId":109,"tags":{},"startTime":1779068125685,"traceId":"745f127a6a6d6036"},{"name":"move-exported-app-global-error-","duration":342,"timestamp":260153439218,"id":114,"parentId":109,"tags":{},"startTime":1779068125685,"traceId":"745f127a6a6d6036"},{"name":"static-generation","duration":618653,"timestamp":260152823033,"id":109,"parentId":1,"tags":{},"startTime":1779068125069,"traceId":"745f127a6a6d6036"},{"name":"write-routes-manifest","duration":402,"timestamp":260153441929,"id":115,"parentId":1,"tags":{},"startTime":1779068125688,"traceId":"745f127a6a6d6036"},{"name":"print-tree-view","duration":5016,"timestamp":260153451835,"id":116,"parentId":1,"tags":{},"startTime":1779068125698,"traceId":"745f127a6a6d6036"},{"name":"write-route-bundle-stats","duration":18957,"timestamp":260153456901,"id":117,"parentId":1,"tags":{},"startTime":1779068125703,"traceId":"745f127a6a6d6036"},{"name":"telemetry-flush","duration":33584,"timestamp":260153475903,"id":118,"parentId":1,"tags":{},"startTime":1779068125722,"traceId":"745f127a6a6d6036"},{"name":"next-build","duration":17290086,"timestamp":260136219426,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779068108466,"traceId":"745f127a6a6d6036"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":6768201,"timestamp":259519031934,"id":14,"parentId":1,"tags":{},"startTime":1779067491278,"traceId":"f96c08ac3e3c16db"},{"name":"turbopack-build-events","duration":105,"timestamp":259519398512,"id":15,"parentId":1,"tags":{},"startTime":1779067491645,"traceId":"f96c08ac3e3c16db"},{"name":"run-typescript","duration":10347206,"timestamp":259525823409,"id":16,"parentId":1,"tags":{},"startTime":1779067498070,"traceId":"f96c08ac3e3c16db"},{"name":"static-check","duration":908791,"timestamp":259536331321,"id":19,"parentId":1,"tags":{},"startTime":1779067508578,"traceId":"f96c08ac3e3c16db"},{"name":"static-generation","duration":681756,"timestamp":259537253748,"id":109,"parentId":1,"tags":{},"startTime":1779067509500,"traceId":"f96c08ac3e3c16db"},{"name":"telemetry-flush","duration":22841,"timestamp":259537972639,"id":118,"parentId":1,"tags":{},"startTime":1779067510219,"traceId":"f96c08ac3e3c16db"},{"name":"next-build","duration":19247097,"timestamp":259518748418,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779067490995,"traceId":"f96c08ac3e3c16db"}]
1
+ [{"name":"run-turbopack","duration":6020459,"timestamp":260136445712,"id":14,"parentId":1,"tags":{},"startTime":1779068108692,"traceId":"745f127a6a6d6036"},{"name":"turbopack-build-events","duration":149,"timestamp":260136736976,"id":15,"parentId":1,"tags":{},"startTime":1779068108983,"traceId":"745f127a6a6d6036"},{"name":"run-typescript","duration":9358438,"timestamp":260142479018,"id":16,"parentId":1,"tags":{},"startTime":1779068114725,"traceId":"745f127a6a6d6036"},{"name":"static-check","duration":784100,"timestamp":260152024520,"id":19,"parentId":1,"tags":{},"startTime":1779068124271,"traceId":"745f127a6a6d6036"},{"name":"static-generation","duration":618653,"timestamp":260152823033,"id":109,"parentId":1,"tags":{},"startTime":1779068125069,"traceId":"745f127a6a6d6036"},{"name":"telemetry-flush","duration":33584,"timestamp":260153475903,"id":118,"parentId":1,"tags":{},"startTime":1779068125722,"traceId":"745f127a6a6d6036"},{"name":"next-build","duration":17290086,"timestamp":260136219426,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1779068108466,"traceId":"745f127a6a6d6036"}]
@@ -6835,11 +6835,38 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6835
6835
  data-edge-visible-endpoint-hovered={isEndpointHoveredEdge ? 'true' : 'false'}
6836
6836
  data-edge-visible-stroke-width={renderWidth}
6837
6837
  data-edge-visible-brightness={(isHoveredEdge || isEndpointHoveredEdge) ? '1.15' : '1'}
6838
+ /* R677 — edge visible PRIMARY path joins the multi-layer
6839
+ halo family. Pre-R677 the filter was brightness(1.15)
6840
+ (light) or url(#topo-glow) brightness(1.15) (cyber) —
6841
+ a single paint axis on hover (R582). Post-R677 prepends
6842
+ 2-layer drop-shadow at pal.flowEdge tint with 2+4
6843
+ stride and alpha 80/40 so the edge stroke glows in
6844
+ its own flow-edge hue on inspection.
6845
+
6846
+ Cyber stack: drop-shadow + drop-shadow + url(#topo-
6847
+ glow) + brightness — the SVG Gaussian glow is
6848
+ PRESERVED behind the new layered halos.
6849
+ Light stack: drop-shadow + drop-shadow + brightness
6850
+ — no SVG glow on light theme.
6851
+
6852
+ Per-edge identity tier now FULLY halo-extended at
6853
+ all 3 anchors (closes the per-edge sub-family):
6854
+ R646 edge-badge CIRCLE (3+6, pal.legendAccent/hotStroke)
6855
+ R672 edge-badge DIGIT (2+4, pal.legendAccent/hotStroke)
6856
+ R677 edge visible PATH (2+4, pal.flowEdge) ← this round
6857
+
6858
+ 36th anchor in multi-layer halo family. The primary
6859
+ curve, the count badge, and the digit inside the
6860
+ badge all glow in lockstep when the edge surfaces
6861
+ under hover — full per-edge identity coherence. */
6862
+ data-edge-visible-halo-layers={(isHoveredEdge || isEndpointHoveredEdge) ? '2' : '0'}
6838
6863
  style={{
6839
6864
  pointerEvents: 'none',
6840
6865
  transition: 'opacity 300ms ease-out, stroke-width 300ms ease-out, stroke 300ms ease-out, filter 300ms ease-out',
6841
6866
  filter: (isHoveredEdge || isEndpointHoveredEdge)
6842
- ? (isLight ? 'brightness(1.15)' : 'url(#topo-glow) brightness(1.15)')
6867
+ ? (isLight
6868
+ ? `drop-shadow(0 0 2px ${pal.flowEdge}80) drop-shadow(0 0 4px ${pal.flowEdge}40) brightness(1.15)`
6869
+ : `drop-shadow(0 0 2px ${pal.flowEdge}80) drop-shadow(0 0 4px ${pal.flowEdge}40) url(#topo-glow) brightness(1.15)`)
6843
6870
  : (isLight ? undefined : 'url(#topo-glow)'),
6844
6871
  }}
6845
6872
  />
@@ -6901,10 +6928,35 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6901
6928
  ease-out' matching the R245/R437 cadence on this
6902
6929
  surface. */
6903
6930
  data-edge-flow-rail-brightness={(isHoveredEdge || isEndpointHoveredEdge) ? '1.15' : '1'}
6931
+ /* R678 — edge flow-rail (dashed underline) joins the
6932
+ multi-layer halo family. Pre-R678 the rail had only
6933
+ brightness(1.15) on hover (R581) — single paint axis.
6934
+ Post-R678 prepends 2-layer drop-shadow at pal.flowPath
6935
+ tint (the rail's OWN stroke color, different from
6936
+ visible-path's pal.flowEdge) with 2+4 stride, alpha
6937
+ 80/40. Same chrome-family vocabulary as R677 visible
6938
+ path.
6939
+
6940
+ Because the rail is dashed (strokeDasharray="2 12"),
6941
+ the drop-shadow paints only where the visible dashes
6942
+ are — creating a glow-stones-along-path effect:
6943
+ each 2px dash halos individually. Adds a pleasing
6944
+ "guide-rail lit-up" gesture on edge inspection.
6945
+
6946
+ Edge stroke pair now FULLY halo-extended at both
6947
+ paint layers:
6948
+ R677 visible primary path (pal.flowEdge 2+4)
6949
+ R678 flow-rail underline (pal.flowPath 2+4) ← this
6950
+
6951
+ Per-edge ALL surfaces now multi-layer:
6952
+ R646 badge circle R672 badge digit
6953
+ R677 visible path R678 flow-rail ← this round
6954
+ 37th anchor in multi-layer halo family. */
6955
+ data-edge-flow-rail-halo-layers={(isHoveredEdge || isEndpointHoveredEdge) ? '2' : '0'}
6904
6956
  style={{
6905
6957
  transition: 'opacity 300ms ease-out, stroke 300ms ease-out, stroke-width 300ms ease-out, filter 300ms ease-out',
6906
6958
  filter: (isHoveredEdge || isEndpointHoveredEdge)
6907
- ? 'brightness(1.15)'
6959
+ ? `drop-shadow(0 0 2px ${pal.flowPath}80) drop-shadow(0 0 4px ${pal.flowPath}40) brightness(1.15)`
6908
6960
  : undefined,
6909
6961
  }}
6910
6962
  />
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.3-preview.190",
3
+ "version": "0.5.3-preview.192",
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,89 @@
1
+ /* Round 678 — edge flow-rail (dashed underline) extends single-axis
2
+ * brightness hover to 2-layer drop-shadow at pal.flowPath tint with
3
+ * 2+4 stride, alpha 80/40. Sibling to R677 visible-path's pal.flowEdge
4
+ * halo. Completes the edge stroke pair (visible + rail) at full halo
5
+ * coverage. Per-edge ALL 4 surfaces now multi-layer (badge circle,
6
+ * badge digit, visible path, flow-rail). 37th anchor in family.
7
+ *
8
+ * The rail is dashed (strokeDasharray="2 12") so each dash halos
9
+ * individually — glow-stones-along-path effect.
10
+ *
11
+ * Source assertions:
12
+ * - filter uses pal.flowPath at 0x80 + 0x40 with 2+4 stride
13
+ * - data-edge-flow-rail-halo-layers attr toggles '2' ↔ '0'
14
+ *
15
+ * Runtime assertions:
16
+ * - rails present in DOM
17
+ * - rest: halo-layers='0' on all
18
+ * - gate consistency: brightness ↔ layers
19
+ */
20
+ import { chromium } from 'playwright';
21
+ import { readFileSync } from 'node:fs';
22
+
23
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
24
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
25
+
26
+ const browser = await chromium.launch({ headless: true });
27
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1200 } });
28
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
29
+ await ctx.addInitScript(() => {
30
+ try {
31
+ localStorage.setItem('anet-theme', 'cyber');
32
+ localStorage.setItem('anet-topo-layout', 'ring');
33
+ sessionStorage.setItem('anet_v3_auth', '1');
34
+ } catch {}
35
+ });
36
+ await ctx.route('**/api/hub/status*', async (route) => {
37
+ const r = await route.fetch();
38
+ const b = await r.json();
39
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
40
+ const mk = (alias) => ({
41
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
42
+ network_id: nid, project_dir: null,
43
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
44
+ });
45
+ await route.fulfill({ response: r, json: { ...b, sessions: [
46
+ mk('a·1'), mk('a·2'), mk('a·3'),
47
+ ] } });
48
+ });
49
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
50
+ { id: 'm1', from_alias: 'a·1', to_alias: 'a·2', kind: 'message', content: 'p', network_id: 'default', created_at: fresh },
51
+ { id: 'm2', from_alias: 'a·2', to_alias: 'a·3', kind: 'task', content: 'p2', network_id: 'default', created_at: fresh },
52
+ ] } }));
53
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
54
+ const page = await ctx.newPage();
55
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
56
+ await page.waitForSelector('[data-edge-flow-rail-halo-layers]', { timeout: 15000, state: 'attached' });
57
+ await page.waitForTimeout(500);
58
+
59
+ const restState = await page.evaluate(() => {
60
+ return Array.from(document.querySelectorAll('[data-edge-flow-rail]')).map(el => ({
61
+ rail: el.getAttribute('data-edge-flow-rail'),
62
+ layers: el.getAttribute('data-edge-flow-rail-halo-layers'),
63
+ brightness: el.getAttribute('data-edge-flow-rail-brightness'),
64
+ }));
65
+ });
66
+
67
+ await browser.close();
68
+
69
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
70
+ const sourceFilter = /\? `drop-shadow\(0 0 2px \$\{pal\.flowPath\}80\) drop-shadow\(0 0 4px \$\{pal\.flowPath\}40\) brightness\(1\.15\)`/.test(src);
71
+ const sourceAttr = /data-edge-flow-rail-halo-layers=\{\(isHoveredEdge \|\| isEndpointHoveredEdge\) \? '2' : '0'\}/.test(src);
72
+
73
+ const allConsistent = restState.every(e =>
74
+ (e.brightness === '1' && e.layers === '0') ||
75
+ (e.brightness === '1.15' && e.layers === '2')
76
+ );
77
+
78
+ const results = {
79
+ rails_present: restState.length >= 2,
80
+ rest_all_layers_zero: restState.every(e => e.layers === '0'),
81
+ rest_gate_consistent: allConsistent,
82
+ source_filter: sourceFilter,
83
+ source_layers_attr: sourceAttr,
84
+ };
85
+ const ok = Object.values(results).every(Boolean);
86
+ console.log(`${ok ? '✅' : '❌'} R678 edge flow-rail multi-layer halo (completes edge stroke pair 2/2):`,
87
+ JSON.stringify(results, null, 2),
88
+ `\n rest: ${JSON.stringify(restState)}`);
89
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,87 @@
1
+ /* Round 677 — edge visible PRIMARY path extends single-axis brightness
2
+ * hover paint to 2-layer drop-shadow at pal.flowEdge tint with 2+4
3
+ * stride, alpha 80/40. Closes the per-edge identity halo tier with
4
+ * R646 circle + R672 digit + R677 visible path all multi-layer. 36th
5
+ * anchor in family.
6
+ *
7
+ * Source assertions:
8
+ * - light filter: drop-shadow×2 + brightness(1.15), pal.flowEdge tint
9
+ * - cyber filter: drop-shadow×2 + url(#topo-glow) + brightness(1.15)
10
+ * - data-edge-visible-halo-layers attr toggles '2' ↔ '0'
11
+ *
12
+ * Runtime assertions:
13
+ * - edges present in DOM
14
+ * - all rest: halo-layers='0'
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: 1200 } });
24
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
25
+ await ctx.addInitScript(() => {
26
+ try {
27
+ localStorage.setItem('anet-theme', 'cyber');
28
+ localStorage.setItem('anet-topo-layout', 'ring');
29
+ sessionStorage.setItem('anet_v3_auth', '1');
30
+ } catch {}
31
+ });
32
+ await ctx.route('**/api/hub/status*', async (route) => {
33
+ const r = await route.fetch();
34
+ const b = await r.json();
35
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
36
+ const mk = (alias) => ({
37
+ alias, status: 'idle', model: 'claude-opus-4', runtime: 'claude-code-cli',
38
+ network_id: nid, project_dir: null,
39
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
40
+ });
41
+ await route.fulfill({ response: r, json: { ...b, sessions: [
42
+ mk('a·1'), mk('a·2'), mk('a·3'),
43
+ ] } });
44
+ });
45
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [
46
+ { id: 'm1', from_alias: 'a·1', to_alias: 'a·2', kind: 'message', content: 'p', network_id: 'default', created_at: fresh },
47
+ { id: 'm2', from_alias: 'a·2', to_alias: 'a·3', kind: 'task', content: 'p2', network_id: 'default', created_at: fresh },
48
+ ] } }));
49
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
50
+ const page = await ctx.newPage();
51
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'networkidle' });
52
+ await page.waitForSelector('[data-edge-visible-halo-layers]', { timeout: 15000, state: 'attached' });
53
+ await page.waitForTimeout(500);
54
+
55
+ const restState = await page.evaluate(() => {
56
+ return Array.from(document.querySelectorAll('[data-edge-visible]')).map(el => ({
57
+ edge: el.getAttribute('data-edge-visible'),
58
+ layers: el.getAttribute('data-edge-visible-halo-layers'),
59
+ brightness: el.getAttribute('data-edge-visible-brightness'),
60
+ }));
61
+ });
62
+
63
+ await browser.close();
64
+
65
+ const src = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
66
+ const sourceLight = /isLight\s*\?\s*`drop-shadow\(0 0 2px \$\{pal\.flowEdge\}80\) drop-shadow\(0 0 4px \$\{pal\.flowEdge\}40\) brightness\(1\.15\)`/.test(src);
67
+ const sourceCyber = /:\s*`drop-shadow\(0 0 2px \$\{pal\.flowEdge\}80\) drop-shadow\(0 0 4px \$\{pal\.flowEdge\}40\) url\(#topo-glow\) brightness\(1\.15\)`/.test(src);
68
+ const sourceAttr = /data-edge-visible-halo-layers=\{\(isHoveredEdge \|\| isEndpointHoveredEdge\) \? '2' : '0'\}/.test(src);
69
+
70
+ const allConsistent = restState.every(e =>
71
+ (e.brightness === '1' && e.layers === '0') ||
72
+ (e.brightness === '1.15' && e.layers === '2')
73
+ );
74
+
75
+ const results = {
76
+ edges_present: restState.length >= 2,
77
+ rest_all_layers_zero: restState.every(e => e.layers === '0'),
78
+ rest_gate_consistent: allConsistent,
79
+ source_light_filter: sourceLight,
80
+ source_cyber_filter: sourceCyber,
81
+ source_layers_attr: sourceAttr,
82
+ };
83
+ const ok = Object.values(results).every(Boolean);
84
+ console.log(`${ok ? '✅' : '❌'} R677 edge visible path multi-layer halo (closes per-edge tier 3/3):`,
85
+ JSON.stringify(results, null, 2),
86
+ `\n rest: ${JSON.stringify(restState)}`);
87
+ process.exit(ok ? 0 : 1);