Conversation
|
The performance run for After five paired runs and trimming one extreme sample per revision, the candidate startup-duration spread was 38.4% and the baseline CPU-time spread was 33.0%, exceeding the 30% stability limit. Both The full suite treats INCONCLUSIVE as a failed check (exit code 2). This run establishes neither a confirmed regression nor a performance pass. A full-suite rerun must produce PASS for the latest head and intended base before merge. Linux, macOS, and Windows verification checks have passed. |
| ? ` Command limit: ${timing.commandTimeoutSeconds}s total; yielding does not reset it.` | ||
| : ''; | ||
| const purpose = | ||
| typeof details.description === 'string' ? `Purpose: ${details.description}\n` : ''; |
There was a problem hiding this comment.
[P2] Bound the purpose text in background receipts
When the optional description is omitted, resolveBashDescription() falls back to the entire command, which is now interpolated into Purpose without any output limit. Both explicit background starts and automatic promotion therefore echo large inline scripts back into the model context and can exceed the documented 24 KiB first-response budget. At this head, invoking the real LocalBashTool with a controlled admission adapter and an approximately 40 KB inline script produced a 40,355-byte receipt; a 100,000-character command produced receipts over 100 KB on both paths. Please bound the displayed purpose independently, including explicitly supplied descriptions, while preserving the task ID, timeout, and continuation instructions, and add coverage for both receipt paths.
Change
Local Bash now requires exit code zero for success and preserves signals, cancellation reasons, deadlines, and partial output. Managed foreground commands can yield after 60 seconds while retaining the original 600-second command deadline. Foreground-only turns retain the 120-second default and 300-second cap.
task_outputis available.Validation
9cb9d8c: the existing turn-executor Vitest suite passed 141 tests. Receipt coverage exercises explicit background and automatic promotion with omitted, long UTF-8, and short descriptions, while checking original command preservation and complete control instructions.pnpm typecheck,pnpm check:source(4,254 paths), andgit diff --check: passed.LocalBashTooland a controlled background adapter confirmed that 100 KB commands/descriptions now produce receipts of approximately 1.4 KB.perf:fullis selected.Publication and contribution checks
third_party/pi-mono/MINIMAX_CHANGES.md; existing licenses and notices are preserved.release/public-source.json; regression coverage uses existing test files and suite registrations.Maintainer handoff
Selective port of the applicable shared local Bash changes. The extraction baseline remains pinned. No dependencies or licenses change.
Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.