Skip to content

refactor(agent): complete layered runtime migration#1952

Merged
zerob13 merged 58 commits into
devfrom
codex/agent-system-layered-runtime-docs
Jul 13, 2026
Merged

refactor(agent): complete layered runtime migration#1952
zerob13 merged 58 commits into
devfrom
codex/agent-system-layered-runtime-docs

Conversation

@zerob13

@zerob13 zerob13 commented Jul 12, 2026

Copy link
Copy Markdown
Collaborator

Context

The main-process agent runtime mixed catalog management, app-session storage, DeepChat session state, ACP execution, provider/tool loop control, Tape writes, and Memory orchestration across Presenter classes and legacy compatibility abstractions. That made ownership unclear and allowed invalid agent kinds to enter ambiguous fallback paths.

This PR completes the full ASLR-000..092 layered-runtime plan. It preserves existing product behavior and storage contracts while making manager, instance, loop, ACP, Tape, observability, and Memory boundaries explicit and guarded.

Design and final evidence: docs/architecture/agent-system-layered-runtime/.

Before / after

Before

  • DeepChat and ACP were combined behind IAgentImplementation and reflection-based legacy backends.
  • Agent-kind routing relied on mixed DTO fields and could fall back to DeepChat for invalid inputs.
  • Presenter-level maps mixed per-session state, turn state, Memory orchestration, prompt/tool resources, and persistence adapters.
  • Provider/tool round control lived inside Presenter orchestration without a fixed awaited lifecycle.
  • ACP catalog, process, protocol, persistence, and compatibility-provider concerns were split across owners.
  • Tool facts used a transitional MessageStore snapshot path instead of the stable Tape recorder.
  • Current architecture docs and guards still described or permitted retired paths.

After

AgentSessionPresenter (route/application façade)
  -> AgentManager (descriptor.kind router)
       -> typed DeepChat backend
            -> DeepChatAgentRuntime
                 -> DeepChatAgentInstance
                      -> LoopRun + DeepChatLoopEngine
                           -> provider/tool/output/Tape/context ports
                           -> MemoryPromptContributor / MemoryIngestionObserver
       -> direct ACP backend
            -> AcpAgentRuntime
                 -> AcpAgentInstance / ACP protocol loop
  • AgentManager performs executable descriptor lookup and explicit kind routing only.
  • App-session data lives behind AppSessionService; DeepChat and ACP repositories have separate ownership.
  • DeepChat has one lazy hydrated instance per active app session and one per-turn LoopRun.
  • DeepChatLoopEngine owns fixed lifecycle points: provider consumption, output update, tool execution, awaited round persistence, and terminal settlement.
  • Direct kind=acp sessions use AcpAgentRuntime/AcpAgentInstance and never enter the DeepChat loop.
  • kind=deepchat + providerId=acp remains supported through the ACP provider compatibility adapter.
  • Tape tool facts use TapeRecorder.appendToolFact, preserving message-before-Tape order, call-before-result order, provenance, idempotency, pending exclusion, and fail-open behavior.
  • MemoryRuntimeCoordinator is the sole runtime owner of extraction chains/epochs/cooldown/access dedupe/cursor orchestration; prompt contribution and ingestion observation are explicit lifecycle ports.
  • Causal observation is a read-only join over existing Tape/message-status/trace data; no event store or schema was added.
  • IAgentImplementation, the reflection legacy backend, fake registry resolution, manager-level legacy/direct runtimeKind, and src/main/lib/agentRuntime are retired.

Detailed scope

Control plane and shared data — ASLR-003, 010..034

  • Added machine-readable architecture baseline and characterization coverage.
  • Added tolerant catalog decoding and strict executable decoding.
  • Added discriminated DeepChat/ACP descriptors and boundary-only legacy DTO mapping.
  • Split DeepChat/ACP repositories, generic catalog notifications, and ACP refresh ownership.
  • Added explicit app-session and ACP-remote-session ID boundaries.
  • Routed session, remote, cron, transfer, subagent, and generation-control consumers through typed manager ports.
  • Consolidated ACP catalog/client/launch/runtime/process/session/protocol ownership under src/main/agent/acp.
  • Moved former lib/agentRuntime helpers to explicit process, workspace, storage, resource, and tool owners.

DeepChat instance — ASLR-040..046

  • Added lazy DeepChatAgentRuntime.getOrHydrate() and non-creating getHydrated() access.
  • Moved identity/config/status/readiness, cancellation and active-generation state, pending/steer coordination, ordered interactions, deferred-tool cancellation, runtime skills, prompt/tool snapshots, compaction projection, and stable Memory session handles into instance-scoped ownership.
  • Added stale-instance and replacement-instance fencing for async completion and cleanup.

Loop engineering — ASLR-050..057

  • Added LoopRun and narrow provider, tool, output, Tape, context, prompt, and observer ports.
  • Extracted DeepChatLoopEngine with awaited lifecycle callbacks.
  • Preserved request-sequence versus outer-round semantics, overflow recovery, strict retry, stream/output ordering, and late active-generation registration.
  • Moved prompt assembly, compaction/context preparation, tool normalization, ordered permission/question/skill-draft outcomes, and non-blocking hook notification into explicit lifecycle seams.
  • Intermediate interactions remain paused; the final item creates exactly one fresh resume run.

Direct ACP backend — ASLR-070..073

  • Added direct ACP runtime/instance routing for regular and subagent sessions.
  • Preserved message, Tape, event, trace, workdir, mode/config/commands, cancel, permission, restart, and subagent parity.
  • Removed migrated ACP-only methods from generic LLM provider contracts while retaining the documented DeepChat + ACP-provider compatibility path.

Observability and Memory — ASLR-080..081, 059..062

  • Added causal observation slices without new writes or privacy exposure.
  • Extracted the sole MemoryRuntimeCoordinator owner.
  • Added MemoryPromptContributor and MemoryIngestionObserver with explicit MEM-13/MEM-14 outcome contracts.
  • Added two-phase shutdown fencing: stop admission, fence epochs, dispose provider-bound work, bounded drain, then close SQLite.
  • Preserved Memory schema, vector sidecar, projection version, trigger policy, cursor behavior, privacy, retrieval quality, and performance bounds.

Retirement and convergence — ASLR-090..092

  • Removed the unified mega-interface, reflection backend, legacy runtime labels, positional constructor fallback, and transitional Tape snapshot adapter.
  • Moved ACP runtime construction to the composition root while retaining Presenter route/state/projection façades.
  • Updated current architecture, flow, tool, session, ACP, and Memory docs.
  • Added AST-based guards for retired agent surfaces, internal kind alias fallback, manager runtime labels, DeepChat loop boundaries, Memory ownership, and causal read-only behavior.
  • Regenerated deterministic schema-v2 architecture baselines and all generated reports.
  • Added bounded Electron E2E teardown so native startup alerts cannot hide the original failure behind a 300-second close timeout.
  • Included required build-time provider database, ACP registry, and generated icon refreshes.

Compatibility and expected impact

  • No SQLite schema, migration, stored-row-shape, Tape entry-kind, Memory projection-version, or DuckDB sidecar change.
  • No unapproved shared route/event contract change.
  • No renderer UX change is intended.
  • Invalid, disabled, missing, malformed, or kind-mismatched executable agents now fail explicitly instead of falling back to DeepChat.
  • Existing DeepChat + ACP-provider sessions remain supported.
  • Existing session CRUD, transfer, subagent, remote, cron, import/export/search/dashboard, queue/steer, permission/question, retry/regenerate, compaction, and Memory behavior is preserved.
  • Provider/ACP/icon generated files changed because pnpm run build refreshes tracked upstream data by repository policy.

Review risks

  1. Routing and lifecycle: verify descriptor-kind routing, session cleanup, stale-instance fences, cancellation timing, and final-item-only resume.
  2. Loop order: verify message/output/Tape/terminal ordering and no replay on thrown or paused outcomes.
  3. ACP split: verify direct ACP never imports/enters the DeepChat loop while the ACP-provider compatibility path remains intact.
  4. Memory: verify prompt/access/extraction/cursor/fencing behavior and no late write after shutdown/delete.
  5. Generated data: review provider/ACP/icon refresh separately from runtime source changes.
  6. E2E teardown: graceful close remains first; force termination occurs only after a bounded timeout.

Validation performed

All required local gates passed:

  • pnpm run format
  • pnpm run i18n
  • pnpm run lint
  • pnpm run typecheck
  • pnpm run lint:architecture
  • pnpm run lint:agent-cleanup
  • git diff --check
  • Architecture guard/baseline: 2 files / 24 tests
  • Main: 354 files / 3856 tests
  • Renderer: 165 files / 1244 tests
  • Portable Memory: 43 files / 601 tests
  • Native Memory: 6 files / 151 tests
  • Memory retrieval eval: 7 tests; Recall@5 1.0, MRR@10 0.95, nDCG@10 0.9630929753571458
  • Memory performance: 6 files / 12 tests
  • pnpm run build
  • pnpm run e2e:smoke:ci: 2/2
  • Credential-free E2E 09-main-ipc-boundary, 17-acp-readonly-route, 26-deepchat-agent-crud: 3/3

Credential-required 02-chat-basic and 03-session-persistence were not configured and were not run.

Final contract checks:

  • origin/dev is an ancestor of the branch.
  • origin/dev...HEAD has no route/event diff.
  • Phase-9 pre-Memory to final route tree, event tree, SQLite table tree, and Memory DuckDB sidecar Git objects are unchanged.
  • DEEPCHAT_MEMORY_INGESTION_PROJECTION_VERSION remains 1.
  • Final schema-v2 baseline: 24 expected files present, 14 owners declared once, 3 retired paths and 9 retired symbol/runtime patterns at zero, and all five forbidden DeepChat-loop dependency metrics at zero.

Recommended review and test plan

P0 — automated

  • Confirm GitHub build-check (x64) and memory-native-validation pass on the final commit.
  • Re-run full main and renderer suites if touching conflict resolution.
  • Review architecture guard fixtures and schema-v2 baseline invariants.
  • Review generated provider/ACP/icon data separately from source diffs.

P0 — DeepChat manual smoke

  • Create, reopen, rename, pin, transfer, and delete a DeepChat session.
  • Exercise normal, multi-round, tool, queue, steer, cancel, retry, regenerate, question, and permission flows.
  • Verify a multi-item interaction stays paused until the final response, then resumes exactly once.
  • Trigger manual and automatic compaction; verify state/events/history after retry, clear, and restart.
  • Enable MCP, skills, and Memory; verify prompt/tool refresh, recall, clear, and delete behavior.

P1 — ACP manual smoke

  • Create/restart a direct ACP session with workdir, mode/config/commands, permission, cancel, and MCP passthrough.
  • Exercise ACP-backed subagent merge/discard.
  • Verify malformed/missing/disabled ACP descriptors fail explicitly and never open DeepChat.
  • Verify a DeepChat descriptor using the ACP provider still follows the DeepChat loop compatibility path.

P2 — package/platform

  • Launch a packaged build on macOS and at least one Windows/Linux runner.
  • Verify background exec, shell environment, workspace search, and tool-output offload paths.
  • Re-run the credential-gated provider/chat persistence E2E checks in an integration environment.

Rollback

The migration is split into task-scoped commits. Manager/catalog, instance state, Loop Engine, direct ACP, observability, Memory ports, retirement, and final baseline changes can be reverted at task boundaries. No persistence rollback is required because the refactor adds no data migration.

@coderabbitai

coderabbitai Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Too many files!

This PR contains 422 files, which is 272 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

Upgrade to a paid plan to raise the limit.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1b67ff64-0883-433e-91e2-2bbc626e8a61

📥 Commits

Reviewing files that changed from the base of the PR and between cf6052f and a7787fc.

📒 Files selected for processing (422)
  • docs/ARCHITECTURE.md
  • docs/FLOWS.md
  • docs/README.md
  • docs/architecture/agent-memory-correctness-privacy-hardening/plan.md
  • docs/architecture/agent-memory-correctness-privacy-hardening/tasks.md
  • docs/architecture/agent-memory-performance-and-scale/plan.md
  • docs/architecture/agent-memory-performance-and-scale/spec.md
  • docs/architecture/agent-memory-performance-and-scale/tasks.md
  • docs/architecture/agent-memory-system/spec.md
  • docs/architecture/agent-memory-test-seams/plan.md
  • docs/architecture/agent-memory-test-seams/spec.md
  • docs/architecture/agent-memory-test-seams/tasks.md
  • docs/architecture/agent-runtime-presenter-split/plan.md
  • docs/architecture/agent-runtime-presenter-split/spec.md
  • docs/architecture/agent-runtime-presenter-split/state-map.md
  • docs/architecture/agent-runtime-presenter-split/tasks.md
  • docs/architecture/agent-system-layered-runtime/README.md
  • docs/architecture/agent-system-layered-runtime/migration-and-validation.md
  • docs/architecture/agent-system-layered-runtime/modules/acp-runtime.md
  • docs/architecture/agent-system-layered-runtime/modules/agent-manager.md
  • docs/architecture/agent-system-layered-runtime/modules/deepchat-agent-instance.md
  • docs/architecture/agent-system-layered-runtime/modules/loop-engine-and-lifecycle.md
  • docs/architecture/agent-system-layered-runtime/modules/memory-integration.md
  • docs/architecture/agent-system-layered-runtime/modules/permission-and-interactions.md
  • docs/architecture/agent-system-layered-runtime/modules/prompt-context-and-compaction.md
  • docs/architecture/agent-system-layered-runtime/modules/shared-data-and-io.md
  • docs/architecture/agent-system-layered-runtime/modules/tape-and-observability.md
  • docs/architecture/agent-system-layered-runtime/modules/tools-skills-and-mcp.md
  • docs/architecture/agent-system-layered-runtime/spec.md
  • docs/architecture/agent-system.md
  • docs/architecture/baselines/agent-system-layered-runtime-baseline.json
  • docs/architecture/baselines/archive-reference-report.md
  • docs/architecture/baselines/dependency-report.md
  • docs/architecture/baselines/main-kernel-boundary-baseline.md
  • docs/architecture/baselines/main-kernel-bridge-register.md
  • docs/architecture/baselines/main-kernel-migration-scoreboard.json
  • docs/architecture/baselines/main-kernel-migration-scoreboard.md
  • docs/architecture/baselines/zero-inbound-candidates.md
  • docs/architecture/deepchat-vs-acp-agents/README.md
  • docs/architecture/deepchat-vs-acp-agents/issues/P0-1-acp-permission-timeout.md
  • docs/architecture/deepchat-vs-acp-agents/spec.md
  • docs/architecture/memory-domain-contract-convergence/plan.md
  • docs/architecture/memory-domain-contract-convergence/spec.md
  • docs/architecture/memory-domain-contract-convergence/tasks.md
  • docs/architecture/memory-quality-gates-and-observability/metrics.md
  • docs/architecture/memory-quality-gates-and-observability/spec.md
  • docs/architecture/memory-quality-gates-and-observability/tasks.md
  • docs/architecture/perf-audit-review-hardening/plan.md
  • docs/architecture/perf-audit-review-hardening/spec.md
  • docs/architecture/perf-audit-review-hardening/tasks.md
  • docs/architecture/perf-fixes-from-audit/fix-F01-sqlite-startup-defer.md
  • docs/architecture/perf-fixes-from-audit/fix-F03-backfill-coordinator.md
  • docs/architecture/perf-fixes-from-audit/fix-F05-mcp-startup-timeout.md
  • docs/architecture/perf-fixes-from-audit/fix-F06-protocol-handler-async.md
  • docs/architecture/perf-fixes-from-audit/fix-F08-shutdown-observability.md
  • docs/architecture/perf-fixes-from-audit/fix-F09-markdown-workers-lazy.md
  • docs/architecture/perf-fixes-from-audit/fix-F11-icons-bundle-slim.md
  • docs/architecture/perf-fixes-from-audit/fix-F12-session-fetch-dedup.md
  • docs/architecture/perf-fixes-from-audit/fix-F13-message-store-sort.md
  • docs/architecture/perf-fixes-from-audit/fix-F15-chatstatusbar-watchers.md
  • docs/architecture/perf-fixes-from-audit/fix-F16-provider-list-render.md
  • docs/architecture/perf-fixes-from-audit/fix-V1-settings-hidden-route.md
  • docs/architecture/perf-fixes-from-audit/plan.md
  • docs/architecture/perf-fixes-from-audit/spec.md
  • docs/architecture/perf-fixes-from-audit/tasks.md
  • docs/architecture/session-management.md
  • docs/architecture/tool-system.md
  • docs/architecture/zod-v4-upgrade/plan.md
  • docs/architecture/zod-v4-upgrade/spec.md
  • docs/architecture/zod-v4-upgrade/tasks.md
  • docs/features/acp-v1-reliability/plan.md
  • docs/features/acp-v1-reliability/spec.md
  • docs/features/acp-v1-reliability/tasks.md
  • docs/features/agent-memory/README.md
  • docs/features/agent-memory/research.md
  • docs/features/agent-memory/spec.md
  • docs/features/agent-memory/tape-memory-integration.md
  • docs/features/agent-session-transfer/spec.md
  • docs/features/complete-directory-management/spec.md
  • docs/features/cron-agent-jobs-phase-1-scheduler/spec.md
  • docs/features/cron-agent-jobs-phase-2-cron-trigger-engine/spec.md
  • docs/features/cron-agent-jobs-phase-3-agent-binding/spec.md
  • docs/features/cron-agent-jobs-phase-4-fresh-session-runs/spec.md
  • docs/features/cron-agent-jobs-phase-5-delivery-continuation/spec.md
  • docs/features/cron-agent-jobs-phase-6-cronjob-tool/spec.md
  • docs/features/cron-agent-jobs/spec.md
  • docs/features/cron-jobs-cron-expression-editor/spec.md
  • docs/features/cron-jobs-timezone-selector/spec.md
  • docs/features/cua-driver-rs-0-6-5-sync/spec.md
  • docs/features/markstream-chat-rendering-optimization/plan.md
  • docs/features/markstream-chat-rendering-optimization/tasks.md
  • docs/features/opencode-go-provider/plan.md
  • docs/features/opencode-go-provider/tasks.md
  • docs/guides/code-navigation.md
  • docs/guides/getting-started.md
  • docs/issues/acp-permission-timeout/spec.md
  • docs/issues/acp-runtime-install-state-identity/spec.md
  • docs/issues/acp-startup-notification-order/spec.md
  • docs/issues/acp-stream-assistant-name/spec.md
  • docs/issues/acp-tool-result-projection/spec.md
  • docs/issues/agent-tool-catalog-concurrency/spec.md
  • docs/issues/assistant-pending-duplicate/plan.md
  • docs/issues/assistant-pending-duplicate/spec.md
  • docs/issues/assistant-pending-duplicate/tasks.md
  • docs/issues/chat-send-jitter/spec.md
  • docs/issues/context-overflow-auto-handoff/spec.md
  • docs/issues/cron-agent-jobs-concurrency-skip-delivery/spec.md
  • docs/issues/cron-agent-jobs-full-remote-delivery/spec.md
  • docs/issues/cron-agent-jobs-list-sticky-actions/spec.md
  • docs/issues/cron-agent-jobs-runtime-observability/spec.md
  • docs/issues/cron-agent-jobs-stale-running-runs/spec.md
  • docs/issues/cron-agent-jobs-trigger-logging/spec.md
  • docs/issues/cron-job-run-insert-values/spec.md
  • docs/issues/cron-run-open-session-button-removal/spec.md
  • docs/issues/cron-scheduled-runs-not-visible/spec.md
  • docs/issues/cron-scheduler-heartbeat-status/spec.md
  • docs/issues/cron-scheduler-stop-exit-error/spec.md
  • docs/issues/cron-scheduler-utility-start-crash/spec.md
  • docs/issues/cua-computer-use-skill-name/spec.md
  • docs/issues/cua-driver-0-7-1-update/spec.md
  • docs/issues/cua-permission-settings-ux/spec.md
  • docs/issues/cua-plugin-description-copy/spec.md
  • docs/issues/cua-sidecar-cleanup-on-quit/spec.md
  • docs/issues/cua-windows-launch-timeout-permissions/spec.md
  • docs/issues/deepchat-tape-view-manifest-pr-review/spec.md
  • docs/issues/feishu-plugin-description-copy/spec.md
  • docs/issues/fff-large-workspace-timeout/spec.md
  • docs/issues/floating-button-position-persistence/spec.md
  • docs/issues/hooks-settings-clone-error/spec.md
  • docs/issues/image-generation-context-budget-bypass/spec.md
  • docs/issues/import-fts-shadow-table/spec.md
  • docs/issues/long-message-collapse-scroll-jank/spec.md
  • docs/issues/markdown-codeblock-session-scroll-regressions/spec.md
  • docs/issues/markstream-vue-1-0-4-upgrade/spec.md
  • docs/issues/mcp-enabled-server-sort/spec.md
  • docs/issues/mcp-oauth-callback-refresh/spec.md
  • docs/issues/mcp-plugin-startup-nonblocking/spec.md
  • docs/issues/mcp-save-toast-i18n/spec.md
  • docs/issues/mcp-server-form-auto-approve-controls/spec.md
  • docs/issues/mcp-tools-missing-from-session/spec.md
  • docs/issues/memory-recall-hot-path-keyword-recall/spec.md
  • docs/issues/minimax-model-matching/spec.md
  • docs/issues/model-list-fetch-404/spec.md
  • docs/issues/openai-codex-oauth-only/spec.md
  • docs/issues/openai-codex-store-false/spec.md
  • docs/issues/openai-codex-unsupported-response-params/spec.md
  • docs/issues/performance-audit-report/plan.md
  • docs/issues/performance-audit-report/report.md
  • docs/issues/performance-audit-report/spec.md
  • docs/issues/performance-audit-report/tasks.md
  • docs/issues/plugin-hub-available-title/spec.md
  • docs/issues/plugin-hub-single-list/spec.md
  • docs/issues/plugin-remote-icon-consistency/spec.md
  • docs/issues/plugin-shutdown-lifecycle/spec.md
  • docs/issues/pr-1862-review-fixes/spec.md
  • docs/issues/pr-1870-review-fixes/spec.md
  • docs/issues/pr1765-final-cleanup/spec.md
  • docs/issues/pr1794-memory-hardening/spec.md
  • docs/issues/pr1818-plugin-review-fixes/spec.md
  • docs/issues/project-group-session-update-sort/spec.md
  • docs/issues/qqbot-remote-settings-clone-error/spec.md
  • docs/issues/remote-acp-default-agent-flicker/spec.md
  • docs/issues/remote-tool-result-images/spec.md
  • docs/issues/remote-topic-thread-copy/spec.md
  • docs/issues/remove-legacy-scheduled-tasks/spec.md
  • docs/issues/runtime-history-global-trace-aggregation/spec.md
  • docs/issues/scheduled-ui-label-layout/spec.md
  • docs/issues/sdd-cleanup-default-prompt/spec.md
  • docs/issues/session-list-stable-alphabetical-sort/spec.md
  • docs/issues/session-restore-scroll-intent/spec.md
  • docs/issues/settings-save-clone-errors/spec.md
  • docs/issues/settings-window-overflow/spec.md
  • docs/issues/sheet-close-no-drag/spec.md
  • docs/issues/sidebar-chat-workspace-sort/spec.md
  • docs/issues/skill-adopt-name-mismatch/spec.md
  • docs/issues/skill-presenter-sync-io/spec.md
  • docs/issues/skill-reinstall-windows-eperm/spec.md
  • docs/issues/skill-scope-and-refresh/spec.md
  • docs/issues/skill-watcher-initialize-failure/spec.md
  • docs/issues/sqlite-fresh-schema-bootstrap/spec.md
  • docs/issues/steer-queue-rework/spec.md
  • docs/issues/telegram-message-markdown-render/spec.md
  • docs/issues/vueuse-typecheck-dedupe/spec.md
  • docs/issues/windows-arm64-duckdb-upgrade/spec.md
  • resources/acp-registry/registry.json
  • resources/model-db/providers.json
  • scripts/agent-cleanup-guard.mjs
  • scripts/architecture-guard.mjs
  • scripts/generate-architecture-baseline.mjs
  • src/main/agent/acp/acpAgentRepository.ts
  • src/main/agent/acp/catalog/acpRegistryConstants.ts
  • src/main/agent/acp/catalog/acpRegistryMigrationService.ts
  • src/main/agent/acp/catalog/acpRegistryService.ts
  • src/main/agent/acp/client/acpRuntimeOwner.ts
  • src/main/agent/acp/client/connection/AcpConnectionManager.ts
  • src/main/agent/acp/client/index.ts
  • src/main/agent/acp/client/session/AcpPromptController.ts
  • src/main/agent/acp/client/session/AcpSessionRuntime.ts
  • src/main/agent/acp/client/types.ts
  • src/main/agent/acp/instance/acpAgentInstance.ts
  • src/main/agent/acp/instance/acpAgentRuntime.ts
  • src/main/agent/acp/instance/index.ts
  • src/main/agent/acp/instance/ports.ts
  • src/main/agent/acp/launch/acpInitHelper.ts
  • src/main/agent/acp/launch/acpLaunchSpecService.ts
  • src/main/agent/acp/runtime/acpCapabilities.ts
  • src/main/agent/acp/runtime/acpCompatibilityPromptBuilder.ts
  • src/main/agent/acp/runtime/acpConfigState.ts
  • src/main/agent/acp/runtime/acpContentMapper.ts
  • src/main/agent/acp/runtime/acpDebugLog.ts
  • src/main/agent/acp/runtime/acpFsHandler.ts
  • src/main/agent/acp/runtime/acpMessageFormatter.ts
  • src/main/agent/acp/runtime/acpPathGuard.ts
  • src/main/agent/acp/runtime/acpPermissionBridge.ts
  • src/main/agent/acp/runtime/acpProcessManager.ts
  • src/main/agent/acp/runtime/acpSessionController.ts
  • src/main/agent/acp/runtime/acpSessionManager.ts
  • src/main/agent/acp/runtime/acpSessionPersistence.ts
  • src/main/agent/acp/runtime/acpTerminalManager.ts
  • src/main/agent/acp/runtime/index.ts
  • src/main/agent/acp/runtime/mcpConfigConverter.ts
  • src/main/agent/acp/runtime/mcpTransportFilter.ts
  • src/main/agent/acp/runtime/types.ts
  • src/main/agent/deepchat/deepChatAgentRepository.ts
  • src/main/agent/deepchat/instance/deepChatAgentInstance.ts
  • src/main/agent/deepchat/instance/deepChatAgentRuntime.ts
  • src/main/agent/deepchat/loop/contextCoordinator.ts
  • src/main/agent/deepchat/loop/deepChatLoopEngine.ts
  • src/main/agent/deepchat/loop/inputPreparationCoordinator.ts
  • src/main/agent/deepchat/loop/loopRun.ts
  • src/main/agent/deepchat/loop/notificationObserver.ts
  • src/main/agent/deepchat/loop/ports.ts
  • src/main/agent/deepchat/memory/memoryExtractionChunks.ts
  • src/main/agent/deepchat/memory/memoryIngestionObserver.ts
  • src/main/agent/deepchat/memory/memoryPromptContributor.ts
  • src/main/agent/deepchat/memory/memoryRuntimeCoordinator.ts
  • src/main/agent/deepchat/pending/pendingInputCoordinator.ts
  • src/main/agent/deepchat/pending/pendingInputStore.ts
  • src/main/agent/deepchat/resources/systemEnvPromptBuilder.ts
  • src/main/agent/manager/agentManager.ts
  • src/main/agent/manager/deepChatAgentBackend.ts
  • src/main/agent/manager/directAcpAgentBackend.ts
  • src/main/agent/manager/sessionHandles.ts
  • src/main/agent/shared/agentCatalogCodec.ts
  • src/main/agent/shared/agentCatalogEventSink.ts
  • src/main/agent/shared/agentCompatibilityMapper.ts
  • src/main/agent/shared/agentDescriptors.ts
  • src/main/agent/shared/agentRowStore.ts
  • src/main/agent/shared/agentSessionHandle.ts
  • src/main/agent/shared/agentSessionIds.ts
  • src/main/agent/shared/agentSharedData.ts
  • src/main/agent/shared/appSessionService.ts
  • src/main/agent/shared/process/backgroundExecLogger.ts
  • src/main/agent/shared/process/backgroundExecSessionManager.ts
  • src/main/agent/shared/process/backgroundExecUtilityHost.ts
  • src/main/agent/shared/process/processTree.ts
  • src/main/agent/shared/process/rtkRuntimeService.ts
  • src/main/agent/shared/process/shellEnvHelper.ts
  • src/main/agent/shared/process/shellOutputEncoding.ts
  • src/main/agent/shared/process/spawnGuard.ts
  • src/main/agent/shared/storage/sessionPaths.ts
  • src/main/agent/shared/workspace/fffSearchService.ts
  • src/main/backgroundExecUtilityHostEntry.ts
  • src/main/presenter/acpClientPresenter/handlers/index.ts
  • src/main/presenter/acpClientPresenter/mapper/AcpEventMapper.ts
  • src/main/presenter/acpClientPresenter/registry/index.ts
  • src/main/presenter/agentRepository/index.ts
  • src/main/presenter/agentRuntimePresenter/accumulator.ts
  • src/main/presenter/agentRuntimePresenter/acpCompatibilityAdapters.ts
  • src/main/presenter/agentRuntimePresenter/dispatch.ts
  • src/main/presenter/agentRuntimePresenter/index.ts
  • src/main/presenter/agentRuntimePresenter/messageStore.ts
  • src/main/presenter/agentRuntimePresenter/messageTracePayload.ts
  • src/main/presenter/agentRuntimePresenter/process.ts
  • src/main/presenter/agentRuntimePresenter/tapeFacts.ts
  • src/main/presenter/agentRuntimePresenter/tapeService.ts
  • src/main/presenter/agentRuntimePresenter/toolAdapters.ts
  • src/main/presenter/agentRuntimePresenter/toolOutputGuard.ts
  • src/main/presenter/agentRuntimePresenter/types.ts
  • src/main/presenter/agentSessionPresenter/agentRegistry.ts
  • src/main/presenter/agentSessionPresenter/index.ts
  • src/main/presenter/agentSessionPresenter/legacyImportService.ts
  • src/main/presenter/agentSessionPresenter/messageManager.ts
  • src/main/presenter/configPresenter/acpCatalogConfigAdapter.ts
  • src/main/presenter/configPresenter/eventPublishers.ts
  • src/main/presenter/configPresenter/index.ts
  • src/main/presenter/hooksNotifications/newSessionBridge.ts
  • src/main/presenter/index.ts
  • src/main/presenter/lifecyclePresenter/hooks/after-start/acpRegistryMigrationHook.ts
  • src/main/presenter/lifecyclePresenter/hooks/beforeQuit/acpCleanupHook.ts
  • src/main/presenter/llmProviderPresenter/index.ts
  • src/main/presenter/llmProviderPresenter/managers/providerInstanceManager.ts
  • src/main/presenter/llmProviderPresenter/managers/rateLimitManager.ts
  • src/main/presenter/llmProviderPresenter/providers/acpProvider.ts
  • src/main/presenter/llmProviderPresenter/types.ts
  • src/main/presenter/mcpPresenter/mcpClient.ts
  • src/main/presenter/memoryPresenter/context.ts
  • src/main/presenter/memoryPresenter/index.ts
  • src/main/presenter/memoryPresenter/services/writeCoordinator.ts
  • src/main/presenter/remoteControlPresenter/index.ts
  • src/main/presenter/remoteControlPresenter/interface.ts
  • src/main/presenter/remoteControlPresenter/services/remoteConversationRunner.ts
  • src/main/presenter/runtimePorts.ts
  • src/main/presenter/sessionPresenter/index.ts
  • src/main/presenter/sessionPresenter/sessionPaths.ts
  • src/main/presenter/skillPresenter/skillExecutionService.ts
  • src/main/presenter/sqlitePresenter/tables/agents.ts
  • src/main/presenter/toolPresenter/agentTools/agentBashHandler.ts
  • src/main/presenter/toolPresenter/agentTools/agentFffSearchHandler.ts
  • src/main/presenter/toolPresenter/agentTools/agentFileSystemHandler.ts
  • src/main/presenter/toolPresenter/agentTools/agentToolManager.ts
  • src/main/presenter/toolPresenter/agentTools/questionTool.ts
  • src/main/presenter/toolPresenter/index.ts
  • src/main/presenter/workspacePresenter/fileSearcher.ts
  • src/main/routes/index.ts
  • src/main/routes/providers/providerRouteHandler.ts
  • src/renderer/src/lib/icons/icon-collections.generated.ts
  • src/renderer/src/lib/icons/icon-whitelist.generated.ts
  • src/renderer/src/pages/ChatPage.vue
  • src/renderer/src/stores/ui/session.ts
  • src/renderer/src/stores/ui/spotlight.ts
  • src/shared/contracts/acp.ts
  • src/shared/types/agent-interface.d.ts
  • src/shared/types/core/llm-events.ts
  • src/shared/types/presenters/core.presenter.d.ts
  • src/shared/types/presenters/llmprovider.presenter.d.ts
  • src/shared/types/presenters/session.presenter.d.ts
  • src/shared/types/presenters/tool.presenter.d.ts
  • src/shared/types/tape-replay.ts
  • test/e2e/fixtures/electronApp.ts
  • test/main/agent/acp/acpAgentRepository.test.ts
  • test/main/agent/acp/catalog/acpRegistryMigrationService.test.ts
  • test/main/agent/acp/catalog/acpRegistryService.test.ts
  • test/main/agent/acp/client/acpRuntimeOwner.test.ts
  • test/main/agent/acp/instance/acpAgentInstance.test.ts
  • test/main/agent/acp/instance/acpAgentRuntime.test.ts
  • test/main/agent/acp/launch/acpLaunchSpecService.test.ts
  • test/main/agent/acp/runtime/acpCapabilities.test.ts
  • test/main/agent/acp/runtime/acpCompatibilityPromptBuilder.test.ts
  • test/main/agent/acp/runtime/acpContentMapper.test.ts
  • test/main/agent/acp/runtime/acpFsHandler.test.ts
  • test/main/agent/acp/runtime/acpMcpPassthrough.test.ts
  • test/main/agent/acp/runtime/acpMessageFormatter.test.ts
  • test/main/agent/acp/runtime/acpPermissionBridge.test.ts
  • test/main/agent/acp/runtime/acpProcessManager.test.ts
  • test/main/agent/acp/runtime/acpProcessManagerCapabilities.test.ts
  • test/main/agent/acp/runtime/acpSessionController.test.ts
  • test/main/agent/acp/runtime/acpSessionManager.test.ts
  • test/main/agent/acp/runtime/acpSessionPersistence.test.ts
  • test/main/agent/acp/runtime/acpTerminalManager.test.ts
  • test/main/agent/deepchat/deepChatAgentRepository.test.ts
  • test/main/agent/deepchat/instance/deepChatAgentRuntime.test.ts
  • test/main/agent/deepchat/loop/contextCoordinator.test.ts
  • test/main/agent/deepchat/loop/deepChatLoopEngine.test.ts
  • test/main/agent/deepchat/loop/inputPreparationCoordinator.test.ts
  • test/main/agent/deepchat/loop/loopRun.test.ts
  • test/main/agent/deepchat/memory/memoryExtractionChunks.test.ts
  • test/main/agent/deepchat/memory/memoryRuntimeCoordinator.test.ts
  • test/main/agent/deepchat/pending/pendingInputCoordinator.test.ts
  • test/main/agent/deepchat/pending/pendingInputStore.test.ts
  • test/main/agent/deepchat/resources/systemEnvPromptBuilder.test.ts
  • test/main/agent/manager/agentManager.test.ts
  • test/main/agent/manager/deepChatAgentBackend.test.ts
  • test/main/agent/manager/deepChatAgentBackendFixture.ts
  • test/main/agent/manager/directAcpAgentBackend.test.ts
  • test/main/agent/shared/agentCatalogCodec.test.ts
  • test/main/agent/shared/appSessionService.test.ts
  • test/main/agent/shared/process/backgroundExecSessionManager.test.ts
  • test/main/agent/shared/process/backgroundExecUtilityHost.test.ts
  • test/main/agent/shared/process/processTree.test.ts
  • test/main/agent/shared/process/rtkRuntimeService.test.ts
  • test/main/agent/shared/process/shellEnvHelper.test.ts
  • test/main/agent/shared/process/shellOutputEncoding.test.ts
  • test/main/agent/shared/storage/sessionPaths.test.ts
  • test/main/agent/shared/workspace/fffSearchService.test.ts
  • test/main/contracts/acpProviderPorts.test.ts
  • test/main/contracts/zodV4Migration.test.ts
  • test/main/presenter/acpProvider.test.ts
  • test/main/presenter/acpSessionManager.test.ts
  • test/main/presenter/agentRepository.test.ts
  • test/main/presenter/agentRuntimePresenter/accumulator.test.ts
  • test/main/presenter/agentRuntimePresenter/acpCompatibilityAdapters.test.ts
  • test/main/presenter/agentRuntimePresenter/agentRuntimePresenter.test.ts
  • test/main/presenter/agentRuntimePresenter/dispatch.test.ts
  • test/main/presenter/agentRuntimePresenter/messageTracePayload.test.ts
  • test/main/presenter/agentRuntimePresenter/process.test.ts
  • test/main/presenter/agentRuntimePresenter/tapeService.test.ts
  • test/main/presenter/agentRuntimePresenter/toolAdapters.test.ts
  • test/main/presenter/agentSessionPresenter/agentRegistry.test.ts
  • test/main/presenter/agentSessionPresenter/agentSessionPresenter.test.ts
  • test/main/presenter/agentSessionPresenter/integration.test.ts
  • test/main/presenter/agentSessionPresenter/messageManager.test.ts
  • test/main/presenter/agentSessionPresenter/usageDashboard.test.ts
  • test/main/presenter/configPresenter/acpCatalogConfigAdapter.test.ts
  • test/main/presenter/configPresenter/deprecatedProviderCleanup.test.ts
  • test/main/presenter/configPresenter/fontSizeSettings.test.ts
  • test/main/presenter/cronJobs.test.ts
  • test/main/presenter/hooksNotifications.test.ts
  • test/main/presenter/index.test.ts
  • test/main/presenter/lifecyclePresenter/compositionOrder.test.ts
  • test/main/presenter/llmProviderPresenter/providerInstanceManager.acpLifetime.test.ts
  • test/main/presenter/llmProviderPresenter/rateLimitManager.test.ts
  • test/main/presenter/mcpClient.test.ts
  • test/main/presenter/memorySessionExtractionLock.test.ts
  • test/main/presenter/remoteControlPresenter/remoteControlPresenter.test.ts
  • test/main/presenter/remoteControlPresenter/remoteConversationRunner.test.ts
  • test/main/presenter/skillPresenter/skillExecutionService.test.ts
  • test/main/presenter/toolPresenter/agentTools/agentBashHandler.test.ts
  • test/main/presenter/toolPresenter/agentTools/agentBashHandlerEncoding.test.ts
  • test/main/presenter/toolPresenter/agentTools/agentFffSearchHandler.test.ts
  • test/main/presenter/toolPresenter/agentTools/questionTool.test.ts
  • test/main/presenter/toolPresenter/toolPresenter.test.ts
  • test/main/presenter/workspacePresenter/fileSearcher.test.ts
  • test/main/routes/debug/createMockChatSession.test.ts
  • test/main/routes/dispatcher.test.ts
  • test/main/routes/providers/providerRouteHandler.test.ts
  • test/main/scripts/architectureBaseline.test.ts
  • test/main/scripts/architectureGuard.test.ts
  • test/memory-test-scope.json
  • test/renderer/components/ChatPage.test.ts
  • test/renderer/stores/sessionStore.test.ts
  • test/renderer/stores/spotlight.test.ts

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/agent-system-layered-runtime-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

zerob13 added 6 commits July 12, 2026 20:48
…ered-runtime-docs

# Conflicts:
#	docs/architecture/agent-scoped-extensions/plan.md
#	src/main/presenter/agentRepository/index.ts
#	src/main/presenter/agentRuntimePresenter/index.ts
#	test/main/presenter/agentRepository.test.ts
#	test/main/presenter/agentRuntimePresenter/agentRuntimePresenter.test.ts
@zerob13 zerob13 changed the title refactor(agent): establish layered runtime foundations refactor(agent): complete layered runtime migration Jul 13, 2026
@zerob13 zerob13 marked this pull request as ready for review July 13, 2026 02:51
@zerob13 zerob13 marked this pull request as draft July 13, 2026 02:59
@zerob13 zerob13 marked this pull request as ready for review July 13, 2026 04:34
@zerob13 zerob13 merged commit 6d6f396 into dev Jul 13, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant