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:
1 parent
61fede2b4d
commit
5a275b93a7
199 files changed
+1330
-64725
No files matched your search
@@ -2,7 +2,7 @@ import { mkdir, mkdtemp, rm, writeFile } from 'node:fs/promises';
|
||||
import { tmpdir } from 'node:os';
|
||||
import path from 'node:path';
|
||||
import { closeElectronApp, expect, getStableWindow, test } from './fixtures/electron';
|
||||
import { createProjectConfig } from '../../shared/project-config';
|
||||
import { createCodingProjectConfigV2 } from '../../electron/coding-projects/project-config';
|
||||
|
||||
test.describe('Project configuration skills', () => {
|
||||
test('does not expose the removed Superpowers feature and supports Skill details', async ({ launchElectronApp }) => {
|
||||
@@ -10,12 +10,6 @@ test.describe('Project configuration skills', () => {
|
||||
const app = await launchElectronApp({ skipSetup: true });
|
||||
|
||||
try {
|
||||
const userDataDir = await app.evaluate(({ app: electronApp }) => electronApp.getPath('userData'));
|
||||
const skillDir = path.join(userDataDir, 'opencode', 'niancode-config', 'skills', 'agent-browser');
|
||||
await mkdir(path.join(skillDir, 'references'), { recursive: true });
|
||||
await writeFile(path.join(skillDir, 'SKILL.md'), '---\nname: agent-browser\ndescription: E2E browser debugging skill.\n---\n\n# Browser debugging\n');
|
||||
await writeFile(path.join(skillDir, 'references', 'guide.md'), '# Reference guide\n');
|
||||
|
||||
await app.evaluate(({ ipcMain }, selectedPath) => {
|
||||
ipcMain.removeHandler('dialog:open');
|
||||
ipcMain.handle('dialog:open', async () => ({ canceled: false, filePaths: [selectedPath] }));
|
||||
@@ -82,7 +76,7 @@ test.describe('Project configuration skills', () => {
|
||||
const now = new Date().toISOString();
|
||||
await mkdir(path.join(parentPath, '.niancode'), { recursive: true });
|
||||
await writeFile(path.join(parentPath, '.niancode', 'project.json'), JSON.stringify({
|
||||
...createProjectConfig(undefined, 'mini_game'),
|
||||
...createCodingProjectConfigV2(now, 'mini_game'),
|
||||
initialized: true,
|
||||
agents: [{
|
||||
id: 'e2e-partner',
|
||||
@@ -91,7 +85,8 @@ test.describe('Project configuration skills', () => {
|
||||
name: 'E2E伙伴',
|
||||
builtIn: false,
|
||||
enabled: true,
|
||||
model: 'moonshot/kimi-k2.6',
|
||||
model: { accountId: 'moonshot', modelId: 'kimi-k2.6', thinkingLevel: 'off' },
|
||||
modelResolution: 'resolved',
|
||||
skillIds: [],
|
||||
responsibility: { mission: '验证伙伴维护弹窗。', owns: [], boundaries: [], collaborators: [], principles: [] },
|
||||
prompt: '',
|
||||
@@ -110,8 +105,8 @@ test.describe('Project configuration skills', () => {
|
||||
await expect(page.getByTestId('skill-card-agent-browser')).toBeVisible();
|
||||
await page.getByTestId('skill-card-agent-browser').click();
|
||||
await expect(page.getByTestId('skill-detail-view')).toBeVisible();
|
||||
await expect(page.getByTestId('skill-structure')).toContainText('references/guide.md');
|
||||
await expect(page.getByTestId('skill-main-file')).toContainText('# Browser debugging');
|
||||
await expect(page.getByTestId('skill-structure')).toContainText('SKILL.md');
|
||||
await expect(page.getByTestId('skill-main-file')).toContainText('# Makelore 开发浏览器');
|
||||
await page.getByRole('button', { name: '返回技能列表' }).locator('svg').click();
|
||||
await expect(page.getByTestId('skill-card-agent-browser')).toBeVisible();
|
||||
await expect(page.getByTestId('skill-card-game-engine')).toHaveCount(0);
|
||||
|
||||
Reference in new issue
Block a user