Summary
The pi-embedded execution engine was gutted in #75, but a transitional stub barrel src/agents/pi-embedded.ts was left behind with no-op implementations so existing callers would compile without import-path changes. This stub and its consumer files need to be cleaned up — every function in the barrel returns a constant (false, 0, "default", empty object) and does nothing.
What to Delete
src/agents/pi-embedded.ts — the stub barrel itself. Contains:
- 4 stub types:
EmbeddedPiAgentMeta, EmbeddedPiRunMeta, EmbeddedPiRunResult, EmbeddedPiCompactResult
- 9 stub functions:
isEmbeddedPiRunActive (→false), isEmbeddedPiRunStreaming (→false), abortEmbeddedPiRun (→false), waitForEmbeddedPiRunEnd (→true), queueEmbeddedPiMessage (→false), resolveEmbeddedSessionLane (→"default"), getActiveEmbeddedRunCount (→0), runEmbeddedPiAgent (→empty result), compactEmbeddedPiSession (→failure result)
Call Sites to Clean Up
Category A: Remove function call + import (7 production files)
These call abortEmbeddedPiRun() which always returns false — pure no-op, return value unused or irrelevant:
| File |
Function Called |
Action |
src/gateway/server-methods/sessions.ts |
abortEmbeddedPiRun, waitForEmbeddedPiRunEnd |
Remove both calls; waitForEmbeddedPiRunEnd always resolves true so simplify the if-block |
src/agents/tools/subagents-tool.ts |
abortEmbeddedPiRun (2 call sites: kill + steer) |
Remove both calls, keep surrounding structure |
src/auto-reply/reply/commands-session.ts |
abortEmbeddedPiRun |
Remove call (pure side-effect no-op) |
src/auto-reply/reply/abort.ts |
abortEmbeddedPiRun |
Remove import + all calls |
src/auto-reply/reply/commands-subagents/action-send.ts |
abortEmbeddedPiRun |
Remove call |
src/auto-reply/reply/commands-subagents/action-kill.ts |
abortEmbeddedPiRun |
Remove call |
src/auto-reply/reply/agent-runner.ts |
queueEmbeddedPiMessage |
Remove call (returns false, nothing queued) |
Category B: Replace function call with literal (3 production files)
| File |
Function Called |
Replacement |
src/auto-reply/reply/queue/cleanup.ts |
resolveEmbeddedSessionLane(cleaned) |
Replace with literal "default" |
src/gateway/server-reload-handlers.ts |
getActiveEmbeddedRunCount() |
Replace with literal 0 |
src/gateway/server.impl.ts |
getActiveEmbeddedRunCount() |
Replace with literal 0 |
Category C: Clean up test harnesses (legacy pi-embedded mock naming)
These test files mock ChannelBridge but use legacy piEmbeddedMock variable naming and legacy type shims. They need renaming and cleanup:
| File |
What to Do |
src/auto-reply/reply.block-streaming.test.ts |
Rename piEmbeddedMock → bridgeMock; remove unused mock fns (abortEmbeddedPiRun, queueEmbeddedPiMessage, isEmbeddedPiRunActive, isEmbeddedPiRunStreaming); replace local RunEmbeddedPiAgentReply/RunEmbeddedPiAgentParams types with AgentDeliveryResult from middleware; rename toDeliveryResult or inline |
src/auto-reply/reply.triggers.trigger-handling.test-harness.ts |
Rename piEmbeddedMocks → bridgeMocks; remove unused mock fns; remove exported getters (getAbortEmbeddedPiRunMock, getCompactEmbeddedPiSessionMock, getQueueEmbeddedPiMessageMock); rename getRunEmbeddedPiAgentMock → getBridgeRunMock or similar |
Category D: Update other test files with pi-embedded mocks
| File |
Mocked Symbol |
Action |
src/cron/isolated-agent.test-setup.ts |
runEmbeddedPiAgent |
Remove mock setup |
src/cron/isolated-agent.delivery.test-helpers.ts |
runEmbeddedPiAgent |
Remove mock helpers |
src/auto-reply/reply.media-note.test.ts |
runEmbeddedPiAgent |
Remove mock |
src/auto-reply/reply/commands.test.ts |
Multiple pi-embedded functions |
Remove entire vi.mock("../../agents/pi-embedded.js") block |
src/auto-reply/reply.directive.directive-behavior.e2e-harness.ts |
runEmbeddedPiAgent |
Remove re-export |
Category E: Clean extension API
| File |
Action |
src/extensionAPI.ts |
Remove pi-embedded re-exports |
Approach
- Remove all production imports and calls (Categories A + B) — ~10 files
- Clean up test harnesses: rename legacy pi-embedded mock naming to ChannelBridge-oriented naming, remove unused mock functions, replace legacy type shims with middleware types (Category C) — 2 files
- Remove test mocks that reference pi-embedded (Category D) — ~5 files
- Clean extensionAPI.ts (Category E) — 1 file
- Delete
src/agents/pi-embedded.ts — the stub barrel itself
- Verify:
grep -r "pi-embedded" src/ --include="*.ts" returns zero results
- Verify:
pnpm build passes
- Verify:
pnpm test passes (remaining tests)
Scope
~17 files modified + 1 file deleted. ~80-100 lines changed total.
Context
This is the final cleanup after #75 (gut pi-embedded execution engine core). The stub barrel was a transitional measure to keep the build passing while the engine was removed. With the engine gone, these no-op stubs serve no purpose and should be removed to eliminate dead code references. The test harnesses that mock ChannelBridge using legacy pi-embedded naming should be modernized to use ChannelBridge-native types and naming.
Summary
The pi-embedded execution engine was gutted in #75, but a transitional stub barrel
src/agents/pi-embedded.tswas left behind with no-op implementations so existing callers would compile without import-path changes. This stub and its consumer files need to be cleaned up — every function in the barrel returns a constant (false, 0, "default", empty object) and does nothing.What to Delete
src/agents/pi-embedded.ts— the stub barrel itself. Contains:EmbeddedPiAgentMeta,EmbeddedPiRunMeta,EmbeddedPiRunResult,EmbeddedPiCompactResultisEmbeddedPiRunActive(→false),isEmbeddedPiRunStreaming(→false),abortEmbeddedPiRun(→false),waitForEmbeddedPiRunEnd(→true),queueEmbeddedPiMessage(→false),resolveEmbeddedSessionLane(→"default"),getActiveEmbeddedRunCount(→0),runEmbeddedPiAgent(→empty result),compactEmbeddedPiSession(→failure result)Call Sites to Clean Up
Category A: Remove function call + import (7 production files)
These call
abortEmbeddedPiRun()which always returnsfalse— pure no-op, return value unused or irrelevant:src/gateway/server-methods/sessions.tsabortEmbeddedPiRun,waitForEmbeddedPiRunEndwaitForEmbeddedPiRunEndalways resolvestrueso simplify the if-blocksrc/agents/tools/subagents-tool.tsabortEmbeddedPiRun(2 call sites: kill + steer)src/auto-reply/reply/commands-session.tsabortEmbeddedPiRunsrc/auto-reply/reply/abort.tsabortEmbeddedPiRunsrc/auto-reply/reply/commands-subagents/action-send.tsabortEmbeddedPiRunsrc/auto-reply/reply/commands-subagents/action-kill.tsabortEmbeddedPiRunsrc/auto-reply/reply/agent-runner.tsqueueEmbeddedPiMessagefalse, nothing queued)Category B: Replace function call with literal (3 production files)
src/auto-reply/reply/queue/cleanup.tsresolveEmbeddedSessionLane(cleaned)"default"src/gateway/server-reload-handlers.tsgetActiveEmbeddedRunCount()0src/gateway/server.impl.tsgetActiveEmbeddedRunCount()0Category C: Clean up test harnesses (legacy pi-embedded mock naming)
These test files mock
ChannelBridgebut use legacypiEmbeddedMockvariable naming and legacy type shims. They need renaming and cleanup:src/auto-reply/reply.block-streaming.test.tspiEmbeddedMock→bridgeMock; remove unused mock fns (abortEmbeddedPiRun,queueEmbeddedPiMessage,isEmbeddedPiRunActive,isEmbeddedPiRunStreaming); replace localRunEmbeddedPiAgentReply/RunEmbeddedPiAgentParamstypes withAgentDeliveryResultfrom middleware; renametoDeliveryResultor inlinesrc/auto-reply/reply.triggers.trigger-handling.test-harness.tspiEmbeddedMocks→bridgeMocks; remove unused mock fns; remove exported getters (getAbortEmbeddedPiRunMock,getCompactEmbeddedPiSessionMock,getQueueEmbeddedPiMessageMock); renamegetRunEmbeddedPiAgentMock→getBridgeRunMockor similarCategory D: Update other test files with pi-embedded mocks
src/cron/isolated-agent.test-setup.tsrunEmbeddedPiAgentsrc/cron/isolated-agent.delivery.test-helpers.tsrunEmbeddedPiAgentsrc/auto-reply/reply.media-note.test.tsrunEmbeddedPiAgentsrc/auto-reply/reply/commands.test.tsvi.mock("../../agents/pi-embedded.js")blocksrc/auto-reply/reply.directive.directive-behavior.e2e-harness.tsrunEmbeddedPiAgentCategory E: Clean extension API
src/extensionAPI.tsApproach
src/agents/pi-embedded.ts— the stub barrel itselfgrep -r "pi-embedded" src/ --include="*.ts"returns zero resultspnpm buildpassespnpm testpasses (remaining tests)Scope
~17 files modified + 1 file deleted. ~80-100 lines changed total.
Context
This is the final cleanup after #75 (gut pi-embedded execution engine core). The stub barrel was a transitional measure to keep the build passing while the engine was removed. With the engine gone, these no-op stubs serve no purpose and should be removed to eliminate dead code references. The test harnesses that mock ChannelBridge using legacy pi-embedded naming should be modernized to use ChannelBridge-native types and naming.