diff --git a/adapters-0.1.23.png b/adapters-0.1.23.png new file mode 100644 index 0000000..d2367ee Binary files /dev/null and b/adapters-0.1.23.png differ diff --git a/paperclip-adapter-opencode-k8s-0.1.22.tgz b/paperclip-adapter-opencode-k8s-0.1.22.tgz new file mode 100644 index 0000000..27d4c33 Binary files /dev/null and b/paperclip-adapter-opencode-k8s-0.1.22.tgz differ diff --git a/paperclip-adapter-opencode-k8s-0.1.23.tgz b/paperclip-adapter-opencode-k8s-0.1.23.tgz new file mode 100644 index 0000000..675d48b Binary files /dev/null and b/paperclip-adapter-opencode-k8s-0.1.23.tgz differ diff --git a/src/server/execute.ts b/src/server/execute.ts index fd9a2cf..34d3c16 100644 --- a/src/server/execute.ts +++ b/src/server/execute.ts @@ -897,6 +897,11 @@ export async function ensureAgentDbPvc( }, }, kubeconfigPath); + const verified = await getPvc(namespace, pvcName, kubeconfigPath); + if (!verified) { + throw new Error(`PVC ${pvcName} was not created in namespace ${namespace}`); + } + return pvcName; } diff --git a/src/server/pvc.test.ts b/src/server/pvc.test.ts index 0974f81..f4e99a1 100644 --- a/src/server/pvc.test.ts +++ b/src/server/pvc.test.ts @@ -38,7 +38,9 @@ describe("ensureAgentDbPvc", () => { }); it("creates PVC when it does not exist and returns the name", async () => { - vi.mocked(getPvc).mockResolvedValue(null); + vi.mocked(getPvc) + .mockResolvedValueOnce(null) + .mockResolvedValueOnce({ metadata: { name: `opencode-db-${AGENT_ID}` } } as never); vi.mocked(createPvc).mockResolvedValue({} as never); const result = await ensureAgentDbPvc(AGENT_ID, NAMESPACE, { agentDbMode: "dedicated_pvc", @@ -62,7 +64,9 @@ describe("ensureAgentDbPvc", () => { }); it("defaults storage capacity to 1Gi when agentDbStorageCapacity is not set", async () => { - vi.mocked(getPvc).mockResolvedValue(null); + vi.mocked(getPvc) + .mockResolvedValueOnce(null) + .mockResolvedValueOnce({ metadata: { name: `opencode-db-${AGENT_ID}` } } as never); vi.mocked(createPvc).mockResolvedValue({} as never); await ensureAgentDbPvc(AGENT_ID, NAMESPACE, { agentDbMode: "dedicated_pvc", @@ -81,7 +85,9 @@ describe("ensureAgentDbPvc", () => { it("sanitizes agent ID in PVC name (strips non-alphanumeric except hyphens)", async () => { const weirdId = "Agent/ID:with@special!chars"; - vi.mocked(getPvc).mockResolvedValue(null); + vi.mocked(getPvc) + .mockResolvedValueOnce(null) + .mockResolvedValueOnce({ metadata: { name: "opencode-db-agentidwithspecialchars" } } as never); vi.mocked(createPvc).mockResolvedValue({} as never); const result = await ensureAgentDbPvc(weirdId, NAMESPACE, { agentDbMode: "dedicated_pvc",