@sleep2agi/agent-network-dashboard 0.5.1-preview.85 → 0.5.1-preview.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (140) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/diagnostics/route-bundle-stats.json +4 -4
  4. package/.next/fallback-build-manifest.json +3 -3
  5. package/.next/server/app/_global-error.html +1 -1
  6. package/.next/server/app/_global-error.rsc +1 -1
  7. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  12. package/.next/server/app/_not-found.html +1 -1
  13. package/.next/server/app/_not-found.rsc +1 -1
  14. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  20. package/.next/server/app/admin.html +1 -1
  21. package/.next/server/app/admin.rsc +1 -1
  22. package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
  23. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  24. package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
  25. package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  28. package/.next/server/app/index.html +2 -2
  29. package/.next/server/app/index.rsc +2 -2
  30. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  31. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  32. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  33. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  34. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  35. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/login.html +2 -2
  37. package/.next/server/app/login.rsc +2 -2
  38. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  39. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  40. package/.next/server/app/login.segments/_index.segment.rsc +1 -1
  41. package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  44. package/.next/server/app/logs.html +1 -1
  45. package/.next/server/app/logs.rsc +1 -1
  46. package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
  47. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  48. package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
  49. package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
  50. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  52. package/.next/server/app/messages.html +1 -1
  53. package/.next/server/app/messages.rsc +1 -1
  54. package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
  55. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  56. package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
  57. package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
  58. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  59. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  60. package/.next/server/app/node.html +1 -1
  61. package/.next/server/app/node.rsc +1 -1
  62. package/.next/server/app/node.segments/_full.segment.rsc +1 -1
  63. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  64. package/.next/server/app/node.segments/_index.segment.rsc +1 -1
  65. package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
  66. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  67. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  68. package/.next/server/app/nodes.html +1 -1
  69. package/.next/server/app/nodes.rsc +1 -1
  70. package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
  71. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  72. package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
  73. package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
  74. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  75. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  76. package/.next/server/app/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/server-logs.html +1 -1
  78. package/.next/server/app/server-logs.rsc +1 -1
  79. package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
  80. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  81. package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
  82. package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
  83. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  84. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  85. package/.next/server/app/settings/networks.html +1 -1
  86. package/.next/server/app/settings/networks.rsc +1 -1
  87. package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
  88. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
  90. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
  91. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  94. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/settings/tokens.html +1 -1
  96. package/.next/server/app/settings/tokens.rsc +1 -1
  97. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
  98. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  99. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
  100. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
  101. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  102. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  103. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  104. package/.next/server/app/settings.html +2 -2
  105. package/.next/server/app/settings.rsc +2 -2
  106. package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
  109. package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
  110. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  112. package/.next/server/app/tasks.html +1 -1
  113. package/.next/server/app/tasks.rsc +1 -1
  114. package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
  115. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  116. package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
  117. package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
  118. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  119. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  120. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  121. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  122. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  123. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  124. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  125. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  126. package/.next/server/middleware-build-manifest.js +3 -3
  127. package/.next/server/pages/404.html +1 -1
  128. package/.next/server/pages/500.html +1 -1
  129. package/.next/static/chunks/{00hvv8dii42va.js → 01s467_jb4i2y.js} +1 -1
  130. package/.next/static/chunks/{0.-h4njoxars9.js → 0e6lij1-qo58b.js} +1 -1
  131. package/.next/static/chunks/{0~t_kc2wndrn8.js → 13-9l~6w.yz2k.js} +1 -1
  132. package/.next/trace +2 -2
  133. package/.next/trace-build +1 -1
  134. package/app/components/TopoGraph.tsx +37 -4
  135. package/package.json +1 -1
  136. package/scripts/topo-edge-badge-digit-fw-test.mjs +103 -0
  137. package/scripts/topo-hub-digit-fw-hover-test.mjs +102 -0
  138. /package/.next/static/{jJHu2dC1nPGb5BO9GJ8p6 → fyWoUJ4rwmVhmgIjVDxPm}/_buildManifest.js +0 -0
  139. /package/.next/static/{jJHu2dC1nPGb5BO9GJ8p6 → fyWoUJ4rwmVhmgIjVDxPm}/_clientMiddlewareManifest.js +0 -0
  140. /package/.next/static/{jJHu2dC1nPGb5BO9GJ8p6 → fyWoUJ4rwmVhmgIjVDxPm}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":322,"timestamp":157882603359,"id":4,"parentId":1,"tags":{},"startTime":1778965854850,"traceId":"71d81f00e9af9944"},{"name":"load-custom-routes","duration":627,"timestamp":157882603887,"id":5,"parentId":1,"tags":{},"startTime":1778965854850,"traceId":"71d81f00e9af9944"},{"name":"create-dist-dir","duration":695,"timestamp":157882604557,"id":6,"parentId":1,"tags":{},"startTime":1778965854851,"traceId":"71d81f00e9af9944"},{"name":"clean","duration":32815,"timestamp":157882605865,"id":7,"parentId":1,"tags":{},"startTime":1778965854852,"traceId":"71d81f00e9af9944"},{"name":"discover-routes","duration":22455,"timestamp":157882721207,"id":8,"parentId":1,"tags":{},"startTime":1778965854967,"traceId":"71d81f00e9af9944"},{"name":"create-root-mapping","duration":126,"timestamp":157882743717,"id":9,"parentId":1,"tags":{},"startTime":1778965854990,"traceId":"71d81f00e9af9944"},{"name":"generate-route-types","duration":20332,"timestamp":157882746273,"id":10,"parentId":1,"tags":{},"startTime":1778965854993,"traceId":"71d81f00e9af9944"},{"name":"public-dir-conflict-check","duration":114,"timestamp":157882766681,"id":11,"parentId":1,"tags":{},"startTime":1778965855013,"traceId":"71d81f00e9af9944"},{"name":"generate-routes-manifest","duration":5237,"timestamp":157882766909,"id":12,"parentId":1,"tags":{},"startTime":1778965855013,"traceId":"71d81f00e9af9944"},{"name":"run-turbopack","duration":5968533,"timestamp":157882778238,"id":14,"parentId":1,"tags":{},"startTime":1778965855025,"traceId":"71d81f00e9af9944"},{"name":"turbopack-build-events","duration":117,"timestamp":157883076702,"id":15,"parentId":1,"tags":{},"startTime":1778965855323,"traceId":"71d81f00e9af9944"},{"name":"run-typescript","duration":9490692,"timestamp":157888755846,"id":16,"parentId":1,"tags":{},"startTime":1778965861002,"traceId":"71d81f00e9af9944"},{"name":"generate-required-server-files","duration":2216,"timestamp":157898247449,"id":18,"parentId":1,"tags":{},"startTime":1778965870494,"traceId":"71d81f00e9af9944"},{"name":"check-static-error-page","duration":11082,"timestamp":157898468571,"id":20,"parentId":19,"tags":{},"startTime":1778965870715,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":471077,"timestamp":157898482145,"id":65,"parentId":22,"tags":{},"startTime":1778965870728,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":482434,"timestamp":157898470945,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778965870717,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":531435,"timestamp":157898482533,"id":69,"parentId":28,"tags":{},"startTime":1778965870729,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":539949,"timestamp":157898474130,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778965870720,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":570365,"timestamp":157898484230,"id":72,"parentId":32,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":580096,"timestamp":157898474576,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":584861,"timestamp":157898482320,"id":67,"parentId":26,"tags":{},"startTime":1778965870729,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":593342,"timestamp":157898473911,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778965870720,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":589028,"timestamp":157898481854,"id":64,"parentId":21,"tags":{},"startTime":1778965870728,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":601080,"timestamp":157898469871,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778965870716,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":588154,"timestamp":157898484430,"id":73,"parentId":33,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":597983,"timestamp":157898474664,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":589064,"timestamp":157898484706,"id":74,"parentId":34,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":599201,"timestamp":157898474736,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":595207,"timestamp":157898482244,"id":66,"parentId":25,"tags":{},"startTime":1778965870729,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":603729,"timestamp":157898473775,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778965870720,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":592950,"timestamp":157898484781,"id":76,"parentId":36,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":602621,"timestamp":157898475177,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":601075,"timestamp":157898484838,"id":79,"parentId":39,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":610506,"timestamp":157898475457,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":609211,"timestamp":157898484852,"id":80,"parentId":40,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":618594,"timestamp":157898475518,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":611276,"timestamp":157898484810,"id":77,"parentId":37,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":620833,"timestamp":157898475304,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":619633,"timestamp":157898484861,"id":81,"parentId":42,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":628796,"timestamp":157898475759,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":622353,"timestamp":157898482420,"id":68,"parentId":27,"tags":{},"startTime":1778965870729,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":630779,"timestamp":157898474031,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778965870720,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":620145,"timestamp":157898484823,"id":78,"parentId":38,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":629605,"timestamp":157898475391,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":627508,"timestamp":157898482782,"id":70,"parentId":29,"tags":{},"startTime":1778965870729,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":636119,"timestamp":157898474215,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778965870720,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":631041,"timestamp":157898482939,"id":71,"parentId":30,"tags":{},"startTime":1778965870729,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":639732,"timestamp":157898474309,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":630160,"timestamp":157898484888,"id":83,"parentId":45,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":638948,"timestamp":157898476151,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":635189,"timestamp":157898484910,"id":85,"parentId":47,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":643800,"timestamp":157898476342,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":639169,"timestamp":157898484940,"id":87,"parentId":49,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":647656,"timestamp":157898476493,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":639411,"timestamp":157898484874,"id":82,"parentId":44,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":648254,"timestamp":157898476056,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":639470,"timestamp":157898484950,"id":88,"parentId":50,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":647884,"timestamp":157898476558,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":636513,"timestamp":157898493586,"id":90,"parentId":24,"tags":{},"startTime":1778965870740,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":658697,"timestamp":157898471444,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778965870718,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":636525,"timestamp":157898500574,"id":92,"parentId":41,"tags":{},"startTime":1778965870747,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":661572,"timestamp":157898475575,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":630587,"timestamp":157898506728,"id":93,"parentId":43,"tags":{},"startTime":1778965870753,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":661497,"timestamp":157898475854,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778965870722,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":640120,"timestamp":157898497364,"id":91,"parentId":31,"tags":{},"startTime":1778965870744,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":663124,"timestamp":157898474392,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":652723,"timestamp":157898484923,"id":86,"parentId":48,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":661269,"timestamp":157898476405,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":653242,"timestamp":157898484901,"id":84,"parentId":46,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":661927,"timestamp":157898476255,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":660898,"timestamp":157898484963,"id":89,"parentId":51,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":669298,"timestamp":157898476617,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":677701,"timestamp":157898484741,"id":75,"parentId":35,"tags":{},"startTime":1778965870731,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":687676,"timestamp":157898474829,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778965870721,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":662009,"timestamp":157898509607,"id":100,"parentId":58,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":693179,"timestamp":157898478495,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778965870725,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":670774,"timestamp":157898509746,"id":101,"parentId":59,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":701903,"timestamp":157898478669,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778965870725,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":676036,"timestamp":157898509519,"id":95,"parentId":52,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":708657,"timestamp":157898476955,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":678459,"timestamp":157898509790,"id":102,"parentId":61,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":709123,"timestamp":157898479170,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778965870725,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":684730,"timestamp":157898509483,"id":94,"parentId":23,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":723070,"timestamp":157898471190,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778965870717,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":693415,"timestamp":157898509823,"id":104,"parentId":63,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":723880,"timestamp":157898479409,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778965870726,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":693565,"timestamp":157898509809,"id":103,"parentId":62,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":724105,"timestamp":157898479293,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778965870726,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":693918,"timestamp":157898509538,"id":96,"parentId":53,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":726383,"timestamp":157898477098,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":695654,"timestamp":157898509586,"id":99,"parentId":56,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":727557,"timestamp":157898477723,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778965870724,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":698145,"timestamp":157898509569,"id":98,"parentId":55,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":730313,"timestamp":157898477458,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778965870724,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":698293,"timestamp":157898509551,"id":97,"parentId":54,"tags":{},"startTime":1778965870756,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":730678,"timestamp":157898477226,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778965870723,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":683019,"timestamp":157898525103,"id":105,"parentId":60,"tags":{},"startTime":1778965870771,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":729322,"timestamp":157898478829,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778965870725,"traceId":"71d81f00e9af9944"},{"name":"is-page-static","duration":616583,"timestamp":157898595665,"id":106,"parentId":57,"tags":{},"startTime":1778965870842,"traceId":"71d81f00e9af9944"},{"name":"check-page","duration":734229,"timestamp":157898478054,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778965870724,"traceId":"71d81f00e9af9944"},{"name":"static-check","duration":744796,"timestamp":157898467552,"id":19,"parentId":1,"tags":{},"startTime":1778965870714,"traceId":"71d81f00e9af9944"}]
2
- [{"name":"write-routes-manifest","duration":742,"timestamp":157899229935,"id":108,"parentId":1,"tags":{},"startTime":1778965871476,"traceId":"71d81f00e9af9944"},{"name":"load-dotenv","duration":51,"timestamp":157899244354,"id":111,"parentId":110,"tags":{},"startTime":1778965871491,"traceId":"71d81f00e9af9944"},{"name":"run-export-path-map","duration":727,"timestamp":157899246941,"id":112,"parentId":110,"tags":{},"startTime":1778965871493,"traceId":"71d81f00e9af9944"},{"name":"next-export","duration":596609,"timestamp":157899242621,"id":110,"parentId":1,"tags":{},"startTime":1778965871489,"traceId":"71d81f00e9af9944"},{"name":"move-exported-app-not-found-","duration":4984,"timestamp":157899844416,"id":113,"parentId":109,"tags":{},"startTime":1778965872091,"traceId":"71d81f00e9af9944"},{"name":"move-exported-app-global-error-","duration":1068,"timestamp":157899849531,"id":114,"parentId":109,"tags":{},"startTime":1778965872096,"traceId":"71d81f00e9af9944"},{"name":"static-generation","duration":616564,"timestamp":157899236498,"id":109,"parentId":1,"tags":{},"startTime":1778965871483,"traceId":"71d81f00e9af9944"},{"name":"write-routes-manifest","duration":362,"timestamp":157899853405,"id":115,"parentId":1,"tags":{},"startTime":1778965872100,"traceId":"71d81f00e9af9944"},{"name":"print-tree-view","duration":4047,"timestamp":157899871137,"id":116,"parentId":1,"tags":{},"startTime":1778965872117,"traceId":"71d81f00e9af9944"},{"name":"write-route-bundle-stats","duration":15939,"timestamp":157899875217,"id":117,"parentId":1,"tags":{},"startTime":1778965872121,"traceId":"71d81f00e9af9944"},{"name":"telemetry-flush","duration":41051,"timestamp":157899891200,"id":118,"parentId":1,"tags":{},"startTime":1778965872137,"traceId":"71d81f00e9af9944"},{"name":"next-build","duration":17377779,"timestamp":157882554515,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778965854801,"traceId":"71d81f00e9af9944"}]
1
+ [{"name":"generate-buildid","duration":305,"timestamp":158381885722,"id":4,"parentId":1,"tags":{},"startTime":1778966354132,"traceId":"aaa334e34a39ccfb"},{"name":"load-custom-routes","duration":500,"timestamp":158381886174,"id":5,"parentId":1,"tags":{},"startTime":1778966354132,"traceId":"aaa334e34a39ccfb"},{"name":"create-dist-dir","duration":711,"timestamp":158381886723,"id":6,"parentId":1,"tags":{},"startTime":1778966354133,"traceId":"aaa334e34a39ccfb"},{"name":"clean","duration":33038,"timestamp":158381888146,"id":7,"parentId":1,"tags":{},"startTime":1778966354134,"traceId":"aaa334e34a39ccfb"},{"name":"discover-routes","duration":13674,"timestamp":158381999908,"id":8,"parentId":1,"tags":{},"startTime":1778966354246,"traceId":"aaa334e34a39ccfb"},{"name":"create-root-mapping","duration":130,"timestamp":158382013652,"id":9,"parentId":1,"tags":{},"startTime":1778966354260,"traceId":"aaa334e34a39ccfb"},{"name":"generate-route-types","duration":42085,"timestamp":158382016358,"id":10,"parentId":1,"tags":{},"startTime":1778966354263,"traceId":"aaa334e34a39ccfb"},{"name":"public-dir-conflict-check","duration":129,"timestamp":158382058560,"id":11,"parentId":1,"tags":{},"startTime":1778966354305,"traceId":"aaa334e34a39ccfb"},{"name":"generate-routes-manifest","duration":6035,"timestamp":158382058850,"id":12,"parentId":1,"tags":{},"startTime":1778966354305,"traceId":"aaa334e34a39ccfb"},{"name":"run-turbopack","duration":6143170,"timestamp":158382070226,"id":14,"parentId":1,"tags":{},"startTime":1778966354317,"traceId":"aaa334e34a39ccfb"},{"name":"turbopack-build-events","duration":70,"timestamp":158382394819,"id":15,"parentId":1,"tags":{},"startTime":1778966354641,"traceId":"aaa334e34a39ccfb"},{"name":"run-typescript","duration":9676641,"timestamp":158388222850,"id":16,"parentId":1,"tags":{},"startTime":1778966360469,"traceId":"aaa334e34a39ccfb"},{"name":"generate-required-server-files","duration":2685,"timestamp":158397900808,"id":18,"parentId":1,"tags":{},"startTime":1778966370147,"traceId":"aaa334e34a39ccfb"},{"name":"check-static-error-page","duration":12610,"timestamp":158398076139,"id":20,"parentId":19,"tags":{},"startTime":1778966370322,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":441917,"timestamp":158398093977,"id":65,"parentId":22,"tags":{},"startTime":1778966370340,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":457697,"timestamp":158398078377,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778966370325,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":536922,"timestamp":158398095236,"id":66,"parentId":25,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":551372,"timestamp":158398080877,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778966370327,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":565641,"timestamp":158398096129,"id":72,"parentId":32,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":579871,"timestamp":158398081979,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778966370328,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":565994,"timestamp":158398096069,"id":71,"parentId":30,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":580525,"timestamp":158398081579,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778966370328,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":571290,"timestamp":158398096300,"id":73,"parentId":33,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":585511,"timestamp":158398082142,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778966370328,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":576195,"timestamp":158398096412,"id":75,"parentId":35,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":590401,"timestamp":158398082421,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778966370329,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":590323,"timestamp":158398096382,"id":74,"parentId":34,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":604491,"timestamp":158398082285,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778966370329,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":603249,"timestamp":158398096428,"id":76,"parentId":36,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":616887,"timestamp":158398082842,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778966370329,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":607783,"timestamp":158398096473,"id":78,"parentId":38,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":621192,"timestamp":158398083131,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778966370329,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":612638,"timestamp":158398096456,"id":77,"parentId":37,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":626172,"timestamp":158398082980,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778966370329,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":613961,"timestamp":158398095404,"id":67,"parentId":26,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":628344,"timestamp":158398081060,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778966370327,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":613081,"timestamp":158398096483,"id":79,"parentId":39,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":626393,"timestamp":158398083205,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778966370329,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":617193,"timestamp":158398096496,"id":80,"parentId":40,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":630466,"timestamp":158398083270,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":618341,"timestamp":158398096523,"id":82,"parentId":44,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":631117,"timestamp":158398083789,"id":44,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":622429,"timestamp":158398096532,"id":83,"parentId":45,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":635156,"timestamp":158398083870,"id":45,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":622998,"timestamp":158398096544,"id":84,"parentId":46,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":635650,"timestamp":158398083928,"id":46,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":627331,"timestamp":158398096557,"id":85,"parentId":47,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":639929,"timestamp":158398084019,"id":47,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":627831,"timestamp":158398096571,"id":86,"parentId":48,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":640357,"timestamp":158398084088,"id":48,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":632053,"timestamp":158398096581,"id":87,"parentId":49,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":642989,"timestamp":158398085687,"id":49,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778966370332,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":632278,"timestamp":158398096594,"id":88,"parentId":50,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":643108,"timestamp":158398085796,"id":50,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778966370332,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":638829,"timestamp":158398095523,"id":68,"parentId":27,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":653200,"timestamp":158398081195,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778966370327,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":633704,"timestamp":158398100808,"id":90,"parentId":24,"tags":{},"startTime":1778966370347,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":655735,"timestamp":158398078804,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778966370325,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":642117,"timestamp":158398093589,"id":64,"parentId":21,"tags":{},"startTime":1778966370340,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":658450,"timestamp":158398077297,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778966370324,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":641548,"timestamp":158398103048,"id":92,"parentId":41,"tags":{},"startTime":1778966370349,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":661324,"timestamp":158398083333,"id":41,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/agents"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":648234,"timestamp":158398096608,"id":89,"parentId":51,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":659032,"timestamp":158398085854,"id":51,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778966370332,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":651725,"timestamp":158398096509,"id":81,"parentId":42,"tags":{},"startTime":1778966370343,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":664779,"timestamp":158398083510,"id":42,"parentId":19,"tags":{"page":"/api/hub/server/[hostname]/health"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":656920,"timestamp":158398102069,"id":91,"parentId":31,"tags":{},"startTime":1778966370348,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":677359,"timestamp":158398081704,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778966370328,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":690775,"timestamp":158398095625,"id":69,"parentId":28,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":705170,"timestamp":158398081315,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778966370328,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":707488,"timestamp":158398095907,"id":70,"parentId":29,"tags":{},"startTime":1778966370342,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":722031,"timestamp":158398081431,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778966370328,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":708900,"timestamp":158398104498,"id":93,"parentId":43,"tags":{},"startTime":1778966370351,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":729879,"timestamp":158398083595,"id":43,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778966370330,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":681417,"timestamp":158398132522,"id":96,"parentId":53,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":727709,"timestamp":158398086284,"id":53,"parentId":19,"tags":{"page":"/logs"},"startTime":1778966370333,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":683451,"timestamp":158398132508,"id":95,"parentId":52,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":729868,"timestamp":158398086170,"id":52,"parentId":19,"tags":{"page":"/login"},"startTime":1778966370332,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":688492,"timestamp":158398132571,"id":100,"parentId":58,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":733804,"timestamp":158398087318,"id":58,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778966370334,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":689107,"timestamp":158398132588,"id":101,"parentId":59,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":734238,"timestamp":158398087535,"id":59,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778966370334,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":689483,"timestamp":158398132463,"id":94,"parentId":23,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":743390,"timestamp":158398078606,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778966370325,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":690812,"timestamp":158398132604,"id":102,"parentId":61,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":735280,"timestamp":158398088176,"id":61,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778966370334,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":692676,"timestamp":158398132536,"id":97,"parentId":54,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":738866,"timestamp":158398086386,"id":54,"parentId":19,"tags":{"page":"/messages"},"startTime":1778966370333,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":696301,"timestamp":158398132626,"id":104,"parentId":63,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":740480,"timestamp":158398088489,"id":63,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778966370335,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":697747,"timestamp":158398132651,"id":106,"parentId":57,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":743609,"timestamp":158398086825,"id":57,"parentId":19,"tags":{"page":"/"},"startTime":1778966370333,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":699101,"timestamp":158398132639,"id":105,"parentId":60,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":744079,"timestamp":158398087719,"id":60,"parentId":19,"tags":{"page":"/settings"},"startTime":1778966370334,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":702202,"timestamp":158398132614,"id":103,"parentId":62,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":746521,"timestamp":158398088335,"id":62,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778966370335,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":724538,"timestamp":158398132549,"id":98,"parentId":55,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":770639,"timestamp":158398086518,"id":55,"parentId":19,"tags":{"page":"/node"},"startTime":1778966370333,"traceId":"aaa334e34a39ccfb"},{"name":"is-page-static","duration":735715,"timestamp":158398132562,"id":99,"parentId":56,"tags":{},"startTime":1778966370379,"traceId":"aaa334e34a39ccfb"},{"name":"check-page","duration":781680,"timestamp":158398086653,"id":56,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778966370333,"traceId":"aaa334e34a39ccfb"},{"name":"static-check","duration":793075,"timestamp":158398075303,"id":19,"parentId":1,"tags":{},"startTime":1778966370322,"traceId":"aaa334e34a39ccfb"}]
2
+ [{"name":"write-routes-manifest","duration":542,"timestamp":158398880082,"id":108,"parentId":1,"tags":{},"startTime":1778966371126,"traceId":"aaa334e34a39ccfb"},{"name":"load-dotenv","duration":60,"timestamp":158398896152,"id":111,"parentId":110,"tags":{},"startTime":1778966371142,"traceId":"aaa334e34a39ccfb"},{"name":"run-export-path-map","duration":507,"timestamp":158398899199,"id":112,"parentId":110,"tags":{},"startTime":1778966371145,"traceId":"aaa334e34a39ccfb"},{"name":"next-export","duration":611059,"timestamp":158398894583,"id":110,"parentId":1,"tags":{},"startTime":1778966371141,"traceId":"aaa334e34a39ccfb"},{"name":"move-exported-app-not-found-","duration":533,"timestamp":158399511555,"id":113,"parentId":109,"tags":{},"startTime":1778966371758,"traceId":"aaa334e34a39ccfb"},{"name":"move-exported-app-global-error-","duration":363,"timestamp":158399512178,"id":114,"parentId":109,"tags":{},"startTime":1778966371758,"traceId":"aaa334e34a39ccfb"},{"name":"static-generation","duration":626828,"timestamp":158398887829,"id":109,"parentId":1,"tags":{},"startTime":1778966371134,"traceId":"aaa334e34a39ccfb"},{"name":"write-routes-manifest","duration":550,"timestamp":158399514924,"id":115,"parentId":1,"tags":{},"startTime":1778966371761,"traceId":"aaa334e34a39ccfb"},{"name":"print-tree-view","duration":4222,"timestamp":158399531963,"id":116,"parentId":1,"tags":{},"startTime":1778966371778,"traceId":"aaa334e34a39ccfb"},{"name":"write-route-bundle-stats","duration":14344,"timestamp":158399536222,"id":117,"parentId":1,"tags":{},"startTime":1778966371782,"traceId":"aaa334e34a39ccfb"},{"name":"telemetry-flush","duration":18097,"timestamp":158399550599,"id":118,"parentId":1,"tags":{},"startTime":1778966371797,"traceId":"aaa334e34a39ccfb"},{"name":"next-build","duration":17734287,"timestamp":158381834437,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778966354081,"traceId":"aaa334e34a39ccfb"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5968533,"timestamp":157882778238,"id":14,"parentId":1,"tags":{},"startTime":1778965855025,"traceId":"71d81f00e9af9944"},{"name":"turbopack-build-events","duration":117,"timestamp":157883076702,"id":15,"parentId":1,"tags":{},"startTime":1778965855323,"traceId":"71d81f00e9af9944"},{"name":"run-typescript","duration":9490692,"timestamp":157888755846,"id":16,"parentId":1,"tags":{},"startTime":1778965861002,"traceId":"71d81f00e9af9944"},{"name":"static-check","duration":744796,"timestamp":157898467552,"id":19,"parentId":1,"tags":{},"startTime":1778965870714,"traceId":"71d81f00e9af9944"},{"name":"static-generation","duration":616564,"timestamp":157899236498,"id":109,"parentId":1,"tags":{},"startTime":1778965871483,"traceId":"71d81f00e9af9944"},{"name":"telemetry-flush","duration":41051,"timestamp":157899891200,"id":118,"parentId":1,"tags":{},"startTime":1778965872137,"traceId":"71d81f00e9af9944"},{"name":"next-build","duration":17377779,"timestamp":157882554515,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778965854801,"traceId":"71d81f00e9af9944"}]
1
+ [{"name":"run-turbopack","duration":6143170,"timestamp":158382070226,"id":14,"parentId":1,"tags":{},"startTime":1778966354317,"traceId":"aaa334e34a39ccfb"},{"name":"turbopack-build-events","duration":70,"timestamp":158382394819,"id":15,"parentId":1,"tags":{},"startTime":1778966354641,"traceId":"aaa334e34a39ccfb"},{"name":"run-typescript","duration":9676641,"timestamp":158388222850,"id":16,"parentId":1,"tags":{},"startTime":1778966360469,"traceId":"aaa334e34a39ccfb"},{"name":"static-check","duration":793075,"timestamp":158398075303,"id":19,"parentId":1,"tags":{},"startTime":1778966370322,"traceId":"aaa334e34a39ccfb"},{"name":"static-generation","duration":626828,"timestamp":158398887829,"id":109,"parentId":1,"tags":{},"startTime":1778966371134,"traceId":"aaa334e34a39ccfb"},{"name":"telemetry-flush","duration":18097,"timestamp":158399550599,"id":118,"parentId":1,"tags":{},"startTime":1778966371797,"traceId":"aaa334e34a39ccfb"},{"name":"next-build","duration":17734287,"timestamp":158381834437,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778966354081,"traceId":"aaa334e34a39ccfb"}]
@@ -5397,7 +5397,24 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5397
5397
  stroke-width pin/hot transitions all preserved. */
5398
5398
  fontSize="11"
5399
5399
  fontFamily="monospace"
5400
- fontWeight="700"
5400
+ /* R426 — edge-badge digit fontWeight 700 → 800 on
5401
+ (isPinned || isHot). 4th anchor on the "data
5402
+ tightens under attention" typographic-weight
5403
+ pattern:
5404
+ R416 chip-digit (chip-row hover trigger)
5405
+ R424 panel-digit (panel hover trigger)
5406
+ R425 hub-digit (hub hover trigger)
5407
+ R426 edge-badge-digit (pin/hot trigger) ← this
5408
+ The badge digit is the per-edge equivalent of
5409
+ the hub digit (R361 sibling fontSize bump
5410
+ reasoning). Stacks with R188 stroke-width pin/
5411
+ hot lift (1.25 → 1.5) + R220 letter-spacing pin/
5412
+ hot tween (0 → 0.4) for a 3-axis pin/hot signa-
5413
+ ture (edge structure + text spacing + text
5414
+ weight). The R408 transition is letter-spacing
5415
+ 300ms; R426 appends font-weight 300ms so the
5416
+ weight bump co-eases under the same cadence. */
5417
+ fontWeight={(isPinned || isHot) ? '800' : '700'}
5401
5418
  data-edge-badge-text={link.key}
5402
5419
  data-edge-badge-text-pin={(isPinned || isHot) ? 'true' : 'false'}
5403
5420
  data-edge-badge-text-font-size="11"
@@ -5405,7 +5422,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5405
5422
  pointerEvents: 'none',
5406
5423
  fontVariantNumeric: 'tabular-nums',
5407
5424
  letterSpacing: (isPinned || isHot) ? '0.4px' : '0px',
5408
- transition: 'letter-spacing 300ms ease-out',
5425
+ transition: 'letter-spacing 300ms ease-out, font-weight 300ms ease-out',
5409
5426
  }}
5410
5427
  >{link.count}</text>
5411
5428
  </g>
@@ -5693,7 +5710,20 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5693
5710
  attr exposes the value for tests. */
5694
5711
  fontSize="12"
5695
5712
  fontFamily="monospace"
5696
- fontWeight="700"
5713
+ /* R425 — hub digit fontWeight 700 → 800 on hoveredHub.
5714
+ Closes the "data tightens under attention" pattern
5715
+ across three focal scopes: chip-digit (R416, chip
5716
+ scope) → panel-digit (R424, panel-header scope) →
5717
+ hub-digit (R425, hub focal scope). The hub digit is
5718
+ the most-read scalar on the topology; adding a weight
5719
+ axis on hover stacks with the R209 scale-1.08 + R177
5720
+ ring grow + R370 halo opacity + R386 highlight
5721
+ opacity hub-hover gestures, giving the focal point
5722
+ a typographic axis alongside its scale/structure cues.
5723
+ R360 fontSize=12 + R225 tabular-nums + R209 scale +
5724
+ R253 fill transition all preserved. Transition list
5725
+ extends to include font-weight 200ms ease-out. */
5726
+ fontWeight={hoveredHub ? '800' : '700'}
5697
5727
  opacity={workingCount > 0 ? 1 : 0}
5698
5728
  data-topo-hub-working-count={workingCount}
5699
5729
  data-topo-hub-working-count-font-size="12"
@@ -5730,7 +5760,10 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5730
5760
  transform: !reducedMotion && hoveredHub ? 'scale(1.08)' : 'scale(1)',
5731
5761
  transformBox: 'fill-box',
5732
5762
  transformOrigin: 'center',
5733
- transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out',
5763
+ /* R425: font-weight 200ms appended so the hover fw
5764
+ bump 700 → 800 eases under the same cadence as
5765
+ R209 scale + R253 fill + R213 opacity. */
5766
+ transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out, font-weight 200ms ease-out',
5734
5767
  fontVariantNumeric: 'tabular-nums',
5735
5768
  }}
5736
5769
  >
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.5.1-preview.85",
3
+ "version": "0.5.1-preview.87",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,103 @@
1
+ /* Round 426 verification: edge-badge digit fontWeight 700 → 800 on
2
+ * (isPinned || isHot). 4th anchor on the "data tightens under
3
+ * attention" typographic-weight pattern:
4
+ * R416 chip-digit (chip-row hover)
5
+ * R424 panel-digit (panel hover)
6
+ * R425 hub-digit (hub hover)
7
+ * R426 edge-badge (pin/hot) ← this round
8
+ *
9
+ * Contract:
10
+ * - rest state: edge-badge text font-weight === '700'
11
+ * - hot state (synthesize via dense recent traffic between two
12
+ * aliases): badge text font-weight === '800', data-edge-badge-
13
+ * text-pin === 'true', letter-spacing '0.4px' (R220 preserved)
14
+ * - source-file probe confirms wired conditional + transition list
15
+ *
16
+ * Test design: 'hot' is derived from flow link count threshold (R190
17
+ * hotFlowCount logic). We don't depend on knowing the exact threshold —
18
+ * we just generate many flow messages between alpha↔beta and assert
19
+ * at least one badge enters the pin state. The source-file probe is
20
+ * the canonical contract for the wire change; the DOM probe is best-
21
+ * effort confirmation that the conditional resolves to '800' for at
22
+ * least one badge in some fixture state.
23
+ */
24
+ import { chromium } from 'playwright';
25
+ import { readFileSync } from 'node:fs';
26
+
27
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
28
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
29
+
30
+ const browser = await chromium.launch({ headless: true });
31
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
32
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
33
+ await ctx.addInitScript(() => {
34
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } 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, status) => ({
41
+ alias, status, 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('alpha', 'working'),
47
+ mk('beta', 'idle'),
48
+ ] } });
49
+ });
50
+ // Generate a thick flow: 8 messages alpha↔beta so the edge-badge
51
+ // renders with a high count + potentially trips hot threshold.
52
+ const flowMessages = Array.from({ length: 8 }, (_, i) => ({
53
+ id: `m${i}`, from_alias: 'alpha', to_alias: 'beta',
54
+ content: `ping ${i}`, created_at: fresh, network_id: 'default',
55
+ }));
56
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({
57
+ json: { messages: flowMessages },
58
+ }));
59
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
60
+
61
+ const page = await ctx.newPage();
62
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
63
+ await page.waitForSelector('[data-edge-badge-text]', { timeout: 15000 });
64
+ await page.waitForTimeout(400);
65
+
66
+ const badges = await page.evaluate(() => {
67
+ const ts = [...document.querySelectorAll('[data-edge-badge-text]')];
68
+ return ts.map(t => ({
69
+ text: t.textContent,
70
+ fw: t.getAttribute('font-weight'),
71
+ pin: t.getAttribute('data-edge-badge-text-pin'),
72
+ fsize: t.getAttribute('font-size'),
73
+ }));
74
+ });
75
+
76
+ // Source-file verification
77
+ const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
78
+ const sourceWired = /fontWeight=\{\(isPinned \|\| isHot\) \? '800' : '700'\}/.test(fileText);
79
+ const sourceTransition = /transition: 'letter-spacing 300ms ease-out, font-weight 300ms ease-out'/.test(fileText);
80
+
81
+ await browser.close();
82
+
83
+ // At least one badge present
84
+ const anyBadge = badges.length > 0;
85
+ // Rest invariants on at least one badge: fontSize=11
86
+ const anyFontSize11 = badges.some(b => b.fsize === '11');
87
+ // Conditional resolves: every badge attr is '700' or '800'
88
+ const fwValid = badges.every(b => b.fw === '700' || b.fw === '800');
89
+ // If any badge is pin/hot, its fw must be '800'; if not, '700'
90
+ const conditionalCoherent = badges.every(b => (b.pin === 'true' ? b.fw === '800' : b.fw === '700'));
91
+
92
+ const results = {
93
+ any_badge_mounted: anyBadge,
94
+ any_font_size_11: anyFontSize11,
95
+ fw_attr_valid: fwValid,
96
+ conditional_coherent: conditionalCoherent,
97
+ source_hover_wired: sourceWired,
98
+ source_transition_wired: sourceTransition,
99
+ };
100
+ const ok = Object.values(results).every(Boolean);
101
+ console.log(`${ok ? '✅' : '❌'} edge-badge digit fw pin/hot:`, JSON.stringify(results),
102
+ '\n badges:', JSON.stringify(badges));
103
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,102 @@
1
+ /* Round 425 verification: hub digit fontWeight 700 → 800 on
2
+ * hoveredHub. Closes the "data tightens under attention" pattern
3
+ * across three focal scopes:
4
+ * chip-digit (R416, chip scope)
5
+ * panel-digit (R424, panel-header scope)
6
+ * hub-digit (R425, hub focal scope)
7
+ *
8
+ * Contract:
9
+ * - rest state: hub digit attr font-weight === '700'
10
+ * - hover state: digit attr font-weight === '800'
11
+ * - geometry/family invariants preserved:
12
+ * fontSize=12 (R360), tabular-nums (R225),
13
+ * R209 scale-1.08 transform on hover
14
+ * - source-file probe confirms wired conditional + transition list
15
+ */
16
+ import { chromium } from 'playwright';
17
+ import { readFileSync } from 'node:fs';
18
+
19
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
20
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
21
+
22
+ const browser = await chromium.launch({ headless: true });
23
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
24
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
25
+ await ctx.addInitScript(() => {
26
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
27
+ });
28
+ await ctx.route('**/api/hub/status*', async (route) => {
29
+ const r = await route.fetch();
30
+ const b = await r.json();
31
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
32
+ const mk = (alias, status) => ({
33
+ alias, status, model: 'claude-opus-4', runtime: 'claude-code-cli',
34
+ network_id: nid, project_dir: null,
35
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
36
+ });
37
+ // include working sessions so workingCount > 0 → digit visible
38
+ await route.fulfill({ response: r, json: { ...b, sessions: [
39
+ mk('alpha', 'working'),
40
+ mk('beta', 'working'),
41
+ mk('gamma', 'idle'),
42
+ ] } });
43
+ });
44
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
45
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
46
+
47
+ const page = await ctx.newPage();
48
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
49
+ await page.waitForSelector('[data-topo-hub-working-count]', { timeout: 15000 });
50
+ await page.waitForTimeout(400);
51
+
52
+ const readDigit = () => page.evaluate(() => {
53
+ const t = document.querySelector('[data-topo-hub-working-count]');
54
+ if (!t) return null;
55
+ return {
56
+ text: t.textContent,
57
+ fw: t.getAttribute('font-weight'),
58
+ fontSize: t.getAttribute('font-size'),
59
+ hovered: t.getAttribute('data-topo-hub-working-count-hovered'),
60
+ count_attr: t.getAttribute('data-topo-hub-working-count'),
61
+ };
62
+ });
63
+
64
+ const rest = await readDigit();
65
+
66
+ // Trigger hub hover via the hub <g> element (data-topo-hub).
67
+ const hubBox = await page.evaluate(() => {
68
+ const hub = document.querySelector('[data-topo-hub]');
69
+ if (!hub) return null;
70
+ const b = hub.getBoundingClientRect();
71
+ return { x: b.x + b.width / 2, y: b.y + b.height / 2 };
72
+ });
73
+ let hover = null;
74
+ if (hubBox) {
75
+ await page.mouse.move(hubBox.x, hubBox.y);
76
+ await page.waitForTimeout(300);
77
+ hover = await readDigit();
78
+ // move mouse away to release hover for clean teardown
79
+ await page.mouse.move(0, 0);
80
+ }
81
+
82
+ // Source-file verification
83
+ const fileText = readFileSync('/home/vansin/agent-network-dashboard/app/components/TopoGraph.tsx', 'utf8');
84
+ const sourceWired = /fontWeight=\{hoveredHub \? '800' : '700'\}/.test(fileText);
85
+ const sourceTransition = /transition: 'transform 200ms ease-out, opacity 300ms ease-out, fill 200ms ease-out, font-weight 200ms ease-out'/.test(fileText);
86
+
87
+ await browser.close();
88
+
89
+ const results = {
90
+ rest_mounted: !!rest,
91
+ rest_fw_700: rest?.fw === '700',
92
+ rest_font_size_12: rest?.fontSize === '12',
93
+ rest_hovered_false: rest?.hovered === 'false',
94
+ hover_fw_800: hover?.fw === '800',
95
+ hover_hovered_true: hover?.hovered === 'true',
96
+ source_hover_wired: sourceWired,
97
+ source_transition_wired: sourceTransition,
98
+ };
99
+ const ok = Object.values(results).every(Boolean);
100
+ console.log(`${ok ? '✅' : '❌'} hub digit fw hover:`, JSON.stringify(results),
101
+ '\n rest:', rest, '\n hover:', hover);
102
+ process.exit(ok ? 0 : 1);