feat: expand terminal from 26 to 103 commands with full shell infrastructure#15
Conversation
…ructure Transform the terminal from a simple command dispatcher into a full interactive shell with quoting, pipes, redirection, variables, aliases, history, glob expansion, command chaining, and scripting with control flow (if/while/for). Add 8 new command modules across 14 categories covering text processing, file utilities, system info, developer tools, UI control, security, fun utilities, and documentation/onboarding. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Gemini AI Code ReviewIssues
Previous Issues(none) Suggestions
Notes
Generated by Gemini AI (gemini-3-flash-preview). Supplementary to human reviews. |
Automated fix by Claude in response to Gemini/Codex review. Iteration: 1/5 Co-Authored-By: AI Review Agent <[email protected]>
Review Response Agent (Iteration 1)Status: Changes committed and pushed Commit: Fixed Issues
Ignored Issues
Deferred to Human
Notes
Automated summary of agent fixes. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues
Previous Issues
Suggestions
Notes
Generated by Gemini AI (gemini-3-flash-preview). Supplementary to human reviews. |
…_inner Both functions had unbounded recursion that could cause stack overflow on deeply nested directories or complex glob patterns (especially on memory-constrained targets like PSP). Added MAX_DEPTH guards matching the pattern used by tree_recursive and du_recursive. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Review Response Agent (Iteration 2)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues
Previous Issues
Suggestions
Notes
Generated by Gemini AI (gemini-3-flash-preview). Supplementary to human reviews. |
…ltiple redirects - All pipeline segments now go through execute_with_redirect so `>` and `>>` operators are properly stripped instead of being passed as literal arguments to commands in non-last segments. - parse_redirect splits the command at the first unquoted `>` (not the last), so `echo a > file1 > file2` correctly yields command `echo a` with redirection to `file2`. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Review Response Agent (Iteration 3)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |
Review Response Agent (Iteration 4)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |
|
No review feedback found to process. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues
Previous Issues
Suggestions
Notes
Generated by Gemini AI (gemini-3-flash-preview). Supplementary to human reviews. |
The expr command's recursive-descent parser (eval_expr) had no depth limit on nested parentheses, risking stack overflow on deeply nested expressions -- particularly on memory-constrained targets like the PSP. Added EXPR_MAX_DEPTH = 64 check in parse_primary, matching the defensive pattern used by tree, du, df, and glob_match_inner. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Review Response Agent (Iteration 5)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues
Previous Issues
Suggestions
Notes
Generated by Gemini AI (gemini-3-flash-preview). Supplementary to human reviews. |
Chained commands like `skin xp ; echo Done` previously dropped the signal (SkinSwap) and only returned the text. Add a CommandOutput::Multi variant that preserves all outputs in order, so the app layer processes both signals and text. Consecutive text outputs are merged to minimize Multi size. All three consumers (local terminal, remote terminal, FFI) handle Multi by recursively processing each inner output. Co-Authored-By: Claude Opus 4.6 <[email protected]>
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Previous Issues
Issues(none) Suggestions
Notes
Generated by Gemini AI (gemini-3-flash-preview). Supplementary to human reviews. |

Summary
$VAR), command history (!!/!n), pipes (|), output redirection (>/>>), command chaining (;/&&/||), glob expansion (*.txt), and aliasesif/then/else/fi,while/do/done,for/in/do/donecontrol flow, nesting support, and max iteration safeguardshelp(per-command and grouped listing),which, man pages, interactive tutorial, MOTD, and shell profileTest plan
cargo test --workspace-- 2,112 tests passcargo clippy --workspace -- -D warnings-- cleancargo fmt --all -- --check-- clean (pre-commit hook)Generated with Claude Code