mirror of
https://github.com/paperclipai/paperclip.git
synced 2026-10-24 01:41:42 +02:00
Repair master CI regressions for private task stack
Preserve existing PR history and verified downstream privacy rules. Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
1 parent
6daa031600
commit
d05ad82b8d
3 files changed
+6
-9
No files matched your search
@@ -7571,14 +7571,6 @@ it("preserves prepared input and completion feedback through runnerd and the rea
|
||||
`], { maxBuffer: 16 * 1024 * 1024 });
|
||||
await writeFile(proxy, proxyBytes, { mode: 0o755 });
|
||||
const digest = (file: string) => `sha256:${createHash("sha256").update(readFileSync(file)).digest("hex")}`;
|
||||
// Linux runner images can install Node with group-write permission. Qualify
|
||||
// an isolated copy without mutating the host. Keep the original on macOS,
|
||||
// where Homebrew Node can load dylibs relative to its installation directory.
|
||||
const providerNode = process.platform === "linux" ? join(root, "node") : process.execPath;
|
||||
if (providerNode !== process.execPath) {
|
||||
await cp(process.execPath, providerNode);
|
||||
await chmod(providerNode, 0o755);
|
||||
}
|
||||
const runtime = join(root, "opencode");
|
||||
const bundle = createCapabilityRunnerdCodexTransport({
|
||||
provider: "opencode",
|
||||
|
||||
@@ -265,6 +265,7 @@ describeEmbeddedPostgres("gateway connector invocation telemetry", () => {
|
||||
}, 30_000);
|
||||
|
||||
afterEach(async () => {
|
||||
vi.useRealTimers();
|
||||
track.mockClear();
|
||||
failLogActivityForAction.current = null;
|
||||
await db.delete(activityLog);
|
||||
@@ -379,6 +380,9 @@ describeEmbeddedPostgres("gateway connector invocation telemetry", () => {
|
||||
}, 30_000);
|
||||
|
||||
it("emits one denied event for a policy block and one rate_limited event past the limit", async () => {
|
||||
// Both calls must land in the same policy window, even across a minute boundary.
|
||||
vi.useFakeTimers({ toFake: ["Date"] });
|
||||
vi.setSystemTime(new Date("2026-10-06T12:00:30Z"));
|
||||
const f = await fixture();
|
||||
await db.insert(toolPolicies).values({
|
||||
companyId: f.company.id,
|
||||
|
||||
@@ -508,7 +508,8 @@ describe("AI repair inside the card", () => {
|
||||
setupOptionsMock.mockResolvedValue({ interaction, existingConnections: [], aiConnection: binding, aiConnectionRequiresAdoption: true });
|
||||
if (fails) adoptMock.mockRejectedValue(new Error("Connection test failed"));
|
||||
else adoptMock.mockResolvedValue({ ...interaction, status: "accepted" });
|
||||
renderBody(interaction); await flush();
|
||||
renderBody(interaction);
|
||||
await waitForAssertion(() => expect(button("Connect OpenAI")).toBeDefined());
|
||||
await act(() => button("Connect OpenAI")!.click());
|
||||
await act(() => button("Reconnect selected account")!.click());
|
||||
expect(adoptMock).not.toHaveBeenCalled();
|
||||
|
||||
Reference in new issue
Block a user