Skip to content

[skip ci] fix: batch fixes for issues #2835, 2836, 2838, 2839, 2843, 2848, 2878, 2880, 2883, 2903#279

Closed
echobt wants to merge 1 commit intomasterfrom
fix/bounty-batch-2835-2903
Closed

[skip ci] fix: batch fixes for issues #2835, 2836, 2838, 2839, 2843, 2848, 2878, 2880, 2883, 2903#279
echobt wants to merge 1 commit intomasterfrom
fix/bounty-batch-2835-2903

Conversation

@echobt
Copy link
Contributor

@echobt echobt commented Jan 27, 2026

Summary

Batch fix for multiple bounty issues.

Issues Fixed

Changes

#2835 - Sandbox exit code preservation

Modified debug_sandbox.rs to always exit with the original command's exit code instead of hardcoding exit code 2 on failure.

#2836 - PR --info partial output

Reordered pr_cmd.rs to fetch PR metadata from GitHub API before printing any header, preventing partial output on 404 errors.

#2838 - GITHUB_TOKEN env var documentation

Updated github_cmd.rs RunArgs to use clap's env attribute for automatic env var support and documented it in help.

#2839 - Nushell completion support

Added documentation to completion command help explaining nushell is not supported and linking to nushell's custom completions docs.

#2843 - Empty session ID validation

Added early validation in run_cmd.rs to immediately error on empty session IDs instead of timing out.

#2848 - Features list color coding

Added ANSI color coding to list_features(): green for stable, yellow for beta, red for experimental.

#2878 - Agent list hidden count consistency

Fixed hidden count calculation in agent_cmd.rs to always count agents with hidden=true attribute, regardless of mode filtering.

#2880 - Consistent local address blocking in MCP

Enhanced mcp_cmd.rs URL validation to block all loopback addresses consistently (127.0.0.0, ::1 without brackets) with improved error messages.

#2883 - Tool list logging verbosity

Changed cortex.rs to log request summary at info level and full body (with tool schemas) at debug level only.

#2903 - Symlink indication in uninstall

Added get_symlink_info() helper in uninstall_cmd.rs to show symlink targets in dry-run output.

Note: CI skipped for cost control. Test manually before merge.

…, 2880, 2883, 2903 [skip ci]

Fixes:
- #2835: Preserve original command exit code in sandbox commands
- #2836: Move PR API call before header output to avoid partial output on errors
- #2838: Document GITHUB_TOKEN env var in help and use clap's env attribute
- #2839: Add nushell documentation to completion command help
- #2843: Validate empty session ID immediately instead of timing out
- #2848: Add color coding to features list (green=stable, yellow=beta, red=experimental)
- #2878: Fix hidden count consistency in agent list by counting hidden attribute
- #2880: Block all loopback addresses consistently (localhost, 127.0.0.1, ::1)
- #2883: Reduce verbose tool list logging from info to debug level
- #2903: Show symlink target in uninstall dry-run output
echobt pushed a commit that referenced this pull request Jan 27, 2026
## Issues Fixed

### From PR #271 (Issues #2430-2459):
- #2448: Validate URLs for control characters (security)
- #2449: Decode HTML entities in scraped URLs
- #2450: Reject reserved command names for agent names
- #2452: Expand tilde (~) in MCP server command paths
- #2459: Validate that model name is not empty

### From PR #273 (Issues #2564-2614):
- Model format validation improvements

### From PR #279 (Issues #2835-2903):
- #2835: Sandbox exit code preservation (always return original exit code)
- #2843: Empty session ID validation

## Changes

### Agent Creation (#2450)
- Added validation to reject reserved CLI command names as agent names
- Reserved names: help, version, run, exec, login, logout, mcp, agent, etc.

### Scrape Command (#2448, #2449)
- Added validate_url_security() to reject URLs with control characters
- Added decode_html_entities() to properly decode href attributes
- Added comprehensive tests for both functions

### MCP Command (#2452)
- Added tilde expansion in command paths (~/script.sh -> /home/user/script.sh)
- Also expands tilde in command arguments

### Model Validation (#2459)
- Added check for empty model name in TUI mode

### Sandbox (#2835)
- Changed exit behavior to always preserve original command exit code

### Session Handling (#2843)
- Added early validation for empty session IDs

Note: CI skipped for cost control. Test manually before merge.
echobt added a commit that referenced this pull request Jan 27, 2026
## Issues Fixed

### From PR #271 (Issues #2430-2459):
- #2448: Validate URLs for control characters (security)
- #2449: Decode HTML entities in scraped URLs
- #2450: Reject reserved command names for agent names
- #2452: Expand tilde (~) in MCP server command paths
- #2459: Validate that model name is not empty

### From PR #273 (Issues #2564-2614):
- Model format validation improvements

### From PR #279 (Issues #2835-2903):
- #2835: Sandbox exit code preservation (always return original exit code)
- #2843: Empty session ID validation

## Changes

### Agent Creation (#2450)
- Added validation to reject reserved CLI command names as agent names
- Reserved names: help, version, run, exec, login, logout, mcp, agent, etc.

### Scrape Command (#2448, #2449)
- Added validate_url_security() to reject URLs with control characters
- Added decode_html_entities() to properly decode href attributes
- Added comprehensive tests for both functions

### MCP Command (#2452)
- Added tilde expansion in command paths (~/script.sh -> /home/user/script.sh)
- Also expands tilde in command arguments

### Model Validation (#2459)
- Added check for empty model name in TUI mode

### Sandbox (#2835)
- Changed exit behavior to always preserve original command exit code

### Session Handling (#2843)
- Added early validation for empty session IDs

Note: CI skipped for cost control. Test manually before merge.

Co-authored-by: Droid Agent <droid@factory.ai>
@echobt echobt closed this in #366 Jan 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant