Add ACP-based local investigations and shared evidence #419MergedKrzysztof-Cieslakmerged 12 commits intomainfromrefs/pull/419/headConversationFiles changed92 files changed+4674-179StackedSplit.agents/skills/testing-pr-previews/SKILL.md+44 −15AGENTS.md+14 −12Dockerfile+3 −0README.md+7 −2apps/connector/package.json+13 −0apps/connector/src/acp.test.ts+92 −0apps/connector/src/acp.ts+107 −0apps/connector/src/bridge.ts+22 −0apps/connector/src/main.ts+215 −0apps/connector/src/mcp.ts+25 −0apps/connector/src/testing/fake-agent.ts+66 −0apps/connector/src/workspace.test.ts+42 −0apps/connector/src/workspace.ts+96 −0apps/connector/tsconfig.json+5 −0apps/server/package.json+1 −0apps/server/src/agent/experiment-tools.test.ts+33 −0apps/server/src/agent/experiment-tools.ts+68 −0apps/server/src/agent/job-scope.ts+9 −0apps/server/src/agent/planner.ts+8 −0apps/server/src/agent/repository.test.ts+36 −0apps/server/src/agent/repository.ts+20 −3apps/server/src/agent/tools.test.ts+3 −0apps/server/src/agent/tools.ts+4 −0apps/server/src/chat/service.ts+2 −0apps/server/src/experiments/connections.ts+168 −0apps/server/src/experiments/export.test.ts+10 −0apps/server/src/experiments/export.ts+16 −0apps/server/src/experiments/mcp-schema.ts+24 −0apps/server/src/experiments/routes.test.ts+157 −0apps/server/src/experiments/routes.ts+491 −0apps/server/src/experiments/service.test.ts+85 −0apps/server/src/experiments/service.ts+232 −0apps/server/src/harness/tool-names.ts+8 −2apps/server/src/main.ts+125 −0apps/server/src/plan/experiment.test.ts+47 −0apps/server/src/plan/projections.ts+1 −1apps/server/src/plan/room.ts+25 −0apps/server/src/plan/service.ts+27 −0apps/server/src/storage/contract.ts+2 −0apps/server/src/storage/experiment-contract.ts+31 −0apps/server/src/storage/experiments.ts+10 −0apps/server/src/storage/memory/adapter.ts+6 −0apps/server/src/storage/memory/experiments.ts+48 −0apps/server/src/storage/port.ts+2 −0apps/server/src/storage/postgres/adapter.test.ts+1 −0apps/server/src/storage/postgres/adapter.ts+6 −0apps/server/src/storage/postgres/experiments.ts+61 −0apps/server/src/storage/postgres/migrations.ts+3 −0apps/server/src/storage/postgres/migrations/017_experiments.sql+10 −0apps/web/package.json+1 −0apps/web/src/app.tsx+8 −0apps/web/src/experiments/api.ts+15 −0apps/web/src/experiments/evidence.tsx+157 −0apps/web/src/experiments/pairing.tsx+89 −0apps/web/src/experiments/panel.tsx+223 −0apps/web/src/experiments/request-id.ts+14 −0apps/web/src/experiments/store.ts+119 −0apps/web/src/room-workspace.tsx+35 −7bun.lock+44 −8docs/architecture.md+10 −0docs/hosted-agent.md+2 −2docs/local-experiments.md+89 −0docs/preview-testing.md+84 −31e2e/connector.e2e.ts+83 −0e2e/experiments.e2e.ts+117 −0opencode.json+49 −70opencode.preview.json+0 −24package.json+1 −0packages/dialect/src/dialect.ts+10 −0packages/dialect/src/index.ts+1 −0packages/dialect/src/nodes/experiment.ts+122 −0packages/dialect/src/registry.ts+16 −0packages/editor/package.json+1 −0packages/editor/src/decisions.tsx+7 −1packages/editor/src/plan-editor.tsx+4 −0packages/editor/src/widget-options.ts+12 −0packages/editor/src/widgets/experiment.tsx+97 −0packages/editor/src/widgets/index.ts+3 −0packages/experiment/package.json+17 −0packages/experiment/src/env.d.ts+1 −0packages/experiment/src/fixtures.ts+68 −0packages/experiment/src/index.test.ts+62 −0packages/experiment/src/index.ts+239 −0packages/experiment/src/react.tsx+130 −0packages/experiment/src/records.ts+80 −0packages/experiment/src/selection.test.ts+45 −0packages/experiment/src/selection.ts+52 −0packages/experiment/tsconfig.json+5 −0packages/protocol/experiment.d.ts+4 −0packages/protocol/index.d.ts+2 −0scripts/design-contract/exceptions/dynamic-editor.json+1 −1skills/local-investigations/SKILL.md+24 −0