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:
2026-08-24 12:17:43 +08:00
parent 61fede2b4d
commit 5a275b93a7
199 changed files with 1330 additions and 64725 deletions

View File

@@ -106,6 +106,7 @@ export function CodingChatPanel({
const createConversation = useCodingWorkspaceStore((state) => state.createConversation);
const patchConversation = useCodingWorkspaceStore((state) => state.patchConversation);
const upsertConversation = useCodingWorkspaceStore((state) => state.upsertConversation);
const acknowledgeLegacyNotice = useCodingWorkspaceStore((state) => state.acknowledgeLegacyNotice);
const selectedConversationId = useCodingConversationStore((state) => state.selectedConversationId);
const connectionState = useCodingConversationStore((state) => state.connectionState);
@@ -663,6 +664,23 @@ export function CodingChatPanel({
onOpenSettings={onOpenProjectSettings}
/>
{config?.legacyConversationNotice === 'pending' && (
<div className="mx-4 mt-3 flex min-h-10 items-center gap-3 rounded-xl border border-amber-300/70 bg-amber-50 px-3 py-2 text-xs text-amber-950 sm:mx-5" data-testid="legacy-conversation-notice">
<CircleAlert className="h-4 w-4 shrink-0" aria-hidden="true" />
<p className="min-w-0 flex-1 text-pretty">
旧版 OpenCode 对话不能在 Pi 中继续;原数据已保留,仅用于旧版本回滚或导出。
</p>
<Button
type="button"
variant="ghost"
className="min-h-10 shrink-0 rounded-xl px-3 text-amber-950"
onClick={() => void acknowledgeLegacyNotice()}
>
知道了
</Button>
</div>
)}
{(workspaceError || conversationMetadataError || connectionError) && (
<div className="mx-4 mt-3 flex min-h-10 items-center gap-2 rounded-xl bg-destructive/5 px-3 py-2 text-xs text-destructive sm:mx-5">
<CircleAlert className="h-4 w-4 shrink-0" aria-hidden="true" />