neural-loom 0.3.1 → 0.3.2

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 (45) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/build-manifest.json +3 -3
  3. package/.next/cache/.tsbuildinfo +1 -1
  4. package/.next/diagnostics/route-bundle-stats.json +1 -1
  5. package/.next/fallback-build-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.html +1 -1
  14. package/.next/server/app/_not-found.rsc +1 -1
  15. package/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
  16. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  17. package/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
  18. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  19. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  20. package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
  21. package/.next/server/app/index.html +1 -1
  22. package/.next/server/app/index.rsc +2 -2
  23. package/.next/server/app/index.segments/__PAGE__.segment.rsc +2 -2
  24. package/.next/server/app/index.segments/_full.segment.rsc +2 -2
  25. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  26. package/.next/server/app/index.segments/_index.segment.rsc +1 -1
  27. package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
  28. package/.next/server/app/page/react-loadable-manifest.json +2 -2
  29. package/.next/server/app/page_client-reference-manifest.js +1 -1
  30. package/.next/server/chunks/[root-of-the-server]__0tq0maq._.js +1 -1
  31. package/.next/server/chunks/[root-of-the-server]__0tq0maq._.js.map +1 -1
  32. package/.next/server/middleware/middleware-manifest.json +1 -1
  33. package/.next/server/middleware-build-manifest.js +3 -3
  34. package/.next/server/middleware-manifest.json +1 -1
  35. package/.next/server/pages/404.html +1 -1
  36. package/.next/server/pages/500.html +1 -1
  37. package/.next/static/chunks/{125kj92.ndij4.js → 0qc.k.i3-z5fx.js} +1 -1
  38. package/.next/static/chunks/{0jboepcsqzdio.js → 0ru16isbveym7.js} +4 -4
  39. package/.next/trace +1 -1
  40. package/.next/trace-build +1 -1
  41. package/package.json +1 -1
  42. package/src/app/components/TerminalConsole.tsx +47 -28
  43. /package/.next/static/{3wzjx3BGzCrq3vZdFE3N- → 2ep0r9tVD7fxPpgavvvkt}/_buildManifest.js +0 -0
  44. /package/.next/static/{3wzjx3BGzCrq3vZdFE3N- → 2ep0r9tVD7fxPpgavvvkt}/_clientMiddlewareManifest.js +0 -0
  45. /package/.next/static/{3wzjx3BGzCrq3vZdFE3N- → 2ep0r9tVD7fxPpgavvvkt}/_ssgManifest.js +0 -0
package/.next/trace CHANGED
@@ -1 +1 @@
1
- [{"name":"generate-buildid","duration":210,"timestamp":235659873348,"id":4,"parentId":1,"tags":{},"startTime":1782348948173,"traceId":"c635ab0daa20d2c1"},{"name":"load-custom-routes","duration":325,"timestamp":235659873662,"id":5,"parentId":1,"tags":{},"startTime":1782348948173,"traceId":"c635ab0daa20d2c1"},{"name":"create-dist-dir","duration":3148,"timestamp":235659874037,"id":6,"parentId":1,"tags":{},"startTime":1782348948173,"traceId":"c635ab0daa20d2c1"},{"name":"clean","duration":43616,"timestamp":235659881369,"id":7,"parentId":1,"tags":{},"startTime":1782348948181,"traceId":"c635ab0daa20d2c1"},{"name":"discover-routes","duration":26662,"timestamp":235660009740,"id":8,"parentId":1,"tags":{},"startTime":1782348948309,"traceId":"c635ab0daa20d2c1"},{"name":"create-root-mapping","duration":117,"timestamp":235660036461,"id":9,"parentId":1,"tags":{},"startTime":1782348948336,"traceId":"c635ab0daa20d2c1"},{"name":"generate-route-types","duration":89790,"timestamp":235660044414,"id":10,"parentId":1,"tags":{},"startTime":1782348948344,"traceId":"c635ab0daa20d2c1"},{"name":"public-dir-conflict-check","duration":97,"timestamp":235660134269,"id":11,"parentId":1,"tags":{},"startTime":1782348948434,"traceId":"c635ab0daa20d2c1"},{"name":"generate-routes-manifest","duration":7774,"timestamp":235660134449,"id":12,"parentId":1,"tags":{},"startTime":1782348948434,"traceId":"c635ab0daa20d2c1"},{"name":"run-turbopack","duration":30524265,"timestamp":235660156492,"id":14,"parentId":1,"tags":{},"startTime":1782348948456,"traceId":"c635ab0daa20d2c1"},{"name":"turbopack-build-events","duration":68,"timestamp":235661035555,"id":15,"parentId":1,"tags":{},"startTime":1782348949335,"traceId":"c635ab0daa20d2c1"},{"name":"run-typescript","duration":44296056,"timestamp":235690709799,"id":16,"parentId":1,"tags":{},"startTime":1782348979009,"traceId":"c635ab0daa20d2c1"},{"name":"generate-required-server-files","duration":7080,"timestamp":235735006364,"id":18,"parentId":1,"tags":{},"startTime":1782349023306,"traceId":"c635ab0daa20d2c1"},{"name":"check-static-error-page","duration":40501,"timestamp":235735108152,"id":20,"parentId":19,"tags":{},"startTime":1782349023408,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1107947,"timestamp":235735149281,"id":46,"parentId":21,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1148500,"timestamp":235735108795,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782349023408,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1108091,"timestamp":235735149509,"id":47,"parentId":22,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1132214,"timestamp":235735125413,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1227166,"timestamp":235735149542,"id":48,"parentId":23,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1251125,"timestamp":235735125615,"id":23,"parentId":19,"tags":{"page":"/api/configs"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1242697,"timestamp":235735149568,"id":49,"parentId":24,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1266617,"timestamp":235735125681,"id":24,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1254490,"timestamp":235735149594,"id":50,"parentId":25,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1278391,"timestamp":235735125727,"id":25,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1278080,"timestamp":235735149622,"id":51,"parentId":26,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1301976,"timestamp":235735125763,"id":26,"parentId":19,"tags":{"page":"/api/context"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1298007,"timestamp":235735149649,"id":52,"parentId":27,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1321896,"timestamp":235735125794,"id":27,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1309021,"timestamp":235735149685,"id":53,"parentId":29,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1323593,"timestamp":235735135146,"id":29,"parentId":19,"tags":{"page":"/api/git"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1316777,"timestamp":235735149713,"id":54,"parentId":30,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1331261,"timestamp":235735135260,"id":30,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1376654,"timestamp":235735149734,"id":55,"parentId":31,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1391113,"timestamp":235735135310,"id":31,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1393841,"timestamp":235735149764,"id":56,"parentId":32,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1408294,"timestamp":235735135343,"id":32,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1402076,"timestamp":235735149776,"id":57,"parentId":33,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1416515,"timestamp":235735135373,"id":33,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1410643,"timestamp":235735149782,"id":58,"parentId":34,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1425052,"timestamp":235735135410,"id":34,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1425133,"timestamp":235735149789,"id":59,"parentId":35,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1439491,"timestamp":235735135464,"id":35,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1439018,"timestamp":235735149797,"id":60,"parentId":36,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1453342,"timestamp":235735135507,"id":36,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1454263,"timestamp":235735149804,"id":61,"parentId":37,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1468567,"timestamp":235735135533,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1476525,"timestamp":235735149810,"id":62,"parentId":38,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1490811,"timestamp":235735135564,"id":38,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1483449,"timestamp":235735149815,"id":63,"parentId":39,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1497716,"timestamp":235735135587,"id":39,"parentId":19,"tags":{"page":"/api/sessions/upload-image"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1488774,"timestamp":235735149821,"id":64,"parentId":40,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1503015,"timestamp":235735135612,"id":40,"parentId":19,"tags":{"page":"/api/sql/connections"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1494952,"timestamp":235735149826,"id":65,"parentId":41,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1509174,"timestamp":235735135639,"id":41,"parentId":19,"tags":{"page":"/api/sql/mcp"},"startTime":1782349023435,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1500371,"timestamp":235735149831,"id":66,"parentId":42,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1514575,"timestamp":235735135663,"id":42,"parentId":19,"tags":{"page":"/api/sql/query"},"startTime":1782349023447,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1508381,"timestamp":235735149835,"id":67,"parentId":43,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1509993,"timestamp":235735148259,"id":43,"parentId":19,"tags":{"page":"/api/sql/schema"},"startTime":1782349023448,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1515403,"timestamp":235735149840,"id":68,"parentId":44,"tags":{},"startTime":1782349023449,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1516946,"timestamp":235735148334,"id":44,"parentId":19,"tags":{"page":"/api/telemetry"},"startTime":1782349023448,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1477835,"timestamp":235735197239,"id":69,"parentId":28,"tags":{},"startTime":1782349023497,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1549282,"timestamp":235735125827,"id":28,"parentId":19,"tags":{"page":"/api/files"},"startTime":1782349023425,"traceId":"c635ab0daa20d2c1"},{"name":"is-page-static","duration":1484567,"timestamp":235735197542,"id":70,"parentId":45,"tags":{},"startTime":1782349023497,"traceId":"c635ab0daa20d2c1"},{"name":"check-page","duration":1533746,"timestamp":235735148391,"id":45,"parentId":19,"tags":{"page":"/"},"startTime":1782349023448,"traceId":"c635ab0daa20d2c1"},{"name":"static-check","duration":1574532,"timestamp":235735107623,"id":19,"parentId":1,"tags":{},"startTime":1782349023407,"traceId":"c635ab0daa20d2c1"},{"name":"write-routes-manifest","duration":767,"timestamp":235736689383,"id":72,"parentId":1,"tags":{},"startTime":1782349024989,"traceId":"c635ab0daa20d2c1"},{"name":"load-dotenv","duration":27,"timestamp":235736705422,"id":75,"parentId":74,"tags":{},"startTime":1782349025005,"traceId":"c635ab0daa20d2c1"},{"name":"run-export-path-map","duration":302,"timestamp":235736710778,"id":76,"parentId":74,"tags":{},"startTime":1782349025010,"traceId":"c635ab0daa20d2c1"},{"name":"next-export","duration":659338,"timestamp":235736704718,"id":74,"parentId":1,"tags":{},"startTime":1782349025004,"traceId":"c635ab0daa20d2c1"},{"name":"move-exported-app-not-found-","duration":2637,"timestamp":235737376023,"id":77,"parentId":73,"tags":{},"startTime":1782349025675,"traceId":"c635ab0daa20d2c1"},{"name":"move-exported-app-global-error-","duration":5425,"timestamp":235737378795,"id":78,"parentId":73,"tags":{},"startTime":1782349025678,"traceId":"c635ab0daa20d2c1"},{"name":"static-generation","duration":692518,"timestamp":235736695260,"id":73,"parentId":1,"tags":{},"startTime":1782349024995,"traceId":"c635ab0daa20d2c1"},{"name":"write-routes-manifest","duration":537,"timestamp":235737391186,"id":79,"parentId":1,"tags":{},"startTime":1782349025691,"traceId":"c635ab0daa20d2c1"},{"name":"print-tree-view","duration":25735,"timestamp":235737408482,"id":80,"parentId":1,"tags":{},"startTime":1782349025708,"traceId":"c635ab0daa20d2c1"},{"name":"write-route-bundle-stats","duration":13159,"timestamp":235737434240,"id":81,"parentId":1,"tags":{},"startTime":1782349025734,"traceId":"c635ab0daa20d2c1"},{"name":"telemetry-flush","duration":453916,"timestamp":235737447419,"id":82,"parentId":1,"tags":{},"startTime":1782349025747,"traceId":"c635ab0daa20d2c1"},{"name":"next-build","duration":78360785,"timestamp":235659540574,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782348947840,"traceId":"c635ab0daa20d2c1"}]
1
+ [{"name":"generate-buildid","duration":185,"timestamp":238730837363,"id":4,"parentId":1,"tags":{},"startTime":1782352019137,"traceId":"69f6318164c8db3e"},{"name":"load-custom-routes","duration":322,"timestamp":238730837676,"id":5,"parentId":1,"tags":{},"startTime":1782352019137,"traceId":"69f6318164c8db3e"},{"name":"create-dist-dir","duration":489,"timestamp":238730838042,"id":6,"parentId":1,"tags":{},"startTime":1782352019137,"traceId":"69f6318164c8db3e"},{"name":"clean","duration":21405,"timestamp":238730839811,"id":7,"parentId":1,"tags":{},"startTime":1782352019139,"traceId":"69f6318164c8db3e"},{"name":"discover-routes","duration":4761,"timestamp":238730885426,"id":8,"parentId":1,"tags":{},"startTime":1782352019185,"traceId":"69f6318164c8db3e"},{"name":"create-root-mapping","duration":69,"timestamp":238730890227,"id":9,"parentId":1,"tags":{},"startTime":1782352019190,"traceId":"69f6318164c8db3e"},{"name":"generate-route-types","duration":16332,"timestamp":238730891799,"id":10,"parentId":1,"tags":{},"startTime":1782352019191,"traceId":"69f6318164c8db3e"},{"name":"public-dir-conflict-check","duration":79,"timestamp":238730908187,"id":11,"parentId":1,"tags":{},"startTime":1782352019208,"traceId":"69f6318164c8db3e"},{"name":"generate-routes-manifest","duration":2166,"timestamp":238730908465,"id":12,"parentId":1,"tags":{},"startTime":1782352019208,"traceId":"69f6318164c8db3e"},{"name":"run-turbopack","duration":11704867,"timestamp":238730913672,"id":14,"parentId":1,"tags":{},"startTime":1782352019213,"traceId":"69f6318164c8db3e"},{"name":"turbopack-build-events","duration":63,"timestamp":238731156640,"id":15,"parentId":1,"tags":{},"startTime":1782352019456,"traceId":"69f6318164c8db3e"},{"name":"run-typescript","duration":17487777,"timestamp":238742623100,"id":16,"parentId":1,"tags":{},"startTime":1782352030922,"traceId":"69f6318164c8db3e"},{"name":"generate-required-server-files","duration":756,"timestamp":238760111460,"id":18,"parentId":1,"tags":{},"startTime":1782352048411,"traceId":"69f6318164c8db3e"},{"name":"check-static-error-page","duration":15230,"timestamp":238760137624,"id":20,"parentId":19,"tags":{},"startTime":1782352048437,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":390677,"timestamp":238760153283,"id":46,"parentId":21,"tags":{},"startTime":1782352048453,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":401618,"timestamp":238760142423,"id":21,"parentId":19,"tags":{"page":"/_not-found"},"startTime":1782352048442,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":395728,"timestamp":238760153454,"id":47,"parentId":22,"tags":{},"startTime":1782352048453,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":405586,"timestamp":238760143633,"id":22,"parentId":19,"tags":{"page":"/_global-error"},"startTime":1782352048443,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":436398,"timestamp":238760153477,"id":48,"parentId":23,"tags":{},"startTime":1782352048453,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":446103,"timestamp":238760143800,"id":23,"parentId":19,"tags":{"page":"/api/configs"},"startTime":1782352048443,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":448682,"timestamp":238760153498,"id":49,"parentId":24,"tags":{},"startTime":1782352048453,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":458352,"timestamp":238760143857,"id":24,"parentId":19,"tags":{"page":"/api/context/aider"},"startTime":1782352048443,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":452543,"timestamp":238760153517,"id":50,"parentId":25,"tags":{},"startTime":1782352048453,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":462184,"timestamp":238760143903,"id":25,"parentId":19,"tags":{"page":"/api/context/claude"},"startTime":1782352048443,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":455040,"timestamp":238760155534,"id":51,"parentId":26,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":466629,"timestamp":238760143973,"id":26,"parentId":19,"tags":{"page":"/api/context"},"startTime":1782352048443,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":458410,"timestamp":238760155568,"id":52,"parentId":27,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":465944,"timestamp":238760148054,"id":27,"parentId":19,"tags":{"page":"/api/context/ssh"},"startTime":1782352048447,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":463484,"timestamp":238760155599,"id":53,"parentId":29,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":467546,"timestamp":238760151564,"id":29,"parentId":19,"tags":{"page":"/api/git"},"startTime":1782352048451,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":469767,"timestamp":238760155620,"id":54,"parentId":30,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":473735,"timestamp":238760151684,"id":30,"parentId":19,"tags":{"page":"/api/recents"},"startTime":1782352048451,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":479508,"timestamp":238760155635,"id":55,"parentId":31,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":483431,"timestamp":238760151740,"id":31,"parentId":19,"tags":{"page":"/api/sessions/inject"},"startTime":1782352048451,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":482933,"timestamp":238760155655,"id":56,"parentId":32,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":486834,"timestamp":238760151778,"id":32,"parentId":19,"tags":{"page":"/api/sessions/input"},"startTime":1782352048451,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":487417,"timestamp":238760155665,"id":57,"parentId":33,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":491298,"timestamp":238760151813,"id":33,"parentId":19,"tags":{"page":"/api/sessions/launch"},"startTime":1782352048451,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":488628,"timestamp":238760155669,"id":58,"parentId":34,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":492194,"timestamp":238760152126,"id":34,"parentId":19,"tags":{"page":"/api/sessions"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":490849,"timestamp":238760155674,"id":59,"parentId":35,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":494421,"timestamp":238760152275,"id":35,"parentId":19,"tags":{"page":"/api/sessions/scope"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":494053,"timestamp":238760155679,"id":60,"parentId":36,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":497478,"timestamp":238760152339,"id":36,"parentId":19,"tags":{"page":"/api/sessions/start"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":496460,"timestamp":238760155683,"id":61,"parentId":37,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":499729,"timestamp":238760152434,"id":37,"parentId":19,"tags":{"page":"/api/sessions/stats"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":498678,"timestamp":238760155687,"id":62,"parentId":38,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":501899,"timestamp":238760152488,"id":38,"parentId":19,"tags":{"page":"/api/sessions/stop"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":500289,"timestamp":238760155691,"id":63,"parentId":39,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":503477,"timestamp":238760152518,"id":39,"parentId":19,"tags":{"page":"/api/sessions/upload-image"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":502651,"timestamp":238760155694,"id":64,"parentId":40,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":505813,"timestamp":238760152548,"id":40,"parentId":19,"tags":{"page":"/api/sql/connections"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":512074,"timestamp":238760155698,"id":65,"parentId":41,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":515227,"timestamp":238760152579,"id":41,"parentId":19,"tags":{"page":"/api/sql/mcp"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":520350,"timestamp":238760155702,"id":66,"parentId":42,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":523478,"timestamp":238760152606,"id":42,"parentId":19,"tags":{"page":"/api/sql/query"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":520890,"timestamp":238760155705,"id":67,"parentId":43,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":523980,"timestamp":238760152634,"id":43,"parentId":19,"tags":{"page":"/api/sql/schema"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":522541,"timestamp":238760155708,"id":68,"parentId":44,"tags":{},"startTime":1782352048455,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":525601,"timestamp":238760152662,"id":44,"parentId":19,"tags":{"page":"/api/telemetry"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":525606,"timestamp":238760167577,"id":69,"parentId":28,"tags":{},"startTime":1782352048467,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":545018,"timestamp":238760148195,"id":28,"parentId":19,"tags":{"page":"/api/files"},"startTime":1782352048448,"traceId":"69f6318164c8db3e"},{"name":"is-page-static","duration":534245,"timestamp":238760167873,"id":70,"parentId":45,"tags":{},"startTime":1782352048467,"traceId":"69f6318164c8db3e"},{"name":"check-page","duration":549457,"timestamp":238760152688,"id":45,"parentId":19,"tags":{"page":"/"},"startTime":1782352048452,"traceId":"69f6318164c8db3e"},{"name":"static-check","duration":565438,"timestamp":238760136726,"id":19,"parentId":1,"tags":{},"startTime":1782352048436,"traceId":"69f6318164c8db3e"},{"name":"write-routes-manifest","duration":203,"timestamp":238760707623,"id":72,"parentId":1,"tags":{},"startTime":1782352049007,"traceId":"69f6318164c8db3e"},{"name":"load-dotenv","duration":31,"timestamp":238760715380,"id":75,"parentId":74,"tags":{},"startTime":1782352049015,"traceId":"69f6318164c8db3e"},{"name":"run-export-path-map","duration":2353,"timestamp":238760720771,"id":76,"parentId":74,"tags":{},"startTime":1782352049020,"traceId":"69f6318164c8db3e"},{"name":"next-export","duration":310568,"timestamp":238760713645,"id":74,"parentId":1,"tags":{},"startTime":1782352049013,"traceId":"69f6318164c8db3e"},{"name":"move-exported-app-not-found-","duration":366,"timestamp":238761025900,"id":77,"parentId":73,"tags":{},"startTime":1782352049325,"traceId":"69f6318164c8db3e"},{"name":"move-exported-app-global-error-","duration":230,"timestamp":238761026332,"id":78,"parentId":73,"tags":{},"startTime":1782352049326,"traceId":"69f6318164c8db3e"},{"name":"static-generation","duration":316696,"timestamp":238760710810,"id":73,"parentId":1,"tags":{},"startTime":1782352049010,"traceId":"69f6318164c8db3e"},{"name":"write-routes-manifest","duration":299,"timestamp":238761027576,"id":79,"parentId":1,"tags":{},"startTime":1782352049327,"traceId":"69f6318164c8db3e"},{"name":"print-tree-view","duration":8108,"timestamp":238761037714,"id":80,"parentId":1,"tags":{},"startTime":1782352049337,"traceId":"69f6318164c8db3e"},{"name":"write-route-bundle-stats","duration":8919,"timestamp":238761045845,"id":81,"parentId":1,"tags":{},"startTime":1782352049345,"traceId":"69f6318164c8db3e"},{"name":"telemetry-flush","duration":476271,"timestamp":238761054786,"id":82,"parentId":1,"tags":{},"startTime":1782352049354,"traceId":"69f6318164c8db3e"},{"name":"next-build","duration":30759270,"timestamp":238730771808,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782352019071,"traceId":"69f6318164c8db3e"}]
package/.next/trace-build CHANGED
@@ -1 +1 @@
1
- [{"name":"run-turbopack","duration":30524265,"timestamp":235660156492,"id":14,"parentId":1,"tags":{},"startTime":1782348948456,"traceId":"c635ab0daa20d2c1"},{"name":"turbopack-build-events","duration":68,"timestamp":235661035555,"id":15,"parentId":1,"tags":{},"startTime":1782348949335,"traceId":"c635ab0daa20d2c1"},{"name":"run-typescript","duration":44296056,"timestamp":235690709799,"id":16,"parentId":1,"tags":{},"startTime":1782348979009,"traceId":"c635ab0daa20d2c1"},{"name":"static-check","duration":1574532,"timestamp":235735107623,"id":19,"parentId":1,"tags":{},"startTime":1782349023407,"traceId":"c635ab0daa20d2c1"},{"name":"static-generation","duration":692518,"timestamp":235736695260,"id":73,"parentId":1,"tags":{},"startTime":1782349024995,"traceId":"c635ab0daa20d2c1"},{"name":"telemetry-flush","duration":453916,"timestamp":235737447419,"id":82,"parentId":1,"tags":{},"startTime":1782349025747,"traceId":"c635ab0daa20d2c1"},{"name":"next-build","duration":78360785,"timestamp":235659540574,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782348947840,"traceId":"c635ab0daa20d2c1"}]
1
+ [{"name":"run-turbopack","duration":11704867,"timestamp":238730913672,"id":14,"parentId":1,"tags":{},"startTime":1782352019213,"traceId":"69f6318164c8db3e"},{"name":"turbopack-build-events","duration":63,"timestamp":238731156640,"id":15,"parentId":1,"tags":{},"startTime":1782352019456,"traceId":"69f6318164c8db3e"},{"name":"run-typescript","duration":17487777,"timestamp":238742623100,"id":16,"parentId":1,"tags":{},"startTime":1782352030922,"traceId":"69f6318164c8db3e"},{"name":"static-check","duration":565438,"timestamp":238760136726,"id":19,"parentId":1,"tags":{},"startTime":1782352048436,"traceId":"69f6318164c8db3e"},{"name":"static-generation","duration":316696,"timestamp":238760710810,"id":73,"parentId":1,"tags":{},"startTime":1782352049010,"traceId":"69f6318164c8db3e"},{"name":"telemetry-flush","duration":476271,"timestamp":238761054786,"id":82,"parentId":1,"tags":{},"startTime":1782352049354,"traceId":"69f6318164c8db3e"},{"name":"next-build","duration":30759270,"timestamp":238730771808,"id":1,"tags":{"buildMode":"default","version":"16.2.6","bundler":"turbopack","has-custom-webpack-config":"false","use-build-worker":"true"},"startTime":1782352019071,"traceId":"69f6318164c8db3e"}]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neural-loom",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "bin": {
5
5
  "neural-loom": "./bin/cli.js"
6
6
  },
@@ -29,23 +29,29 @@ async function copyTextToClipboard(text: string): Promise<CopyResult> {
29
29
  if (typeof window === "undefined") return { ok: false, error: "no window" };
30
30
  if (!text) return { ok: false, error: "empty selection" };
31
31
 
32
- let apiError = "";
33
-
34
- // Preferred path: async Clipboard API. Reliable in a secure context, which
35
- // includes localhost (NeuralLoom's default bind).
36
- if (window.isSecureContext && navigator.clipboard?.writeText) {
32
+ // Secure context (localhost, PWA, https): trust ONLY the async Clipboard API.
33
+ // It is reliable when it resolves — and we deliberately don't fall back to
34
+ // execCommand here, because execCommand can return a false-positive `true`
35
+ // (reporting success while copying nothing). Surfacing the real rejection is
36
+ // more useful than a fake "Copied".
37
+ if (window.isSecureContext) {
38
+ if (!navigator.clipboard?.writeText) {
39
+ return { ok: false, error: "Clipboard API unavailable in this browser" };
40
+ }
37
41
  try {
38
42
  await navigator.clipboard.writeText(text);
39
43
  return { ok: true, method: "clipboard-api" };
40
44
  } catch (err) {
41
- // Fall through to the execCommand fallback (e.g. not focused / denied).
42
- apiError = err instanceof Error ? `${err.name}: ${err.message}` : String(err);
45
+ return {
46
+ ok: false,
47
+ method: "clipboard-api",
48
+ error: err instanceof Error ? `${err.name}: ${err.message}` : String(err),
49
+ };
43
50
  }
44
- } else if (!window.isSecureContext) {
45
- apiError = "not a secure context (access via http://localhost for the Clipboard API)";
46
51
  }
47
52
 
48
- // Fallback: hidden textarea + execCommand("copy").
53
+ // Non-secure context (e.g. plain-HTTP LAN access): execCommand is the only
54
+ // option. Note its success value is not fully reliable.
49
55
  try {
50
56
  const textArea = document.createElement("textarea");
51
57
  textArea.value = text;
@@ -59,10 +65,10 @@ async function copyTextToClipboard(text: string): Promise<CopyResult> {
59
65
  const successful = document.execCommand("copy");
60
66
  document.body.removeChild(textArea);
61
67
  if (successful) return { ok: true, method: "execCommand" };
62
- return { ok: false, error: `execCommand returned false${apiError ? ` (clipboard API: ${apiError})` : ""}` };
68
+ return { ok: false, method: "execCommand", error: "execCommand returned false (use http://localhost for the Clipboard API)" };
63
69
  } catch (err) {
64
70
  const ex = err instanceof Error ? err.message : String(err);
65
- return { ok: false, error: `${ex}${apiError ? ` | clipboard API: ${apiError}` : ""}` };
71
+ return { ok: false, method: "execCommand", error: ex };
66
72
  }
67
73
  }
68
74
 
@@ -88,13 +94,19 @@ export default function TerminalConsole({ sessionId, height = "400px", wsPort =
88
94
  const [copied, setCopied] = useState(false);
89
95
  const [copyError, setCopyError] = useState<string | null>(null);
90
96
  const copiedTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
97
+ // Last non-empty terminal selection. The toolbar/right-click read this because
98
+ // clicking a button/menu clears the live xterm selection before the handler runs.
99
+ const lastSelectionRef = useRef("");
91
100
 
92
- // Copy the given text (or the current terminal selection) to the clipboard.
101
+ // Copy the given text (or the last/current terminal selection) to the clipboard.
102
+ // IMPORTANT: must be invoked synchronously inside a user gesture (mouseup, click,
103
+ // keydown) so the Clipboard API write is permitted — otherwise it silently fails.
93
104
  // Stable identity so the terminal effect can use it without re-initializing.
94
105
  // `explicit` = triggered by a button/shortcut (surface "nothing selected").
95
106
  const copySelection = useCallback((text?: string, explicit = false): void => {
96
107
  const term = xtermRef.current;
97
- const selection = (text ?? term?.getSelection() ?? "").trim();
108
+ const live = term?.getSelection() ?? "";
109
+ const selection = (text ?? (live || lastSelectionRef.current) ?? "").trim();
98
110
  if (!selection) {
99
111
  if (explicit) {
100
112
  setCopyError("Nothing selected to copy");
@@ -245,31 +257,39 @@ export default function TerminalConsole({ sessionId, height = "400px", wsPort =
245
257
  const handleMouseDown = (e: MouseEvent) => {
246
258
  if (e.button === 2 && term.hasSelection()) e.stopPropagation();
247
259
  };
260
+ // Copy-on-select. This runs on the bubble phase AFTER xterm has finalized the
261
+ // selection, and — crucially — synchronously inside the mouseup user gesture,
262
+ // so the Clipboard API write is allowed (the previous setTimeout ran outside
263
+ // the gesture and silently failed). Left-button only.
248
264
  const handleMouseUp = (e: MouseEvent) => {
249
- if (e.button === 2 && term.hasSelection()) e.stopPropagation();
265
+ if (e.button === 2 && term.hasSelection()) {
266
+ e.stopPropagation();
267
+ return;
268
+ }
269
+ if (e.button === 0) {
270
+ const sel = term.getSelection();
271
+ if (sel && sel.trim()) copySelection(sel);
272
+ }
250
273
  };
251
274
  const handleContextMenu = (e: MouseEvent) => {
252
- if (term.hasSelection()) {
275
+ const sel = term.getSelection() || lastSelectionRef.current;
276
+ if (sel && sel.trim()) {
253
277
  e.preventDefault();
254
- copySelection(term.getSelection());
255
- term.clearSelection();
278
+ copySelection(sel);
256
279
  }
257
280
  };
258
281
  if (container) {
259
282
  container.addEventListener("mousedown", handleMouseDown, true);
260
- container.addEventListener("mouseup", handleMouseUp, true);
283
+ // bubble phase: xterm has already committed the selection by now
284
+ container.addEventListener("mouseup", handleMouseUp);
261
285
  container.addEventListener("contextmenu", handleContextMenu);
262
286
  }
263
287
 
264
- // Copy-on-select: capture the selection the moment it is made. Claude Code's
265
- // TUI redraws constantly, which clears the xterm selection — so we copy
266
- // immediately (debounced) rather than waiting for a later Ctrl+C/right-click.
267
- let selTimer: ReturnType<typeof setTimeout> | null = null;
288
+ // Track the latest non-empty selection so button / shortcut / right-click can
289
+ // copy it even after a click or redraw clears the live xterm selection.
268
290
  const selDisposable = term.onSelectionChange(() => {
269
291
  const sel = term.getSelection();
270
- if (!sel || !sel.trim()) return;
271
- if (selTimer) clearTimeout(selTimer);
272
- selTimer = setTimeout(() => copySelection(sel), 150);
292
+ if (sel && sel.trim()) lastSelectionRef.current = sel;
273
293
  });
274
294
 
275
295
  // Attach search key handler and clipboard copy handler
@@ -476,13 +496,12 @@ export default function TerminalConsole({ sessionId, height = "400px", wsPort =
476
496
  return () => {
477
497
  isDisposed = true;
478
498
  clearTimeout(fitTimeout);
479
- if (selTimer) clearTimeout(selTimer);
480
499
  selDisposable.dispose();
481
500
  resizeObserver.disconnect();
482
501
  ws.close();
483
502
  if (container) {
484
503
  container.removeEventListener("mousedown", handleMouseDown, true);
485
- container.removeEventListener("mouseup", handleMouseUp, true);
504
+ container.removeEventListener("mouseup", handleMouseUp);
486
505
  container.removeEventListener("contextmenu", handleContextMenu);
487
506
  }
488
507
  try {