@sleep2agi/agent-network-dashboard 0.4.6-preview.185 → 0.4.6-preview.187

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 (156) 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/prerender-manifest.json +3 -3
  6. package/.next/server/app/_global-error.html +1 -1
  7. package/.next/server/app/_global-error.rsc +1 -1
  8. package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  9. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  10. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  11. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  12. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  13. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/_not-found.html +2 -2
  15. package/.next/server/app/_not-found.rsc +2 -2
  16. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  17. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  19. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  21. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  22. package/.next/server/app/admin/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/admin.html +2 -2
  24. package/.next/server/app/admin.rsc +2 -2
  25. package/.next/server/app/admin.segments/_full.segment.rsc +2 -2
  26. package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
  27. package/.next/server/app/admin.segments/_index.segment.rsc +2 -2
  28. package/.next/server/app/admin.segments/_tree.segment.rsc +2 -2
  29. package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
  30. package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
  31. package/.next/server/app/index.html +2 -2
  32. package/.next/server/app/index.rsc +3 -3
  33. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  34. package/.next/server/app/index.segments/_full.segment.rsc +3 -3
  35. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  36. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  37. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  38. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/login.html +2 -2
  40. package/.next/server/app/login.rsc +3 -3
  41. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  42. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  43. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  44. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  45. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  46. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  47. package/.next/server/app/logs/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/logs.html +2 -2
  49. package/.next/server/app/logs.rsc +2 -2
  50. package/.next/server/app/logs.segments/_full.segment.rsc +2 -2
  51. package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
  52. package/.next/server/app/logs.segments/_index.segment.rsc +2 -2
  53. package/.next/server/app/logs.segments/_tree.segment.rsc +2 -2
  54. package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
  55. package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
  56. package/.next/server/app/messages/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/messages.html +2 -2
  58. package/.next/server/app/messages.rsc +2 -2
  59. package/.next/server/app/messages.segments/_full.segment.rsc +2 -2
  60. package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
  61. package/.next/server/app/messages.segments/_index.segment.rsc +2 -2
  62. package/.next/server/app/messages.segments/_tree.segment.rsc +2 -2
  63. package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
  64. package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
  65. package/.next/server/app/node/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/node.html +2 -2
  67. package/.next/server/app/node.rsc +2 -2
  68. package/.next/server/app/node.segments/_full.segment.rsc +2 -2
  69. package/.next/server/app/node.segments/_head.segment.rsc +1 -1
  70. package/.next/server/app/node.segments/_index.segment.rsc +2 -2
  71. package/.next/server/app/node.segments/_tree.segment.rsc +2 -2
  72. package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
  73. package/.next/server/app/node.segments/node.segment.rsc +1 -1
  74. package/.next/server/app/nodes/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app/nodes.html +2 -2
  76. package/.next/server/app/nodes.rsc +2 -2
  77. package/.next/server/app/nodes.segments/_full.segment.rsc +2 -2
  78. package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
  79. package/.next/server/app/nodes.segments/_index.segment.rsc +2 -2
  80. package/.next/server/app/nodes.segments/_tree.segment.rsc +2 -2
  81. package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
  82. package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
  83. package/.next/server/app/page_client-reference-manifest.js +1 -1
  84. package/.next/server/app/server-logs/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/server-logs.html +2 -2
  86. package/.next/server/app/server-logs.rsc +2 -2
  87. package/.next/server/app/server-logs.segments/_full.segment.rsc +2 -2
  88. package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
  89. package/.next/server/app/server-logs.segments/_index.segment.rsc +2 -2
  90. package/.next/server/app/server-logs.segments/_tree.segment.rsc +2 -2
  91. package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
  92. package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
  93. package/.next/server/app/settings/networks/page_client-reference-manifest.js +1 -1
  94. package/.next/server/app/settings/networks.html +2 -2
  95. package/.next/server/app/settings/networks.rsc +2 -2
  96. package/.next/server/app/settings/networks.segments/_full.segment.rsc +2 -2
  97. package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
  98. package/.next/server/app/settings/networks.segments/_index.segment.rsc +2 -2
  99. package/.next/server/app/settings/networks.segments/_tree.segment.rsc +2 -2
  100. package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
  101. package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
  102. package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
  103. package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/settings/tokens/page_client-reference-manifest.js +1 -1
  105. package/.next/server/app/settings/tokens.html +2 -2
  106. package/.next/server/app/settings/tokens.rsc +2 -2
  107. package/.next/server/app/settings/tokens.segments/_full.segment.rsc +2 -2
  108. package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
  109. package/.next/server/app/settings/tokens.segments/_index.segment.rsc +2 -2
  110. package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +2 -2
  111. package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
  112. package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
  113. package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
  114. package/.next/server/app/settings.html +2 -2
  115. package/.next/server/app/settings.rsc +3 -3
  116. package/.next/server/app/settings.segments/_full.segment.rsc +3 -3
  117. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  118. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  119. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  120. package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
  121. package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
  122. package/.next/server/app/tasks/[id]/page_client-reference-manifest.js +1 -1
  123. package/.next/server/app/tasks/page_client-reference-manifest.js +1 -1
  124. package/.next/server/app/tasks.html +2 -2
  125. package/.next/server/app/tasks.rsc +2 -2
  126. package/.next/server/app/tasks.segments/_full.segment.rsc +2 -2
  127. package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
  128. package/.next/server/app/tasks.segments/_index.segment.rsc +2 -2
  129. package/.next/server/app/tasks.segments/_tree.segment.rsc +2 -2
  130. package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
  131. package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
  132. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +3 -3
  133. package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
  134. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
  135. package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
  136. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
  137. package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
  138. package/.next/server/middleware-build-manifest.js +3 -3
  139. package/.next/server/pages/404.html +2 -2
  140. package/.next/server/pages/500.html +1 -1
  141. package/.next/server/server-reference-manifest.js +1 -1
  142. package/.next/server/server-reference-manifest.json +1 -1
  143. package/.next/static/chunks/{1030j~nq_h0zj.js → 03g4iuukfk16u.js} +1 -1
  144. package/.next/static/chunks/{0apz~n14d8c35.js → 0a9p-es05ep73.js} +3 -3
  145. package/.next/static/chunks/{112hqpb3_bmpm.js → 10p3-bueb0ork.js} +1 -1
  146. package/.next/static/chunks/{0otgjhpse~amj.css → 13k52fgtfw~0c.css} +1 -1
  147. package/.next/trace +2 -2
  148. package/.next/trace-build +1 -1
  149. package/app/components/TopoGraph.tsx +23 -1
  150. package/package.json +1 -1
  151. package/scripts/topo-nodesize-active-hover-test.mjs +109 -0
  152. package/scripts/topo-pin-mirror-transition-test.mjs +101 -0
  153. package/scripts/topo-working-chip-pin-test.mjs +7 -1
  154. /package/.next/static/{aQfyiC761ih_9qjMPLa36 → JXhnVH1uF1ZoAFZNGr7FJ}/_buildManifest.js +0 -0
  155. /package/.next/static/{aQfyiC761ih_9qjMPLa36 → JXhnVH1uF1ZoAFZNGr7FJ}/_clientMiddlewareManifest.js +0 -0
  156. /package/.next/static/{aQfyiC761ih_9qjMPLa36 → JXhnVH1uF1ZoAFZNGr7FJ}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1,2 +1,2 @@
1
- [{"name":"generate-buildid","duration":257,"timestamp":67032638470,"id":4,"parentId":1,"tags":{},"startTime":1778875004885,"traceId":"76f3d59d28faf4d4"},{"name":"load-custom-routes","duration":460,"timestamp":67032638879,"id":5,"parentId":1,"tags":{},"startTime":1778875004885,"traceId":"76f3d59d28faf4d4"},{"name":"create-dist-dir","duration":653,"timestamp":67032639381,"id":6,"parentId":1,"tags":{},"startTime":1778875004886,"traceId":"76f3d59d28faf4d4"},{"name":"clean","duration":615,"timestamp":67032640660,"id":7,"parentId":1,"tags":{},"startTime":1778875004887,"traceId":"76f3d59d28faf4d4"},{"name":"discover-routes","duration":8702,"timestamp":67032718971,"id":8,"parentId":1,"tags":{},"startTime":1778875004965,"traceId":"76f3d59d28faf4d4"},{"name":"create-root-mapping","duration":115,"timestamp":67032727722,"id":9,"parentId":1,"tags":{},"startTime":1778875004974,"traceId":"76f3d59d28faf4d4"},{"name":"generate-route-types","duration":30596,"timestamp":67032730025,"id":10,"parentId":1,"tags":{},"startTime":1778875004976,"traceId":"76f3d59d28faf4d4"},{"name":"public-dir-conflict-check","duration":141,"timestamp":67032760818,"id":11,"parentId":1,"tags":{},"startTime":1778875005007,"traceId":"76f3d59d28faf4d4"},{"name":"generate-routes-manifest","duration":4376,"timestamp":67032761119,"id":12,"parentId":1,"tags":{},"startTime":1778875005007,"traceId":"76f3d59d28faf4d4"},{"name":"run-turbopack","duration":5171220,"timestamp":67032770397,"id":14,"parentId":1,"tags":{},"startTime":1778875005017,"traceId":"76f3d59d28faf4d4"},{"name":"turbopack-build-events","duration":101,"timestamp":67033044392,"id":15,"parentId":1,"tags":{},"startTime":1778875005291,"traceId":"76f3d59d28faf4d4"},{"name":"run-typescript","duration":8605355,"timestamp":67037979898,"id":16,"parentId":1,"tags":{},"startTime":1778875010226,"traceId":"76f3d59d28faf4d4"},{"name":"generate-required-server-files","duration":2282,"timestamp":67046586377,"id":18,"parentId":1,"tags":{},"startTime":1778875018833,"traceId":"76f3d59d28faf4d4"},{"name":"check-static-error-page","duration":13223,"timestamp":67046785020,"id":20,"parentId":19,"tags":{},"startTime":1778875019031,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":406964,"timestamp":67046800482,"id":63,"parentId":22,"tags":{},"startTime":1778875019047,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":419229,"timestamp":67046788374,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778875019035,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":523995,"timestamp":67046801420,"id":65,"parentId":26,"tags":{},"startTime":1778875019048,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":533270,"timestamp":67046792242,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":525958,"timestamp":67046802147,"id":68,"parentId":29,"tags":{},"startTime":1778875019048,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":535664,"timestamp":67046792488,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":525986,"timestamp":67046804493,"id":69,"parentId":30,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":537963,"timestamp":67046792584,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":526034,"timestamp":67046804689,"id":70,"parentId":32,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":537899,"timestamp":67046792872,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":534244,"timestamp":67046804866,"id":72,"parentId":34,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":546113,"timestamp":67046793066,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":536363,"timestamp":67046805031,"id":74,"parentId":36,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":547964,"timestamp":67046793492,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":541025,"timestamp":67046804769,"id":71,"parentId":33,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":552890,"timestamp":67046792964,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":541105,"timestamp":67046805065,"id":75,"parentId":37,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":552616,"timestamp":67046793609,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":547028,"timestamp":67046801928,"id":67,"parentId":28,"tags":{},"startTime":1778875019048,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":556588,"timestamp":67046792406,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":550447,"timestamp":67046800608,"id":64,"parentId":25,"tags":{},"startTime":1778875019047,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":558985,"timestamp":67046792110,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778875019038,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":548636,"timestamp":67046805108,"id":78,"parentId":40,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":559941,"timestamp":67046793843,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":548864,"timestamp":67046805098,"id":77,"parentId":39,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":560228,"timestamp":67046793765,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":549863,"timestamp":67046805084,"id":76,"parentId":38,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":561283,"timestamp":67046793701,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":551961,"timestamp":67046804899,"id":73,"parentId":35,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":563745,"timestamp":67046793153,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":551913,"timestamp":67046805121,"id":79,"parentId":41,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":563162,"timestamp":67046793903,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":562485,"timestamp":67046805146,"id":81,"parentId":43,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":573617,"timestamp":67046794074,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":567680,"timestamp":67046800188,"id":62,"parentId":21,"tags":{},"startTime":1778875019046,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":581219,"timestamp":67046786685,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778875019033,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":562884,"timestamp":67046805167,"id":83,"parentId":45,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":573867,"timestamp":67046794225,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":563894,"timestamp":67046805154,"id":82,"parentId":44,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":574950,"timestamp":67046794154,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":561486,"timestamp":67046812673,"id":88,"parentId":24,"tags":{},"startTime":1778875019059,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":584683,"timestamp":67046789528,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778875019036,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":569173,"timestamp":67046805188,"id":85,"parentId":47,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":580030,"timestamp":67046794372,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778875019041,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":571149,"timestamp":67046805215,"id":87,"parentId":49,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":580603,"timestamp":67046795816,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778875019042,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":564650,"timestamp":67046813874,"id":89,"parentId":31,"tags":{},"startTime":1778875019060,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":585907,"timestamp":67046792660,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":579831,"timestamp":67046805133,"id":80,"parentId":42,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":591063,"timestamp":67046793973,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778875019040,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":590025,"timestamp":67046805179,"id":84,"parentId":46,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":600960,"timestamp":67046794285,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778875019041,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":593789,"timestamp":67046801615,"id":66,"parentId":27,"tags":{},"startTime":1778875019048,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":603111,"timestamp":67046792325,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778875019039,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":596781,"timestamp":67046835749,"id":90,"parentId":23,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":643931,"timestamp":67046788668,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778875019035,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":600581,"timestamp":67046835810,"id":92,"parentId":51,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":640134,"timestamp":67046796318,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778875019043,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":604989,"timestamp":67046835874,"id":96,"parentId":56,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":643638,"timestamp":67046797272,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778875019044,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":608045,"timestamp":67046835886,"id":97,"parentId":57,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":646556,"timestamp":67046797417,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778875019044,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":612327,"timestamp":67046835896,"id":98,"parentId":59,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":650421,"timestamp":67046797842,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778875019044,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":643428,"timestamp":67046805201,"id":86,"parentId":48,"tags":{},"startTime":1778875019051,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":654257,"timestamp":67046794437,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778875019041,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":619698,"timestamp":67046835933,"id":100,"parentId":61,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":657609,"timestamp":67046798066,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778875019044,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":620188,"timestamp":67046835844,"id":94,"parentId":53,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":659521,"timestamp":67046796561,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778875019043,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":620387,"timestamp":67046835943,"id":101,"parentId":58,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":658844,"timestamp":67046797535,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778875019044,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":622064,"timestamp":67046835914,"id":99,"parentId":60,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":660099,"timestamp":67046797951,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778875019044,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":622828,"timestamp":67046835793,"id":91,"parentId":50,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":662458,"timestamp":67046796198,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778875019042,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":626508,"timestamp":67046835833,"id":93,"parentId":52,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":665950,"timestamp":67046796427,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778875019043,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":605409,"timestamp":67046857784,"id":102,"parentId":55,"tags":{},"startTime":1778875019104,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":666355,"timestamp":67046796868,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778875019043,"traceId":"76f3d59d28faf4d4"},{"name":"is-page-static","duration":637770,"timestamp":67046835859,"id":95,"parentId":54,"tags":{},"startTime":1778875019082,"traceId":"76f3d59d28faf4d4"},{"name":"check-page","duration":676964,"timestamp":67046796695,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778875019043,"traceId":"76f3d59d28faf4d4"},{"name":"static-check","duration":689849,"timestamp":67046783837,"id":19,"parentId":1,"tags":{},"startTime":1778875019030,"traceId":"76f3d59d28faf4d4"},{"name":"write-routes-manifest","duration":454,"timestamp":67047480594,"id":104,"parentId":1,"tags":{},"startTime":1778875019727,"traceId":"76f3d59d28faf4d4"},{"name":"load-dotenv","duration":52,"timestamp":67047491786,"id":107,"parentId":106,"tags":{},"startTime":1778875019738,"traceId":"76f3d59d28faf4d4"},{"name":"run-export-path-map","duration":762,"timestamp":67047495280,"id":108,"parentId":106,"tags":{},"startTime":1778875019742,"traceId":"76f3d59d28faf4d4"},{"name":"next-export","duration":559481,"timestamp":67047490566,"id":106,"parentId":1,"tags":{},"startTime":1778875019737,"traceId":"76f3d59d28faf4d4"}]
2
- [{"name":"move-exported-app-not-found-","duration":2126,"timestamp":67048053528,"id":109,"parentId":105,"tags":{},"startTime":1778875020300,"traceId":"76f3d59d28faf4d4"},{"name":"move-exported-app-global-error-","duration":542,"timestamp":67048055751,"id":110,"parentId":105,"tags":{},"startTime":1778875020302,"traceId":"76f3d59d28faf4d4"},{"name":"static-generation","duration":572914,"timestamp":67047485168,"id":105,"parentId":1,"tags":{},"startTime":1778875019731,"traceId":"76f3d59d28faf4d4"},{"name":"write-routes-manifest","duration":376,"timestamp":67048058239,"id":111,"parentId":1,"tags":{},"startTime":1778875020305,"traceId":"76f3d59d28faf4d4"},{"name":"print-tree-view","duration":4312,"timestamp":67048073482,"id":112,"parentId":1,"tags":{},"startTime":1778875020320,"traceId":"76f3d59d28faf4d4"},{"name":"write-route-bundle-stats","duration":14589,"timestamp":67048077835,"id":113,"parentId":1,"tags":{},"startTime":1778875020324,"traceId":"76f3d59d28faf4d4"},{"name":"telemetry-flush","duration":33957,"timestamp":67048092464,"id":114,"parentId":1,"tags":{},"startTime":1778875020339,"traceId":"76f3d59d28faf4d4"},{"name":"next-build","duration":15536523,"timestamp":67032589925,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778875004836,"traceId":"76f3d59d28faf4d4"}]
1
+ [{"name":"generate-buildid","duration":244,"timestamp":67761204110,"id":4,"parentId":1,"tags":{},"startTime":1778875733450,"traceId":"ba60c1a055950f26"},{"name":"load-custom-routes","duration":454,"timestamp":67761204489,"id":5,"parentId":1,"tags":{},"startTime":1778875733451,"traceId":"ba60c1a055950f26"},{"name":"create-dist-dir","duration":615,"timestamp":67761204982,"id":6,"parentId":1,"tags":{},"startTime":1778875733451,"traceId":"ba60c1a055950f26"},{"name":"clean","duration":436,"timestamp":67761206238,"id":7,"parentId":1,"tags":{},"startTime":1778875733453,"traceId":"ba60c1a055950f26"},{"name":"discover-routes","duration":10081,"timestamp":67761284483,"id":8,"parentId":1,"tags":{},"startTime":1778875733531,"traceId":"ba60c1a055950f26"},{"name":"create-root-mapping","duration":104,"timestamp":67761294620,"id":9,"parentId":1,"tags":{},"startTime":1778875733541,"traceId":"ba60c1a055950f26"},{"name":"generate-route-types","duration":30623,"timestamp":67761296883,"id":10,"parentId":1,"tags":{},"startTime":1778875733543,"traceId":"ba60c1a055950f26"},{"name":"public-dir-conflict-check","duration":126,"timestamp":67761327725,"id":11,"parentId":1,"tags":{},"startTime":1778875733574,"traceId":"ba60c1a055950f26"},{"name":"generate-routes-manifest","duration":4164,"timestamp":67761327980,"id":12,"parentId":1,"tags":{},"startTime":1778875733574,"traceId":"ba60c1a055950f26"},{"name":"run-turbopack","duration":5364020,"timestamp":67761337691,"id":14,"parentId":1,"tags":{},"startTime":1778875733584,"traceId":"ba60c1a055950f26"},{"name":"turbopack-build-events","duration":117,"timestamp":67761627477,"id":15,"parentId":1,"tags":{},"startTime":1778875733874,"traceId":"ba60c1a055950f26"},{"name":"run-typescript","duration":8490788,"timestamp":67766720938,"id":16,"parentId":1,"tags":{},"startTime":1778875738967,"traceId":"ba60c1a055950f26"},{"name":"generate-required-server-files","duration":2788,"timestamp":67775212723,"id":18,"parentId":1,"tags":{},"startTime":1778875747459,"traceId":"ba60c1a055950f26"},{"name":"check-static-error-page","duration":10788,"timestamp":67775385168,"id":20,"parentId":19,"tags":{},"startTime":1778875747631,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":429714,"timestamp":67775398180,"id":63,"parentId":22,"tags":{},"startTime":1778875747644,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":440761,"timestamp":67775387323,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778875747634,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":508375,"timestamp":67775398303,"id":64,"parentId":25,"tags":{},"startTime":1778875747645,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":517025,"timestamp":67775389757,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778875747636,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":515505,"timestamp":67775397876,"id":62,"parentId":21,"tags":{},"startTime":1778875747644,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":527184,"timestamp":67775386257,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778875747633,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":519964,"timestamp":67775401016,"id":70,"parentId":32,"tags":{},"startTime":1778875747647,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":530396,"timestamp":67775390663,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":524661,"timestamp":67775398772,"id":67,"parentId":28,"tags":{},"startTime":1778875747645,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":533309,"timestamp":67775390173,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778875747636,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":525590,"timestamp":67775401177,"id":72,"parentId":34,"tags":{},"startTime":1778875747647,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":535953,"timestamp":67775390886,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":529122,"timestamp":67775398929,"id":68,"parentId":29,"tags":{},"startTime":1778875747645,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":537845,"timestamp":67775390256,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":528954,"timestamp":67775401213,"id":73,"parentId":35,"tags":{},"startTime":1778875747647,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":539191,"timestamp":67775391018,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":533884,"timestamp":67775401340,"id":74,"parentId":36,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":543920,"timestamp":67775391355,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":534037,"timestamp":67775401374,"id":75,"parentId":37,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":543965,"timestamp":67775391475,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":539015,"timestamp":67775398534,"id":66,"parentId":27,"tags":{},"startTime":1778875747645,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":547518,"timestamp":67775390082,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778875747636,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":541511,"timestamp":67775401432,"id":79,"parentId":41,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":551194,"timestamp":67775391800,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":545485,"timestamp":67775401407,"id":77,"parentId":39,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":555279,"timestamp":67775391661,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":548966,"timestamp":67775398422,"id":65,"parentId":26,"tags":{},"startTime":1778875747645,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":557491,"timestamp":67775389955,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778875747636,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":551256,"timestamp":67775401469,"id":82,"parentId":44,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":560640,"timestamp":67775392132,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":554465,"timestamp":67775401417,"id":78,"parentId":40,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":564199,"timestamp":67775391725,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":560710,"timestamp":67775401392,"id":76,"parentId":38,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":570590,"timestamp":67775391570,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":562860,"timestamp":67775401496,"id":84,"parentId":46,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":572125,"timestamp":67775392279,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778875747639,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":571368,"timestamp":67775401519,"id":86,"parentId":48,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":580497,"timestamp":67775392436,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778875747639,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":572207,"timestamp":67775401459,"id":81,"parentId":43,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":581680,"timestamp":67775392030,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":576826,"timestamp":67775401532,"id":87,"parentId":49,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":584840,"timestamp":67775393565,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778875747640,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":580714,"timestamp":67775401483,"id":83,"parentId":45,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":590030,"timestamp":67775392217,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":581070,"timestamp":67775401506,"id":85,"parentId":47,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":590254,"timestamp":67775392371,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778875747639,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":583166,"timestamp":67775401445,"id":80,"parentId":42,"tags":{},"startTime":1778875747648,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":592751,"timestamp":67775391916,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778875747638,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":579798,"timestamp":67775405046,"id":88,"parentId":24,"tags":{},"startTime":1778875747651,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":597206,"timestamp":67775387686,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778875747634,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":584292,"timestamp":67775406198,"id":89,"parentId":31,"tags":{},"startTime":1778875747652,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":600137,"timestamp":67775390436,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":589986,"timestamp":67775400778,"id":69,"parentId":30,"tags":{},"startTime":1778875747647,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":600477,"timestamp":67775390359,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":590017,"timestamp":67775401099,"id":71,"parentId":33,"tags":{},"startTime":1778875747647,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":600395,"timestamp":67775390767,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778875747637,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":585568,"timestamp":67775412666,"id":96,"parentId":56,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":603222,"timestamp":67775395058,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778875747641,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":592586,"timestamp":67775412675,"id":97,"parentId":57,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":610099,"timestamp":67775395209,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778875747641,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":600274,"timestamp":67775412686,"id":98,"parentId":59,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":617538,"timestamp":67775395600,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778875747642,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":614003,"timestamp":67775412701,"id":99,"parentId":60,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":631070,"timestamp":67775395692,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778875747642,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":624475,"timestamp":67775412712,"id":100,"parentId":61,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":641471,"timestamp":67775395780,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778875747642,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":624592,"timestamp":67775420708,"id":101,"parentId":58,"tags":{},"startTime":1778875747667,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":650025,"timestamp":67775395325,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778875747642,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":635056,"timestamp":67775412629,"id":93,"parentId":52,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":653571,"timestamp":67775394171,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778875747640,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":637741,"timestamp":67775412619,"id":92,"parentId":51,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":656359,"timestamp":67775394054,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778875747640,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":639384,"timestamp":67775412654,"id":95,"parentId":54,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":657594,"timestamp":67775394491,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778875747641,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":611995,"timestamp":67775440399,"id":102,"parentId":55,"tags":{},"startTime":1778875747687,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":657775,"timestamp":67775394655,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778875747641,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":639882,"timestamp":67775412641,"id":94,"parentId":53,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":658222,"timestamp":67775394329,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778875747641,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":640683,"timestamp":67775412603,"id":91,"parentId":50,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":659418,"timestamp":67775393910,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778875747640,"traceId":"ba60c1a055950f26"},{"name":"is-page-static","duration":641301,"timestamp":67775412574,"id":90,"parentId":23,"tags":{},"startTime":1778875747659,"traceId":"ba60c1a055950f26"},{"name":"check-page","duration":666401,"timestamp":67775387509,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778875747634,"traceId":"ba60c1a055950f26"},{"name":"static-check","duration":669640,"timestamp":67775384303,"id":19,"parentId":1,"tags":{},"startTime":1778875747631,"traceId":"ba60c1a055950f26"},{"name":"write-routes-manifest","duration":470,"timestamp":67776062757,"id":104,"parentId":1,"tags":{},"startTime":1778875748309,"traceId":"ba60c1a055950f26"},{"name":"load-dotenv","duration":49,"timestamp":67776074734,"id":107,"parentId":106,"tags":{},"startTime":1778875748321,"traceId":"ba60c1a055950f26"},{"name":"run-export-path-map","duration":718,"timestamp":67776079732,"id":108,"parentId":106,"tags":{},"startTime":1778875748326,"traceId":"ba60c1a055950f26"},{"name":"next-export","duration":560329,"timestamp":67776073519,"id":106,"parentId":1,"tags":{},"startTime":1778875748320,"traceId":"ba60c1a055950f26"}]
2
+ [{"name":"move-exported-app-not-found-","duration":2391,"timestamp":67776637431,"id":109,"parentId":105,"tags":{},"startTime":1778875748884,"traceId":"ba60c1a055950f26"},{"name":"move-exported-app-global-error-","duration":546,"timestamp":67776639911,"id":110,"parentId":105,"tags":{},"startTime":1778875748886,"traceId":"ba60c1a055950f26"},{"name":"static-generation","duration":574817,"timestamp":67776067578,"id":105,"parentId":1,"tags":{},"startTime":1778875748314,"traceId":"ba60c1a055950f26"},{"name":"write-routes-manifest","duration":377,"timestamp":67776642547,"id":111,"parentId":1,"tags":{},"startTime":1778875748889,"traceId":"ba60c1a055950f26"},{"name":"print-tree-view","duration":3534,"timestamp":67776658197,"id":112,"parentId":1,"tags":{},"startTime":1778875748904,"traceId":"ba60c1a055950f26"},{"name":"write-route-bundle-stats","duration":12941,"timestamp":67776661764,"id":113,"parentId":1,"tags":{},"startTime":1778875748908,"traceId":"ba60c1a055950f26"},{"name":"telemetry-flush","duration":36758,"timestamp":67776674729,"id":114,"parentId":1,"tags":{},"startTime":1778875748921,"traceId":"ba60c1a055950f26"},{"name":"next-build","duration":15555855,"timestamp":67761155662,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778875733402,"traceId":"ba60c1a055950f26"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":5171220,"timestamp":67032770397,"id":14,"parentId":1,"tags":{},"startTime":1778875005017,"traceId":"76f3d59d28faf4d4"},{"name":"turbopack-build-events","duration":101,"timestamp":67033044392,"id":15,"parentId":1,"tags":{},"startTime":1778875005291,"traceId":"76f3d59d28faf4d4"},{"name":"run-typescript","duration":8605355,"timestamp":67037979898,"id":16,"parentId":1,"tags":{},"startTime":1778875010226,"traceId":"76f3d59d28faf4d4"},{"name":"static-check","duration":689849,"timestamp":67046783837,"id":19,"parentId":1,"tags":{},"startTime":1778875019030,"traceId":"76f3d59d28faf4d4"},{"name":"static-generation","duration":572914,"timestamp":67047485168,"id":105,"parentId":1,"tags":{},"startTime":1778875019731,"traceId":"76f3d59d28faf4d4"},{"name":"telemetry-flush","duration":33957,"timestamp":67048092464,"id":114,"parentId":1,"tags":{},"startTime":1778875020339,"traceId":"76f3d59d28faf4d4"},{"name":"next-build","duration":15536523,"timestamp":67032589925,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778875004836,"traceId":"76f3d59d28faf4d4"}]
1
+ [{"name":"run-turbopack","duration":5364020,"timestamp":67761337691,"id":14,"parentId":1,"tags":{},"startTime":1778875733584,"traceId":"ba60c1a055950f26"},{"name":"turbopack-build-events","duration":117,"timestamp":67761627477,"id":15,"parentId":1,"tags":{},"startTime":1778875733874,"traceId":"ba60c1a055950f26"},{"name":"run-typescript","duration":8490788,"timestamp":67766720938,"id":16,"parentId":1,"tags":{},"startTime":1778875738967,"traceId":"ba60c1a055950f26"},{"name":"static-check","duration":669640,"timestamp":67775384303,"id":19,"parentId":1,"tags":{},"startTime":1778875747631,"traceId":"ba60c1a055950f26"},{"name":"static-generation","duration":574817,"timestamp":67776067578,"id":105,"parentId":1,"tags":{},"startTime":1778875748314,"traceId":"ba60c1a055950f26"},{"name":"telemetry-flush","duration":36758,"timestamp":67776674729,"id":114,"parentId":1,"tags":{},"startTime":1778875748921,"traceId":"ba60c1a055950f26"},{"name":"next-build","duration":15555855,"timestamp":67761155662,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778875733402,"traceId":"ba60c1a055950f26"}]
@@ -1467,9 +1467,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
1467
1467
  role={workingCount > 0 ? 'button' : undefined}
1468
1468
  tabIndex={workingCount > 0 ? 0 : undefined}
1469
1469
  aria-pressed={workingCount > 0 ? (pinnedStatus === 'working') : undefined}
1470
+ // Round 180 / Loop: pin-mirror inset rings now ease in/out
1471
+ // instead of snapping. R165 added this transition to the
1472
+ // pressure-bar segments; R180 closes the smooth-pin-mirror
1473
+ // family across the three remaining chip-row pin chips
1474
+ // (working / online / vendor letter). The visual is small
1475
+ // — a 1-2 px inset double ring — but the eye catches the
1476
+ // pop on every pin/unpin without the ease.
1470
1477
  style={{
1471
1478
  cursor: workingCount > 0 ? 'pointer' : undefined,
1472
1479
  boxShadow: pinnedStatus === 'working' ? 'inset 0 0 0 1px #4ade80, inset 0 0 0 2px rgba(255,255,255,0.45)' : undefined,
1480
+ transition: 'box-shadow 150ms ease-out',
1473
1481
  }}
1474
1482
  onMouseEnter={() => { if (workingCount > 0) setHoveredStatus('working'); }}
1475
1483
  onMouseLeave={() => setHoveredStatus(prev => prev === 'working' ? null : prev)}
@@ -1504,9 +1512,11 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
1504
1512
  title={onlineTitle}
1505
1513
  role={onlineNodes.length > 0 ? 'link' : undefined}
1506
1514
  tabIndex={onlineNodes.length > 0 ? 0 : undefined}
1515
+ // R180: smooth-pin-mirror family — see working chip above.
1507
1516
  style={{
1508
1517
  cursor: onlineNodes.length > 0 ? 'pointer' : undefined,
1509
1518
  boxShadow: pinnedStatus === 'idle' ? 'inset 0 0 0 1px #67e8f9, inset 0 0 0 2px rgba(255,255,255,0.45)' : undefined,
1519
+ transition: 'box-shadow 150ms ease-out',
1510
1520
  }}
1511
1521
  onMouseEnter={() => {
1512
1522
  // If a working filter would isolate nothing, route to idle.
@@ -2003,11 +2013,13 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
2003
2013
  data-vendor-pinned={isPinned ? 'true' : 'false'}
2004
2014
  data-vendor-aliases={aliases.join(',')}
2005
2015
  title={tooltip}
2016
+ // R180: smooth-pin-mirror family — see working chip above.
2006
2017
  style={{
2007
2018
  cursor: 'pointer',
2008
2019
  boxShadow: isPinned
2009
2020
  ? `inset 0 0 0 1px ${v.color}, inset 0 0 0 2px rgba(255,255,255,0.45)`
2010
2021
  : undefined,
2022
+ transition: 'box-shadow 150ms ease-out',
2011
2023
  }}
2012
2024
  onMouseEnter={() => setHoveredVendor(v.initial)}
2013
2025
  onMouseLeave={() => setHoveredVendor(prev => prev === v.initial ? null : prev)}
@@ -4806,7 +4818,17 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
4806
4818
  data-topo-chrome-nodesize={lbl}
4807
4819
  data-topo-chrome-nodesize-active={nodeScale === v ? 'true' : 'false'}
4808
4820
  title={`Node size: ${lbl === 'S' ? 'small' : lbl === 'M' ? 'medium' : 'large'}`}
4809
- className={`px-2 py-1 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60 focus-visible:ring-inset ${idx > 0 ? 'border-l' : ''} ${nodeScale === v ? 'bg-cyan-500/15 text-cyan-300' : 'hover:bg-white/5'}`}
4821
+ // Round 179 / Loop: nodeSize S/M/L active-button hover
4822
+ // variant closes the inconsistency with R163 layout
4823
+ // toggle and R178 fullscreen. Pre-R179 the active
4824
+ // (selected) S/M/L button had bg-cyan-500/15 + text-
4825
+ // cyan-300 but NO hover response — the chip looked
4826
+ // 'locked', not 'still interactive'. R163 and R178
4827
+ // both add hover:bg-cyan-500/20 on the active variant
4828
+ // so the active chip stays responsive to mouse. R179
4829
+ // closes the trio so all three chrome active-cyan
4830
+ // surfaces ship the same gesture.
4831
+ className={`px-2 py-1 transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-cyan-400/60 focus-visible:ring-inset ${idx > 0 ? 'border-l' : ''} ${nodeScale === v ? 'bg-cyan-500/15 text-cyan-300 hover:bg-cyan-500/20' : 'hover:bg-white/5'}`}
4810
4832
  style={{ color: nodeScale === v ? undefined : pal.legendText, borderColor: pal.containerBorder }}
4811
4833
  >
4812
4834
  {lbl}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sleep2agi/agent-network-dashboard",
3
- "version": "0.4.6-preview.185",
3
+ "version": "0.4.6-preview.187",
4
4
  "description": "Agent Network Dashboard — Web UI for managing AI Agent networks",
5
5
  "scripts": {
6
6
  "dev": "next dev",
@@ -0,0 +1,109 @@
1
+ /* Round 179 verification: nodeSize S/M/L active button picks up
2
+ * hover:bg-cyan-500/20, closing the inconsistency with R163
3
+ * layout-toggle and R178 fullscreen which already ship the
4
+ * cyan-500/20 hover step on the active variant.
5
+ *
6
+ * Three active-cyan chrome surfaces now share the same gesture:
7
+ * R163 Ring/Grid layout toggle (chip-row)
8
+ * R178 Fullscreen button (chrome BR)
9
+ * R179 nodeSize S/M/L (chrome BR) ← this round
10
+ *
11
+ * Test:
12
+ * 1. Default state: M is active (default nodeScale=0.84)
13
+ * 2. Active 'M' button:
14
+ * className includes 'bg-cyan-500/15 text-cyan-300 hover:bg-cyan-500/20'
15
+ * 3. Inactive 'S' button:
16
+ * className includes 'hover:bg-white/5'
17
+ * className does NOT include 'bg-cyan-500/15'
18
+ * 4. Click 'S' → S becomes active
19
+ * 5. S's className now has cyan + cyan-500/20 hover, M doesn't
20
+ */
21
+ import { chromium } from 'playwright';
22
+ import { readFileSync } from 'node:fs';
23
+
24
+ const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
25
+ const browser = await chromium.launch({ headless: true });
26
+
27
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
28
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
29
+ await ctx.addInitScript(() => {
30
+ try {
31
+ localStorage.setItem('anet-theme', 'cyber');
32
+ sessionStorage.setItem('anet_v3_auth', '1');
33
+ localStorage.removeItem('anet-topo-nodescale');
34
+ } catch {}
35
+ });
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: 'cli-claude-code',
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: [mk('alpha'), mk('beta'), mk('gamma')] } });
48
+ });
49
+ await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
50
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
51
+
52
+ const page = await ctx.newPage();
53
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
54
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 3, { timeout: 30000 });
55
+ await page.waitForSelector('[data-topo-chrome-nodesize="M"]', { timeout: 10000 });
56
+ await page.waitForTimeout(400);
57
+
58
+ const probe = () => page.evaluate(() => {
59
+ const grab = (sel) => {
60
+ const el = document.querySelector(sel);
61
+ return el ? {
62
+ className: el.getAttribute('class') || '',
63
+ active: el.getAttribute('data-topo-chrome-nodesize-active'),
64
+ } : null;
65
+ };
66
+ return {
67
+ S: grab('[data-topo-chrome-nodesize="S"]'),
68
+ M: grab('[data-topo-chrome-nodesize="M"]'),
69
+ L: grab('[data-topo-chrome-nodesize="L"]'),
70
+ };
71
+ });
72
+
73
+ const initial = await probe();
74
+
75
+ // Click S → S becomes active
76
+ await page.locator('[data-topo-chrome-nodesize="S"]').click();
77
+ await page.waitForTimeout(450); // past R171 crossfade window
78
+ const afterS = await probe();
79
+
80
+ await browser.close();
81
+
82
+ const results = {
83
+ // Initial: M default-active
84
+ M_initial_active: initial.M?.active === 'true',
85
+ M_initial_has_cyan_bg: initial.M?.className.includes('bg-cyan-500/15'),
86
+ M_initial_has_cyan_text: initial.M?.className.includes('text-cyan-300'),
87
+ M_initial_has_cyan_hover: initial.M?.className.includes('hover:bg-cyan-500/20'),
88
+
89
+ S_initial_inactive: initial.S?.active === 'false',
90
+ S_initial_no_cyan_bg: !initial.S?.className.includes('bg-cyan-500/15'),
91
+ S_initial_has_white_hover: initial.S?.className.includes('hover:bg-white/5'),
92
+ S_initial_no_cyan_hover: !initial.S?.className.includes('hover:bg-cyan-500/20'),
93
+
94
+ // After click S: S active, M inactive
95
+ S_after_click_active: afterS.S?.active === 'true',
96
+ S_after_has_cyan_bg: afterS.S?.className.includes('bg-cyan-500/15'),
97
+ S_after_has_cyan_hover: afterS.S?.className.includes('hover:bg-cyan-500/20'),
98
+ S_after_no_white_hover: !afterS.S?.className.includes('hover:bg-white/5'),
99
+
100
+ M_after_inactive: afterS.M?.active === 'false',
101
+ M_after_no_cyan_bg: !afterS.M?.className.includes('bg-cyan-500/15'),
102
+ M_after_no_cyan_hover: !afterS.M?.className.includes('hover:bg-cyan-500/20'),
103
+ M_after_has_white_hover: afterS.M?.className.includes('hover:bg-white/5'),
104
+ };
105
+ const ok = Object.values(results).every(Boolean);
106
+ console.log(`${ok ? '✅' : '❌'} nodesize active hover:`, JSON.stringify(results),
107
+ `\n initial =`, initial,
108
+ `\n afterS =`, afterS);
109
+ process.exit(ok ? 0 : 1);
@@ -0,0 +1,101 @@
1
+ /* Round 180 verification: working / online / vendor-letter chips
2
+ * pick up box-shadow transition on pin/unpin.
3
+ *
4
+ * Pre-R180 the inset-ring pin-mirror style snapped instantly when
5
+ * the user pinned or unpinned a filter via these three chip
6
+ * surfaces. R165 had added the transition to pressure-bar
7
+ * segments only — R180 closes the smooth-pin-mirror family
8
+ * across all chip-row pinnable surfaces.
9
+ *
10
+ * Test:
11
+ * 1. Mock 3 working sessions across 2 vendors (claude + 书生)
12
+ * 2. Probe inline transition on working / online / vendor chips
13
+ * 3. All three should have 'box-shadow 150ms ease-out' in their
14
+ * inline transition style
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 browser = await chromium.launch({ headless: true });
21
+
22
+ const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
23
+ await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
24
+ await ctx.addInitScript(() => {
25
+ try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
26
+ });
27
+
28
+ const fresh = new Date(Date.now() - 60 * 1000).toISOString();
29
+ await ctx.route('**/api/hub/status*', async (route) => {
30
+ const r = await route.fetch();
31
+ const b = await r.json();
32
+ const nid = (b.sessions || [])[0]?.network_id || 'default';
33
+ // Two distinct vendor families so vendor letter chip shows up
34
+ // (vendorDist.length > 1 requirement).
35
+ const mk = (alias, model) => ({
36
+ alias, status: 'working', model, runtime: 'cli-claude-code',
37
+ network_id: nid, project_dir: null,
38
+ created_at: fresh, updated_at: fresh, last_seen_at: fresh,
39
+ });
40
+ await route.fulfill({ response: r, json: { ...b, sessions: [
41
+ mk('alpha', 'claude-opus-4'),
42
+ mk('beta', 'claude-opus-4'),
43
+ mk('gamma', 'intern-s1-mini'),
44
+ ] } });
45
+ });
46
+ await ctx.route('**/api/hub/messages*', (route) => route.fulfill({ json: { messages: [] } }));
47
+ await ctx.route('**/api/hub/tasks*', (route) => route.fulfill({ json: { tasks: [] } }));
48
+
49
+ const page = await ctx.newPage();
50
+ await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
51
+ await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 3, { timeout: 30000 });
52
+ await page.waitForSelector('[data-working-chip]', { timeout: 10000 });
53
+ await page.waitForSelector('[data-vendor-letter]', { timeout: 10000 });
54
+ await page.waitForTimeout(400);
55
+
56
+ const probe = async () => page.evaluate(() => {
57
+ const grab = (sel) => {
58
+ const el = document.querySelector(sel);
59
+ return el ? {
60
+ transition: el.style.transition || getComputedStyle(el).transition || '',
61
+ boxShadow: el.style.boxShadow || getComputedStyle(el).boxShadow || '',
62
+ } : null;
63
+ };
64
+ return {
65
+ working: grab('[data-working-chip]'),
66
+ online: grab('[data-online-chip-clickable]'),
67
+ vendor: grab('[data-vendor-letter]'),
68
+ };
69
+ });
70
+
71
+ const idle = await probe();
72
+
73
+ // Click the working chip to pin → boxShadow should appear
74
+ await page.locator('[data-working-chip]').click();
75
+ await page.waitForTimeout(250);
76
+ const pinnedWorking = await probe();
77
+
78
+ await browser.close();
79
+
80
+ const hasTransition = (s) =>
81
+ (s?.transition || '').includes('box-shadow 150ms') ||
82
+ /box-shadow\s+0\.15s|box-shadow\s+150ms/.test(s?.transition || '');
83
+
84
+ const results = {
85
+ working_found: idle.working !== null,
86
+ online_found: idle.online !== null,
87
+ vendor_found: idle.vendor !== null,
88
+ working_has_bs_transition: hasTransition(idle.working),
89
+ online_has_bs_transition: hasTransition(idle.online),
90
+ vendor_has_bs_transition: hasTransition(idle.vendor),
91
+ // Pre-pin: no inset rings on working chip
92
+ working_idle_no_inset: !(idle.working?.boxShadow || '').includes('inset'),
93
+ // After pin: inset rings appear, transition still set
94
+ working_pinned_has_inset: (pinnedWorking.working?.boxShadow || '').includes('inset'),
95
+ working_pinned_keeps_transition: hasTransition(pinnedWorking.working),
96
+ };
97
+ const ok = Object.values(results).every(Boolean);
98
+ console.log(`${ok ? '✅' : '❌'} pin-mirror transition:`, JSON.stringify(results),
99
+ `\n idle =`, idle,
100
+ `\n pinned =`, pinnedWorking);
101
+ process.exit(ok ? 0 : 1);
@@ -72,7 +72,13 @@ const readChip = () => p1.evaluate(() => {
72
72
  tabindex: chip?.getAttribute('tabindex'),
73
73
  pinMirror: chip?.getAttribute('data-pin-mirror'),
74
74
  ariaPressed: chip?.getAttribute('aria-pressed'),
75
- boxShadow: chip?.getAttribute('style')?.includes('box-shadow'),
75
+ // R180 fix: probe the box-shadow PROPERTY value, not a
76
+ // substring match on the style attribute. Pre-R180 the
77
+ // inline style only contained 'box-shadow' when pinned;
78
+ // R180 added 'transition: box-shadow 150ms ease-out' that
79
+ // also matches the substring even when unpinned. Read the
80
+ // actual property to keep the assertion precise.
81
+ boxShadow: !!(chip && chip.style && chip.style.boxShadow),
76
82
  cursor: chip?.getAttribute('style')?.includes('cursor: pointer'),
77
83
  };
78
84
  });