You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(release): FakeBackend is a first-class BackendKind and desktop E2E material ships in release artifacts #3211
Found by a repo-wide simplification audit (static analysis; zero-consumer claims re-verified with git grep -aI).
FakeBackend is a test backend, but it is wired as first-class production surface, and desktop E2E material ships in release artifacts:
BackendKind defines 'fake' as a formal session backend: packages/core/src/session.ts:262.
The normal Runtime Host composition unconditionally registers it: packages/runtime-host/src/server/execution-composition.ts:289.
Unknown/legacy providers fall back to 'fake': packages/core/src/llm-connections.ts:375.
The production candidate entry statically imports the desktop E2E composition: packages/runtime-host/src/execution-candidate-main.ts (top-of-file imports).
Release packaging copies whole dist/ trees, so FakeBackend, E2E fixture schema, and --desktop-e2e branches ship in the CLI package and the Electron app: scripts/release-cli-package.mjs:367-369, apps/desktop/electron-builder.config.mjs.
Product layers then carry fake special-cases (search exclusion in apps/desktop/src/main/search/thread-search.ts, model selector, stale-session handling). Note the fake-rejection in chat-readiness.ts (assertSessionCanSend) currently has no production caller — only errorMessage is imported by main-window.ts — so it is residue rather than an active guard.
Suggested direction: keep E2E going through the real composition via the existing primaryBackendFactory seam, but move FakeBackend + fixture schema + candidate bootstrap to a test-only compile entry, drop 'fake' from BackendKind and the unknown-provider fallback, and stop shipping fixture material in release artifacts.
Activity
fix(release): stop shipping FakeBackend and desktop E2E material in p…
fix(release): stop shipping FakeBackend and desktop E2E material in p…
fix(desktop): stop the pending chat view from claiming a retired backend
refactor(core): give provider recognition one own-property-safe owner
fix: stop promising a rebind that retired-backend sessions cannot take
fix(desktop): keep the pending chat view from naming a model it canno…
fix: refuse the retired backend on Automation writes, not just at act…
refactor: retire 'fake' from the live backend surface
fix(desktop): stop the pending chat view from claiming a retired backend
refactor(core): give provider recognition one own-property-safe owner
fix: stop promising a rebind that retired-backend sessions cannot take
fix(desktop): keep the pending chat view from naming a model it canno…
fix: refuse the retired backend on Automation writes, not just at act…
refactor: retire 'fake' from the live backend surface
fix(desktop): stop the pending chat view from claiming a retired backend
refactor(core): give provider recognition one own-property-safe owner
fix: stop promising a rebind that retired-backend sessions cannot take
fix(desktop): keep the pending chat view from naming a model it canno…
fix: refuse the retired backend on Automation writes, not just at act…
refactor: retire 'fake' from the live backend surface
fix(desktop): stop the pending chat view from claiming a retired backend
refactor(core): give provider recognition one own-property-safe owner
fix: stop promising a rebind that retired-backend sessions cannot take
fix(desktop): keep the pending chat view from naming a model it canno…
fix: refuse the retired backend on Automation writes, not just at act…
refactor: retire 'fake' from the live backend surface (apache#3249)
refactor: drop the unread backend field from Automation templates