Uh oh!
There was an error while loading. Please reload this page.
feat(qa): telegram soak test on digitalocean + fix bun -e - #2547
Merged
Conversation
5 tasks
louisgv
approved these changes
Mar 12, 2026
louisgv
left a comment
Collaborator
There was a problem hiding this comment.
Security Review
Verdict: APPROVED
Commit: e96cdd8
Findings
No security issues found.
Changes Reviewed
- Documentation: Changed
bun evaltobun -e(correct flag usage) - QA soak mode: Added Telegram credential loading with proper validation
- Soak test library: Added configurable cloud support, fixed env var handling
- Helper scripts: Updated to use
bun -econsistently
Security Controls Verified
- Input validation: TELEGRAM_TEST_CHAT_ID numeric check, timeout value validation
- Credential handling: Base64 encoding for tokens, safe env var passing
- Command injection protection: All inputs validated before use
- No unsafe eval or shell expansion patterns
- Defense-in-depth patterns intact
Tests
- bash -n: PASS (all shell scripts)
- bun test: N/A (module resolution in worktree, baseline has unrelated merge conflict)
- curl|bash: OK (no changes to remote fetch patterns)
- macOS compat: OK (bun -e works on all platforms)
-- security/pr-reviewer
- soak.sh: SOAK_CLOUD env var makes cloud configurable (default: sprite) - qa.sh: load TELEGRAM_BOT_TOKEN, TELEGRAM_TEST_CHAT_ID, SOAK_CLOUD from /etc/spawn-qa-auth.env in soak mode - qa.yml: add weekly Monday 3am UTC scheduled soak trigger - fix: bun eval → bun -e across soak.sh, key-request.sh, github-auth.sh (bun eval is not a valid subcommand in bun 1.3.9) - fix: export _TOKEN via env prefix so process.env._TOKEN works in bun -e - docs: update shell-scripts.md rule to say bun -e (not bun eval) Verified: 3/4 Telegram tests pass in smoke test on DigitalOcean (120s wait) getMe ✓ sendMessage ✓ getWebhookInfo ✓; cron test needs full 55-min window. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
louisgvforce-pushed
the
qa/soak-do-support
branch
from
March 12, 2026 23:44
e96cdd8 to
8f0f831CompareUh oh!
There was an error while loading. Please reload this page.
AhmedTMM pushed a commit
to AhmedTMM/spawn
that referenced
this pull request
Mar 13, 2026
…Labs#2547) - soak.sh: SOAK_CLOUD env var makes cloud configurable (default: sprite) - qa.sh: load TELEGRAM_BOT_TOKEN, TELEGRAM_TEST_CHAT_ID, SOAK_CLOUD from /etc/spawn-qa-auth.env in soak mode - qa.yml: add weekly Monday 3am UTC scheduled soak trigger - fix: bun eval → bun -e across soak.sh, key-request.sh, github-auth.sh (bun eval is not a valid subcommand in bun 1.3.9) - fix: export _TOKEN via env prefix so process.env._TOKEN works in bun -e - docs: update shell-scripts.md rule to say bun -e (not bun eval) Verified: 3/4 Telegram tests pass in smoke test on DigitalOcean (120s wait) getMe ✓ sendMessage ✓ getWebhookInfo ✓; cron test needs full 55-min window. Co-authored-by: spawn-qa-bot <qa@openrouter.ai> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
5 tasks
AhmedTMM pushed a commit
to AhmedTMM/spawn
that referenced
this pull request
Mar 13, 2026
…Labs#2547) - soak.sh: SOAK_CLOUD env var makes cloud configurable (default: sprite) - qa.sh: load TELEGRAM_BOT_TOKEN, TELEGRAM_TEST_CHAT_ID, SOAK_CLOUD from /etc/spawn-qa-auth.env in soak mode - qa.yml: add weekly Monday 3am UTC scheduled soak trigger - fix: bun eval → bun -e across soak.sh, key-request.sh, github-auth.sh (bun eval is not a valid subcommand in bun 1.3.9) - fix: export _TOKEN via env prefix so process.env._TOKEN works in bun -e - docs: update shell-scripts.md rule to say bun -e (not bun eval) Verified: 3/4 Telegram tests pass in smoke test on DigitalOcean (120s wait) getMe ✓ sendMessage ✓ getWebhookInfo ✓; cron test needs full 55-min window. Co-authored-by: spawn-qa-bot <qa@openrouter.ai> Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Soak test — now runs on DigitalOcean:
soak.sh:SOAK_CLOUDenv var makes the cloud configurable (default:sprite). Set todigitaloceanvia/etc/spawn-qa-auth.envon the QA VM.qa.sh: loadsTELEGRAM_BOT_TOKEN,TELEGRAM_TEST_CHAT_ID,SOAK_CLOUDfrom/etc/spawn-qa-auth.envin soak modeqa.yml: adds weekly Monday 3am UTC scheduled soak trigger; detects viagithub.event.scheduleto avoid conflicting with the 4-hour quality sweepBug fix —
bun evalis not a valid command:bun eval '...'fails with "Script not found eval" in bun 1.3.9. The correct form isbun -e '...'. Fixed across:soak.sh(the active soak test path, was causing injection to fail every run)key-request.sh(jq fallback paths — jq is present on QA VM so this wasn't triggered)github-auth.sh(jq fallback)shell-scripts.md(rule doc updated)Also fixed:
_TOKENis now passed via env var prefix (_TOKEN=${_TOKEN} bun -e '...') soprocess.env._TOKENis available inside the bun inline script.Live test results (DigitalOcean, 120s smoke test)
Setup on QA VM (already done)
/etc/spawn-qa-auth.envnow contains:🤖 Generated with Claude Code