Repository navigation
Conversation
Contributor
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: true
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. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DeepChat coordinates Agent execution, Memory and shared persistence in Electron main. This migration moves cohesive owners behind Rutis while retaining the current application contracts, one storage authority and measured resource limits.
Current status:
dev; do not merge. G0–G3 are complete, G4 is active, and G5–G12 remain in the live plan.c6758fe56— One native-free registry owns App instances, bounded creation reservations and consent. Main supplies owner observation/link opening and native protocol/session adapters. Owner/server/maintenance revocation cancels pending creation and SDK metadata waits; late results cannot publish a view. The old native registry wiring is removed. The branch includesdevat830745fec. Exact-head required CI and six-platform packaging are running. G4 remains active; the cohesive backend/writer has not moved.ef4e8052apasses required CI and all six platform packages, including barriers122156301597and122162440119, before this App checkpoint is pushed.3b3890dadpasses required CI and all six platform packages, including barriers122145060187and122151665510, before this MCP checkpoint is pushed.f0ca555fepasses required CI and all six platform packages, including barriers122106538990and122113041876.32f457ff7passes required CI and all six platform packages, including barriers122089643930and122095514524.12a73394fpasses required CI and all six platform packages, including barriers122069829980and122075929024.edfb8ab43passes required CI and all six platform packages, including both required barriers.3ede3013apasses required CI; its six-platform package run and package-required barrier also pass on that exact head.45cbdf4c0passes required CI; its six-platform package run and package-required barrier also pass on that exact head.a217ff4e5passes required CI; its six platform packages and package-required barrier also pass on that exact head.7fb11102fpasses required CI and all six platform packages, including both required barriers.ec82c12b4passes required CI and all six platform packages, including both required barriers.38306fcdapasses required CI and all six platform packages, including both required barriers.ec74d772cpasses required CI and all six platform packages, including both required barriers.99fdb0710passes required CI and all six platform packages, including both required barriers.5c7efdc1epasses required CI and all six platform packages, including both required barriers.bc4ad41dbpasses required CI and all six platform packages, including both required barriers.Runtime and ownership:
Store and desktop boundaries:
plugin-tool-policiesfile adapter. Activation/migration/disable/shutdown and all policy consumers share it. Owner/server replacement, owner-wide removal, allow/ask/deny, undeclared closure, ambiguity and disabled-record behavior remain compatible. Reads reflect the backing store without a second decision cache; write failures propagate. Synchronous reads/mutations stay with their shared authority; G5 must give any retained desktop writer acknowledged commands when that authority moves.MCP OAuth:
Provider OAuth:
Validation:
5a79f205d.ef4e8052aand the final candidate pass the same real model/MCP/saved-source/native-protocol/consent/relaunch workload (6.7/6.3 s). The public App routes hydrate an actual persisted model tool result; native responses retain CSP/permission headers. App tool calls, settings-window rejection, link allow/deny, shutdown with pending consent, saved-source reopen and source deletion all pass. The three final policy/stdio/App cases pass in 28.1 s. Browser launch is recorded at the shell boundary; external navigation and physical media permissions are not exercised. Evidence is.deepchat/rutis-g4-mcp-apps-acceptance/. No performance/resource recapture or speed claim.08ddc763f.3b3890dadand the candidate pass the same actual stdio MCP workload (7.3/7.5 s): public custom-Node selection, home/client identity, cwd and PATH precedence, minimal-environment secret exclusion, real tool calls, stop/start, graceful child cleanup and persisted relaunch. Candidate HTTP policy and stdio cases pass in 20.9 s; both Code Mode helper cases separately pass in 10.3 s. These are functional observations without a timing gate or speed claim. Evidence is.deepchat/rutis-g4-mcp-runtime-acceptance/.askenforcement under full access and the upstream Code Mode subagent ceilings. Native configuration, protocol, timeout and import guards remain enforced.f0ca555feand the final integrated app pass the same real HTTP MCP/persisted-policy/catalog/call/relaunch workload (13.2/13.3 s). Both comparison drivers select the owned test profile before loading the unchanged app entry because the old global native constructor preceded the app's profile override; exact entry bytes are restored afterward. Normal integrated startup separately passes four app cases in 29.3 s: Code Mode complete/held READY, Agent image/workspace reads and policy persistence/ambiguity/disabled records. No real user policy file is modified by the fixture. Evidence is.deepchat/rutis-g4-plugin-policy-acceptance/.5c4557b7e; dev integration is996efc3b0; normal generated catalogs are isolated in1952466fdand8cabd095e.32f457ff7and the final candidate (both 5.3 s). Four final app cases pass in 21.0 s, including background process feedback, Code Mode nested execution and held-READY helper shutdown. AgentToolManager's 126-module graph, the actual 350-module Harness entry and ProviderRuntime import in ordinary Node with Electron/electron-store forbidden. The composed headless backend/writer remains outside this module-loading claim. Evidence is.deepchat/rutis-g4-agent-tool-host-acceptance/. No performance/resource suite was repeated, timing gate added or latency/memory gain claimed.f560f941e.12a73394fand the candidate pass the same nested execution, cell-global isolation and persisted-message reopen E2E; the final exact-assertion comparison is 6.4/5.2 s. Seven candidate app cases pass in 33.9 s, including held READY shutdown/helper exit/no subsequent model round, background execution lifecycle and native credential/database-maintenance shutdown holds. Code Mode, the actual 350-module Harness entry and ProviderRuntime import in ordinary Node with Electron/electron-store forbidden and no native imports; this does not establish a composed headless backend. The function frontend is exercised in the app; Codex store/yield/permission semantics remain covered by VM/manager suites without claiming an authenticated Codex app E2E. Evidence is.deepchat/rutis-g4-code-mode-acceptance/. No performance/resource suite was repeated, timing gate added or speed gain claimed.edfb8ab43(5.1/4.8 s) and the final candidate (5.3/5.0 s). Six final app cases pass in 34.3 s, including held helper startup shutdown with no command/subsequent model round, encrypted legacy unlock/rekey/disable and shutdown while native credential/database maintenance work is held. The held-start case exposed and verifies the early in-memory generation cancellation requirement. Evidence is.deepchat/rutis-g4-background-exec-acceptance/. No repeated performance/resource suite or speed claim. Full native Windows/Linux app behavior and remaining desktop/Store boundaries stay open.4810f55b2.3ede3013aapp passes matching binary install/repair/reopen (4.2 s); the candidate passes (4.6 s). Six app scenarios pass in 34.8 s, including canceled repair shutdown with no late replacement/state commit, maintenance drain/recovery, failed repair preserving the old binary, registry refresh/shutdown and encrypted legacy unlock/rekey/disable. The maintenance scenario additionally passes public uninstall and itsnot_installedacknowledgement (5.2 s). Evidence is.deepchat/rutis-g4-acp-installer-acceptance/. No performance benchmark/resource recapture or speed claim. Synchronous extraction, Windows/Linux full native-app behavior, filesystem/SQL power-loss durability and remaining G4 host/writer dependencies remain open.45cbdf4c0app passes the matching registry refresh/icon/reopen case (4.6 s); the migrated app passes (4.4 s). Four actual-app cases pass in 27.6 s, covering persisted/sanitized icons, unchanged legacy JSON, held-refresh graceful shutdown and late cache/Agent-write rejection, ACP prompt/child-output behavior and encrypted legacy unlock/rekey/disable. Evidence is.deepchat/rutis-g4-acp-registry-acceptance/. No performance suite/resource capture was repeated or speed gain claimed. This slice owns registry refresh; installation/prewarm and remaining host/writer dependencies keep G4 open.a217ff4e5passes the matching ACP protocol/structured-answer app case (7.1 s); the final build passes (7.7 s). The final three-case group passes in 14.6 s: ACP owning-prompt/child-output behavior, catalog/header bootstrap and held-refresh shutdown/reopen. ACP settings routes and encrypted legacy unlock/rekey/disable separately pass. All profiles are disposable. No performance suite/resource capture was repeated and no speed gain is claimed. Evidence is.deepchat/rutis-g4-acp-runtime-acceptance/. Generated catalog changes are isolated in7aa6e8482.7fb11102fapp passes matching catalog/header E2E (2.4 s); the migrated app passes (2.1 s). Four migrated app checks pass: catalog/header bootstrap, held-refresh drain/late-response fencing/graceful reopen, model persistence without legacy JSON rewrites, and encrypted legacy unlock/rekey/disable. Evidence is.deepchat/rutis-g4-provider-bootstrap-acceptance/. These are functional observations; no performance suite was repeated and no speed claim is made. Normal generated ACP registry refreshes are isolated inc3a7adbdc.ec82c12b4(6.6 s) and the migrated application (6.9 s): disabled server/manual Agent changes, shared selection and global availability, graceful reopen, removal/reset and a second reopen. Legacy JSON bytes remain unchanged. All three selected app cases pass in 27.0 s, including encrypted database legacy unlock/rekey/disable and native MCP credentials/settings-window ownership. These are functional observations with no timing gate or speed claim; evidence is.deepchat/rutis-g4-mcp-acp-config-acceptance/.8d0210277; catalog checks pass. The initial combined test command used Electron as the executable for Node-only hook fixtures; those six subprocess failures pass under their correct Node runner. Native SQLite checks run separately under Electron. No production timeout or environment guard was relaxed.38306fcdaartifact (6.9 s) and the migrated build (6.6 s): atomic custom-model/override save, graceful reopen, persisted values, reset/removal, another reopen and unchanged legacy JSON. All five selected app cases pass in 43.8 s, including launch, obsolete-plugin repair, plugin initialization failure and encrypted legacy unlock/rekey/disable. These are functional observations with no timing gate or speed claim; evidence is.deepchat/rutis-g4-provider-config-acceptance/..deepchat/rutis-g4-shutdown-acceptance/final-e2e.logandfinal-results/; earlier driver diagnostics remain retained..deepchat/rutis-g4-provider-oauth-acceptance/.disabled-providers-toggle; that failure/artifacts remain recorded and are not represented as passing OAuth acceptance.Settings behavior:
Performance policy:
DEEPCHAT_MEMORY_PERF_REPORT_ONLY=1. Correctness, native operations, finite measurements, runtime/ABI identity, workload/queue bounds and timeouts still block; nocontinue-on-errorhides failures.Limits: