agent-relay 1.1.0 → 1.2.3
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/.gitattributes +3 -0
- package/.nvmrc +1 -0
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.json +65 -0
- package/.trajectories/completed/2026-01/traj_1dviorhnkcb5.md +37 -0
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.json +65 -0
- package/.trajectories/completed/2026-01/traj_1k5if5snst2e.md +37 -0
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.json +49 -0
- package/.trajectories/completed/2026-01/traj_1rp3rges5811.md +31 -0
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.json +113 -0
- package/.trajectories/completed/2026-01/traj_22bhyulruouw.md +57 -0
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.json +53 -0
- package/.trajectories/completed/2026-01/traj_2dao7ddgnta0.md +32 -0
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.json +26 -0
- package/.trajectories/completed/2026-01/traj_3t0440mjeunc.md +6 -0
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.json +47 -0
- package/.trajectories/completed/2026-01/traj_45x9494d9xnr.md +32 -0
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.json +53 -0
- package/.trajectories/completed/2026-01/traj_4aa0bb77s4nh.md +32 -0
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.json +59 -0
- package/.trajectories/completed/2026-01/traj_5lhmzq8rxpqv.md +33 -0
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.json +53 -0
- package/.trajectories/completed/2026-01/traj_5vr4e9erb1fs.md +32 -0
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.json +48 -0
- package/.trajectories/completed/2026-01/traj_6fgiwdoklvym.md +24 -0
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.json +209 -0
- package/.trajectories/completed/2026-01/traj_7ludwvz45veh.md +97 -0
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.json +48 -0
- package/.trajectories/completed/2026-01/traj_9921cuhel0pj.md +24 -0
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.json +49 -0
- package/.trajectories/completed/2026-01/traj_ajs7zqfux4wc.md +23 -0
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.json +53 -0
- package/.trajectories/completed/2026-01/traj_cvtqhlwcq9s0.md +32 -0
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.json +49 -0
- package/.trajectories/completed/2026-01/traj_cxofprm2m2en.md +31 -0
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.json +26 -0
- package/.trajectories/completed/2026-01/traj_d2hhz3k0vrhn.md +6 -0
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.json +59 -0
- package/.trajectories/completed/2026-01/traj_dfuvww9pege5.md +37 -0
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.json +77 -0
- package/.trajectories/completed/2026-01/traj_g0fisy9h51mf.md +42 -0
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.json +53 -0
- package/.trajectories/completed/2026-01/traj_gjdre5voouod.md +32 -0
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.json +25 -0
- package/.trajectories/completed/2026-01/traj_gtlyqtta3x8l.md +15 -0
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.json +101 -0
- package/.trajectories/completed/2026-01/traj_h4xijiuip3w4.md +44 -0
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.json +22 -0
- package/.trajectories/completed/2026-01/traj_hhxte7w4gjjx.md +5 -0
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.json +53 -0
- package/.trajectories/completed/2026-01/traj_hpungyhoj6v5.md +32 -0
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.json +25 -0
- package/.trajectories/completed/2026-01/traj_m2xkjv0w2sq7.md +15 -0
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.json +53 -0
- package/.trajectories/completed/2026-01/traj_noq5zbvnrdvz.md +32 -0
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.json +53 -0
- package/.trajectories/completed/2026-01/traj_ntbs6ppopf46.md +32 -0
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.json +48 -0
- package/.trajectories/completed/2026-01/traj_ozd98si6a7ns.md +24 -0
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.json +53 -0
- package/.trajectories/completed/2026-01/traj_prdza7a5cxp5.md +32 -0
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.json +77 -0
- package/.trajectories/completed/2026-01/traj_qb3twvvywfwi.md +42 -0
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.json +53 -0
- package/.trajectories/completed/2026-01/traj_qft54mi7nfor.md +32 -0
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.json +83 -0
- package/.trajectories/completed/2026-01/traj_qx9uhf8whhxo.md +47 -0
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.json +59 -0
- package/.trajectories/completed/2026-01/traj_rd9toccj18a0.md +37 -0
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.json +48 -0
- package/.trajectories/completed/2026-01/traj_rt4fiw3ecp50.md +16 -0
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.json +59 -0
- package/.trajectories/completed/2026-01/traj_st8j35b0hrlc.md +37 -0
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.json +53 -0
- package/.trajectories/completed/2026-01/traj_t1yy8m7hbuxp.md +32 -0
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.json +84 -0
- package/.trajectories/completed/2026-01/traj_tmux_orchestrator_analysis.md +109 -0
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.json +53 -0
- package/.trajectories/completed/2026-01/traj_u9n9eqasw16k.md +32 -0
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.json +71 -0
- package/.trajectories/completed/2026-01/traj_v87hypnongqx.md +42 -0
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.json +53 -0
- package/.trajectories/completed/2026-01/traj_wkp2fgzdyinb.md +32 -0
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.json +20 -0
- package/.trajectories/completed/2026-01/traj_x14t8w8rn7xg.md +6 -0
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.json +175 -0
- package/.trajectories/completed/2026-01/traj_xnwbznkvv8ua.md +82 -0
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.json +47 -0
- package/.trajectories/completed/2026-01/traj_ysjc8zaeqtd3.md +32 -0
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.json +59 -0
- package/.trajectories/completed/2026-01/traj_yvdadtvdgnz3.md +37 -0
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.json +53 -0
- package/.trajectories/completed/2026-01/traj_z0vcw1wrzide.md +32 -0
- package/.trajectories/index.json +314 -0
- package/ARCHITECTURE.md +1245 -0
- package/README.md +1 -1
- package/TESTING.md +278 -0
- package/deploy/init-db.sql +5 -0
- package/deploy/scripts/setup-fly-workspaces.sh +69 -0
- package/deploy/scripts/setup-railway.sh +75 -0
- package/deploy/workspace/entrypoint-browser.sh +118 -0
- package/deploy/workspace/entrypoint.sh +348 -0
- package/deploy/workspace/git-credential-relay +111 -0
- package/dist/bridge/spawner.d.ts +53 -0
- package/dist/bridge/spawner.js +203 -19
- package/dist/bridge/types.d.ts +12 -0
- package/dist/cli/index.js +618 -5
- package/dist/cloud/api/auth.d.ts +3 -2
- package/dist/cloud/api/auth.js +10 -98
- package/dist/cloud/api/billing.js +30 -9
- package/dist/cloud/api/cli-pty-runner.d.ts +54 -0
- package/dist/cloud/api/cli-pty-runner.js +119 -0
- package/dist/cloud/api/codex-auth-helper.d.ts +15 -0
- package/dist/cloud/api/codex-auth-helper.js +100 -0
- package/dist/cloud/api/generic-webhooks.d.ts +8 -0
- package/dist/cloud/api/generic-webhooks.js +129 -0
- package/dist/cloud/api/git.d.ts +8 -0
- package/dist/cloud/api/git.js +152 -0
- package/dist/cloud/api/github-app.d.ts +11 -0
- package/dist/cloud/api/github-app.js +189 -0
- package/dist/cloud/api/middleware/planLimits.d.ts +7 -0
- package/dist/cloud/api/middleware/planLimits.js +39 -1
- package/dist/cloud/api/monitoring.d.ts +11 -0
- package/dist/cloud/api/monitoring.js +578 -0
- package/dist/cloud/api/nango-auth.d.ts +9 -0
- package/dist/cloud/api/nango-auth.js +377 -0
- package/dist/cloud/api/onboarding.d.ts +8 -1
- package/dist/cloud/api/onboarding.js +313 -119
- package/dist/cloud/api/policy.d.ts +8 -0
- package/dist/cloud/api/policy.js +229 -0
- package/dist/cloud/api/providers.js +114 -42
- package/dist/cloud/api/repos.d.ts +1 -0
- package/dist/cloud/api/repos.js +186 -0
- package/dist/cloud/api/test-helpers.d.ts +10 -0
- package/dist/cloud/api/test-helpers.js +575 -0
- package/dist/cloud/api/webhooks.d.ts +8 -0
- package/dist/cloud/api/webhooks.js +645 -0
- package/dist/cloud/api/workspaces.js +320 -12
- package/dist/cloud/billing/plans.js +32 -19
- package/dist/cloud/billing/types.d.ts +9 -3
- package/dist/cloud/config.d.ts +9 -2
- package/dist/cloud/config.js +13 -4
- package/dist/cloud/db/drizzle.d.ts +84 -1
- package/dist/cloud/db/drizzle.js +470 -0
- package/dist/cloud/db/index.d.ts +9 -4
- package/dist/cloud/db/index.js +11 -3
- package/dist/cloud/db/schema.d.ts +3283 -556
- package/dist/cloud/db/schema.js +314 -1
- package/dist/cloud/index.d.ts +1 -0
- package/dist/cloud/index.js +2 -0
- package/dist/cloud/provisioner/index.d.ts +56 -0
- package/dist/cloud/provisioner/index.js +676 -34
- package/dist/cloud/server.d.ts +1 -0
- package/dist/cloud/server.js +362 -13
- package/dist/cloud/services/auto-scaler.d.ts +152 -0
- package/dist/cloud/services/auto-scaler.js +439 -0
- package/dist/cloud/services/capacity-manager.d.ts +148 -0
- package/dist/cloud/services/capacity-manager.js +449 -0
- package/dist/cloud/services/ci-agent-spawner.d.ts +49 -0
- package/dist/cloud/services/ci-agent-spawner.js +373 -0
- package/dist/cloud/services/index.d.ts +12 -0
- package/dist/cloud/services/index.js +15 -0
- package/dist/cloud/services/mention-handler.d.ts +65 -0
- package/dist/cloud/services/mention-handler.js +405 -0
- package/dist/cloud/services/nango.d.ts +186 -0
- package/dist/cloud/services/nango.js +344 -0
- package/dist/cloud/services/persistence.d.ts +131 -0
- package/dist/cloud/services/persistence.js +200 -0
- package/dist/cloud/services/planLimits.d.ts +37 -0
- package/dist/cloud/services/planLimits.js +86 -5
- package/dist/cloud/services/scaling-orchestrator.d.ts +159 -0
- package/dist/cloud/services/scaling-orchestrator.js +502 -0
- package/dist/cloud/services/scaling-policy.d.ts +121 -0
- package/dist/cloud/services/scaling-policy.js +415 -0
- package/dist/cloud/vault/index.js +1 -1
- package/dist/cloud/webhooks/index.d.ts +24 -0
- package/dist/cloud/webhooks/index.js +29 -0
- package/dist/cloud/webhooks/parsers/github.d.ts +8 -0
- package/dist/cloud/webhooks/parsers/github.js +234 -0
- package/dist/cloud/webhooks/parsers/index.d.ts +23 -0
- package/dist/cloud/webhooks/parsers/index.js +30 -0
- package/dist/cloud/webhooks/parsers/linear.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/linear.js +258 -0
- package/dist/cloud/webhooks/parsers/slack.d.ts +9 -0
- package/dist/cloud/webhooks/parsers/slack.js +214 -0
- package/dist/cloud/webhooks/responders/github.d.ts +8 -0
- package/dist/cloud/webhooks/responders/github.js +73 -0
- package/dist/cloud/webhooks/responders/index.d.ts +23 -0
- package/dist/cloud/webhooks/responders/index.js +30 -0
- package/dist/cloud/webhooks/responders/linear.d.ts +9 -0
- package/dist/cloud/webhooks/responders/linear.js +149 -0
- package/dist/cloud/webhooks/responders/slack.d.ts +20 -0
- package/dist/cloud/webhooks/responders/slack.js +178 -0
- package/dist/cloud/webhooks/router.d.ts +25 -0
- package/dist/cloud/webhooks/router.js +504 -0
- package/dist/cloud/webhooks/rules-engine.d.ts +24 -0
- package/dist/cloud/webhooks/rules-engine.js +287 -0
- package/dist/cloud/webhooks/types.d.ts +186 -0
- package/dist/cloud/webhooks/types.js +8 -0
- package/dist/continuity/formatter.d.ts +51 -0
- package/dist/continuity/formatter.js +313 -0
- package/dist/continuity/handoff-store.d.ts +67 -0
- package/dist/continuity/handoff-store.js +472 -0
- package/dist/continuity/index.d.ts +45 -0
- package/dist/continuity/index.js +48 -0
- package/dist/continuity/ledger-store.d.ts +110 -0
- package/dist/continuity/ledger-store.js +500 -0
- package/dist/continuity/manager.d.ts +178 -0
- package/dist/continuity/manager.js +562 -0
- package/dist/continuity/parser.d.ts +76 -0
- package/dist/continuity/parser.js +579 -0
- package/dist/continuity/types.d.ts +180 -0
- package/dist/continuity/types.js +9 -0
- package/dist/daemon/agent-manager.d.ts +27 -0
- package/dist/daemon/agent-manager.js +107 -6
- package/dist/daemon/agent-registry.d.ts +32 -0
- package/dist/daemon/agent-registry.js +42 -2
- package/dist/daemon/api.d.ts +12 -0
- package/dist/daemon/api.js +131 -2
- package/dist/daemon/cli-auth.d.ts +67 -0
- package/dist/daemon/cli-auth.js +537 -0
- package/dist/daemon/cloud-sync.js +9 -7
- package/dist/daemon/orchestrator.js +30 -0
- package/dist/daemon/router.d.ts +5 -0
- package/dist/daemon/router.js +78 -26
- package/dist/daemon/server.d.ts +5 -0
- package/dist/daemon/server.js +9 -1
- package/dist/daemon/services/browser-testing.d.ts +88 -0
- package/dist/daemon/services/browser-testing.js +244 -0
- package/dist/daemon/services/container-spawner.d.ts +135 -0
- package/dist/daemon/services/container-spawner.js +313 -0
- package/dist/daemon/types.d.ts +5 -1
- package/dist/dashboard/out/404.html +1 -1
- package/dist/dashboard/out/_next/static/chunks/116-2502180def231162.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/282-980c2eb8fff20123.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/699-3b1cd6618a45d259.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/724-2dae7627550ab88f.js +9 -0
- package/dist/dashboard/out/_next/static/chunks/766-1f2dd8cb7f766b0b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/onboarding/page-3fdfa60e53f2810d.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e6381e5a6e1fbcfd.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/connect-repos/page-3538dfe0ffe984b8.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/history/{page-b6edd4dde8d08194.js → page-abb9ab2d329f56e9.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-c0d118c0f92d969c.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/login/page-c22d080201cbd9fb.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-67a3e98d9a43a6ed.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/page-77e9c65420a06cfb.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-b08ed1c34d14434a.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/providers/page-e88bc117ef7671c3.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/app/signup/page-68d34f50baa8ab6b.js +1 -0
- package/dist/dashboard/out/_next/static/chunks/e868780c-48e5f147c90a3a41.js +18 -0
- package/dist/dashboard/out/_next/static/chunks/{main-app-5d692157a8eb1fd9.js → main-app-6e8e8d3ef4e0192a.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/{main-c2f423b9c9f4591b.js → main-ed4e1fb6f29c34cf.js} +1 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-1cdd8ed57114d5e1.js +1 -0
- package/dist/dashboard/out/_next/static/css/29852f26181969a0.css +1 -0
- package/dist/dashboard/out/_next/static/css/7c3ae9e8617d42a5.css +1 -0
- package/dist/dashboard/out/app/onboarding.html +1 -0
- package/dist/dashboard/out/app/onboarding.txt +7 -0
- package/dist/dashboard/out/app.html +1 -14
- package/dist/dashboard/out/app.txt +2 -2
- package/dist/dashboard/out/connect-repos.html +1 -0
- package/dist/dashboard/out/connect-repos.txt +7 -0
- package/dist/dashboard/out/history.html +1 -1
- package/dist/dashboard/out/history.txt +2 -2
- package/dist/dashboard/out/index.html +1 -1
- package/dist/dashboard/out/index.txt +2 -2
- package/dist/dashboard/out/login.html +6 -0
- package/dist/dashboard/out/login.txt +7 -0
- package/dist/dashboard/out/metrics.html +1 -1
- package/dist/dashboard/out/metrics.txt +2 -2
- package/dist/dashboard/out/pricing.html +3 -3
- package/dist/dashboard/out/pricing.txt +2 -2
- package/dist/dashboard/out/providers.html +1 -0
- package/dist/dashboard/out/providers.txt +7 -0
- package/dist/dashboard/out/signup.html +6 -0
- package/dist/dashboard/out/signup.txt +7 -0
- package/dist/dashboard-server/server.js +1308 -8
- package/dist/hooks/emitter.d.ts +40 -0
- package/dist/hooks/emitter.js +63 -0
- package/dist/hooks/index.d.ts +3 -0
- package/dist/hooks/index.js +3 -0
- package/dist/hooks/registry.d.ts +173 -0
- package/dist/hooks/registry.js +476 -0
- package/dist/hooks/trajectory-hooks.d.ts +52 -0
- package/dist/hooks/trajectory-hooks.js +183 -0
- package/dist/hooks/types.d.ts +141 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +3 -0
- package/dist/memory/adapters/index.d.ts +8 -0
- package/dist/memory/adapters/index.js +8 -0
- package/dist/memory/adapters/inmemory.d.ts +59 -0
- package/dist/memory/adapters/inmemory.js +195 -0
- package/dist/memory/adapters/supermemory.d.ts +71 -0
- package/dist/memory/adapters/supermemory.js +338 -0
- package/dist/memory/factory.d.ts +48 -0
- package/dist/memory/factory.js +143 -0
- package/dist/memory/index.d.ts +32 -0
- package/dist/memory/index.js +32 -0
- package/dist/memory/memory-hooks.d.ts +60 -0
- package/dist/memory/memory-hooks.js +313 -0
- package/dist/memory/service.d.ts +49 -0
- package/dist/memory/service.js +146 -0
- package/dist/memory/types.d.ts +195 -0
- package/dist/memory/types.js +8 -0
- package/dist/policy/agent-policy.d.ts +225 -0
- package/dist/policy/agent-policy.js +665 -0
- package/dist/policy/cloud-policy-fetcher.d.ts +12 -0
- package/dist/policy/cloud-policy-fetcher.js +64 -0
- package/dist/resiliency/crash-insights.d.ts +156 -0
- package/dist/resiliency/crash-insights.js +492 -0
- package/dist/resiliency/gossip-health.d.ts +137 -0
- package/dist/resiliency/gossip-health.js +241 -0
- package/dist/resiliency/index.d.ts +5 -0
- package/dist/resiliency/index.js +5 -0
- package/dist/resiliency/leader-watchdog.d.ts +109 -0
- package/dist/resiliency/leader-watchdog.js +189 -0
- package/dist/resiliency/memory-monitor.d.ts +172 -0
- package/dist/resiliency/memory-monitor.js +593 -0
- package/dist/resiliency/stateless-lead.d.ts +149 -0
- package/dist/resiliency/stateless-lead.js +308 -0
- package/dist/resiliency/supervisor.d.ts +38 -0
- package/dist/resiliency/supervisor.js +122 -0
- package/dist/shared/cli-auth-config.d.ts +91 -0
- package/dist/shared/cli-auth-config.js +264 -0
- package/dist/storage/adapter.d.ts +1 -1
- package/dist/trajectory/config.d.ts +84 -0
- package/dist/trajectory/config.js +163 -0
- package/dist/trajectory/index.d.ts +8 -0
- package/dist/trajectory/index.js +8 -0
- package/dist/trajectory/integration.d.ts +292 -0
- package/dist/trajectory/integration.js +834 -0
- package/dist/utils/logger.js +1 -1
- package/dist/utils/project-namespace.d.ts +24 -0
- package/dist/utils/project-namespace.js +84 -0
- package/dist/wrapper/parser.d.ts +10 -0
- package/dist/wrapper/parser.js +100 -33
- package/dist/wrapper/pty-wrapper.d.ts +197 -16
- package/dist/wrapper/pty-wrapper.js +943 -106
- package/dist/wrapper/shared.d.ts +165 -0
- package/dist/wrapper/shared.js +270 -0
- package/dist/wrapper/tmux-wrapper.d.ts +73 -11
- package/dist/wrapper/tmux-wrapper.js +541 -120
- package/package.json +16 -16
- package/scripts/postinstall.js +60 -0
- package/test-push.txt +1 -0
- package/bin/tmux +0 -0
- package/dist/bridge/config.d.ts.map +0 -1
- package/dist/bridge/config.js.map +0 -1
- package/dist/bridge/index.d.ts.map +0 -1
- package/dist/bridge/index.js.map +0 -1
- package/dist/bridge/multi-project-client.d.ts.map +0 -1
- package/dist/bridge/multi-project-client.js.map +0 -1
- package/dist/bridge/shadow-cli.d.ts.map +0 -1
- package/dist/bridge/shadow-cli.js.map +0 -1
- package/dist/bridge/shadow-config.d.ts.map +0 -1
- package/dist/bridge/shadow-config.js.map +0 -1
- package/dist/bridge/spawner.d.ts.map +0 -1
- package/dist/bridge/spawner.js.map +0 -1
- package/dist/bridge/teams-config.d.ts.map +0 -1
- package/dist/bridge/teams-config.js.map +0 -1
- package/dist/bridge/types.d.ts.map +0 -1
- package/dist/bridge/types.js.map +0 -1
- package/dist/bridge/utils.d.ts.map +0 -1
- package/dist/bridge/utils.js.map +0 -1
- package/dist/cli/index.d.ts.map +0 -1
- package/dist/cli/index.js.map +0 -1
- package/dist/cloud/api/auth.d.ts.map +0 -1
- package/dist/cloud/api/auth.js.map +0 -1
- package/dist/cloud/api/billing.d.ts.map +0 -1
- package/dist/cloud/api/billing.js.map +0 -1
- package/dist/cloud/api/coordinators.d.ts.map +0 -1
- package/dist/cloud/api/coordinators.js.map +0 -1
- package/dist/cloud/api/daemons.d.ts.map +0 -1
- package/dist/cloud/api/daemons.js.map +0 -1
- package/dist/cloud/api/middleware/planLimits.d.ts.map +0 -1
- package/dist/cloud/api/middleware/planLimits.js.map +0 -1
- package/dist/cloud/api/onboarding.d.ts.map +0 -1
- package/dist/cloud/api/onboarding.js.map +0 -1
- package/dist/cloud/api/providers.d.ts.map +0 -1
- package/dist/cloud/api/providers.js.map +0 -1
- package/dist/cloud/api/repos.d.ts.map +0 -1
- package/dist/cloud/api/repos.js.map +0 -1
- package/dist/cloud/api/teams.d.ts.map +0 -1
- package/dist/cloud/api/teams.js.map +0 -1
- package/dist/cloud/api/usage.d.ts.map +0 -1
- package/dist/cloud/api/usage.js.map +0 -1
- package/dist/cloud/api/workspaces.d.ts.map +0 -1
- package/dist/cloud/api/workspaces.js.map +0 -1
- package/dist/cloud/billing/index.d.ts.map +0 -1
- package/dist/cloud/billing/index.js.map +0 -1
- package/dist/cloud/billing/plans.d.ts.map +0 -1
- package/dist/cloud/billing/plans.js.map +0 -1
- package/dist/cloud/billing/service.d.ts.map +0 -1
- package/dist/cloud/billing/service.js.map +0 -1
- package/dist/cloud/billing/types.d.ts.map +0 -1
- package/dist/cloud/billing/types.js.map +0 -1
- package/dist/cloud/config.d.ts.map +0 -1
- package/dist/cloud/config.js.map +0 -1
- package/dist/cloud/db/drizzle.d.ts.map +0 -1
- package/dist/cloud/db/drizzle.js.map +0 -1
- package/dist/cloud/db/index.d.ts.map +0 -1
- package/dist/cloud/db/index.js.map +0 -1
- package/dist/cloud/db/schema.d.ts.map +0 -1
- package/dist/cloud/db/schema.js.map +0 -1
- package/dist/cloud/index.d.ts.map +0 -1
- package/dist/cloud/index.js.map +0 -1
- package/dist/cloud/provisioner/index.d.ts.map +0 -1
- package/dist/cloud/provisioner/index.js.map +0 -1
- package/dist/cloud/server.d.ts.map +0 -1
- package/dist/cloud/server.js.map +0 -1
- package/dist/cloud/services/coordinator.d.ts.map +0 -1
- package/dist/cloud/services/coordinator.js.map +0 -1
- package/dist/cloud/services/planLimits.d.ts.map +0 -1
- package/dist/cloud/services/planLimits.js.map +0 -1
- package/dist/cloud/vault/index.d.ts.map +0 -1
- package/dist/cloud/vault/index.js.map +0 -1
- package/dist/daemon/agent-manager.d.ts.map +0 -1
- package/dist/daemon/agent-manager.js.map +0 -1
- package/dist/daemon/agent-registry.d.ts.map +0 -1
- package/dist/daemon/agent-registry.js.map +0 -1
- package/dist/daemon/api.d.ts.map +0 -1
- package/dist/daemon/api.js.map +0 -1
- package/dist/daemon/auth.d.ts.map +0 -1
- package/dist/daemon/auth.js.map +0 -1
- package/dist/daemon/cloud-sync.d.ts.map +0 -1
- package/dist/daemon/cloud-sync.js.map +0 -1
- package/dist/daemon/connection.d.ts.map +0 -1
- package/dist/daemon/connection.js.map +0 -1
- package/dist/daemon/index.d.ts.map +0 -1
- package/dist/daemon/index.js.map +0 -1
- package/dist/daemon/orchestrator.d.ts.map +0 -1
- package/dist/daemon/orchestrator.js.map +0 -1
- package/dist/daemon/registry.d.ts.map +0 -1
- package/dist/daemon/registry.js.map +0 -1
- package/dist/daemon/router.d.ts.map +0 -1
- package/dist/daemon/router.js.map +0 -1
- package/dist/daemon/server.d.ts.map +0 -1
- package/dist/daemon/server.js.map +0 -1
- package/dist/daemon/types.d.ts.map +0 -1
- package/dist/daemon/types.js.map +0 -1
- package/dist/daemon/workspace-manager.d.ts.map +0 -1
- package/dist/daemon/workspace-manager.js.map +0 -1
- package/dist/dashboard/out/_next/static/chunks/693-7b3301d8f6bc5014.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/713-f78477eb185f1f4d.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/766-e53e1cfe39b0b5b5.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/900-037c64bfd797fb2a.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/app/page-e3d9e1f4466b9bae.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/layout-2433bb48965f4333.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/metrics/page-e68825a81db67ba1.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/page-cc108bf68c8a657f.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/app/pricing/page-d80e03a5297f95b6.js +0 -1
- package/dist/dashboard/out/_next/static/chunks/webpack-a5acc2831d094776.js +0 -1
- package/dist/dashboard/out/_next/static/css/79b80143647a07d7.css +0 -1
- package/dist/dashboard/out/_next/static/css/8cf277370ad48cfe.css +0 -1
- package/dist/dashboard-server/metrics.d.ts.map +0 -1
- package/dist/dashboard-server/metrics.js.map +0 -1
- package/dist/dashboard-server/needs-attention.d.ts.map +0 -1
- package/dist/dashboard-server/needs-attention.js.map +0 -1
- package/dist/dashboard-server/server.d.ts.map +0 -1
- package/dist/dashboard-server/server.js.map +0 -1
- package/dist/dashboard-server/start.d.ts.map +0 -1
- package/dist/dashboard-server/start.js.map +0 -1
- package/dist/hooks/inbox-check/hook.d.ts.map +0 -1
- package/dist/hooks/inbox-check/hook.js.map +0 -1
- package/dist/hooks/inbox-check/index.d.ts.map +0 -1
- package/dist/hooks/inbox-check/index.js.map +0 -1
- package/dist/hooks/inbox-check/types.d.ts.map +0 -1
- package/dist/hooks/inbox-check/types.js.map +0 -1
- package/dist/hooks/inbox-check/utils.d.ts.map +0 -1
- package/dist/hooks/inbox-check/utils.js.map +0 -1
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js.map +0 -1
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/hooks/types.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/protocol/framing.d.ts.map +0 -1
- package/dist/protocol/framing.js.map +0 -1
- package/dist/protocol/index.d.ts.map +0 -1
- package/dist/protocol/index.js.map +0 -1
- package/dist/protocol/types.d.ts.map +0 -1
- package/dist/protocol/types.js.map +0 -1
- package/dist/resiliency/context-persistence.d.ts.map +0 -1
- package/dist/resiliency/context-persistence.js.map +0 -1
- package/dist/resiliency/health-monitor.d.ts.map +0 -1
- package/dist/resiliency/health-monitor.js.map +0 -1
- package/dist/resiliency/index.d.ts.map +0 -1
- package/dist/resiliency/index.js.map +0 -1
- package/dist/resiliency/logger.d.ts.map +0 -1
- package/dist/resiliency/logger.js.map +0 -1
- package/dist/resiliency/metrics.d.ts.map +0 -1
- package/dist/resiliency/metrics.js.map +0 -1
- package/dist/resiliency/provider-context.d.ts.map +0 -1
- package/dist/resiliency/provider-context.js.map +0 -1
- package/dist/resiliency/supervisor.d.ts.map +0 -1
- package/dist/resiliency/supervisor.js.map +0 -1
- package/dist/state/agent-state.d.ts.map +0 -1
- package/dist/state/agent-state.js.map +0 -1
- package/dist/storage/adapter.d.ts.map +0 -1
- package/dist/storage/adapter.js.map +0 -1
- package/dist/storage/sqlite-adapter.d.ts.map +0 -1
- package/dist/storage/sqlite-adapter.js.map +0 -1
- package/dist/utils/agent-config.d.ts.map +0 -1
- package/dist/utils/agent-config.js.map +0 -1
- package/dist/utils/command-resolver.d.ts.map +0 -1
- package/dist/utils/command-resolver.js.map +0 -1
- package/dist/utils/index.d.ts.map +0 -1
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts.map +0 -1
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/name-generator.d.ts.map +0 -1
- package/dist/utils/name-generator.js.map +0 -1
- package/dist/utils/project-namespace.d.ts.map +0 -1
- package/dist/utils/project-namespace.js.map +0 -1
- package/dist/utils/tmux-resolver.d.ts.map +0 -1
- package/dist/utils/tmux-resolver.js.map +0 -1
- package/dist/utils/update-checker.d.ts.map +0 -1
- package/dist/utils/update-checker.js.map +0 -1
- package/dist/wrapper/client.d.ts.map +0 -1
- package/dist/wrapper/client.js.map +0 -1
- package/dist/wrapper/inbox.d.ts.map +0 -1
- package/dist/wrapper/inbox.js.map +0 -1
- package/dist/wrapper/index.d.ts.map +0 -1
- package/dist/wrapper/index.js.map +0 -1
- package/dist/wrapper/parser.d.ts.map +0 -1
- package/dist/wrapper/parser.js.map +0 -1
- package/dist/wrapper/pty-wrapper.d.ts.map +0 -1
- package/dist/wrapper/pty-wrapper.js.map +0 -1
- package/dist/wrapper/tmux-wrapper.d.ts.map +0 -1
- package/dist/wrapper/tmux-wrapper.js.map +0 -1
- package/docs/AGENTS.md +0 -513
- package/docs/ARCHITECTURE_DECISIONS.md +0 -175
- package/docs/CHANGELOG.md +0 -11
- package/docs/CLI-SIMPLIFICATION-COMPLETE.md +0 -48
- package/docs/CLOUD-ARCHITECTURE.md +0 -652
- package/docs/CLOUD-ONBOARDING-DESIGN.md +0 -1983
- package/docs/COMPETITIVE_ANALYSIS.md +0 -897
- package/docs/CONTRIBUTING.md +0 -151
- package/docs/DESIGN_BRIDGE_STAFFING.md +0 -878
- package/docs/DESIGN_V2.md +0 -1079
- package/docs/INTEGRATION-GUIDE.md +0 -926
- package/docs/MONETIZATION.md +0 -1679
- package/docs/PROPOSAL-trajectories.md +0 -1582
- package/docs/PROTOCOL.md +0 -325
- package/docs/SCALING_ANALYSIS.md +0 -280
- package/docs/TESTING_PRESENCE_FEATURES.md +0 -327
- package/docs/TMUX_IMPLEMENTATION_NOTES.md +0 -364
- package/docs/TMUX_IMPROVEMENTS.md +0 -968
- package/docs/agent-relay-snippet.md +0 -168
- package/docs/competitive-analysis-mcp-agent-mail.md +0 -389
- package/docs/dashboard-v2-plan.md +0 -179
- package/docs/guides/CLOUD.md +0 -236
- package/docs/guides/LOCAL.md +0 -535
- package/docs/guides/SELF-HOSTED.md +0 -494
- package/docs/proposals/shadow-as-subagent.md +0 -765
- package/docs/proposals/slack-bot-integration.md +0 -1457
- package/docs/removable-code-analysis.md +0 -24
- package/scripts/dev/PUBLIC_RELEASE_PLAN.md +0 -88
- package/scripts/dev/dev-team-setup.sh +0 -431
- package/scripts/e2e-test.sh +0 -119
- package/scripts/games/game-protocol.md +0 -79
- package/scripts/games/hearts-setup.sh +0 -264
- package/scripts/tictactoe-setup.sh +0 -181
- /package/dist/dashboard/out/_next/static/chunks/{117-b2cd8d6485aacf2b.js → 117-f7b8ab0809342e77.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{648-8f3f26864ce515e5.js → 648-5cc6e1921389a58a.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/app/_not-found/{page-0b990dbb71d72a98.js → page-53b8a69f76db17d0.js} +0 -0
- /package/dist/dashboard/out/_next/static/chunks/{fd9d1056-bf46c09eb57e019c.js → fd9d1056-609918ca7b6280bb.js} +0 -0
- /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_buildManifest.js +0 -0
- /package/dist/dashboard/out/_next/static/{6HHWb2ZmnJ4OSm0zUP7h4 → wPgKJtcOmTFLpUncDg16A}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Trajectory: Fix notification filtering to use dynamic user
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** agent-relay-319
|
|
5
|
+
> **Confidence:** 90%
|
|
6
|
+
> **Started:** January 3, 2026 at 04:51 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 04:55 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Fixed notification filtering to use dynamic current user. Created effectiveSenderName variable that uses senderName prop (authenticated user) with fallback to 'Dashboard' for local mode.
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Used effectiveSenderName variable for consistent user identity
|
|
22
|
+
- **Chose:** Used effectiveSenderName variable for consistent user identity
|
|
23
|
+
- **Reasoning:** Created a single source of truth for the current user name, used in both unread count filtering and optimistic messages. Falls back to 'Dashboard' when senderName prop is not provided (local mode).
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Chapters
|
|
28
|
+
|
|
29
|
+
### 1. Work
|
|
30
|
+
*Agent: default*
|
|
31
|
+
|
|
32
|
+
- Used effectiveSenderName variable for consistent user identity: Used effectiveSenderName variable for consistent user identity
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_qb3twvvywfwi",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Test coverage for Vault and billing modules",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-442"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-03T15:26:26.404Z",
|
|
13
|
+
"agents": [
|
|
14
|
+
{
|
|
15
|
+
"name": "Backend",
|
|
16
|
+
"role": "lead",
|
|
17
|
+
"joinedAt": "2026-01-03T15:26:26.405Z"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"chapters": [
|
|
21
|
+
{
|
|
22
|
+
"id": "chap_o7p5erb2yqym",
|
|
23
|
+
"title": "Work",
|
|
24
|
+
"agentName": "default",
|
|
25
|
+
"startedAt": "2026-01-03T15:27:40.321Z",
|
|
26
|
+
"events": [
|
|
27
|
+
{
|
|
28
|
+
"ts": 1767454060322,
|
|
29
|
+
"type": "decision",
|
|
30
|
+
"content": "Pausing agent-relay-442 per PM request: Pausing agent-relay-442 per PM request",
|
|
31
|
+
"raw": {
|
|
32
|
+
"question": "Pausing agent-relay-442 per PM request",
|
|
33
|
+
"chosen": "Pausing agent-relay-442 per PM request",
|
|
34
|
+
"alternatives": [],
|
|
35
|
+
"reasoning": "Priority change: continuity message saving bug needs investigation first"
|
|
36
|
+
},
|
|
37
|
+
"significance": "high"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"ts": 1767454341255,
|
|
41
|
+
"type": "decision",
|
|
42
|
+
"content": "Awaiting approval before implementing continuity fix: Awaiting approval before implementing continuity fix",
|
|
43
|
+
"raw": {
|
|
44
|
+
"question": "Awaiting approval before implementing continuity fix",
|
|
45
|
+
"chosen": "Awaiting approval before implementing continuity fix",
|
|
46
|
+
"alternatives": [],
|
|
47
|
+
"reasoning": "Found root cause (placeholder text saved as real data), proposed fix ready, waiting for Dashboard approval per PM"
|
|
48
|
+
},
|
|
49
|
+
"significance": "high"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"ts": 1767454362407,
|
|
53
|
+
"type": "decision",
|
|
54
|
+
"content": "Implementing 3-part continuity fix: Implementing 3-part continuity fix",
|
|
55
|
+
"raw": {
|
|
56
|
+
"question": "Implementing 3-part continuity fix",
|
|
57
|
+
"chosen": "Implementing 3-part continuity fix",
|
|
58
|
+
"alternatives": [],
|
|
59
|
+
"reasoning": "Approved by PM/Dashboard: (1) save validation, (2) clean corrupt files, (3) load filtering"
|
|
60
|
+
},
|
|
61
|
+
"significance": "high"
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
"endedAt": "2026-01-03T15:37:00.890Z"
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"commits": [],
|
|
68
|
+
"filesChanged": [],
|
|
69
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
70
|
+
"tags": [],
|
|
71
|
+
"completedAt": "2026-01-03T15:37:00.890Z",
|
|
72
|
+
"retrospective": {
|
|
73
|
+
"summary": "Wired up TrajectoryViewer with UX improvements: fullscreen slide-over, removed redundant FAB, blue button color",
|
|
74
|
+
"approach": "Standard approach",
|
|
75
|
+
"confidence": 0.85
|
|
76
|
+
}
|
|
77
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
# Trajectory: Test coverage for Vault and billing modules
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** agent-relay-442
|
|
5
|
+
> **Confidence:** 85%
|
|
6
|
+
> **Started:** January 3, 2026 at 04:26 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 04:37 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Wired up TrajectoryViewer with UX improvements: fullscreen slide-over, removed redundant FAB, blue button color
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Pausing agent-relay-442 per PM request
|
|
22
|
+
- **Chose:** Pausing agent-relay-442 per PM request
|
|
23
|
+
- **Reasoning:** Priority change: continuity message saving bug needs investigation first
|
|
24
|
+
|
|
25
|
+
### Awaiting approval before implementing continuity fix
|
|
26
|
+
- **Chose:** Awaiting approval before implementing continuity fix
|
|
27
|
+
- **Reasoning:** Found root cause (placeholder text saved as real data), proposed fix ready, waiting for Dashboard approval per PM
|
|
28
|
+
|
|
29
|
+
### Implementing 3-part continuity fix
|
|
30
|
+
- **Chose:** Implementing 3-part continuity fix
|
|
31
|
+
- **Reasoning:** Approved by PM/Dashboard: (1) save validation, (2) clean corrupt files, (3) load filtering
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## Chapters
|
|
36
|
+
|
|
37
|
+
### 1. Work
|
|
38
|
+
*Agent: default*
|
|
39
|
+
|
|
40
|
+
- Pausing agent-relay-442 per PM request: Pausing agent-relay-442 per PM request
|
|
41
|
+
- Awaiting approval before implementing continuity fix: Awaiting approval before implementing continuity fix
|
|
42
|
+
- Implementing 3-part continuity fix: Implementing 3-part continuity fix
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_qft54mi7nfor",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Remove any type casts from cloud server",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-439"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-03T13:48:58.864Z",
|
|
13
|
+
"agents": [
|
|
14
|
+
{
|
|
15
|
+
"name": "Backend",
|
|
16
|
+
"role": "lead",
|
|
17
|
+
"joinedAt": "2026-01-03T13:48:58.865Z"
|
|
18
|
+
}
|
|
19
|
+
],
|
|
20
|
+
"chapters": [
|
|
21
|
+
{
|
|
22
|
+
"id": "chap_2byzjek5ajbh",
|
|
23
|
+
"title": "Work",
|
|
24
|
+
"agentName": "default",
|
|
25
|
+
"startedAt": "2026-01-03T13:50:22.190Z",
|
|
26
|
+
"events": [
|
|
27
|
+
{
|
|
28
|
+
"ts": 1767448222191,
|
|
29
|
+
"type": "decision",
|
|
30
|
+
"content": "Used proper types instead of any casts: Used proper types instead of any casts",
|
|
31
|
+
"raw": {
|
|
32
|
+
"question": "Used proper types instead of any casts",
|
|
33
|
+
"chosen": "Used proper types instead of any casts",
|
|
34
|
+
"alternatives": [],
|
|
35
|
+
"reasoning": "RedisClientType for redis client, extended SessionData interface for userId"
|
|
36
|
+
},
|
|
37
|
+
"significance": "high"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"endedAt": "2026-01-03T13:50:23.677Z"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"commits": [],
|
|
44
|
+
"filesChanged": [],
|
|
45
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
46
|
+
"tags": [],
|
|
47
|
+
"completedAt": "2026-01-03T13:50:23.677Z",
|
|
48
|
+
"retrospective": {
|
|
49
|
+
"summary": "Removed 2 any casts from cloud/server.ts: RedisClientType for redis client, extended SessionData for userId",
|
|
50
|
+
"approach": "Standard approach",
|
|
51
|
+
"confidence": 0.95
|
|
52
|
+
}
|
|
53
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Trajectory: Remove any type casts from cloud server
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** agent-relay-439
|
|
5
|
+
> **Confidence:** 95%
|
|
6
|
+
> **Started:** January 3, 2026 at 02:48 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 02:50 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Removed 2 any casts from cloud/server.ts: RedisClientType for redis client, extended SessionData for userId
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Used proper types instead of any casts
|
|
22
|
+
- **Chose:** Used proper types instead of any casts
|
|
23
|
+
- **Reasoning:** RedisClientType for redis client, extended SessionData interface for userId
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Chapters
|
|
28
|
+
|
|
29
|
+
### 1. Work
|
|
30
|
+
*Agent: default*
|
|
31
|
+
|
|
32
|
+
- Used proper types instead of any casts: Used proper types instead of any casts
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_qx9uhf8whhxo",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Comprehensive codebase review and hardening",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "codebase-review"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-02T22:19:15.313Z",
|
|
13
|
+
"agents": [],
|
|
14
|
+
"chapters": [
|
|
15
|
+
{
|
|
16
|
+
"id": "chap_nnr0ze4a3v49",
|
|
17
|
+
"title": "Work",
|
|
18
|
+
"agentName": "default",
|
|
19
|
+
"startedAt": "2026-01-02T22:23:45.011Z",
|
|
20
|
+
"events": [
|
|
21
|
+
{
|
|
22
|
+
"ts": 1767392625011,
|
|
23
|
+
"type": "decision",
|
|
24
|
+
"content": "Removed any cast in cross-machine routing: Removed any cast in cross-machine routing",
|
|
25
|
+
"raw": {
|
|
26
|
+
"question": "Removed any cast in cross-machine routing",
|
|
27
|
+
"chosen": "Removed any cast in cross-machine routing",
|
|
28
|
+
"alternatives": [],
|
|
29
|
+
"reasoning": "Typed envelope as SendEnvelope and passed Connection directly to router.route for safer cross-machine messages"
|
|
30
|
+
},
|
|
31
|
+
"significance": "high"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ts": 1767392821786,
|
|
35
|
+
"type": "decision",
|
|
36
|
+
"content": "Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping: Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping",
|
|
37
|
+
"raw": {
|
|
38
|
+
"question": "Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping",
|
|
39
|
+
"chosen": "Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping",
|
|
40
|
+
"alternatives": [],
|
|
41
|
+
"reasoning": "The code only escapes double quotes but not dollar signs, backticks, or other shell metacharacters. The escapeForShell utility exists in bridge/utils.ts but isn't used here."
|
|
42
|
+
},
|
|
43
|
+
"significance": "high"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"ts": 1767392930903,
|
|
47
|
+
"type": "decision",
|
|
48
|
+
"content": "Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components: Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components",
|
|
49
|
+
"raw": {
|
|
50
|
+
"question": "Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components",
|
|
51
|
+
"chosen": "Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components",
|
|
52
|
+
"alternatives": [],
|
|
53
|
+
"reasoning": "Reviewed ~314K lines across 21 modules. Found 1 new security issue (shell escaping), confirmed good patterns for vault encryption, webhook verification, CSRF, rate limiting. TypeScript strict mode enabled. Test coverage at ~18% by file count."
|
|
54
|
+
},
|
|
55
|
+
"significance": "high"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"ts": 1767392946814,
|
|
59
|
+
"type": "decision",
|
|
60
|
+
"content": "Tightened daemon API CORS: Tightened daemon API CORS",
|
|
61
|
+
"raw": {
|
|
62
|
+
"question": "Tightened daemon API CORS",
|
|
63
|
+
"chosen": "Tightened daemon API CORS",
|
|
64
|
+
"alternatives": [],
|
|
65
|
+
"reasoning": "Use explicit allowlist (config/env), allow same-origin, block disallowed origins with 403 and Vary header"
|
|
66
|
+
},
|
|
67
|
+
"significance": "high"
|
|
68
|
+
}
|
|
69
|
+
],
|
|
70
|
+
"endedAt": "2026-01-02T22:29:20.753Z"
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"commits": [],
|
|
74
|
+
"filesChanged": [],
|
|
75
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
76
|
+
"tags": [],
|
|
77
|
+
"completedAt": "2026-01-02T22:29:20.753Z",
|
|
78
|
+
"retrospective": {
|
|
79
|
+
"summary": "Comprehensive codebase review completed. Found 1 new security issue (agent-relay-435: shell escaping). Confirmed good security patterns for vault encryption, webhook verification, CSRF, rate limiting. Test coverage at 18%. TypeScript strict mode enabled. React dashboard follows best practices.",
|
|
80
|
+
"approach": "Standard approach",
|
|
81
|
+
"confidence": 0.85
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Trajectory: Comprehensive codebase review and hardening
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** codebase-review
|
|
5
|
+
> **Confidence:** 85%
|
|
6
|
+
> **Started:** January 2, 2026 at 11:19 PM
|
|
7
|
+
> **Completed:** January 2, 2026 at 11:29 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Comprehensive codebase review completed. Found 1 new security issue (agent-relay-435: shell escaping). Confirmed good security patterns for vault encryption, webhook verification, CSRF, rate limiting. Test coverage at 18%. TypeScript strict mode enabled. React dashboard follows best practices.
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Removed any cast in cross-machine routing
|
|
22
|
+
- **Chose:** Removed any cast in cross-machine routing
|
|
23
|
+
- **Reasoning:** Typed envelope as SendEnvelope and passed Connection directly to router.route for safer cross-machine messages
|
|
24
|
+
|
|
25
|
+
### Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping
|
|
26
|
+
- **Chose:** Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping
|
|
27
|
+
- **Reasoning:** The code only escapes double quotes but not dollar signs, backticks, or other shell metacharacters. The escapeForShell utility exists in bridge/utils.ts but isn't used here.
|
|
28
|
+
|
|
29
|
+
### Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components
|
|
30
|
+
- **Chose:** Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components
|
|
31
|
+
- **Reasoning:** Reviewed ~314K lines across 21 modules. Found 1 new security issue (shell escaping), confirmed good patterns for vault encryption, webhook verification, CSRF, rate limiting. TypeScript strict mode enabled. Test coverage at ~18% by file count.
|
|
32
|
+
|
|
33
|
+
### Tightened daemon API CORS
|
|
34
|
+
- **Chose:** Tightened daemon API CORS
|
|
35
|
+
- **Reasoning:** Use explicit allowlist (config/env), allow same-origin, block disallowed origins with 403 and Vary header
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## Chapters
|
|
40
|
+
|
|
41
|
+
### 1. Work
|
|
42
|
+
*Agent: default*
|
|
43
|
+
|
|
44
|
+
- Removed any cast in cross-machine routing: Removed any cast in cross-machine routing
|
|
45
|
+
- Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping: Found shell injection risk in tmux-wrapper.ts env var handling at line 443-444 - uses incomplete escaping
|
|
46
|
+
- Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components: Completed comprehensive codebase review covering security, error handling, TypeScript, protocol, and React components
|
|
47
|
+
- Tightened daemon API CORS: Tightened daemon API CORS
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_rd9toccj18a0",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Replace console.log with structured logger in router.ts",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-415"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-03T11:56:09.607Z",
|
|
13
|
+
"agents": [],
|
|
14
|
+
"chapters": [
|
|
15
|
+
{
|
|
16
|
+
"id": "chap_voaln61dr5zu",
|
|
17
|
+
"title": "Work",
|
|
18
|
+
"agentName": "default",
|
|
19
|
+
"startedAt": "2026-01-03T11:56:48.099Z",
|
|
20
|
+
"events": [
|
|
21
|
+
{
|
|
22
|
+
"ts": 1767441408100,
|
|
23
|
+
"type": "decision",
|
|
24
|
+
"content": "Using routerLog from utils/logger.ts - already has component prefix built-in: Using routerLog from utils/logger.ts - already has component prefix built-in",
|
|
25
|
+
"raw": {
|
|
26
|
+
"question": "Using routerLog from utils/logger.ts - already has component prefix built-in",
|
|
27
|
+
"chosen": "Using routerLog from utils/logger.ts - already has component prefix built-in",
|
|
28
|
+
"alternatives": [],
|
|
29
|
+
"reasoning": "Logger already exists with routerLog pre-created, provides structured JSON output and configurable levels"
|
|
30
|
+
},
|
|
31
|
+
"significance": "high"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ts": 1767441676006,
|
|
35
|
+
"type": "decision",
|
|
36
|
+
"content": "Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity: Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity",
|
|
37
|
+
"raw": {
|
|
38
|
+
"question": "Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity",
|
|
39
|
+
"chosen": "Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity",
|
|
40
|
+
"alternatives": [],
|
|
41
|
+
"reasoning": "Used appropriate log levels: debug for routine operations, info for significant events, warn for recoverable issues, error for failures"
|
|
42
|
+
},
|
|
43
|
+
"significance": "high"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"endedAt": "2026-01-03T12:01:25.798Z"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"commits": [],
|
|
50
|
+
"filesChanged": [],
|
|
51
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
52
|
+
"tags": [],
|
|
53
|
+
"completedAt": "2026-01-03T12:01:25.798Z",
|
|
54
|
+
"retrospective": {
|
|
55
|
+
"summary": "Replaced all 30 console.log/error/warn calls in router.ts with structured routerLog from utils/logger.ts. Used appropriate log levels (debug/info/warn/error) based on message severity.",
|
|
56
|
+
"approach": "Standard approach",
|
|
57
|
+
"confidence": 0.95
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Trajectory: Replace console.log with structured logger in router.ts
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** agent-relay-415
|
|
5
|
+
> **Confidence:** 95%
|
|
6
|
+
> **Started:** January 3, 2026 at 12:56 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 01:01 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Replaced all 30 console.log/error/warn calls in router.ts with structured routerLog from utils/logger.ts. Used appropriate log levels (debug/info/warn/error) based on message severity.
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Using routerLog from utils/logger.ts - already has component prefix built-in
|
|
22
|
+
- **Chose:** Using routerLog from utils/logger.ts - already has component prefix built-in
|
|
23
|
+
- **Reasoning:** Logger already exists with routerLog pre-created, provides structured JSON output and configurable levels
|
|
24
|
+
|
|
25
|
+
### Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity
|
|
26
|
+
- **Chose:** Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity
|
|
27
|
+
- **Reasoning:** Used appropriate log levels: debug for routine operations, info for significant events, warn for recoverable issues, error for failures
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Chapters
|
|
32
|
+
|
|
33
|
+
### 1. Work
|
|
34
|
+
*Agent: default*
|
|
35
|
+
|
|
36
|
+
- Using routerLog from utils/logger.ts - already has component prefix built-in: Using routerLog from utils/logger.ts - already has component prefix built-in
|
|
37
|
+
- Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity: Replaced 30 console calls with routerLog methods - info/debug/warn/error based on severity
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_rt4fiw3ecp50",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Fix trajectory agents array population",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "agent-relay-452"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "abandoned",
|
|
12
|
+
"startedAt": "2026-01-03T13:30:08.415Z",
|
|
13
|
+
"agents": [],
|
|
14
|
+
"chapters": [
|
|
15
|
+
{
|
|
16
|
+
"id": "chap_r4oq003sm2ke",
|
|
17
|
+
"title": "Work",
|
|
18
|
+
"agentName": "default",
|
|
19
|
+
"startedAt": "2026-01-03T13:30:15.567Z",
|
|
20
|
+
"events": [
|
|
21
|
+
{
|
|
22
|
+
"ts": 1767447015568,
|
|
23
|
+
"type": "decision",
|
|
24
|
+
"content": "Abandoned stale traj_9921cuhel0pj and started new trajectory for 452: Abandoned stale traj_9921cuhel0pj and started new trajectory for 452",
|
|
25
|
+
"raw": {
|
|
26
|
+
"question": "Abandoned stale traj_9921cuhel0pj and started new trajectory for 452",
|
|
27
|
+
"chosen": "Abandoned stale traj_9921cuhel0pj and started new trajectory for 452",
|
|
28
|
+
"alternatives": [],
|
|
29
|
+
"reasoning": ""
|
|
30
|
+
},
|
|
31
|
+
"significance": "high"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ts": 1767447082829,
|
|
35
|
+
"type": "note",
|
|
36
|
+
"content": "Abandoned: Starting new task agent-relay-327",
|
|
37
|
+
"significance": "high"
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
"endedAt": "2026-01-03T13:31:22.829Z"
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"commits": [],
|
|
44
|
+
"filesChanged": [],
|
|
45
|
+
"projectId": "/Users/khaliqgant/Projects/agent-workforce/relay",
|
|
46
|
+
"tags": [],
|
|
47
|
+
"completedAt": "2026-01-03T13:31:22.829Z"
|
|
48
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# Trajectory: Fix trajectory agents array population
|
|
2
|
+
|
|
3
|
+
> **Status:** ❌ Abandoned
|
|
4
|
+
> **Task:** agent-relay-452
|
|
5
|
+
> **Started:** January 3, 2026 at 02:30 PM
|
|
6
|
+
> **Completed:** January 3, 2026 at 02:31 PM
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Chapters
|
|
11
|
+
|
|
12
|
+
### 1. Work
|
|
13
|
+
*Agent: default*
|
|
14
|
+
|
|
15
|
+
- Abandoned stale traj_9921cuhel0pj and started new trajectory for 452: Abandoned stale traj_9921cuhel0pj and started new trajectory for 452
|
|
16
|
+
- Abandoned: Starting new task agent-relay-327
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "traj_st8j35b0hrlc",
|
|
3
|
+
"version": 1,
|
|
4
|
+
"task": {
|
|
5
|
+
"title": "Fix cloud provisioning for GitHub cloning and agent credentials",
|
|
6
|
+
"source": {
|
|
7
|
+
"system": "plain",
|
|
8
|
+
"id": "cloud-e2e-fix"
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"status": "completed",
|
|
12
|
+
"startedAt": "2026-01-03T19:04:57.338Z",
|
|
13
|
+
"agents": [],
|
|
14
|
+
"chapters": [
|
|
15
|
+
{
|
|
16
|
+
"id": "chap_4tafbyx9rbsy",
|
|
17
|
+
"title": "Work",
|
|
18
|
+
"agentName": "default",
|
|
19
|
+
"startedAt": "2026-01-03T19:07:03.673Z",
|
|
20
|
+
"events": [
|
|
21
|
+
{
|
|
22
|
+
"ts": 1767467223674,
|
|
23
|
+
"type": "decision",
|
|
24
|
+
"content": "Get GitHub token from Nango instead of vault: Get GitHub token from Nango instead of vault",
|
|
25
|
+
"raw": {
|
|
26
|
+
"question": "Get GitHub token from Nango instead of vault",
|
|
27
|
+
"chosen": "Get GitHub token from Nango instead of vault",
|
|
28
|
+
"alternatives": [],
|
|
29
|
+
"reasoning": "GitHub App tokens come from Nango and expire hourly. Changed provisioner to call getGithubAppTokenForUser() which finds user's Nango connection and fetches fresh token."
|
|
30
|
+
},
|
|
31
|
+
"significance": "high"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"ts": 1767467301488,
|
|
35
|
+
"type": "decision",
|
|
36
|
+
"content": "Create CLI credential files from ENV vars in workspace entrypoint: Create CLI credential files from ENV vars in workspace entrypoint",
|
|
37
|
+
"raw": {
|
|
38
|
+
"question": "Create CLI credential files from ENV vars in workspace entrypoint",
|
|
39
|
+
"chosen": "Create CLI credential files from ENV vars in workspace entrypoint",
|
|
40
|
+
"alternatives": [],
|
|
41
|
+
"reasoning": "Claude CLI expects ~/.claude/credentials.json, Codex expects ~/.codex/credentials.json. Workspace entrypoint now creates these from ANTHROPIC_TOKEN, OPENAI_TOKEN, GOOGLE_TOKEN ENV vars passed by provisioner."
|
|
42
|
+
},
|
|
43
|
+
"significance": "high"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"endedAt": "2026-01-03T19:09:05.597Z"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"commits": [],
|
|
50
|
+
"filesChanged": [],
|
|
51
|
+
"projectId": "/home/user/relay",
|
|
52
|
+
"tags": [],
|
|
53
|
+
"completedAt": "2026-01-03T19:09:05.597Z",
|
|
54
|
+
"retrospective": {
|
|
55
|
+
"summary": "Fixed GitHub token to use Nango (fresh installation tokens) and added credential file creation in workspace entrypoint for Claude/Codex/Gemini",
|
|
56
|
+
"approach": "Standard approach",
|
|
57
|
+
"confidence": 0.85
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Trajectory: Fix cloud provisioning for GitHub cloning and agent credentials
|
|
2
|
+
|
|
3
|
+
> **Status:** ✅ Completed
|
|
4
|
+
> **Task:** cloud-e2e-fix
|
|
5
|
+
> **Confidence:** 85%
|
|
6
|
+
> **Started:** January 3, 2026 at 07:04 PM
|
|
7
|
+
> **Completed:** January 3, 2026 at 07:09 PM
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Summary
|
|
12
|
+
|
|
13
|
+
Fixed GitHub token to use Nango (fresh installation tokens) and added credential file creation in workspace entrypoint for Claude/Codex/Gemini
|
|
14
|
+
|
|
15
|
+
**Approach:** Standard approach
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
## Key Decisions
|
|
20
|
+
|
|
21
|
+
### Get GitHub token from Nango instead of vault
|
|
22
|
+
- **Chose:** Get GitHub token from Nango instead of vault
|
|
23
|
+
- **Reasoning:** GitHub App tokens come from Nango and expire hourly. Changed provisioner to call getGithubAppTokenForUser() which finds user's Nango connection and fetches fresh token.
|
|
24
|
+
|
|
25
|
+
### Create CLI credential files from ENV vars in workspace entrypoint
|
|
26
|
+
- **Chose:** Create CLI credential files from ENV vars in workspace entrypoint
|
|
27
|
+
- **Reasoning:** Claude CLI expects ~/.claude/credentials.json, Codex expects ~/.codex/credentials.json. Workspace entrypoint now creates these from ANTHROPIC_TOKEN, OPENAI_TOKEN, GOOGLE_TOKEN ENV vars passed by provisioner.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Chapters
|
|
32
|
+
|
|
33
|
+
### 1. Work
|
|
34
|
+
*Agent: default*
|
|
35
|
+
|
|
36
|
+
- Get GitHub token from Nango instead of vault: Get GitHub token from Nango instead of vault
|
|
37
|
+
- Create CLI credential files from ENV vars in workspace entrypoint: Create CLI credential files from ENV vars in workspace entrypoint
|