fix(runtime): honor provider acquisition timeout defaults (#14097)

Declare provider acquisition budgets so slow Daytona creation does not hit the host’s 30-second fallback. Bound creation and setup to one deadline and preserve scoped cleanup ownership after timeout. Legacy drivers retain their original call shape.

Validated by 238 provider/manifest tests, focused database and heartbeat regressions, root and standalone provider typecheck/build, and full CI. Local broad tests also expose recorded Mac baseline limitations. Greptile 5/5.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Devin FoleyandPaperclip authored and GitHub committed 2026-09-26 00:47:21 -07:00
1 parent 7f3c06dac4
commit ffa32373bc
9 files changed
+295 -77

No files matched your search

@@ -276,6 +276,24 @@ describe("plugin UI slot validators", () => {
});
describe("sandbox provider capability declaration validators", () => {
it("preserves a declared acquisition budget and keeps it optional", () => {
const parsed = pluginManifestV1Schema.parse(
buildSandboxProviderManifest({ defaultAcquireTimeoutMs: 300_000 }),
);
expect(parsed.environmentDrivers?.[0]?.defaultAcquireTimeoutMs).toBe(300_000);
const legacy = pluginManifestV1Schema.parse(buildSandboxProviderManifest({}));
expect(legacy.environmentDrivers?.[0]?.defaultAcquireTimeoutMs).toBeUndefined();
});
it.each([0, -1, 1.5, Infinity, NaN, "300000", 86_400_001])(
"rejects an invalid acquisition budget: %s",
(defaultAcquireTimeoutMs) => {
expect(pluginManifestV1Schema.safeParse(
buildSandboxProviderManifest({ defaultAcquireTimeoutMs }),
).success).toBe(false);
},
);
it("test_manifest_accepts_sandbox_capabilities_and_rejects_unknown_capability_keys", () => {
const parsed = pluginManifestV1Schema.parse(
buildSandboxProviderManifest({