mirror of
https://github.com/OpenRouterTeam/spawn.git
synced 2026-04-26 11:00:38 +00:00
* feat: add recursive spawn (--beta recursive) Enables VMs to spawn child VMs. When --beta recursive is active: - Injects SPAWN_PARENT_ID, SPAWN_DEPTH, SPAWN_BETA=recursive into .spawnrc - Installs spawn CLI on the VM via install.sh - Delegates cloud + OpenRouter credentials to the VM - Tracks parent_id and depth on SpawnRecord for tree relationships - Adds `spawn tree` command for full recursive tree view - Adds `spawn history export` for pulling child history via SSH - Adds `spawn list --json` and `spawn list --flat` flags - Adds tree rendering in `spawn list` when parent-child relationships exist - Adds cascade delete support in delete.ts - Adds mergeChildHistory() for backward-pass history sync Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: add recursive spawn to README Add --beta recursive to beta features table, new commands (spawn tree, spawn history export, spawn list --flat/--json) to commands table, and a dedicated Recursive Spawn section with usage examples for tree view and cascade delete. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test: add cmdTree coverage tests to fix mock test CI The CI coverage threshold (90% functions, 80% lines) was failing because tree.ts had 0% coverage. Added tests that exercise cmdTree with empty history, tree rendering, JSON output, flat records, and deleted/depth labels. tree.ts now has 100% coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix(security): validate cloudName and use valibot in pullChildHistory - Add cloudName validation against ^[a-z0-9-]+$ to prevent command injection in delegateCloudCredentials - Export SpawnRecordSchema from history.ts and replace loose type guard with valibot schema validation in pullChildHistory - Resolve merge conflicts with main (include both docker and recursive beta features) Agent: pr-maintainer Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> * test: add installSpawnCli and delegateCloudCredentials coverage Export and test installSpawnCli (success + timeout failure paths) and delegateCloudCredentials (no creds, with creds, write failure, mkdir failure paths) to improve orchestrate.ts function coverage. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: gritQL rule false positives and delete.ts coverage - use TsAsExpression() AST node instead of backtick pattern to avoid matching import aliases as type assertions - export and test findDescendants() and pullChildHistory() to bring delete.ts line coverage above the 35% threshold - add 8 new tests for descendant finding and history pull edge cases Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: B <6723574+louisgv@users.noreply.github.com> Co-authored-by: A <258483684+la14-1@users.noreply.github.com>
7 lines
302 B
Text
7 lines
302 B
Text
language js(typescript)
|
|
|
|
TsAsExpression() as $expr where {
|
|
! $expr <: `$_ as const`,
|
|
! $expr <: JsNamedImportSpecifier(),
|
|
register_diagnostic(span=$expr, message="Type assertions (`as`) are banned. Use schema validation (parseJsonWith), type guards, or `satisfies` instead.", severity="error")
|
|
}
|