Drop 9 batch proposals that are superseded by the boocode-lift-analysis (boocontext-audit, conductor upgrades, self-healing/verify-gate skills): add-3tier-memory, import-llm-evaluator, import-pregel-engine, plugin-platform, conductor-evolution, code-intelligence-upgrade, dev-workflow, ui-overhaul, agent-reliability. Delete 11 stub archive files (49-66B each, 'Status: Shipped. Archived.' only) that provide zero documentation value over the existing CHANGELOG.md + git tags.
2.7 KiB
2.7 KiB
ADDED Requirements
Requirement: Sandbox creation
The system SHALL provide a Sandbox.create() static method that provisions a new isolated compute environment.
Parameters:
name?: string— optional human-readable namesource?: { type: "git" | "tarball" | "snapshot" }— source for initial filesystemports?: number[]— ports to expose (max 4)timeout?: number— auto-terminate timeout in msresources?: { vcpus: number }— CPU allocation (2048 MB RAM per vCPU)runtime?: string— runtime identifiernetworkPolicy?: NetworkPolicy— network restrictionsenv?: Record<string, string>— default environment variablestags?: Record<string, string>— metadata tags (max 5)persistent?: boolean— persistent filesystem across sessionssignal?: AbortSignal— cancellation support
Scenario: Create returns a running Sandbox instance
- WHEN
Sandbox.create()is called with valid parameters - THEN it SHALL return a
Sandboxinstance with a running session
Scenario: Create supports AsyncDisposable
- WHEN
Sandbox.create()is used withawait using - THEN the sandbox SHALL be automatically stopped when scope exits
Scenario: Source specifies initial filesystem content
- WHEN
source: { type: "git", url: "..." }is provided - THEN the sandbox SHALL clone the git repository on creation
Requirement: Sandbox retrieval
The system SHALL provide Sandbox.get() to retrieve an existing sandbox and Sandbox.getOrCreate() for idempotent get-or-create.
Scenario: Get retrieves existing sandbox
- WHEN
Sandbox.get({ name: "my-sandbox" })is called for an existing sandbox - THEN it SHALL return the sandbox with its session resumed
Scenario: GetOrCreate creates when not found
- WHEN
Sandbox.getOrCreate({ name: "new-sandbox", onCreate: ... })is called and sandbox doesn't exist - THEN it SHALL create a new sandbox and call
onCreateonce
Requirement: Sandbox forking
The system SHALL provide Sandbox.fork() to create a new sandbox from an existing one's current filesystem state.
Scenario: Fork preserves filesystem state
- WHEN
Sandbox.fork({ sourceSandbox: "original" })is called - THEN the new sandbox SHALL start with the filesystem state of the source sandbox
Requirement: Sandbox update and delete
The system SHALL support sandbox.update() for configuration changes and sandbox.delete() for removal.
Scenario: Update changes sandbox config
- WHEN
sandbox.update({ timeout: 300000 })is called - THEN the sandbox's timeout SHALL be updated for subsequent sessions
Scenario: Delete removes the sandbox
- WHEN
sandbox.delete()is called - THEN the sandbox SHALL be permanently removed