@sleep2agi/agent-network-dashboard 0.4.6-preview.267 → 0.4.6-preview.269

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 (153) 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/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/_not-found.html +2 -2
  14. package/.next/server/app/_not-found.rsc +2 -2
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  21. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/admin.html +2 -2
  23. package/.next/server/app/admin.rsc +2 -2
  24. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  27. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  29. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  30. package/.next/server/app/index.html +2 -2
  31. package/.next/server/app/index.rsc +3 -3
  32. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  33. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  34. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  35. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  36. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  37. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/login.html +2 -2
  39. package/.next/server/app/login.rsc +3 -3
  40. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  41. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  42. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  43. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  46. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/logs.html +2 -2
  48. package/.next/server/app/logs.rsc +2 -2
  49. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  50. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  51. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  52. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  54. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  55. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/messages.html +2 -2
  57. package/.next/server/app/messages.rsc +2 -2
  58. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  59. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  60. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  61. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  62. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  63. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  64. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/node.html +2 -2
  66. package/.next/server/app/node.rsc +2 -2
  67. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  68. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  69. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  70. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  71. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  72. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  73. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/nodes.html +2 -2
  75. package/.next/server/app/nodes.rsc +2 -2
  76. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  77. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  78. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  79. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  80. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  81. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  82. package/.next/server/app/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/server-logs.html +2 -2
  85. package/.next/server/app/server-logs.rsc +2 -2
  86. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  87. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  88. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  89. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  90. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  91. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  92. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  93. package/.next/server/app/settings/networks.html +2 -2
  94. package/.next/server/app/settings/networks.rsc +2 -2
  95. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  96. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  97. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  98. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  99. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  100. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  102. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  103. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/settings/tokens.html +2 -2
  105. package/.next/server/app/settings/tokens.rsc +2 -2
  106. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  107. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  108. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  109. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  110. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  112. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  113. package/.next/server/app/settings.html +2 -2
  114. package/.next/server/app/settings.rsc +3 -3
  115. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  116. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  117. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  118. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  119. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  120. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  121. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  122. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/tasks.html +2 -2
  124. package/.next/server/app/tasks.rsc +2 -2
  125. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  126. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  127. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  128. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  129. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  130. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  131. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
  132. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  133. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  134. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  135. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  136. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  137. package/.next/server/middleware-build-manifest.js +3 -3
  138. package/.next/server/pages/404.html +2 -2
  139. package/.next/server/pages/500.html +1 -1
  140. package/.next/static/chunks/{0pw7f.9xit5qh.js → 0gt5hg.7dy1--.js} +1 -1
  141. package/.next/static/chunks/{0a0xu0vtcp.r4.js → 0u84_-wys4245.js} +1 -1
  142. package/.next/static/chunks/0y.7kwty.hl7h.css +2 -0
  143. package/.next/static/chunks/{130tvvcx4~7ag.js → 178_ke8nf4pda.js} +1 -1
  144. package/.next/trace +2 -2
  145. package/.next/trace-build +1 -1
  146. package/app/components/TopoGraph.tsx +17 -4
  147. package/package.json +1 -1
  148. package/scripts/topo-corner-radius-unify-test.mjs +103 -0
  149. package/scripts/topo-html-overlay-padding-unify-test.mjs +120 -0
  150. package/.next/static/chunks/08y27uzl7w6bx.css +0 -2
  151. /package/.next/static/{9oU8hGWDI877CWQspfLwo → -XX2SSeNC8l332uvJlo8W}/_buildManifest.js +0 -0
  152. /package/.next/static/{9oU8hGWDI877CWQspfLwo → -XX2SSeNC8l332uvJlo8W}/_clientMiddlewareManifest.js +0 -0
  153. /package/.next/static/{9oU8hGWDI877CWQspfLwo → -XX2SSeNC8l332uvJlo8W}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":291,"timestamp":97442572780,"id":4,"parentId":1,"tags":{},"startTime":1778905414819,"traceId":"b82f7277d2b3751f"},{"name":"load-custom-routes","duration":447,"timestamp":97442573215,"id":5,"parentId":1,"tags":{},"startTime":1778905414819,"traceId":"b82f7277d2b3751f"},{"name":"create-dist-dir","duration":701,"timestamp":97442573701,"id":6,"parentId":1,"tags":{},"startTime":1778905414820,"traceId":"b82f7277d2b3751f"},{"name":"clean","duration":31414,"timestamp":97442575072,"id":7,"parentId":1,"tags":{},"startTime":1778905414821,"traceId":"b82f7277d2b3751f"},{"name":"discover-routes","duration":15532,"timestamp":97442693407,"id":8,"parentId":1,"tags":{},"startTime":1778905414940,"traceId":"b82f7277d2b3751f"},{"name":"create-root-mapping","duration":133,"timestamp":97442709018,"id":9,"parentId":1,"tags":{},"startTime":1778905414955,"traceId":"b82f7277d2b3751f"},{"name":"generate-route-types","duration":22109,"timestamp":97442712097,"id":10,"parentId":1,"tags":{},"startTime":1778905414958,"traceId":"b82f7277d2b3751f"},{"name":"public-dir-conflict-check","duration":103,"timestamp":97442734292,"id":11,"parentId":1,"tags":{},"startTime":1778905414981,"traceId":"b82f7277d2b3751f"},{"name":"generate-routes-manifest","duration":4787,"timestamp":97442734522,"id":12,"parentId":1,"tags":{},"startTime":1778905414981,"traceId":"b82f7277d2b3751f"},{"name":"run-turbopack","duration":5646434,"timestamp":97442759521,"id":14,"parentId":1,"tags":{},"startTime":1778905415006,"traceId":"b82f7277d2b3751f"},{"name":"turbopack-build-events","duration":107,"timestamp":97443050090,"id":15,"parentId":1,"tags":{},"startTime":1778905415296,"traceId":"b82f7277d2b3751f"},{"name":"run-typescript","duration":8982391,"timestamp":97448414219,"id":16,"parentId":1,"tags":{},"startTime":1778905420660,"traceId":"b82f7277d2b3751f"},{"name":"generate-required-server-files","duration":2702,"timestamp":97457398083,"id":18,"parentId":1,"tags":{},"startTime":1778905429644,"traceId":"b82f7277d2b3751f"},{"name":"check-static-error-page","duration":17682,"timestamp":97457582291,"id":20,"parentId":19,"tags":{},"startTime":1778905429829,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":614199,"timestamp":97457605231,"id":64,"parentId":25,"tags":{},"startTime":1778905429852,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":630298,"timestamp":97457589343,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":615010,"timestamp":97457604978,"id":63,"parentId":22,"tags":{},"startTime":1778905429851,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":634355,"timestamp":97457585833,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778905429832,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":623978,"timestamp":97457606192,"id":69,"parentId":30,"tags":{},"startTime":1778905429852,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":640157,"timestamp":97457590083,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":653498,"timestamp":97457605825,"id":67,"parentId":28,"tags":{},"startTime":1778905429852,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":669623,"timestamp":97457589781,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":654953,"timestamp":97457605536,"id":66,"parentId":27,"tags":{},"startTime":1778905429852,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":670901,"timestamp":97457589659,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":659457,"timestamp":97457606641,"id":73,"parentId":35,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":675195,"timestamp":97457590973,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778905429837,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":675078,"timestamp":97457606524,"id":71,"parentId":33,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":691012,"timestamp":97457590676,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778905429837,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":684696,"timestamp":97457602779,"id":62,"parentId":21,"tags":{},"startTime":1778905429849,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":703471,"timestamp":97457584065,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778905429830,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":694026,"timestamp":97457606608,"id":72,"parentId":34,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":709917,"timestamp":97457590817,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778905429837,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":697585,"timestamp":97457606806,"id":75,"parentId":37,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":712715,"timestamp":97457591737,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778905429838,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":700754,"timestamp":97457606765,"id":74,"parentId":36,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":716050,"timestamp":97457591520,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778905429838,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":703782,"timestamp":97457606851,"id":78,"parentId":40,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":718539,"timestamp":97457592146,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778905429838,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":712073,"timestamp":97457606876,"id":80,"parentId":42,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":726664,"timestamp":97457592368,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":716766,"timestamp":97457606893,"id":81,"parentId":43,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":731241,"timestamp":97457592473,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":723730,"timestamp":97457606906,"id":82,"parentId":44,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":738124,"timestamp":97457592573,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":726582,"timestamp":97457606865,"id":79,"parentId":41,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":741258,"timestamp":97457592247,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":731076,"timestamp":97457606920,"id":83,"parentId":45,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":745662,"timestamp":97457592677,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":734411,"timestamp":97457606837,"id":77,"parentId":39,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":749268,"timestamp":97457592027,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778905429838,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":740188,"timestamp":97457606957,"id":85,"parentId":47,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":754300,"timestamp":97457592901,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":740417,"timestamp":97457606970,"id":86,"parentId":48,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":752039,"timestamp":97457595396,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778905429842,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":743093,"timestamp":97457606033,"id":68,"parentId":29,"tags":{},"startTime":1778905429852,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":759278,"timestamp":97457589898,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":742712,"timestamp":97457606943,"id":84,"parentId":46,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":756948,"timestamp":97457592767,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778905429839,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":743271,"timestamp":97457606983,"id":87,"parentId":49,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":754534,"timestamp":97457595775,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778905429842,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":750278,"timestamp":97457606827,"id":76,"parentId":38,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":765268,"timestamp":97457591886,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778905429838,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":749567,"timestamp":97457610304,"id":88,"parentId":24,"tags":{},"startTime":1778905429857,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":773512,"timestamp":97457586403,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778905429833,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":749732,"timestamp":97457611320,"id":89,"parentId":31,"tags":{},"startTime":1778905429858,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":770872,"timestamp":97457590222,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":760299,"timestamp":97457605392,"id":65,"parentId":26,"tags":{},"startTime":1778905429852,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":776208,"timestamp":97457589532,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778905429836,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":790386,"timestamp":97457613522,"id":92,"parentId":51,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":807043,"timestamp":97457596975,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778905429843,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":804844,"timestamp":97457613572,"id":96,"parentId":56,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":820013,"timestamp":97457598475,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778905429845,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":805172,"timestamp":97457613482,"id":90,"parentId":23,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":834935,"timestamp":97457586152,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778905429832,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":807806,"timestamp":97457613536,"id":93,"parentId":52,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":824212,"timestamp":97457597169,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778905429843,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":823854,"timestamp":97457613616,"id":99,"parentId":60,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":838003,"timestamp":97457599533,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778905429846,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":824355,"timestamp":97457613511,"id":91,"parentId":50,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":841253,"timestamp":97457596698,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778905429843,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":835335,"timestamp":97457606439,"id":70,"parentId":32,"tags":{},"startTime":1778905429853,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":851296,"timestamp":97457590531,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778905429837,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":828517,"timestamp":97457613600,"id":98,"parentId":59,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":842802,"timestamp":97457599368,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778905429846,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":834996,"timestamp":97457613642,"id":100,"parentId":61,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":848981,"timestamp":97457599691,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778905429846,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":814864,"timestamp":97457634510,"id":101,"parentId":55,"tags":{},"startTime":1778905429881,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":851562,"timestamp":97457597847,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778905429844,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":838602,"timestamp":97457613585,"id":97,"parentId":57,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":853539,"timestamp":97457598696,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778905429845,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":844602,"timestamp":97457613550,"id":94,"parentId":53,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":860822,"timestamp":97457597386,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778905429844,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":846028,"timestamp":97457613559,"id":95,"parentId":54,"tags":{},"startTime":1778905429860,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":862033,"timestamp":97457597601,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778905429844,"traceId":"b82f7277d2b3751f"},{"name":"is-page-static","duration":836575,"timestamp":97457648985,"id":102,"parentId":58,"tags":{},"startTime":1778905429895,"traceId":"b82f7277d2b3751f"},{"name":"check-page","duration":886718,"timestamp":97457598879,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778905429845,"traceId":"b82f7277d2b3751f"},{"name":"static-check","duration":904523,"timestamp":97457581117,"id":19,"parentId":1,"tags":{},"startTime":1778905429827,"traceId":"b82f7277d2b3751f"},{"name":"write-routes-manifest","duration":433,"timestamp":97458492919,"id":104,"parentId":1,"tags":{},"startTime":1778905430739,"traceId":"b82f7277d2b3751f"},{"name":"load-dotenv","duration":43,"timestamp":97458503812,"id":107,"parentId":106,"tags":{},"startTime":1778905430750,"traceId":"b82f7277d2b3751f"},{"name":"run-export-path-map","duration":767,"timestamp":97458507425,"id":108,"parentId":106,"tags":{},"startTime":1778905430754,"traceId":"b82f7277d2b3751f"},{"name":"next-export","duration":618876,"timestamp":97458502597,"id":106,"parentId":1,"tags":{},"startTime":1778905430749,"traceId":"b82f7277d2b3751f"}]
2
- [{"name":"move-exported-app-not-found-","duration":2750,"timestamp":97459124752,"id":109,"parentId":105,"tags":{},"startTime":1778905431371,"traceId":"b82f7277d2b3751f"},{"name":"move-exported-app-global-error-","duration":1105,"timestamp":97459127587,"id":110,"parentId":105,"tags":{},"startTime":1778905431374,"traceId":"b82f7277d2b3751f"},{"name":"static-generation","duration":633574,"timestamp":97458497204,"id":105,"parentId":1,"tags":{},"startTime":1778905430743,"traceId":"b82f7277d2b3751f"},{"name":"write-routes-manifest","duration":459,"timestamp":97459131036,"id":111,"parentId":1,"tags":{},"startTime":1778905431377,"traceId":"b82f7277d2b3751f"},{"name":"print-tree-view","duration":4307,"timestamp":97459151898,"id":112,"parentId":1,"tags":{},"startTime":1778905431398,"traceId":"b82f7277d2b3751f"},{"name":"write-route-bundle-stats","duration":15578,"timestamp":97459156253,"id":113,"parentId":1,"tags":{},"startTime":1778905431403,"traceId":"b82f7277d2b3751f"},{"name":"telemetry-flush","duration":13101,"timestamp":97459171873,"id":114,"parentId":1,"tags":{},"startTime":1778905431418,"traceId":"b82f7277d2b3751f"},{"name":"next-build","duration":16666407,"timestamp":97442518620,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778905414765,"traceId":"b82f7277d2b3751f"}]
1
+ [{"name":"generate-buildid","duration":316,"timestamp":98311149841,"id":4,"parentId":1,"tags":{},"startTime":1778906283396,"traceId":"8da832511d88b20c"},{"name":"load-custom-routes","duration":445,"timestamp":98311150303,"id":5,"parentId":1,"tags":{},"startTime":1778906283397,"traceId":"8da832511d88b20c"},{"name":"create-dist-dir","duration":680,"timestamp":98311150788,"id":6,"parentId":1,"tags":{},"startTime":1778906283397,"traceId":"8da832511d88b20c"},{"name":"clean","duration":29751,"timestamp":98311152167,"id":7,"parentId":1,"tags":{},"startTime":1778906283398,"traceId":"8da832511d88b20c"},{"name":"discover-routes","duration":14195,"timestamp":98311257941,"id":8,"parentId":1,"tags":{},"startTime":1778906283504,"traceId":"8da832511d88b20c"},{"name":"create-root-mapping","duration":199,"timestamp":98311272225,"id":9,"parentId":1,"tags":{},"startTime":1778906283519,"traceId":"8da832511d88b20c"},{"name":"generate-route-types","duration":37813,"timestamp":98311275446,"id":10,"parentId":1,"tags":{},"startTime":1778906283522,"traceId":"8da832511d88b20c"},{"name":"public-dir-conflict-check","duration":125,"timestamp":98311313384,"id":11,"parentId":1,"tags":{},"startTime":1778906283560,"traceId":"8da832511d88b20c"},{"name":"generate-routes-manifest","duration":5009,"timestamp":98311313695,"id":12,"parentId":1,"tags":{},"startTime":1778906283560,"traceId":"8da832511d88b20c"},{"name":"run-turbopack","duration":5796564,"timestamp":98311323948,"id":14,"parentId":1,"tags":{},"startTime":1778906283570,"traceId":"8da832511d88b20c"},{"name":"turbopack-build-events","duration":111,"timestamp":98311622565,"id":15,"parentId":1,"tags":{},"startTime":1778906283869,"traceId":"8da832511d88b20c"},{"name":"run-typescript","duration":9104123,"timestamp":98317128755,"id":16,"parentId":1,"tags":{},"startTime":1778906289375,"traceId":"8da832511d88b20c"},{"name":"generate-required-server-files","duration":2440,"timestamp":98326233849,"id":18,"parentId":1,"tags":{},"startTime":1778906298480,"traceId":"8da832511d88b20c"},{"name":"check-static-error-page","duration":10601,"timestamp":98326424247,"id":20,"parentId":19,"tags":{},"startTime":1778906298671,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":502565,"timestamp":98326437961,"id":63,"parentId":22,"tags":{},"startTime":1778906298684,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":514112,"timestamp":98326426562,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778906298673,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":523156,"timestamp":98326438548,"id":67,"parentId":28,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":532411,"timestamp":98326429393,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":550982,"timestamp":98326439072,"id":70,"parentId":32,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":560180,"timestamp":98326429967,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":586694,"timestamp":98326439145,"id":71,"parentId":33,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":595827,"timestamp":98326430094,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":625101,"timestamp":98326439221,"id":72,"parentId":34,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":634183,"timestamp":98326430209,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":633448,"timestamp":98326439247,"id":73,"parentId":35,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":642603,"timestamp":98326430296,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":643737,"timestamp":98326439348,"id":74,"parentId":36,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":652492,"timestamp":98326430657,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":645011,"timestamp":98326439384,"id":75,"parentId":37,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":653674,"timestamp":98326430764,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":651067,"timestamp":98326439397,"id":76,"parentId":38,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":659671,"timestamp":98326430851,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":658444,"timestamp":98326439410,"id":77,"parentId":39,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":666987,"timestamp":98326430912,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":663219,"timestamp":98326439423,"id":78,"parentId":40,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":671713,"timestamp":98326430974,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":665808,"timestamp":98326438710,"id":68,"parentId":29,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":675040,"timestamp":98326429518,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":668230,"timestamp":98326437569,"id":62,"parentId":21,"tags":{},"startTime":1778906298684,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":680485,"timestamp":98326425372,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778906298672,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":669750,"timestamp":98326439438,"id":79,"parentId":41,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":678207,"timestamp":98326431056,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":671577,"timestamp":98326438867,"id":69,"parentId":30,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":680824,"timestamp":98326429659,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":671470,"timestamp":98326439448,"id":80,"parentId":42,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":679831,"timestamp":98326431124,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":677971,"timestamp":98326439482,"id":83,"parentId":45,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":686199,"timestamp":98326431318,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":678748,"timestamp":98326439472,"id":82,"parentId":44,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":687006,"timestamp":98326431253,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":685555,"timestamp":98326439525,"id":86,"parentId":48,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":693602,"timestamp":98326431530,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":687509,"timestamp":98326438299,"id":66,"parentId":27,"tags":{},"startTime":1778906298685,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":696555,"timestamp":98326429316,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":700939,"timestamp":98326438184,"id":65,"parentId":26,"tags":{},"startTime":1778906298684,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":709947,"timestamp":98326429234,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":701845,"timestamp":98326439534,"id":87,"parentId":49,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":709854,"timestamp":98326431591,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":706793,"timestamp":98326444475,"id":89,"parentId":31,"tags":{},"startTime":1778906298691,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":721576,"timestamp":98326429749,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778906298676,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":713434,"timestamp":98326438071,"id":64,"parentId":25,"tags":{},"startTime":1778906298684,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":722434,"timestamp":98326429103,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778906298675,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":722725,"timestamp":98326439509,"id":85,"parentId":47,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":730824,"timestamp":98326431463,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":727346,"timestamp":98326439495,"id":84,"parentId":46,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":735520,"timestamp":98326431377,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":769006,"timestamp":98326443227,"id":88,"parentId":24,"tags":{},"startTime":1778906298690,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":785245,"timestamp":98326427061,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778906298673,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":794692,"timestamp":98326439460,"id":81,"parentId":43,"tags":{},"startTime":1778906298686,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":803040,"timestamp":98326431188,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778906298677,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":793352,"timestamp":98326446931,"id":96,"parentId":56,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":807141,"timestamp":98326433188,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778906298679,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":794382,"timestamp":98326446907,"id":94,"parentId":53,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":809004,"timestamp":98326432337,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778906298679,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":799900,"timestamp":98326446893,"id":93,"parentId":52,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":814707,"timestamp":98326432160,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":800552,"timestamp":98326446943,"id":97,"parentId":57,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":814104,"timestamp":98326433432,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778906298680,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":801910,"timestamp":98326446878,"id":92,"parentId":51,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":816840,"timestamp":98326432029,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":802719,"timestamp":98326446952,"id":98,"parentId":59,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":815541,"timestamp":98326434168,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778906298680,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":806767,"timestamp":98326446862,"id":91,"parentId":50,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":821786,"timestamp":98326431892,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778906298678,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":794735,"timestamp":98326461907,"id":102,"parentId":55,"tags":{},"startTime":1778906298708,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":823990,"timestamp":98326432689,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778906298679,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":803892,"timestamp":98326452867,"id":101,"parentId":58,"tags":{},"startTime":1778906298699,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":823135,"timestamp":98326433650,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778906298680,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":811231,"timestamp":98326446987,"id":100,"parentId":61,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":823758,"timestamp":98326434516,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778906298681,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":812028,"timestamp":98326446970,"id":99,"parentId":60,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":824719,"timestamp":98326434342,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778906298681,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":812561,"timestamp":98326446835,"id":90,"parentId":23,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":832588,"timestamp":98326426841,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778906298673,"traceId":"8da832511d88b20c"},{"name":"is-page-static","duration":819322,"timestamp":98326446917,"id":95,"parentId":54,"tags":{},"startTime":1778906298693,"traceId":"8da832511d88b20c"},{"name":"check-page","duration":833768,"timestamp":98326432509,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778906298679,"traceId":"8da832511d88b20c"},{"name":"static-check","duration":842836,"timestamp":98326423494,"id":19,"parentId":1,"tags":{},"startTime":1778906298670,"traceId":"8da832511d88b20c"},{"name":"write-routes-manifest","duration":452,"timestamp":98327273314,"id":104,"parentId":1,"tags":{},"startTime":1778906299520,"traceId":"8da832511d88b20c"},{"name":"load-dotenv","duration":81,"timestamp":98327286990,"id":107,"parentId":106,"tags":{},"startTime":1778906299533,"traceId":"8da832511d88b20c"},{"name":"run-export-path-map","duration":552,"timestamp":98327289843,"id":108,"parentId":106,"tags":{},"startTime":1778906299536,"traceId":"8da832511d88b20c"},{"name":"next-export","duration":599836,"timestamp":98327285599,"id":106,"parentId":1,"tags":{},"startTime":1778906299532,"traceId":"8da832511d88b20c"}]
2
+ [{"name":"move-exported-app-not-found-","duration":2117,"timestamp":98327890535,"id":109,"parentId":105,"tags":{},"startTime":1778906300137,"traceId":"8da832511d88b20c"},{"name":"move-exported-app-global-error-","duration":530,"timestamp":98327892736,"id":110,"parentId":105,"tags":{},"startTime":1778906300139,"traceId":"8da832511d88b20c"},{"name":"static-generation","duration":616908,"timestamp":98327278079,"id":105,"parentId":1,"tags":{},"startTime":1778906299524,"traceId":"8da832511d88b20c"},{"name":"write-routes-manifest","duration":365,"timestamp":98327895174,"id":111,"parentId":1,"tags":{},"startTime":1778906300141,"traceId":"8da832511d88b20c"},{"name":"print-tree-view","duration":4089,"timestamp":98327902848,"id":112,"parentId":1,"tags":{},"startTime":1778906300149,"traceId":"8da832511d88b20c"},{"name":"write-route-bundle-stats","duration":17784,"timestamp":98327906961,"id":113,"parentId":1,"tags":{},"startTime":1778906300153,"traceId":"8da832511d88b20c"},{"name":"telemetry-flush","duration":26612,"timestamp":98327924771,"id":114,"parentId":1,"tags":{},"startTime":1778906300171,"traceId":"8da832511d88b20c"},{"name":"next-build","duration":16854363,"timestamp":98311097051,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778906283343,"traceId":"8da832511d88b20c"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5646434,"timestamp":97442759521,"id":14,"parentId":1,"tags":{},"startTime":1778905415006,"traceId":"b82f7277d2b3751f"},{"name":"turbopack-build-events","duration":107,"timestamp":97443050090,"id":15,"parentId":1,"tags":{},"startTime":1778905415296,"traceId":"b82f7277d2b3751f"},{"name":"run-typescript","duration":8982391,"timestamp":97448414219,"id":16,"parentId":1,"tags":{},"startTime":1778905420660,"traceId":"b82f7277d2b3751f"},{"name":"static-check","duration":904523,"timestamp":97457581117,"id":19,"parentId":1,"tags":{},"startTime":1778905429827,"traceId":"b82f7277d2b3751f"},{"name":"static-generation","duration":633574,"timestamp":97458497204,"id":105,"parentId":1,"tags":{},"startTime":1778905430743,"traceId":"b82f7277d2b3751f"},{"name":"telemetry-flush","duration":13101,"timestamp":97459171873,"id":114,"parentId":1,"tags":{},"startTime":1778905431418,"traceId":"b82f7277d2b3751f"},{"name":"next-build","duration":16666407,"timestamp":97442518620,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778905414765,"traceId":"b82f7277d2b3751f"}]
1
+ [{"name":"run-turbopack","duration":5796564,"timestamp":98311323948,"id":14,"parentId":1,"tags":{},"startTime":1778906283570,"traceId":"8da832511d88b20c"},{"name":"turbopack-build-events","duration":111,"timestamp":98311622565,"id":15,"parentId":1,"tags":{},"startTime":1778906283869,"traceId":"8da832511d88b20c"},{"name":"run-typescript","duration":9104123,"timestamp":98317128755,"id":16,"parentId":1,"tags":{},"startTime":1778906289375,"traceId":"8da832511d88b20c"},{"name":"static-check","duration":842836,"timestamp":98326423494,"id":19,"parentId":1,"tags":{},"startTime":1778906298670,"traceId":"8da832511d88b20c"},{"name":"static-generation","duration":616908,"timestamp":98327278079,"id":105,"parentId":1,"tags":{},"startTime":1778906299524,"traceId":"8da832511d88b20c"},{"name":"telemetry-flush","duration":26612,"timestamp":98327924771,"id":114,"parentId":1,"tags":{},"startTime":1778906300171,"traceId":"8da832511d88b20c"},{"name":"next-build","duration":16854363,"timestamp":98311097051,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778906283343,"traceId":"8da832511d88b20c"}]
@@ -5386,7 +5386,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
5386
5386
  onMouseLeave={() => setHoveredPanel(prev => prev === 'recent' ? null : prev)}
5387
5387
  >
5388
5388
  <rect
5389
- x="0" y="0" width="230" height="88" rx="10"
5389
+ x="0" y="0" width="230" height="88" rx="8"
5390
5390
  fill={pal.legendBox.fill}
5391
5391
  stroke={pal.legendBox.stroke}
5392
5392
  opacity={isLight ? 0.97 : 0.92}
@@ -6138,7 +6138,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6138
6138
  (no snap on cyber↔light switch). Same 200ms cadence
6139
6139
  across the panel pair. */}
6140
6140
  <rect
6141
- x="0" y="0" width="224" height="104" rx="10"
6141
+ x="0" y="0" width="224" height="104" rx="8"
6142
6142
  fill={pal.legendBox.fill}
6143
6143
  stroke={pal.legendBox.stroke}
6144
6144
  opacity={isLight ? 0.97 : 0.92}
@@ -6441,7 +6441,7 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6441
6441
  const rectH = (VIEWBOX_H / view.zoom) * sy;
6442
6442
  return (
6443
6443
  <div
6444
- className="absolute right-3 rounded-md border shadow-lg shadow-black/30 overflow-hidden anet-fade-in anet-topo-chip-focus"
6444
+ className="absolute right-4 rounded-md border shadow-lg shadow-black/30 overflow-hidden anet-fade-in anet-topo-chip-focus"
6445
6445
  /* Round 254 / Loop: minimap container theme transitions —
6446
6446
  background-color, border-color, color (used for SVG
6447
6447
  currentColor inside) all ease at 200ms alongside the
@@ -6566,7 +6566,20 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
6566
6566
  behind the "%" label (looked like an indicator, not a button).
6567
6567
  Split into a plain % readout + an explicit reset button with
6568
6568
  its own icon + tooltip. */}
6569
- <div className="absolute bottom-3 right-3 flex items-center gap-1.5 text-xs select-none" data-topo-chrome>
6569
+ {/* Round 261 / Loop: chrome strip bottom-3 right-3 (12 CSS px) →
6570
+ bottom-4 right-4 (16 CSS px) to align HTML overlay padding
6571
+ with the SVG corner panels at (16, 16) panel-translate. Pre-
6572
+ R261 the SVG panels (at 16 SVG units from canvas edges,
6573
+ ≈ 15 CSS px after render-scale ~0.94) and the HTML chrome
6574
+ (at 12 CSS px) sat at visually different distances from
6575
+ the canvas edges — small but real ~3 CSS px optical
6576
+ asymmetry between SVG-layer and HTML-layer overlay padding.
6577
+ 16 CSS px ≈ 17 SVG units, unifying the visual padding
6578
+ vocabulary across both layers. Sibling change at the
6579
+ minimap container (line ~6444, `absolute right-3` →
6580
+ `right-4`) keeps the bottom-right corner HTML overlays
6581
+ aligned at the same canvas-edge inset. */}
6582
+ <div className="absolute bottom-4 right-4 flex items-center gap-1.5 text-xs select-none" data-topo-chrome>
6570
6583
  {/* #113: node size — S / M / L segmented control (Vincent 4727).
6571
6584
  R154: stable data-* hooks for tests + focus-visible ring so
6572
6585
  keyboard navigation lands somewhere visible against the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.6-preview.267",
3
+ "version": "0.4.6-preview.269",
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 262 verification: corner-radius vocabulary unified across the
2
+ * canvas chrome — panels drop rx="10" → rx="8" to match the wrapper's
3
+ * rounded-lg (8px).
4
+ *
5
+ * Pre-R262 corner-radius hierarchy:
6
+ * Group label rect: rx="4" ← tiny chip
7
+ * Node label card: rx="6" ← small card
8
+ * Recent-signal panel: rx="10" ← panel chrome ← MISMATCHED
9
+ * Legend panel: rx="10" ← panel chrome ← MISMATCHED
10
+ * Canvas wrapper: rounded-lg (8 px CSS)
11
+ * ⇒ Panels at 10 px more rounded than the wrapper at 8 px.
12
+ *
13
+ * Post-R262:
14
+ * Group label: rx=4
15
+ * Node label card:rx=6
16
+ * Panels: rx=8 ← matches wrapper
17
+ * Canvas wrapper: rounded-lg (8 px)
18
+ * ⇒ Clean 4→6→8 progression. Panel corners now flush with wrapper
19
+ * corners, not exceeding them.
20
+ *
21
+ * Test scope:
22
+ * 1. Recent-signal panel rect rx === "8".
23
+ * 2. Legend panel rect rx === "8".
24
+ * 3. Node label card rect rx === "6" (unchanged regression).
25
+ * 4. Group label rect rx === "4" (unchanged regression).
26
+ * 5. Canvas wrapper computed border-top-left-radius === 8 px.
27
+ */
28
+ import { chromium } from 'playwright';
29
+ import { readFileSync } from 'node:fs';
30
+
31
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
32
+ const browser = await chromium.launch({ headless: true });
33
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
34
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
35
+ await ctx.addInitScript(() => {
36
+ try {
37
+ localStorage.setItem('anet-theme', 'cyber');
38
+ sessionStorage.setItem('anet_v3_auth', '1');
39
+ // Grid layout exposes the group label rect (rx=4)
40
+ localStorage.setItem('anet-topo-layout', 'grid');
41
+ } catch {}
42
+ });
43
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
44
+ await ctx.route('**/api/hub/status*', async (route) => {
45
+ const r = await route.fetch();
46
+ const b = await r.json();
47
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
48
+ const mk = (alias) => ({
49
+ alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
50
+ network_id: nid, project_dir: null,
51
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
52
+ });
53
+ // Use a group prefix so the prefix-group boundary box renders + its
54
+ // group label rect with rx=4 is in the DOM for regression check.
55
+ await route.fulfill({ response: r, json: { ...b, sessions: [
56
+ mk('alpha-1'), mk('alpha-2'), mk('alpha-3'), mk('alpha-4'),
57
+ ] } });
58
+ });
59
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
60
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
61
+
62
+ const page = await ctx.newPage();
63
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
64
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
65
+ await page.waitForSelector('[data-topo-panel="recent"]', { timeout: 10000 });
66
+ await page.waitForSelector('[data-topo-panel="legend"]', { timeout: 10000 });
67
+ await page.waitForSelector('[data-node-label-card]', { timeout: 10000 });
68
+ await page.waitForSelector('[data-group-label-tinted]', { timeout: 10000 });
69
+ await page.waitForSelector('[data-topo-wrapper]', { timeout: 10000 });
70
+ await page.waitForTimeout(300);
71
+
72
+ const probe = await page.evaluate(() => {
73
+ const recentG = document.querySelector('[data-topo-panel="recent"]');
74
+ const legendG = document.querySelector('[data-topo-panel="legend"]');
75
+ const recentRx = recentG?.querySelector('rect')?.getAttribute('rx');
76
+ const legendRx = legendG?.querySelector('rect')?.getAttribute('rx');
77
+ // Node label card rect — query any one of them
78
+ const cardRect = document.querySelector('[data-node-label-card]');
79
+ const cardRx = cardRect?.getAttribute('rx');
80
+ // Group label rect — the bg tint rect inside the group-label-hit group
81
+ const groupTintRect = document.querySelector('[data-group-label-tinted]');
82
+ const groupTintRx = groupTintRect?.getAttribute('rx');
83
+ // Wrapper CSS corner radius
84
+ const wrapper = document.querySelector('[data-topo-wrapper]');
85
+ const wrapperBorderRadius = wrapper ? window.getComputedStyle(wrapper).borderTopLeftRadius : null;
86
+ return {
87
+ recentRx, legendRx, cardRx, groupTintRx, wrapperBorderRadius,
88
+ };
89
+ });
90
+ await browser.close();
91
+
92
+ const results = {
93
+ recent_panel_rx_8: probe.recentRx === '8',
94
+ legend_panel_rx_8: probe.legendRx === '8',
95
+ node_label_card_rx_6: probe.cardRx === '6',
96
+ group_label_tint_rx_4: probe.groupTintRx === '4',
97
+ wrapper_border_radius_8px: probe.wrapperBorderRadius === '8px',
98
+ };
99
+ const ok = Object.values(results).every(Boolean);
100
+ console.log(`${ok ? '✅' : '❌'} corner-radius unify:`, JSON.stringify(results),
101
+ '\n rxs: recent', probe.recentRx, '· legend', probe.legendRx, '· card', probe.cardRx, '· group-tint', probe.groupTintRx,
102
+ '\n wrapper border-radius:', probe.wrapperBorderRadius);
103
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,120 @@
1
+ /* Round 261 verification: HTML overlay padding aligned with SVG corner
2
+ * panel padding — chrome strip + minimap both at 16 CSS px from canvas
3
+ * edges, matching the SVG corner panels at (16, 16) panel-translate.
4
+ *
5
+ * Pre-R261:
6
+ * SVG panels: 16 SVG units from edges (≈ 15 CSS px @ ~0.94× scale)
7
+ * chrome: 12 CSS px (bottom-3 right-3) — ~3px optical asymmetry
8
+ * minimap: 12 CSS px (right-3) — same asymmetry
9
+ *
10
+ * Post-R261:
11
+ * chrome: bottom-4 right-4 → 16 CSS px from container edges
12
+ * minimap: right-4 → 16 CSS px from container right edge
13
+ *
14
+ * 16 CSS px ≈ 17 SVG units, slightly tighter than the SVG 16-unit
15
+ * inset due to render-scale rounding, but visually matches the SVG
16
+ * panel padding so HTML overlays and SVG panels speak one inset
17
+ * vocabulary.
18
+ *
19
+ * Test scope:
20
+ * 1. Chrome strip's right edge sits at ~16 CSS px from container
21
+ * right edge (allow ±2 px sub-pixel slop).
22
+ * 2. Chrome strip's bottom edge sits at ~16 CSS px from container
23
+ * bottom edge (±2 slop).
24
+ * 3. Minimap (mounted after zoom-in × 3): right edge at ~16 CSS px.
25
+ * 4. R255 chrome-strip semantic gap intact: fleet→view gap still ≥ 11.
26
+ */
27
+ import { chromium } from 'playwright';
28
+ import { readFileSync } from 'node:fs';
29
+
30
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
31
+ const browser = await chromium.launch({ headless: true });
32
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
33
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
34
+ await ctx.addInitScript(() => {
35
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
36
+ });
37
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
38
+ await ctx.route('**/api/hub/status*', async (route) => {
39
+ const r = await route.fetch();
40
+ const b = await r.json();
41
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
42
+ const mk = (alias) => ({
43
+ alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
44
+ network_id: nid, project_dir: null,
45
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
46
+ });
47
+ await route.fulfill({ response: r, json: { ...b, sessions: [
48
+ mk('alpha'), mk('beta'), mk('gamma'), mk('delta'),
49
+ ] } });
50
+ });
51
+ await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
52
+ await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
53
+
54
+ const page = await ctx.newPage();
55
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
56
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
57
+ await page.waitForSelector('[data-topo-chrome]', { timeout: 10000 });
58
+ await page.waitForSelector('[data-topo-wrapper]', { timeout: 10000 });
59
+ await page.waitForTimeout(300);
60
+
61
+ const beforeMinimap = await page.evaluate(() => {
62
+ const wrapper = document.querySelector('[data-topo-wrapper]');
63
+ const chrome = document.querySelector('[data-topo-chrome]');
64
+ const fleet = document.querySelector('[data-topo-chrome-fleet-group-trailer]');
65
+ const view = document.querySelector('[data-topo-chrome-view-group-leader]');
66
+ const wrR = wrapper?.getBoundingClientRect() ?? null;
67
+ const chR = chrome?.getBoundingClientRect() ?? null;
68
+ return {
69
+ wrapperRight: wrR ? wrR.right : null,
70
+ wrapperBottom: wrR ? wrR.bottom : null,
71
+ chromeRight: chR ? chR.right : null,
72
+ chromeBottom: chR ? chR.bottom : null,
73
+ fleetRight: fleet ? fleet.getBoundingClientRect().right : null,
74
+ viewLeft: view ? view.getBoundingClientRect().left : null,
75
+ };
76
+ });
77
+
78
+ // Zoom in to force minimap mount
79
+ for (let i = 0; i < 3; i++) {
80
+ await page.locator('[data-topo-chrome-zoom-in]').click();
81
+ await page.waitForTimeout(120);
82
+ }
83
+ await page.waitForSelector('[data-topo-minimap]', { timeout: 5000 });
84
+ await page.waitForTimeout(300);
85
+
86
+ const minimapProbe = await page.evaluate(() => {
87
+ const wrapper = document.querySelector('[data-topo-wrapper]');
88
+ const mm = document.querySelector('[data-topo-minimap]');
89
+ const wrR = wrapper?.getBoundingClientRect() ?? null;
90
+ const mmR = mm?.getBoundingClientRect() ?? null;
91
+ return {
92
+ wrapperRight: wrR ? wrR.right : null,
93
+ minimapRight: mmR ? mmR.right : null,
94
+ };
95
+ });
96
+ await browser.close();
97
+
98
+ const chromeRightOffset = (beforeMinimap.wrapperRight != null && beforeMinimap.chromeRight != null)
99
+ ? (beforeMinimap.wrapperRight - beforeMinimap.chromeRight) : null;
100
+ const chromeBottomOffset = (beforeMinimap.wrapperBottom != null && beforeMinimap.chromeBottom != null)
101
+ ? (beforeMinimap.wrapperBottom - beforeMinimap.chromeBottom) : null;
102
+ const minimapRightOffset = (minimapProbe.wrapperRight != null && minimapProbe.minimapRight != null)
103
+ ? (minimapProbe.wrapperRight - minimapProbe.minimapRight) : null;
104
+ const fleetToViewGap = (beforeMinimap.fleetRight != null && beforeMinimap.viewLeft != null)
105
+ ? (beforeMinimap.viewLeft - beforeMinimap.fleetRight) : null;
106
+
107
+ const inWindow = (v, target, slop) => v != null && Math.abs(v - target) <= slop;
108
+
109
+ const results = {
110
+ chrome_right_at_16: inWindow(chromeRightOffset, 16, 2),
111
+ chrome_bottom_at_16: inWindow(chromeBottomOffset, 16, 2),
112
+ minimap_right_at_16: inWindow(minimapRightOffset, 16, 2),
113
+ r255_fleet_view_gap_intact: fleetToViewGap != null && fleetToViewGap >= 11,
114
+ };
115
+ const ok = Object.values(results).every(Boolean);
116
+ console.log(`${ok ? '✅' : '❌'} HTML overlay padding unify:`, JSON.stringify(results),
117
+ '\n chrome right offset:', chromeRightOffset, '/ bottom:', chromeBottomOffset,
118
+ '\n minimap right offset:', minimapRightOffset,
119
+ '\n R255 fleet→view gap:', fleetToViewGap);
120
+ process.exit(ok ? 0 : 1);