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.3 KiB
2.3 KiB
ADDED Requirements
Requirement: Command execution (blocking)
The system SHALL provide sandbox.runCommand(cmd, args?, opts?) that executes a command inside the sandbox and waits for completion.
Parameters:
cmd: string— command to executeargs?: string[]— command argumentscwd?: string— working directoryenv?: Record<string, string>— per-command environment variablessudo?: boolean— execute with root privilegestimeoutMs?: number— max execution time (SIGKILL on expiry)signal?: AbortSignal— cancellation
Scenario: Blocking runCommand returns finished result with exit code
- WHEN
sandbox.runCommand("echo", ["hello"])is called - THEN it SHALL return a
CommandFinishedinstance withexitCode: 0
Scenario: Command timeout kills process
- WHEN
sandbox.runCommand("sleep", ["100"], { timeoutMs: 100 })is executed - THEN it SHALL return a non-zero exit code after ~100ms
Scenario: Stderr is captured separately
- WHEN a command writes to both stdout and stderr
- THEN
result.stdout()andresult.stderr()SHALL return their respective streams
Requirement: Detached command execution
The system SHALL support { detached: true } mode where runCommand() returns immediately with a live Command handle.
Scenario: Detached command returns before completion
- WHEN
sandbox.runCommand({ cmd: "sleep", args: ["5"], detached: true })is called - THEN it SHALL return a
Commandinstance immediately (before the process exits)
Scenario: Detached command can be waited on
- WHEN
command.wait()is called on a detached command - THEN it SHALL return a
CommandFinishedwhen the process exits
Requirement: Command log streaming
The system SHALL provide command.logs() as an async iterable of stdout/stderr log lines.
Scenario: Logs stream output lines
- WHEN
for await (const log of command.logs())is iterated - THEN each
logSHALL havestream: "stdout" | "stderr"anddata: string
Requirement: Command kill
The system SHALL provide command.kill(signal?) to send a POSIX signal to a running command.
Scenario: Default kill sends SIGTERM
- WHEN
command.kill()is called without a signal - THEN SIGTERM SHALL be sent to the process