@sleep2agi/agent-network-dashboard 0.4.6-preview.264 → 0.4.6-preview.266
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.
- package/.next/BUILD_ID +1 -1
- package/.next/build-manifest.json +3 -3
- package/.next/diagnostics/route-bundle-stats.json +3 -3
- package/.next/fallback-build-manifest.json +3 -3
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +1 -1
- package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.html +1 -1
- package/.next/server/app/admin.rsc +1 -1
- package/.next/server/app/admin.segments/_full.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_head.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_index.segment.rsc +1 -1
- package/.next/server/app/admin.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/admin.segments/admin.segment.rsc +1 -1
- package/.next/server/app/index.html +2 -2
- package/.next/server/app/index.rsc +2 -2
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/index.segments/_full.segment.rsc +2 -2
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login.html +2 -2
- package/.next/server/app/login.rsc +2 -2
- package/.next/server/app/login.segments/_full.segment.rsc +2 -2
- package/.next/server/app/login.segments/_head.segment.rsc +1 -1
- package/.next/server/app/login.segments/_index.segment.rsc +1 -1
- package/.next/server/app/login.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/login.segments/login.segment.rsc +1 -1
- package/.next/server/app/logs.html +1 -1
- package/.next/server/app/logs.rsc +1 -1
- package/.next/server/app/logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/logs.segments/logs.segment.rsc +1 -1
- package/.next/server/app/messages.html +1 -1
- package/.next/server/app/messages.rsc +1 -1
- package/.next/server/app/messages.segments/_full.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_head.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_index.segment.rsc +1 -1
- package/.next/server/app/messages.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/messages.segments/messages.segment.rsc +1 -1
- package/.next/server/app/node.html +1 -1
- package/.next/server/app/node.rsc +1 -1
- package/.next/server/app/node.segments/_full.segment.rsc +1 -1
- package/.next/server/app/node.segments/_head.segment.rsc +1 -1
- package/.next/server/app/node.segments/_index.segment.rsc +1 -1
- package/.next/server/app/node.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/node.segments/node/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/node.segments/node.segment.rsc +1 -1
- package/.next/server/app/nodes.html +1 -1
- package/.next/server/app/nodes.rsc +1 -1
- package/.next/server/app/nodes.segments/_full.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_head.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_index.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/nodes.segments/nodes.segment.rsc +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/server-logs.html +1 -1
- package/.next/server/app/server-logs.rsc +1 -1
- package/.next/server/app/server-logs.segments/_full.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_head.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_index.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/server-logs.segments/server-logs.segment.rsc +1 -1
- package/.next/server/app/settings/networks.html +1 -1
- package/.next/server/app/settings/networks.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings/networks.segment.rsc +1 -1
- package/.next/server/app/settings/networks.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/.next/server/app/settings/tokens.html +1 -1
- package/.next/server/app/settings/tokens.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_full.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings/tokens.segment.rsc +1 -1
- package/.next/server/app/settings/tokens.segments/settings.segment.rsc +1 -1
- package/.next/server/app/settings.html +2 -2
- package/.next/server/app/settings.rsc +2 -2
- package/.next/server/app/settings.segments/_full.segment.rsc +2 -2
- package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_index.segment.rsc +1 -1
- package/.next/server/app/settings.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/settings.segments/settings/__PAGE__.segment.rsc +2 -2
- package/.next/server/app/settings.segments/settings.segment.rsc +1 -1
- package/.next/server/app/tasks.html +1 -1
- package/.next/server/app/tasks.rsc +1 -1
- package/.next/server/app/tasks.segments/_full.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_head.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_index.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/tasks.segments/tasks.segment.rsc +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_09kk21a._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_01jhlxz._.js.map +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js +1 -1
- package/.next/server/chunks/ssr/agent-network-dashboard_app_09d29my._.js.map +1 -1
- package/.next/server/middleware-build-manifest.js +3 -3
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/static/chunks/{0-1_b99y96dlm.js → 02yxn~5uo7rc6.js} +1 -1
- package/.next/static/chunks/{0-5~3_-tx15pk.js → 088-_~8wmjlgp.js} +1 -1
- package/.next/static/chunks/{0tqqhfhdufy8..js → 0tg-7yg39s0.h.js} +1 -1
- package/.next/trace +2 -2
- package/.next/trace-build +1 -1
- package/app/components/TopoGraph.tsx +50 -4
- package/package.json +1 -1
- package/scripts/topo-empty-state-recenter-test.mjs +107 -0
- package/scripts/topo-recent-panel-readability-bump-test.mjs +151 -0
- /package/.next/static/{WYyizc1uAWRRWPg7Miftk → UmzD2a8U7aFrItf2XMoh1}/_buildManifest.js +0 -0
- /package/.next/static/{WYyizc1uAWRRWPg7Miftk → UmzD2a8U7aFrItf2XMoh1}/_clientMiddlewareManifest.js +0 -0
- /package/.next/static/{WYyizc1uAWRRWPg7Miftk → UmzD2a8U7aFrItf2XMoh1}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.4.6-preview.
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,70286,e=>{"use strict";e.s(["DASHBOARD_VERSION",0,"0.4.6-preview.266"],70286)},48941,e=>{"use strict";var t=e.i(22381),r=e.i(23910),a=e.i(70286);e.s(["default",0,function(){let[e,s]=(0,r.useState)("login"),[n,o]=(0,r.useState)(""),[i,l]=(0,r.useState)(""),[c,d]=(0,r.useState)(!1),[x,g]=(0,r.useState)(""),[h,m]=(0,r.useState)(!1),u=async t=>{t.preventDefault(),m(!0),g("");try{let t=await fetch("/api/auth/v3",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:e,username:n,password:i})}),r=await t.json();if(r.ok){r.token&&sessionStorage.setItem("anet_v3_auth",JSON.stringify({user:r.user,token:r.token,networks:r.networks||[],currentNetwork:r.network_id||r.networks?.[0]?.network_id||""})),window.location.assign("/");return}g(r.error||"Login failed")}catch{g("Connection failed")}m(!1)};return(0,t.jsxs)("main",{className:"min-h-screen bg-[#0a0a1a] text-gray-100 font-mono flex items-center justify-center relative overflow-hidden px-4 py-10 sm:py-16",children:[(0,t.jsx)("div",{className:"absolute inset-0 pointer-events-none anet-login-bg","aria-hidden":!0}),(0,t.jsxs)("div",{className:"relative w-full max-w-sm",children:[(0,t.jsxs)("div",{className:"text-center mb-7",children:[(0,t.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 mb-4 rounded-2xl bg-[#111128] border border-[#2a2a4a] anet-login-mark",children:(0,t.jsxs)("svg",{className:"w-9 h-9",viewBox:"0 0 32 32","aria-hidden":!0,children:[(0,t.jsx)("circle",{cx:"16",cy:"16",r:"10",fill:"none",stroke:"currentColor",strokeWidth:"1.5",opacity:"0.25",className:"text-cyan-400 anet-login-mark-ring"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"10",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"16",y1:"10",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("line",{x1:"10",y1:"20",x2:"22",y2:"20",stroke:"currentColor",strokeWidth:"1",opacity:"0.5",className:"text-cyan-400 anet-login-mark-edge"}),(0,t.jsx)("circle",{cx:"16",cy:"10",r:"3",fill:"currentColor",className:"text-cyan-400 anet-login-mark-node-a"}),(0,t.jsx)("circle",{cx:"10",cy:"20",r:"3",fill:"currentColor",className:"text-green-400 anet-login-mark-node-b"}),(0,t.jsx)("circle",{cx:"22",cy:"20",r:"3",fill:"currentColor",className:"text-violet-400 anet-login-mark-node-c"})]})}),(0,t.jsx)("h1",{className:"text-[22px] sm:text-2xl font-semibold text-white tracking-tight",children:"Agent Network"}),(0,t.jsx)("p",{className:"text-[13px] text-gray-500 mt-1.5 leading-snug",children:"login"===e?(0,t.jsxs)(t.Fragment,{children:["Welcome back · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Tasks · Mesh · Messages"})]}):(0,t.jsxs)(t.Fragment,{children:["Create your account · ",(0,t.jsx)("span",{className:"text-gray-600",children:"Free preview · no credit card"})]})})]}),(0,t.jsx)("div",{className:"flex rounded-lg border border-[#2a2a4a] bg-[#111128] p-1 mb-4",children:["login","register"].map(r=>(0,t.jsx)("button",{type:"button",onClick:()=>{s(r),g("")},className:`flex-1 rounded-md px-3 py-2 text-sm transition-colors ${e===r?"bg-cyan-500/10 text-cyan-300":"text-gray-500 hover:text-gray-200"}`,children:"login"===r?"Sign in":"Register"},r))}),(0,t.jsxs)("form",{onSubmit:u,className:"border border-[#2a2a4a] bg-[#111128]/80 backdrop-blur-sm rounded-xl p-6 shadow-2xl shadow-black/30",children:[(0,t.jsx)("label",{htmlFor:"username",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Username"}),(0,t.jsx)("input",{id:"username",type:"text",value:n,onChange:e=>o(e.target.value),autoFocus:!0,placeholder:"Enter username",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all mb-4"}),(0,t.jsx)("label",{htmlFor:"password",className:"block text-xs text-gray-500 mb-2 uppercase tracking-wider",children:"Password"}),(0,t.jsxs)("div",{className:"relative",children:[(0,t.jsx)("input",{id:"password",type:c?"text":"password",value:i,onChange:e=>l(e.target.value),placeholder:"Enter password",className:"w-full bg-[#0a0a15] border border-[#2a2a4a] rounded-lg px-4 pr-11 py-3 text-sm text-white placeholder-gray-600 focus:border-cyan-500/50 focus:ring-1 focus:ring-cyan-500/20 focus:outline-none transition-all"}),(0,t.jsx)("button",{type:"button",onClick:()=>d(e=>!e),tabIndex:-1,"aria-label":c?"Hide password":"Show password",className:"absolute inset-y-0 right-0 flex items-center px-3 text-gray-600 hover:text-gray-300 transition-colors",children:c?(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24"}),(0,t.jsx)("line",{x1:"1",y1:"1",x2:"23",y2:"23"})]}):(0,t.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[(0,t.jsx)("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),(0,t.jsx)("circle",{cx:"12",cy:"12",r:"3"})]})})]}),x&&(0,t.jsx)("div",{className:"mt-3 text-sm text-red-300 bg-red-500/5 border border-red-500/10 rounded-lg px-3 py-2",children:x}),(0,t.jsxs)("button",{type:"submit",disabled:h||!i||!n.trim(),className:"mt-5 w-full flex items-center justify-center gap-2 px-4 py-3 bg-gradient-to-r from-cyan-600 to-blue-600 hover:from-cyan-500 hover:to-blue-500 disabled:from-gray-800 disabled:to-gray-800 disabled:text-gray-600 text-white text-sm font-medium rounded-lg transition-all shadow-lg shadow-cyan-500/10 hover:shadow-cyan-500/20 disabled:shadow-none",children:[h&&(0,t.jsxs)("svg",{"aria-hidden":!0,className:"w-4 h-4 animate-spin",viewBox:"0 0 24 24",fill:"none",children:[(0,t.jsx)("circle",{cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"3",opacity:"0.25"}),(0,t.jsx)("path",{d:"M4 12a8 8 0 018-8",stroke:"currentColor",strokeWidth:"3",strokeLinecap:"round"})]}),(0,t.jsx)("span",{children:h?"login"===e?"Signing in…":"Registering…":"login"===e?"Sign in":"Create account"})]})]}),(0,t.jsxs)("p",{className:"text-center text-[11px] text-gray-700 mt-6",children:["Sleep2AGI · Apache-2.0 · ",(0,t.jsx)("a",{href:"https://anet.sh",className:"hover:text-gray-500 transition-colors",children:"anet.sh"}),(0,t.jsx)("span",{className:"mx-1 text-gray-800",children:"·"}),(0,t.jsxs)("span",{className:"font-mono",title:"@sleep2agi/agent-network-dashboard",children:["v",a.DASHBOARD_VERSION]})]})]})]})}])}]);
|
package/.next/trace
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
[{"name":"generate-buildid","duration":298,"timestamp":96308269979,"id":4,"parentId":1,"tags":{},"startTime":1778904280516,"traceId":"8f95cc17baf65771"},{"name":"load-custom-routes","duration":673,"timestamp":96308270425,"id":5,"parentId":1,"tags":{},"startTime":1778904280517,"traceId":"8f95cc17baf65771"},{"name":"create-dist-dir","duration":805,"timestamp":96308271160,"id":6,"parentId":1,"tags":{},"startTime":1778904280517,"traceId":"8f95cc17baf65771"},{"name":"clean","duration":29351,"timestamp":96308272639,"id":7,"parentId":1,"tags":{},"startTime":1778904280519,"traceId":"8f95cc17baf65771"},{"name":"discover-routes","duration":10162,"timestamp":96308384974,"id":8,"parentId":1,"tags":{},"startTime":1778904280631,"traceId":"8f95cc17baf65771"},{"name":"create-root-mapping","duration":115,"timestamp":96308395195,"id":9,"parentId":1,"tags":{},"startTime":1778904280641,"traceId":"8f95cc17baf65771"},{"name":"generate-route-types","duration":31472,"timestamp":96308397644,"id":10,"parentId":1,"tags":{},"startTime":1778904280644,"traceId":"8f95cc17baf65771"},{"name":"public-dir-conflict-check","duration":99,"timestamp":96308429198,"id":11,"parentId":1,"tags":{},"startTime":1778904280675,"traceId":"8f95cc17baf65771"},{"name":"generate-routes-manifest","duration":4758,"timestamp":96308429403,"id":12,"parentId":1,"tags":{},"startTime":1778904280676,"traceId":"8f95cc17baf65771"},{"name":"run-turbopack","duration":5164692,"timestamp":96308439647,"id":14,"parentId":1,"tags":{},"startTime":1778904280686,"traceId":"8f95cc17baf65771"},{"name":"turbopack-build-events","duration":73,"timestamp":96308723262,"id":15,"parentId":1,"tags":{},"startTime":1778904280970,"traceId":"8f95cc17baf65771"},{"name":"run-typescript","duration":9077753,"timestamp":96313613873,"id":16,"parentId":1,"tags":{},"startTime":1778904285860,"traceId":"8f95cc17baf65771"},{"name":"generate-required-server-files","duration":2826,"timestamp":96322692734,"id":18,"parentId":1,"tags":{},"startTime":1778904294939,"traceId":"8f95cc17baf65771"},{"name":"check-static-error-page","duration":14716,"timestamp":96322881528,"id":20,"parentId":19,"tags":{},"startTime":1778904295128,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":440906,"timestamp":96322899755,"id":63,"parentId":22,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":455989,"timestamp":96322884857,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778904295131,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":483556,"timestamp":96322899890,"id":64,"parentId":25,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":495374,"timestamp":96322888185,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778904295134,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":503531,"timestamp":96322900983,"id":70,"parentId":32,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":515236,"timestamp":96322889359,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":511189,"timestamp":96322901078,"id":71,"parentId":33,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":522831,"timestamp":96322889508,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":514367,"timestamp":96322899339,"id":62,"parentId":21,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":530508,"timestamp":96322883252,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778904295130,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":516166,"timestamp":96322901167,"id":72,"parentId":34,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":527934,"timestamp":96322889628,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":527814,"timestamp":96322900052,"id":65,"parentId":26,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":539577,"timestamp":96322888363,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":529270,"timestamp":96322901320,"id":74,"parentId":36,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":540320,"timestamp":96322890320,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":533281,"timestamp":96322901357,"id":75,"parentId":37,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":544153,"timestamp":96322890538,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":533605,"timestamp":96322901382,"id":76,"parentId":38,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":544359,"timestamp":96322890686,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":539045,"timestamp":96322901411,"id":78,"parentId":40,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":549562,"timestamp":96322890940,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":546651,"timestamp":96322901427,"id":79,"parentId":41,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":557060,"timestamp":96322891071,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":548242,"timestamp":96322901443,"id":80,"parentId":42,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":558519,"timestamp":96322891214,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":551952,"timestamp":96322900178,"id":66,"parentId":27,"tags":{},"startTime":1778904295146,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":563688,"timestamp":96322888491,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":552885,"timestamp":96322901455,"id":81,"parentId":43,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":563057,"timestamp":96322891331,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":554952,"timestamp":96322900462,"id":67,"parentId":28,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":566827,"timestamp":96322888626,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":557271,"timestamp":96322901471,"id":82,"parentId":44,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":567354,"timestamp":96322891439,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":557936,"timestamp":96322901488,"id":83,"parentId":45,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":567912,"timestamp":96322891549,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":562063,"timestamp":96322900625,"id":68,"parentId":29,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":573978,"timestamp":96322888752,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":562359,"timestamp":96322901536,"id":86,"parentId":48,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":571996,"timestamp":96322891948,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":562705,"timestamp":96322901395,"id":77,"parentId":39,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":573327,"timestamp":96322890804,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778904295137,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":565671,"timestamp":96322901551,"id":87,"parentId":49,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":575196,"timestamp":96322892076,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":564365,"timestamp":96322905125,"id":88,"parentId":24,"tags":{},"startTime":1778904295151,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":584108,"timestamp":96322885424,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778904295132,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":584515,"timestamp":96322900774,"id":69,"parentId":30,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":596456,"timestamp":96322888895,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":580671,"timestamp":96322906319,"id":89,"parentId":31,"tags":{},"startTime":1778904295153,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":598001,"timestamp":96322889061,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778904295135,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":597884,"timestamp":96322901516,"id":85,"parentId":47,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":607634,"timestamp":96322891821,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":598070,"timestamp":96322901499,"id":84,"parentId":46,"tags":{},"startTime":1778904295148,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":607925,"timestamp":96322891675,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778904295138,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":602072,"timestamp":96322901203,"id":73,"parentId":35,"tags":{},"startTime":1778904295147,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":613553,"timestamp":96322889768,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778904295136,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":599222,"timestamp":96322912983,"id":96,"parentId":56,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":617768,"timestamp":96322894484,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778904295141,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":606720,"timestamp":96322912996,"id":97,"parentId":57,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":625011,"timestamp":96322894754,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778904295141,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":614307,"timestamp":96322912887,"id":91,"parentId":50,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":634722,"timestamp":96322892518,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":614566,"timestamp":96322913031,"id":98,"parentId":59,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":632102,"timestamp":96322895538,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778904295142,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":621861,"timestamp":96322913069,"id":100,"parentId":61,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":639092,"timestamp":96322895895,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778904295142,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":629990,"timestamp":96322913051,"id":99,"parentId":60,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":647384,"timestamp":96322895716,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778904295142,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":617312,"timestamp":96322925896,"id":101,"parentId":55,"tags":{},"startTime":1778904295172,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":649475,"timestamp":96322893765,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778904295140,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":631182,"timestamp":96322912933,"id":93,"parentId":52,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":651246,"timestamp":96322892907,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":631770,"timestamp":96322912905,"id":92,"parentId":51,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":651995,"timestamp":96322892706,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":618855,"timestamp":96322931818,"id":102,"parentId":58,"tags":{},"startTime":1778904295178,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":655704,"timestamp":96322895029,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778904295141,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":638725,"timestamp":96322912853,"id":90,"parentId":23,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":666430,"timestamp":96322885173,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778904295131,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":648916,"timestamp":96322912951,"id":94,"parentId":53,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":668714,"timestamp":96322893192,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778904295139,"traceId":"8f95cc17baf65771"},{"name":"is-page-static","duration":655548,"timestamp":96322912967,"id":95,"parentId":54,"tags":{},"startTime":1778904295159,"traceId":"8f95cc17baf65771"},{"name":"check-page","duration":675083,"timestamp":96322893463,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778904295140,"traceId":"8f95cc17baf65771"},{"name":"static-check","duration":688107,"timestamp":96322880495,"id":19,"parentId":1,"tags":{},"startTime":1778904295127,"traceId":"8f95cc17baf65771"},{"name":"write-routes-manifest","duration":427,"timestamp":96323575871,"id":104,"parentId":1,"tags":{},"startTime":1778904295822,"traceId":"8f95cc17baf65771"},{"name":"load-dotenv","duration":33,"timestamp":96323586735,"id":107,"parentId":106,"tags":{},"startTime":1778904295833,"traceId":"8f95cc17baf65771"},{"name":"run-export-path-map","duration":524,"timestamp":96323589189,"id":108,"parentId":106,"tags":{},"startTime":1778904295835,"traceId":"8f95cc17baf65771"},{"name":"next-export","duration":607403,"timestamp":96323585539,"id":106,"parentId":1,"tags":{},"startTime":1778904295832,"traceId":"8f95cc17baf65771"}]
|
|
2
|
-
[{"name":"move-exported-app-not-found-","duration":
|
|
1
|
+
[{"name":"generate-buildid","duration":243,"timestamp":97099353328,"id":4,"parentId":1,"tags":{},"startTime":1778905071600,"traceId":"04d53335370d6c66"},{"name":"load-custom-routes","duration":473,"timestamp":97099353705,"id":5,"parentId":1,"tags":{},"startTime":1778905071600,"traceId":"04d53335370d6c66"},{"name":"create-dist-dir","duration":632,"timestamp":97099354217,"id":6,"parentId":1,"tags":{},"startTime":1778905071600,"traceId":"04d53335370d6c66"},{"name":"clean","duration":28850,"timestamp":97099355532,"id":7,"parentId":1,"tags":{},"startTime":1778905071602,"traceId":"04d53335370d6c66"},{"name":"discover-routes","duration":11843,"timestamp":97099463144,"id":8,"parentId":1,"tags":{},"startTime":1778905071709,"traceId":"04d53335370d6c66"},{"name":"create-root-mapping","duration":112,"timestamp":97099475069,"id":9,"parentId":1,"tags":{},"startTime":1778905071721,"traceId":"04d53335370d6c66"},{"name":"generate-route-types","duration":34231,"timestamp":97099477703,"id":10,"parentId":1,"tags":{},"startTime":1778905071724,"traceId":"04d53335370d6c66"},{"name":"public-dir-conflict-check","duration":102,"timestamp":97099512040,"id":11,"parentId":1,"tags":{},"startTime":1778905071758,"traceId":"04d53335370d6c66"},{"name":"generate-routes-manifest","duration":4518,"timestamp":97099512262,"id":12,"parentId":1,"tags":{},"startTime":1778905071759,"traceId":"04d53335370d6c66"},{"name":"run-turbopack","duration":5421592,"timestamp":97099522261,"id":14,"parentId":1,"tags":{},"startTime":1778905071769,"traceId":"04d53335370d6c66"},{"name":"turbopack-build-events","duration":75,"timestamp":97099792665,"id":15,"parentId":1,"tags":{},"startTime":1778905072039,"traceId":"04d53335370d6c66"},{"name":"run-typescript","duration":8888421,"timestamp":97104956260,"id":16,"parentId":1,"tags":{},"startTime":1778905077203,"traceId":"04d53335370d6c66"},{"name":"generate-required-server-files","duration":2392,"timestamp":97113845993,"id":18,"parentId":1,"tags":{},"startTime":1778905086092,"traceId":"04d53335370d6c66"},{"name":"check-static-error-page","duration":14784,"timestamp":97114025815,"id":20,"parentId":19,"tags":{},"startTime":1778905086272,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":382999,"timestamp":97114043391,"id":63,"parentId":22,"tags":{},"startTime":1778905086290,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":397508,"timestamp":97114029052,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1778905086275,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":486394,"timestamp":97114045700,"id":69,"parentId":30,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":499238,"timestamp":97114032976,"id":30,"parentId":19,"tags":{"page":"/api/hub/broadcast"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":511910,"timestamp":97114045876,"id":70,"parentId":32,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":524508,"timestamp":97114033363,"id":32,"parentId":19,"tags":{"page":"/api/hub/health"},"startTime":1778905086280,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":523606,"timestamp":97114043994,"id":67,"parentId":28,"tags":{},"startTime":1778905086290,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":534981,"timestamp":97114032701,"id":28,"parentId":19,"tags":{"page":"/api/hub/audit-log"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":522470,"timestamp":97114045965,"id":71,"parentId":33,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":535017,"timestamp":97114033486,"id":33,"parentId":19,"tags":{"page":"/api/hub/inbox"},"startTime":1778905086280,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":526780,"timestamp":97114046090,"id":73,"parentId":35,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":539237,"timestamp":97114033704,"id":35,"parentId":19,"tags":{"page":"/api/hub/messages"},"startTime":1778905086280,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":527202,"timestamp":97114046059,"id":72,"parentId":34,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":539711,"timestamp":97114033593,"id":34,"parentId":19,"tags":{"page":"/api/hub/license"},"startTime":1778905086280,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":533575,"timestamp":97114046200,"id":74,"parentId":36,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":545605,"timestamp":97114034216,"id":36,"parentId":19,"tags":{"page":"/api/hub/networks"},"startTime":1778905086280,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":536433,"timestamp":97114043647,"id":65,"parentId":26,"tags":{},"startTime":1778905086290,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":547659,"timestamp":97114032471,"id":26,"parentId":19,"tags":{"page":"/api/auth/logout"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":536909,"timestamp":97114046250,"id":76,"parentId":38,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":548661,"timestamp":97114034538,"id":38,"parentId":19,"tags":{"page":"/api/hub/register"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":539798,"timestamp":97114043751,"id":66,"parentId":27,"tags":{},"startTime":1778905086290,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":551007,"timestamp":97114032587,"id":27,"parentId":19,"tags":{"page":"/api/auth/v3"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":541789,"timestamp":97114046272,"id":78,"parentId":40,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":553366,"timestamp":97114034744,"id":40,"parentId":19,"tags":{"page":"/api/hub/server-logs"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":543359,"timestamp":97114046285,"id":79,"parentId":41,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":554860,"timestamp":97114034835,"id":41,"parentId":19,"tags":{"page":"/api/hub/servers"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":547728,"timestamp":97114045523,"id":68,"parentId":29,"tags":{},"startTime":1778905086292,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":560476,"timestamp":97114032821,"id":29,"parentId":19,"tags":{"page":"/api/hub/auth"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":548071,"timestamp":97114046233,"id":75,"parentId":37,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":559948,"timestamp":97114034400,"id":37,"parentId":19,"tags":{"page":"/api/hub/nodes"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":552486,"timestamp":97114043531,"id":64,"parentId":25,"tags":{},"startTime":1778905086290,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":563767,"timestamp":97114032288,"id":25,"parentId":19,"tags":{"page":"/api/auth/login"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":558121,"timestamp":97114042983,"id":62,"parentId":21,"tags":{},"startTime":1778905086289,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":573683,"timestamp":97114027473,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1778905086274,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":555024,"timestamp":97114046298,"id":80,"parentId":42,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":566403,"timestamp":97114034950,"id":42,"parentId":19,"tags":{"page":"/api/hub/session"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":565796,"timestamp":97114046308,"id":81,"parentId":43,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":577070,"timestamp":97114035080,"id":43,"parentId":19,"tags":{"page":"/api/hub/stats"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":565944,"timestamp":97114046371,"id":86,"parentId":48,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":576730,"timestamp":97114035621,"id":48,"parentId":19,"tags":{"page":"/api/hub/tokens"},"startTime":1778905086282,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":566231,"timestamp":97114046259,"id":77,"parentId":39,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":577875,"timestamp":97114034645,"id":39,"parentId":19,"tags":{"page":"/api/hub/send"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":570576,"timestamp":97114046333,"id":83,"parentId":45,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":581677,"timestamp":97114035291,"id":45,"parentId":19,"tags":{"page":"/api/hub/task-events"},"startTime":1778905086282,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":573738,"timestamp":97114046383,"id":87,"parentId":49,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":584437,"timestamp":97114035735,"id":49,"parentId":19,"tags":{"page":"/favicon.ico"},"startTime":1778905086282,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":576757,"timestamp":97114049692,"id":88,"parentId":24,"tags":{},"startTime":1778905086296,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":596928,"timestamp":97114029561,"id":24,"parentId":19,"tags":{"page":"/api/anet/config"},"startTime":1778905086276,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":575306,"timestamp":97114051325,"id":89,"parentId":31,"tags":{},"startTime":1778905086298,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":593542,"timestamp":97114033113,"id":31,"parentId":19,"tags":{"page":"/api/hub/events"},"startTime":1778905086279,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":591943,"timestamp":97114046321,"id":82,"parentId":44,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":603134,"timestamp":97114035187,"id":44,"parentId":19,"tags":{"page":"/api/hub/status"},"startTime":1778905086281,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":600013,"timestamp":97114046343,"id":84,"parentId":46,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":611019,"timestamp":97114035386,"id":46,"parentId":19,"tags":{"page":"/api/hub/tasks"},"startTime":1778905086282,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":612836,"timestamp":97114046355,"id":85,"parentId":47,"tags":{},"startTime":1778905086293,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":623724,"timestamp":97114035521,"id":47,"parentId":19,"tags":{"page":"/api/hub/tmux"},"startTime":1778905086282,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":614504,"timestamp":97114053678,"id":96,"parentId":56,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":629045,"timestamp":97114039190,"id":56,"parentId":19,"tags":{"page":"/server-logs"},"startTime":1778905086285,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":630934,"timestamp":97114053636,"id":92,"parentId":51,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":646906,"timestamp":97114037744,"id":51,"parentId":19,"tags":{"page":"/logs"},"startTime":1778905086284,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":632823,"timestamp":97114053689,"id":97,"parentId":57,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":647163,"timestamp":97114039402,"id":57,"parentId":19,"tags":{"page":"/settings/networks"},"startTime":1778905086286,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":638837,"timestamp":97114053700,"id":98,"parentId":59,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":652547,"timestamp":97114040049,"id":59,"parentId":19,"tags":{"page":"/settings/tokens"},"startTime":1778905086286,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":641300,"timestamp":97114053648,"id":93,"parentId":52,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":657133,"timestamp":97114037902,"id":52,"parentId":19,"tags":{"page":"/messages"},"startTime":1778905086284,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":642862,"timestamp":97114053600,"id":90,"parentId":23,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":667196,"timestamp":97114029315,"id":23,"parentId":19,"tags":{"page":"/admin"},"startTime":1778905086276,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":645103,"timestamp":97114053711,"id":99,"parentId":60,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":658671,"timestamp":97114040195,"id":60,"parentId":19,"tags":{"page":"/tasks/[id]"},"startTime":1778905086286,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":647413,"timestamp":97114053726,"id":100,"parentId":61,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":660853,"timestamp":97114040334,"id":61,"parentId":19,"tags":{"page":"/tasks"},"startTime":1778905086287,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":638816,"timestamp":97114065483,"id":101,"parentId":58,"tags":{},"startTime":1778905086312,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":664772,"timestamp":97114039576,"id":58,"parentId":19,"tags":{"page":"/settings"},"startTime":1778905086286,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":623501,"timestamp":97114080937,"id":102,"parentId":55,"tags":{},"startTime":1778905086327,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":665873,"timestamp":97114038586,"id":55,"parentId":19,"tags":{"page":"/"},"startTime":1778905086285,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":654043,"timestamp":97114053627,"id":91,"parentId":50,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":670140,"timestamp":97114037572,"id":50,"parentId":19,"tags":{"page":"/login"},"startTime":1778905086284,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":659022,"timestamp":97114053667,"id":95,"parentId":54,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":674376,"timestamp":97114038356,"id":54,"parentId":19,"tags":{"page":"/nodes"},"startTime":1778905086285,"traceId":"04d53335370d6c66"},{"name":"is-page-static","duration":659754,"timestamp":97114053659,"id":94,"parentId":53,"tags":{},"startTime":1778905086300,"traceId":"04d53335370d6c66"},{"name":"check-page","duration":675322,"timestamp":97114038133,"id":53,"parentId":19,"tags":{"page":"/node"},"startTime":1778905086284,"traceId":"04d53335370d6c66"},{"name":"static-check","duration":688851,"timestamp":97114024647,"id":19,"parentId":1,"tags":{},"startTime":1778905086271,"traceId":"04d53335370d6c66"},{"name":"write-routes-manifest","duration":458,"timestamp":97114722724,"id":104,"parentId":1,"tags":{},"startTime":1778905086969,"traceId":"04d53335370d6c66"},{"name":"load-dotenv","duration":73,"timestamp":97114733909,"id":107,"parentId":106,"tags":{},"startTime":1778905086980,"traceId":"04d53335370d6c66"},{"name":"run-export-path-map","duration":751,"timestamp":97114738677,"id":108,"parentId":106,"tags":{},"startTime":1778905086985,"traceId":"04d53335370d6c66"},{"name":"next-export","duration":556272,"timestamp":97114732604,"id":106,"parentId":1,"tags":{},"startTime":1778905086979,"traceId":"04d53335370d6c66"}]
|
|
2
|
+
[{"name":"move-exported-app-not-found-","duration":1767,"timestamp":97115292136,"id":109,"parentId":105,"tags":{},"startTime":1778905087538,"traceId":"04d53335370d6c66"},{"name":"move-exported-app-global-error-","duration":812,"timestamp":97115293995,"id":110,"parentId":105,"tags":{},"startTime":1778905087540,"traceId":"04d53335370d6c66"},{"name":"static-generation","duration":569744,"timestamp":97114727306,"id":105,"parentId":1,"tags":{},"startTime":1778905086974,"traceId":"04d53335370d6c66"},{"name":"write-routes-manifest","duration":395,"timestamp":97115297246,"id":111,"parentId":1,"tags":{},"startTime":1778905087544,"traceId":"04d53335370d6c66"},{"name":"print-tree-view","duration":4026,"timestamp":97115315743,"id":112,"parentId":1,"tags":{},"startTime":1778905087562,"traceId":"04d53335370d6c66"},{"name":"write-route-bundle-stats","duration":12051,"timestamp":97115319804,"id":113,"parentId":1,"tags":{},"startTime":1778905087566,"traceId":"04d53335370d6c66"},{"name":"telemetry-flush","duration":23591,"timestamp":97115331884,"id":114,"parentId":1,"tags":{},"startTime":1778905087578,"traceId":"04d53335370d6c66"},{"name":"next-build","duration":16051121,"timestamp":97099304383,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778905071551,"traceId":"04d53335370d6c66"}]
|
package/.next/trace-build
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
[{"name":"run-turbopack","duration":
|
|
1
|
+
[{"name":"run-turbopack","duration":5421592,"timestamp":97099522261,"id":14,"parentId":1,"tags":{},"startTime":1778905071769,"traceId":"04d53335370d6c66"},{"name":"turbopack-build-events","duration":75,"timestamp":97099792665,"id":15,"parentId":1,"tags":{},"startTime":1778905072039,"traceId":"04d53335370d6c66"},{"name":"run-typescript","duration":8888421,"timestamp":97104956260,"id":16,"parentId":1,"tags":{},"startTime":1778905077203,"traceId":"04d53335370d6c66"},{"name":"static-check","duration":688851,"timestamp":97114024647,"id":19,"parentId":1,"tags":{},"startTime":1778905086271,"traceId":"04d53335370d6c66"},{"name":"static-generation","duration":569744,"timestamp":97114727306,"id":105,"parentId":1,"tags":{},"startTime":1778905086974,"traceId":"04d53335370d6c66"},{"name":"telemetry-flush","duration":23591,"timestamp":97115331884,"id":114,"parentId":1,"tags":{},"startTime":1778905087578,"traceId":"04d53335370d6c66"},{"name":"next-build","duration":16051121,"timestamp":97099304383,"id":1,"tags":{"buildMode":"default","version":"16.2.3","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1778905071551,"traceId":"04d53335370d6c66"}]
|
|
@@ -5589,8 +5589,24 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5589
5589
|
pointerEvents: 'none',
|
|
5590
5590
|
}}
|
|
5591
5591
|
>
|
|
5592
|
+
{/* Round 258 / Loop: re-center the empty state within the
|
|
5593
|
+
post-R256 88-tall panel. R45 placed "no flow yet" at
|
|
5594
|
+
y=54 + the hint at y=68 inside an 84-tall panel — those
|
|
5595
|
+
baselines sat 12px / 26px below the panel mid-line at
|
|
5596
|
+
y=42, optically balanced for the original height. R256
|
|
5597
|
+
grew the panel 84 → 88 to give the "+N more flows"
|
|
5598
|
+
footer underline breathing room, shifting the panel
|
|
5599
|
+
mid-line to y=44 — but the empty state stayed put,
|
|
5600
|
+
drifting 2px high. R258 pushes both empty-state lines
|
|
5601
|
+
+2 (main y=54 → y=56, hint y=68 → y=70) so the pair
|
|
5602
|
+
sits 12px / 26px below the new mid-line, restoring
|
|
5603
|
+
the R45 optical balance. The R222 always-mount opacity
|
|
5604
|
+
gate is unaffected (geometry-only shift), and the
|
|
5605
|
+
R200 SMIL breath continues unchanged. Hint baseline
|
|
5606
|
+
y=70 still sits 12px above the footer baseline (y=82),
|
|
5607
|
+
same vertical rhythm as the row 3 → footer gap. */}
|
|
5592
5608
|
<text
|
|
5593
|
-
x="115" y="
|
|
5609
|
+
x="115" y="56" textAnchor="middle"
|
|
5594
5610
|
fill={pal.legendText}
|
|
5595
5611
|
fontSize="10" fontFamily="monospace" fontStyle="italic"
|
|
5596
5612
|
opacity={0.65}
|
|
@@ -5607,10 +5623,26 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
5607
5623
|
/>
|
|
5608
5624
|
)}
|
|
5609
5625
|
</text>
|
|
5626
|
+
{/* Round 259 / Loop: instructional hint bumps fontSize 8 → 9
|
|
5627
|
+
for readability. Pre-R259 the empty-state hint was at
|
|
5628
|
+
the smallest readable size on the canvas (8pt), with
|
|
5629
|
+
italic + opacity 0.45 layering legibility cost on top
|
|
5630
|
+
— instructional text users need to READ to act on,
|
|
5631
|
+
yet eye-straining at default 1× zoom. 9pt italic stays
|
|
5632
|
+
visually subordinate to the 10pt main "no flow yet"
|
|
5633
|
+
AND to the 9pt regular row text (italic alone
|
|
5634
|
+
discriminates from row content) while easing the
|
|
5635
|
+
legibility floor. Sibling change at the +N-more
|
|
5636
|
+
footer link (line ~6047) applies the same bump to
|
|
5637
|
+
the panel's other italic secondary text. Per-row
|
|
5638
|
+
timestamp at y=38+i*16 (fontSize 8 right-edge
|
|
5639
|
+
recency tag) STAYS at 8 — it's an at-a-glance
|
|
5640
|
+
recency tag tightly co-located with row text, not
|
|
5641
|
+
read-to-act instruction. */}
|
|
5610
5642
|
<text
|
|
5611
|
-
x="115" y="
|
|
5643
|
+
x="115" y="70" textAnchor="middle"
|
|
5612
5644
|
fill={pal.legendText}
|
|
5613
|
-
fontSize="
|
|
5645
|
+
fontSize="9" fontFamily="monospace"
|
|
5614
5646
|
opacity={0.45}
|
|
5615
5647
|
data-recent-signal-empty-hint
|
|
5616
5648
|
data-recent-signal-empty-hint-breathes={reducedMotion ? 'false' : 'true'}
|
|
@@ -6024,11 +6056,25 @@ export function TopoGraph({ sessions, sseSessions, renameSignal }: TopoGraphProp
|
|
|
6024
6056
|
ease-out` so the colour swap eases instead of
|
|
6025
6057
|
snapping. data-recent-panel-more-hovered exposes
|
|
6026
6058
|
the gate for tests. */}
|
|
6059
|
+
{/* Round 259 / Loop: footer link bumps fontSize 8 → 9
|
|
6060
|
+
for clickable-text readability. Pre-R259 the
|
|
6061
|
+
"+N more flows" footer (the panel's primary
|
|
6062
|
+
navigation affordance into /messages) sat at the
|
|
6063
|
+
same 8pt as the empty-state hint — small enough
|
|
6064
|
+
to make the click target feel cheap. 9pt + italic
|
|
6065
|
+
+ opacity 0.55 keeps it visually secondary to row
|
|
6066
|
+
content (9pt regular) while giving the link
|
|
6067
|
+
enough type-weight to read as a real affordance.
|
|
6068
|
+
Underline geometry verified: with fontSize 9 the
|
|
6069
|
+
underline still renders ~3-4px below baseline at
|
|
6070
|
+
y=82 → underline ~y=85-86, panel bottom y=88 →
|
|
6071
|
+
2-3px clear (R256 footer-breath invariant
|
|
6072
|
+
preserved). */}
|
|
6027
6073
|
<text
|
|
6028
6074
|
x="115" y="82"
|
|
6029
6075
|
textAnchor="middle"
|
|
6030
6076
|
fill={hoveredRecentMore ? pal.legendAccent : pal.legendText}
|
|
6031
|
-
fontSize="
|
|
6077
|
+
fontSize="9"
|
|
6032
6078
|
fontFamily="monospace"
|
|
6033
6079
|
fontStyle="italic"
|
|
6034
6080
|
opacity={hoveredRecentMore ? 0.85 : 0.55}
|
package/package.json
CHANGED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/* Round 258 verification: recent-signal panel empty-state re-centered
|
|
2
|
+
* within the post-R256 88-tall panel.
|
|
3
|
+
*
|
|
4
|
+
* Pre-R256 (panel height 84):
|
|
5
|
+
* panel mid-line = (0 + 84) / 2 = 42
|
|
6
|
+
* main "no flow yet" at y=54 → +12 below mid
|
|
7
|
+
* hint "send a..." at y=68 → +26 below mid
|
|
8
|
+
* Optically balanced for an 84-tall panel.
|
|
9
|
+
*
|
|
10
|
+
* Post-R256 (panel height 88) — pre-R258:
|
|
11
|
+
* panel mid-line = (0 + 88) / 2 = 44
|
|
12
|
+
* main at y=54 → +10 below mid (drifted 2px high)
|
|
13
|
+
* hint at y=68 → +24 below mid (drifted 2px high)
|
|
14
|
+
* Empty state visually drifted up after the height bump.
|
|
15
|
+
*
|
|
16
|
+
* Post-R258:
|
|
17
|
+
* main y=54 → y=56 (+2)
|
|
18
|
+
* hint y=68 → y=70 (+2)
|
|
19
|
+
* New offsets: +12 / +26 below mid — restored optical balance.
|
|
20
|
+
*
|
|
21
|
+
* Test scope:
|
|
22
|
+
* 1. Empty state mounts visible (flowLinks.length === 0).
|
|
23
|
+
* 2. Main text y === 56 (was 54).
|
|
24
|
+
* 3. Hint text y === 70 (was 68).
|
|
25
|
+
* 4. Panel rect height === 88 (regression — R256 holds).
|
|
26
|
+
* 5. Offsets-from-mid: (main_y - panel_height/2) === 12 (matches
|
|
27
|
+
* original R45 optical placement).
|
|
28
|
+
* 6. R200 SMIL breath continues — animate child still attached.
|
|
29
|
+
* 7. Hint baseline still sits 12px above the footer (visible when
|
|
30
|
+
* flowLinks.length > 3 — but in empty state footer is invisible
|
|
31
|
+
* anyway; just verify y=70 < 82).
|
|
32
|
+
*/
|
|
33
|
+
import { chromium } from 'playwright';
|
|
34
|
+
import { readFileSync } from 'node:fs';
|
|
35
|
+
|
|
36
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
37
|
+
const browser = await chromium.launch({ headless: true });
|
|
38
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
39
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
40
|
+
await ctx.addInitScript(() => {
|
|
41
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } 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
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
54
|
+
mk('alpha'), mk('beta'),
|
|
55
|
+
] } });
|
|
56
|
+
});
|
|
57
|
+
// Zero messages → flowLinks.length === 0 → empty state visible.
|
|
58
|
+
await ctx.route('**/api/hub/messages*', (r2) => r2.fulfill({ json: { messages: [] } }));
|
|
59
|
+
await ctx.route('**/api/hub/tasks*', (r2) => r2.fulfill({ json: { tasks: [] } }));
|
|
60
|
+
|
|
61
|
+
const page = await ctx.newPage();
|
|
62
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
63
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 2, { timeout: 30000 });
|
|
64
|
+
await page.waitForSelector('[data-recent-signal-empty]', { timeout: 10000 });
|
|
65
|
+
await page.waitForSelector('[data-recent-signal-empty-hint]', { timeout: 10000 });
|
|
66
|
+
await page.waitForTimeout(300);
|
|
67
|
+
|
|
68
|
+
const probe = await page.evaluate(() => {
|
|
69
|
+
const panelG = document.querySelector('[data-topo-panel="recent"]');
|
|
70
|
+
const rect = panelG?.querySelector('rect');
|
|
71
|
+
const wrap = document.querySelector('[data-recent-signal-empty-wrapper]');
|
|
72
|
+
const main = document.querySelector('[data-recent-signal-empty]');
|
|
73
|
+
const hint = document.querySelector('[data-recent-signal-empty-hint]');
|
|
74
|
+
const mainAnim = main?.querySelector('animate');
|
|
75
|
+
const hintAnim = hint?.querySelector('animate');
|
|
76
|
+
return {
|
|
77
|
+
panelH: rect ? +rect.getAttribute('height') : null,
|
|
78
|
+
wrapperVisible: wrap?.getAttribute('data-recent-signal-empty-visible'),
|
|
79
|
+
mainY: main ? +main.getAttribute('y') : null,
|
|
80
|
+
hintY: hint ? +hint.getAttribute('y') : null,
|
|
81
|
+
mainHasBreath: !!mainAnim,
|
|
82
|
+
hintHasBreath: !!hintAnim,
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
await browser.close();
|
|
86
|
+
|
|
87
|
+
const midLine = probe.panelH != null ? probe.panelH / 2 : null;
|
|
88
|
+
const mainOffsetMid = (probe.mainY != null && midLine != null) ? probe.mainY - midLine : null;
|
|
89
|
+
const hintOffsetMid = (probe.hintY != null && midLine != null) ? probe.hintY - midLine : null;
|
|
90
|
+
|
|
91
|
+
const results = {
|
|
92
|
+
panel_h_88: probe.panelH === 88,
|
|
93
|
+
wrapper_empty_visible_true: probe.wrapperVisible === 'true',
|
|
94
|
+
main_y_moved_to_56: probe.mainY === 56,
|
|
95
|
+
hint_y_moved_to_70: probe.hintY === 70,
|
|
96
|
+
main_offset_from_mid_is_12: mainOffsetMid === 12,
|
|
97
|
+
hint_offset_from_mid_is_26: hintOffsetMid === 26,
|
|
98
|
+
main_smil_breath_present: probe.mainHasBreath === true,
|
|
99
|
+
hint_smil_breath_present: probe.hintHasBreath === true,
|
|
100
|
+
hint_above_footer_y82: probe.hintY != null && probe.hintY < 82,
|
|
101
|
+
};
|
|
102
|
+
const ok = Object.values(results).every(Boolean);
|
|
103
|
+
console.log(`${ok ? '✅' : '❌'} recent panel empty-state re-center:`, JSON.stringify(results),
|
|
104
|
+
'\n panelH:', probe.panelH, 'midLine:', midLine,
|
|
105
|
+
'\n mainY:', probe.mainY, '(offset-from-mid', mainOffsetMid, ')',
|
|
106
|
+
'\n hintY:', probe.hintY, '(offset-from-mid', hintOffsetMid, ')');
|
|
107
|
+
process.exit(ok ? 0 : 1);
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/* Round 259 verification: recent-signal panel's two italic instructional
|
|
2
|
+
* texts bump fontSize 8 → 9 for readability.
|
|
3
|
+
*
|
|
4
|
+
* Pre-R259 size hierarchy in the recent-signal panel:
|
|
5
|
+
* "no flow yet" main empty-state fontSize 10 italic (action prompt)
|
|
6
|
+
* row content "alpha→beta · 3" fontSize 9 regular (data)
|
|
7
|
+
* hint "send a message…" fontSize 8 italic (instruction)
|
|
8
|
+
* "+N more flows" footer link fontSize 8 italic (nav affordance)
|
|
9
|
+
* row timestamp "5s" fontSize 8 regular (recency tag)
|
|
10
|
+
*
|
|
11
|
+
* Pre-R259 the hint + footer rendered at the smallest readable size on
|
|
12
|
+
* canvas, italic + low opacity layering legibility cost on top of the
|
|
13
|
+
* small type. Both are READ-TO-ACT text (instructional / clickable).
|
|
14
|
+
*
|
|
15
|
+
* Post-R259:
|
|
16
|
+
* hint fontSize 8 → 9
|
|
17
|
+
* footer link fontSize 8 → 9
|
|
18
|
+
*
|
|
19
|
+
* The per-row timestamp STAYS at 8 — it's an at-a-glance recency tag
|
|
20
|
+
* tightly co-located with row text, not read-to-act instruction. Hint +
|
|
21
|
+
* footer at 9pt italic still subordinate to row content (9pt regular)
|
|
22
|
+
* via italic + lower opacity discrimination.
|
|
23
|
+
*
|
|
24
|
+
* Test scope:
|
|
25
|
+
* 1. Empty state hint fontSize === 9 (was 8). Tested in empty scenario.
|
|
26
|
+
* 2. "+N more flows" footer fontSize === 9. Tested in 5-msg scenario.
|
|
27
|
+
* 3. Per-row timestamp UNCHANGED at fontSize === 8 (sibling regression).
|
|
28
|
+
* 4. R256 footer-breath invariant preserved — hover footer client
|
|
29
|
+
* bottom inside panel client bottom (footer with fontSize 9 still
|
|
30
|
+
* tucks inside the panel).
|
|
31
|
+
*/
|
|
32
|
+
import { chromium } from 'playwright';
|
|
33
|
+
import { readFileSync } from 'node:fs';
|
|
34
|
+
|
|
35
|
+
const TOKEN = JSON.parse(readFileSync('/home/vansin/.anet/config.json', 'utf8')).token;
|
|
36
|
+
const browser = await chromium.launch({ headless: true });
|
|
37
|
+
|
|
38
|
+
async function probeEmpty() {
|
|
39
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
40
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
41
|
+
await ctx.addInitScript(() => {
|
|
42
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
43
|
+
});
|
|
44
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
45
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
46
|
+
const r = await route.fetch();
|
|
47
|
+
const b = await r.json();
|
|
48
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
49
|
+
const mk = (alias) => ({
|
|
50
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
51
|
+
network_id: nid, project_dir: null,
|
|
52
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
53
|
+
});
|
|
54
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [mk('alpha'), mk('beta')] } });
|
|
55
|
+
});
|
|
56
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: [] } }));
|
|
57
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
58
|
+
const page = await ctx.newPage();
|
|
59
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
60
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 2, { timeout: 30000 });
|
|
61
|
+
await page.waitForSelector('[data-recent-signal-empty-hint]', { timeout: 10000 });
|
|
62
|
+
await page.waitForTimeout(300);
|
|
63
|
+
const result = await page.evaluate(() => {
|
|
64
|
+
const hint = document.querySelector('[data-recent-signal-empty-hint]');
|
|
65
|
+
return { hintFontSize: hint?.getAttribute('font-size') };
|
|
66
|
+
});
|
|
67
|
+
await ctx.close();
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
async function probePopulated() {
|
|
72
|
+
const ctx = await browser.newContext({ viewport: { width: 1500, height: 1500 } });
|
|
73
|
+
await ctx.addCookies([{ name: 'anet_dashboard_session', value: `v3:${TOKEN}`, domain: '127.0.0.1', path: '/' }]);
|
|
74
|
+
await ctx.addInitScript(() => {
|
|
75
|
+
try { localStorage.setItem('anet-theme', 'cyber'); sessionStorage.setItem('anet_v3_auth', '1'); } catch {}
|
|
76
|
+
});
|
|
77
|
+
const fresh = new Date(Date.now() - 60 * 1000).toISOString();
|
|
78
|
+
await ctx.route('**/api/hub/status*', async (route) => {
|
|
79
|
+
const r = await route.fetch();
|
|
80
|
+
const b = await r.json();
|
|
81
|
+
const nid = (b.sessions || [])[0]?.network_id || 'default';
|
|
82
|
+
const mk = (alias) => ({
|
|
83
|
+
alias, status: 'working', model: 'claude-opus-4', runtime: 'claude-code-cli',
|
|
84
|
+
network_id: nid, project_dir: null,
|
|
85
|
+
created_at: fresh, updated_at: fresh, last_seen_at: fresh,
|
|
86
|
+
});
|
|
87
|
+
await route.fulfill({ response: r, json: { ...b, sessions: [
|
|
88
|
+
mk('alpha'), mk('beta'), mk('gamma'), mk('delta'),
|
|
89
|
+
] } });
|
|
90
|
+
});
|
|
91
|
+
// 5 distinct flow pairs → flowLinks.length === 5 → footer visible
|
|
92
|
+
const now = Date.now();
|
|
93
|
+
const msgs = [
|
|
94
|
+
{ id: 'm0', from_alias: 'alpha', to_alias: 'beta', content: 'hi', network_id: 'default', created_at: new Date(now - 1000).toISOString() },
|
|
95
|
+
{ id: 'm1', from_alias: 'beta', to_alias: 'gamma', content: 'hi', network_id: 'default', created_at: new Date(now - 1500).toISOString() },
|
|
96
|
+
{ id: 'm2', from_alias: 'gamma', to_alias: 'delta', content: 'hi', network_id: 'default', created_at: new Date(now - 2000).toISOString() },
|
|
97
|
+
{ id: 'm3', from_alias: 'delta', to_alias: 'alpha', content: 'hi', network_id: 'default', created_at: new Date(now - 2500).toISOString() },
|
|
98
|
+
{ id: 'm4', from_alias: 'alpha', to_alias: 'gamma', content: 'hi', network_id: 'default', created_at: new Date(now - 3000).toISOString() },
|
|
99
|
+
];
|
|
100
|
+
await ctx.route('**/api/hub/messages*', (r) => r.fulfill({ json: { messages: msgs } }));
|
|
101
|
+
await ctx.route('**/api/hub/tasks*', (r) => r.fulfill({ json: { tasks: [] } }));
|
|
102
|
+
const page = await ctx.newPage();
|
|
103
|
+
await page.goto('http://127.0.0.1:3000/', { waitUntil: 'domcontentloaded' });
|
|
104
|
+
await page.waitForFunction(() => document.querySelectorAll('g[data-node]').length === 4, { timeout: 30000 });
|
|
105
|
+
await page.waitForSelector('[data-recent-panel-more-nav]', { timeout: 10000 });
|
|
106
|
+
await page.waitForTimeout(500);
|
|
107
|
+
|
|
108
|
+
const rest = await page.evaluate(() => {
|
|
109
|
+
const footer = document.querySelector('[data-recent-panel-more]');
|
|
110
|
+
const ts = document.querySelector('[data-recent-row-ts]');
|
|
111
|
+
return {
|
|
112
|
+
footerFontSize: footer?.getAttribute('font-size'),
|
|
113
|
+
tsFontSize: ts?.getAttribute('font-size'),
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
|
|
117
|
+
// R256 invariant regression — hover the footer + check it tucks inside panel
|
|
118
|
+
await page.locator('[data-recent-panel-more-nav]').hover();
|
|
119
|
+
await page.waitForTimeout(250);
|
|
120
|
+
const hoverProbe = await page.evaluate(() => {
|
|
121
|
+
const panelG = document.querySelector('[data-topo-panel="recent"]');
|
|
122
|
+
const rect = panelG?.querySelector('rect');
|
|
123
|
+
const footer = document.querySelector('[data-recent-panel-more]');
|
|
124
|
+
return {
|
|
125
|
+
rectBottom: rect?.getBoundingClientRect().bottom ?? null,
|
|
126
|
+
footerBottom: footer?.getBoundingClientRect().bottom ?? null,
|
|
127
|
+
};
|
|
128
|
+
});
|
|
129
|
+
await ctx.close();
|
|
130
|
+
|
|
131
|
+
const hoverClearance = (hoverProbe.rectBottom != null && hoverProbe.footerBottom != null)
|
|
132
|
+
? (hoverProbe.rectBottom - hoverProbe.footerBottom) : null;
|
|
133
|
+
|
|
134
|
+
return { ...rest, hoverClearance };
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const empty = await probeEmpty();
|
|
138
|
+
const pop = await probePopulated();
|
|
139
|
+
await browser.close();
|
|
140
|
+
|
|
141
|
+
const results = {
|
|
142
|
+
hint_fontsize_bumped_to_9: empty.hintFontSize === '9',
|
|
143
|
+
footer_fontsize_bumped_to_9: pop.footerFontSize === '9',
|
|
144
|
+
per_row_timestamp_unchanged_at_8: pop.tsFontSize === '8',
|
|
145
|
+
r256_footer_inside_panel_on_hover: pop.hoverClearance != null && pop.hoverClearance >= -1,
|
|
146
|
+
};
|
|
147
|
+
const ok = Object.values(results).every(Boolean);
|
|
148
|
+
console.log(`${ok ? '✅' : '❌'} recent panel readability bump:`, JSON.stringify(results),
|
|
149
|
+
'\n empty:', empty,
|
|
150
|
+
'\n pop:', pop);
|
|
151
|
+
process.exit(ok ? 0 : 1);
|
|
File without changes
|
/package/.next/static/{WYyizc1uAWRRWPg7Miftk → UmzD2a8U7aFrItf2XMoh1}/_clientMiddlewareManifest.js
RENAMED
|
File without changes
|
|
File without changes
|