Repository navigation
Run every model through the shared Redrob Code engine - #98
Closed
its-janghoon wants to merge 2 commits into
Closed
its-janghoon wants to merge 2 commits into
its-janghoon wants to merge 2 commits into
Conversation
Redrob Design had three ways to reach a model: the Redrob Code agent over ACP (its own engine process), ten direct providers with their own keys, and the Pi harness. Each kept its own secrets and its own masking, and none shared anything with the other Redrob apps on the machine. Now there is one: the user's shared Redrob Code daemon. The design loop still speaks ACP, but `redrob acp --attach` makes that process a client of the daemon rather than an engine of its own. The design, review, fast and vision profiles go to the daemon's OpenAI-compatible route (`/v1/chat/completions`) through one adapter; the engine picks the real provider behind a `provider/model` id, lists the models it can reach (GET /api/model), and masks personal details before anything leaves the computer. AIProviderID is `engine | acp:redrob-code`; the direct providers, the harness, the Claude Code / Codex / Gemini agents and their Tauri shell allowances are gone. Finding the daemon is `redrob service start --json` (src/app/ai/engine/daemon.ts): it prints the record with url and secret, starts the daemon when none answers, and the secret becomes the Basic password the adapter sends. The engine's Redrob account is the "credential" of the one model connection (src/app/ai/engine/auth.ts): Connect Redrob hands the Console key to the engine with PUT /auth/redrob and this app stores nothing; signed-in status is read from the engine's provider list, the way Cowork reads it, so the launcher's shared sign-in shows up too. Keys an earlier build kept for the removed providers are deleted on first start (credential migration v2). The app's own privacy masker (pattern rules, placeholder vault, Strict confirm, protected tools and prompt) is removed. The composer's level stays and is carried to the engine's switch (standard -> regex, high/strict -> model) through PUT /api/privacy, which is the same switch Cowork and Office run under. Cross-check and image analysis now reach the model through the engine, so they are masked there as well; the models.dev catalogue is replaced by the engine's list. Requires Redrob Code with the shared daemon (redrob-code PR #89): `redrob acp --attach`, `redrob service start --json`, /api/clients. Tests: tests/engine 3226 pass with the same 85 pre-existing failures as develop (fig fixtures, CLI, fonts); new engine-account tests cover sign-in status, key hand-over and the daemon secret; model, model-roles, vision, image, cross-check, credential-migration and ACP tests rewritten for the engine. tsgo and vue-tsc clean, oxlint 0 errors, check:deps/i18n/docs/changelog/arch and the rest of `check` green.
Member
Author
|
Superseded by #99 (same commits; this PR's pull_request workflows never started). |
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.
Summary
One way to reach a model: the user's shared Redrob Code daemon. Depends on redrob-code PR #89 (
redrob acp --attach,redrob service start --json,/api/clients).AIProviderIDis nowengine | acp:redrob-code. Removed: OpenRouter, Anthropic, OpenAI, Google AI, DeepSeek, Z.ai, MiniMax, OpenAI-/Anthropic-compatible, the Pi harness, and the Claude Code / Codex / Gemini ACP agents (plus their Tauri shell allowances)redrob acp --attach(client of the daemon, not an engine of its own)/v1/chat/completions; model list from the engine'sGET /api/model(provider/modelids, capabilities from the engine; Redrob Auto first)src/app/ai/engine/daemon.ts: finds or starts the daemon viaredrob service start --json; secret = Basic password;fresh: truere-reads after 401 / connection losssrc/app/ai/engine/auth.ts: Connect Redrob hands the Console key to the engine (PUT /auth/redrob); signed-in status read from the engine's provider list (same contract Cowork uses); this app stores no key. Legacy provider keys in local storage are deleted (migration v2)PUT /api/privacy(standard -> regex, high/strict -> model). Cross-check and image analysis are masked in the engine nowTests
bun test ./tests/engine: 3226 pass; the 85 failures are identical to develop (fig fixtures, CLI, fonts, no new ones)tests/engine/app/ai/engine-account.test.ts; rewritten model, model-roles, vision, image, cross-check, credential-migration, ACP teststsgo --noEmit0,check:vue0,lint0 errors,check:deps,check:i18n,check:docs,check:changelog,check:arch,check:packages,check:monorepo,check:secrets,test:type-shapes,test:tools,test:dupesgreenNot done here
packages/harnessis still a workspace package (nothing in the app imports it now); removing the package is a separate decisionprivateTerms(the names list) is kept in storage for workspace policies but the engine masker takes no names list yet