feat: remove legacy OpenCode runtime
Cut product flows over to Coding/Pi and retain only the migration-owned v1 boundary. Promote supported native optional packages because electron-builder omitted pnpm transitive optional closure from the packaged ASAR.
This commit is contained in:
22
src/App.tsx
22
src/App.tsx
@@ -12,7 +12,7 @@ import { TooltipProvider } from '@/components/ui/tooltip';
|
||||
import { useSettingsStore } from './stores/settings';
|
||||
import { useProviderStore } from './stores/providers';
|
||||
import { useAuthStore } from './stores/auth';
|
||||
import { useOpencodeStore } from './stores/opencode';
|
||||
import { codingWorkspaceStore, useCodingWorkspaceStore } from './stores/coding-workspace';
|
||||
import { useProjectConfigStore } from './stores/project-config';
|
||||
import {
|
||||
AI_MODULE_SELECTION_PATH,
|
||||
@@ -28,8 +28,6 @@ import { installRendererPerformanceDiagnostics } from '@/lib/performance-diagnos
|
||||
import { resolveSupportedLanguage } from '../shared/language';
|
||||
|
||||
const Models = lazy(() => import('./pages/Models').then(({ Models: component }) => ({ default: component })));
|
||||
const Projects = lazy(() => import('./pages/Projects').then(({ Projects: component }) => ({ default: component })));
|
||||
const Sessions = lazy(() => import('./pages/Sessions').then(({ Sessions: component }) => ({ default: component })));
|
||||
const Chat = lazy(() => import('./pages/Chat').then(({ Chat: component }) => ({ default: component })));
|
||||
const Home = lazy(() => import('./pages/Home').then(({ Home: component }) => ({ default: component })));
|
||||
const PreviewScene = lazy(() => import('./pages/Makelore').then(({ PreviewScene: component }) => ({ default: component })));
|
||||
@@ -211,8 +209,8 @@ function ModuleSelectionRoute({
|
||||
}
|
||||
|
||||
function ProjectChatRoute() {
|
||||
const activeProject = useOpencodeStore((state) => state.activeProject);
|
||||
const loadProjectList = useOpencodeStore((state) => state.loadProjectList);
|
||||
const activeProject = useCodingWorkspaceStore((state) => state.activeProject);
|
||||
const loadProjectList = useCodingWorkspaceStore((state) => state.load);
|
||||
const loadProjectConfig = useProjectConfigStore((state) => state.load);
|
||||
const [resolvedProjectKey, setResolvedProjectKey] = useState<string | null | undefined>(undefined);
|
||||
const [resolvedRoute, setResolvedRoute] = useState<'chat' | 'config'>('config');
|
||||
@@ -225,7 +223,7 @@ function ProjectChatRoute() {
|
||||
try {
|
||||
await loadProjectList();
|
||||
|
||||
const project = useOpencodeStore.getState().activeProject;
|
||||
const project = codingWorkspaceStore.getState().activeProject;
|
||||
if (!project) {
|
||||
if (!cancelled) {
|
||||
setResolvedProjectKey(null);
|
||||
@@ -297,13 +295,6 @@ function App() {
|
||||
return unsubscribe;
|
||||
}, []);
|
||||
|
||||
useEffect(() => subscribeHostEvent('lifecycle:sleep', () => {
|
||||
// Main owns the runtime shutdown decision. Once it has confirmed that
|
||||
// there are no leases, close renderer-owned SSE/listener state as well so
|
||||
// a hidden shell cannot keep reconnecting against a stopped runtime.
|
||||
useOpencodeStore.getState().pauseBackgroundStreams();
|
||||
}), []);
|
||||
|
||||
useEffect(() => {
|
||||
if (rendererOnlyPreview || !authInitialized || !authAccessToken) return;
|
||||
|
||||
@@ -465,7 +456,7 @@ function App() {
|
||||
<Route path="/makelore-home" element={<Home />} />
|
||||
<Route path="/kangaroo" element={<Navigate to="/project-config" replace />} />
|
||||
<Route path="/subagents" element={<Navigate to="/project-config" replace />} />
|
||||
<Route path="/chat" element={<Navigate to="/opencode-chat" replace />} />
|
||||
<Route path="/chat" element={<ProjectChatRoute />} />
|
||||
<Route path="/deliverables" element={<PreviewScene />} />
|
||||
<Route path="/image-canvas" element={<ImageCanvas />} />
|
||||
<Route path="/image-prompts" element={<ImagePromptMuseum />} />
|
||||
@@ -473,9 +464,6 @@ function App() {
|
||||
<Route path="/learning" element={<Learning />} />
|
||||
<Route path="/learning/project/:projectId" element={<LearningProjectDetail />} />
|
||||
<Route path="/workbench/:projectId" element={<Workbench />} />
|
||||
<Route path="/opencode-chat" element={<ProjectChatRoute />} />
|
||||
<Route path="/projects" element={<Projects />} />
|
||||
<Route path="/sessions" element={<Sessions />} />
|
||||
<Route path="/models" element={<Models />} />
|
||||
<Route path="/settings/*" element={<Settings />} />
|
||||
<Route path="*" element={<Navigate to="/" replace />} />
|
||||
|
||||
Reference in New Issue
Block a user