diff --git a/apps/cli/tests/profiles/webhook-packed.e2e.ts b/apps/cli/tests/profiles/webhook-packed.e2e.ts index 022122d4fd..eba0f36c3c 100644 --- a/apps/cli/tests/profiles/webhook-packed.e2e.ts +++ b/apps/cli/tests/profiles/webhook-packed.e2e.ts @@ -174,7 +174,7 @@ it.skipIf(!built)('loads the packed GitHub example with its explicitly installed ...Object.fromEntries(runtimeMembers.map(member => [member.name, `file:${tarballs.get(member.name)!}`])), }, })) - await packageCommand(['install', '--offline', '--no-frozen-lockfile'], installation) + await packageCommand(['install', '--prefer-offline', '--no-frozen-lockfile'], installation) await assertInstalledTree(installation) expect(existsSync(join(installation, 'node_modules', runtime))).toBe(false) expect(existsSync(join(installation, 'node_modules', adapter))).toBe(false) @@ -200,7 +200,7 @@ it.skipIf(!built)('loads the packed GitHub example with its explicitly installed const adapterArchive = tarballs.get(adapter) const runtimeArchive = tarballs.get(runtime) if (adapterArchive === undefined || runtimeArchive === undefined) throw new Error('webhook tarballs were not packed') - await packageCommand(['add', runtimeArchive, adapterArchive, '--offline', '--ignore-scripts'], profile) + await packageCommand(['add', runtimeArchive, adapterArchive, '--prefer-offline', '--ignore-scripts'], profile) const manifest = JSON.parse(await readFile(join(profile, 'package.json'), 'utf8')) as { dependencies: Record } expect(Object.keys(manifest.dependencies).sort()).toEqual([runtime, adapter].sort()) await assertInstalledTree(profile) diff --git a/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md b/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md index 4abdc53e16..a356d32c08 100644 --- a/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md +++ b/apps/web/tests/expected/github-ready-review/conversation-expanded.expected.md @@ -1,15 +1,15 @@ - tree "Sessions": - treeitem "{{workspace}}" [expanded] - - treeitem "Review deepseek-ai/deepseek-harness#314 Session actions for Review deepseek-ai/deepseek-harness#314 Archive session Pin session" [selected]: - - text: Review deepseek-ai/deepseek-harness#314 - - button "Session actions for Review deepseek-ai/deepseek-harness#314" + - treeitem "Review deepseek-harness/deepseek-harness#314 Session actions for Review deepseek-harness/deepseek-harness#314 Archive session Pin session" [selected]: + - text: Review deepseek-harness/deepseek-harness#314 + - button "Session actions for Review deepseek-harness/deepseek-harness#314" - button "Archive session" - button "Pin session" --- - banner: - - navigation "Session hierarchy": Review deepseek-ai/deepseek-harness#314 + - navigation "Session hierarchy": Review deepseek-harness/deepseek-harness#314 - text: Standard mode - button "More actions" - button "Open right sidebar" diff --git a/apps/web/tests/expected/github-ready-review/conversation.expected.md b/apps/web/tests/expected/github-ready-review/conversation.expected.md index 4abdc53e16..a356d32c08 100644 --- a/apps/web/tests/expected/github-ready-review/conversation.expected.md +++ b/apps/web/tests/expected/github-ready-review/conversation.expected.md @@ -1,15 +1,15 @@ - tree "Sessions": - treeitem "{{workspace}}" [expanded] - - treeitem "Review deepseek-ai/deepseek-harness#314 Session actions for Review deepseek-ai/deepseek-harness#314 Archive session Pin session" [selected]: - - text: Review deepseek-ai/deepseek-harness#314 - - button "Session actions for Review deepseek-ai/deepseek-harness#314" + - treeitem "Review deepseek-harness/deepseek-harness#314 Session actions for Review deepseek-harness/deepseek-harness#314 Archive session Pin session" [selected]: + - text: Review deepseek-harness/deepseek-harness#314 + - button "Session actions for Review deepseek-harness/deepseek-harness#314" - button "Archive session" - button "Pin session" --- - banner: - - navigation "Session hierarchy": Review deepseek-ai/deepseek-harness#314 + - navigation "Session hierarchy": Review deepseek-harness/deepseek-harness#314 - text: Standard mode - button "More actions" - button "Open right sidebar" diff --git a/apps/web/tests/github-ready-review.e2e.ts b/apps/web/tests/github-ready-review.e2e.ts index 3527f067dd..abf798f95f 100644 --- a/apps/web/tests/github-ready-review.e2e.ts +++ b/apps/web/tests/github-ready-review.e2e.ts @@ -30,7 +30,7 @@ const EXPANDED_EXPECTED = fileURLToPath( const PROVIDER = 'github-webhook-review-test' const MODEL = 'reply' const SECRET = 'github-webhook-review-secret' -const TITLE = 'Review deepseek-ai/deepseek-harness#314' +const TITLE = 'Review deepseek-harness/deepseek-harness#314' const REPLY = 'Review complete: no actionable findings.' /** Deterministic model response for the webhook-created Session. */ @@ -92,7 +92,13 @@ describe.skipIf(MODE === 'record')('web e2e: GitHub ready-for-review', () => { process.env.DSH_GITHUB_WEBHOOK_PORT = String(port) process.env.DSH_GITHUB_WEBHOOK_SECRET = SECRET webhookOrigin = `http://127.0.0.1:${String(port)}` - scaffold = await launchWebScaffold({ extraOverlayPath: OVERLAY }) + scaffold = await launchWebScaffold({ + extraOverlayPath: OVERLAY, + profile: { packages: [ + { dir: fileURLToPath(new URL('../../../packages/experimental/webhook', import.meta.url)) }, + { dir: fileURLToPath(new URL('../../../packages/experimental/webhook-github', import.meta.url)) }, + ] }, + }) scaffold.ctx.effect( () => scaffold.ctx.llm.registerAdapter([PROVIDER], adapter), 'GitHub webhook review adapter', @@ -130,10 +136,10 @@ describe.skipIf(MODE === 'record')('web e2e: GitHub ready-for-review', () => { const payload = { action: 'ready_for_review', number: 314, - repository: { full_name: 'deepseek-ai/deepseek-harness' }, + repository: { full_name: 'deepseek-harness/deepseek-harness' }, pull_request: { title: 'Fix session replay', - html_url: 'https://github.com/deepseek-ai/deepseek-harness/pull/314', + html_url: 'https://github.com/deepseek-harness/deepseek-harness/pull/314', draft: false, user: { login: 'octocat' }, base: { ref: 'master', sha: 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa' }, diff --git a/scripts/release/families.spec.ts b/scripts/release/families.spec.ts index 08f299af42..e10ebe3ab0 100644 --- a/scripts/release/families.spec.ts +++ b/scripts/release/families.spec.ts @@ -64,16 +64,25 @@ describe('release families', () => { '@deepseek-ai/dsh-experimental-computer-use-cua-driver-mcp', '@deepseek-ai/dsh-experimental-computer-use-cua-driver-native', '@deepseek-ai/dsh-experimental-cot-translation-bundle', + '@deepseek-ai/dsh-experimental-hook-protocol', + '@deepseek-ai/dsh-experimental-hooks-claude-code', + '@deepseek-ai/dsh-experimental-hooks-codex', '@deepseek-ai/dsh-experimental-inspector-profile', '@deepseek-ai/dsh-experimental-inspector', '@deepseek-ai/dsh-experimental-ptc-runtime-python', '@deepseek-ai/dsh-experimental-session-inspector', + '@deepseek-ai/dsh-experimental-session-title-all-prompts-llm', + '@deepseek-ai/dsh-experimental-skill-badge', '@deepseek-ai/dsh-experimental-speech-to-text-sensevoice', '@deepseek-ai/dsh-experimental-speech-to-text', '@deepseek-ai/dsh-experimental-tool-agent-team', + '@deepseek-ai/dsh-experimental-tool-ralph', + '@deepseek-ai/dsh-experimental-tool-terminal', '@deepseek-ai/dsh-experimental-tool-worktree', '@deepseek-ai/dsh-experimental-translator', '@deepseek-ai/dsh-experimental-voice-input-bundle', + '@deepseek-ai/dsh-experimental-webhook-github', + '@deepseek-ai/dsh-experimental-webhook', '@deepseek-ai/dsh-experimental-webworker-packer', '@deepseek-ai/dsh-experimental-webworker-runtime', '@deepseek-ai/dsh-experimental-worktree', diff --git a/vitest.config.ts b/vitest.config.ts index da9a955514..c39a856a96 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -29,7 +29,9 @@ const windowsUnsupportedPackages = process.platform === 'win32' 'packages/shell/bash-local', 'packages/shell/bash-sandbox', 'packages/shell/tool-bash', - 'packages/hooks/*', + 'packages/experimental/hook-protocol', + 'packages/experimental/hooks-claude-code', + 'packages/experimental/hooks-codex', 'packages/terminal/terminal-bash', 'packages/experimental/ptc-runtime-python', 'packages/sandbox/sandbox-local',