File tree Expand file tree Collapse file tree 4 files changed +45
-1
lines changed
Expand file tree Collapse file tree 4 files changed +45
-1
lines changed Original file line number Diff line number Diff line change 11# Changelog
22
3+ ## 1.4.0 (2026-04-04)
4+
5+ ### New Features
6+ - ** ` /retry ` command** : Resend the last prompt for a fresh response
7+ - ** Input history** : Up/Down arrows recall previous prompts (last 50 stored)
8+ - ** Edit diff preview** : Edit tool now shows ` - old / + new ` lines in output
9+ - ** Error recovery tips** : API errors include actionable suggestions (/retry, /model, /compact)
10+ - ** Setup next-steps** : ` runcode setup ` shows clear guidance when wallet already exists
11+
12+ ### Bug Fixes
13+ - ** thinkingText persists** : Now properly cleared on turn_done and /compact
14+ - ** /compact force mode** : ` /compact ` now always compresses, even below auto-threshold
15+ - ** Abort handling** : Esc key emits clean 'aborted' event instead of unhandled error
16+ - ** Token map unbounded** : Proxy per-model tracking capped at 50 entries
17+ - ** Write symlink traversal** : Resolves symlinks before checking sensitive paths
18+ - ** SSE buffer overflow** : 1MB cap prevents memory growth on malformed streams
19+ - ** Fallback timeout** : 60s per fallback attempt prevents infinite hangs
20+ - ** Proxy direct fetch** : 2min timeout on non-fallback requests
21+ - ** Models command** : 15s fetch timeout + handles empty API response
22+
23+ ### UX Improvements
24+ - Tool output preview increased from 60 to 200 chars
25+ - Running tools show elapsed seconds in real-time
26+ - Permission prompts styled with box-drawing characters
27+ - Terminal UI: /retry, /compact, /model (no args shows current)
28+ - Bash tool description documents output cap and timeout params
29+ - Help panel lists all commands including /retry and /compact
30+
331## 1.3.0 (2026-04-04)
432
533### New Features
Original file line number Diff line number Diff line change @@ -8,6 +8,10 @@ export async function setupCommand(chainArg) {
88 if ( wallets . length > 0 ) {
99 console . log ( chalk . yellow ( 'Solana wallet already exists.' ) ) ;
1010 console . log ( `Address: ${ chalk . cyan ( wallets [ 0 ] . publicKey ) } ` ) ;
11+ console . log ( chalk . dim ( '\nNext steps:' ) ) ;
12+ console . log ( chalk . dim ( ' runcode start — start coding' ) ) ;
13+ console . log ( chalk . dim ( ' runcode balance — check USDC balance' ) ) ;
14+ console . log ( chalk . dim ( ' runcode start -m free — use free models (no USDC needed)' ) ) ;
1115 saveChain ( 'solana' ) ;
1216 return ;
1317 }
@@ -24,6 +28,10 @@ export async function setupCommand(chainArg) {
2428 if ( wallets . length > 0 ) {
2529 console . log ( chalk . yellow ( 'Wallet already exists.' ) ) ;
2630 console . log ( `Address: ${ chalk . cyan ( wallets [ 0 ] . address ) } ` ) ;
31+ console . log ( chalk . dim ( '\nNext steps:' ) ) ;
32+ console . log ( chalk . dim ( ' runcode start — start coding' ) ) ;
33+ console . log ( chalk . dim ( ' runcode balance — check USDC balance' ) ) ;
34+ console . log ( chalk . dim ( ' runcode start -m free — use free models (no USDC needed)' ) ) ;
2735 saveChain ( 'base' ) ;
2836 return ;
2937 }
Original file line number Diff line number Diff line change 11{
22 "name" : " @blockrun/runcode" ,
3- "version" : " 1.3.9 " ,
3+ "version" : " 1.4.0 " ,
44 "description" : " RunCode — AI coding agent powered by 41+ models. Pay per use with USDC." ,
55 "type" : " module" ,
66 "bin" : {
Original file line number Diff line number Diff line change @@ -16,6 +16,10 @@ export async function setupCommand(chainArg?: string) {
1616 if ( wallets . length > 0 ) {
1717 console . log ( chalk . yellow ( 'Solana wallet already exists.' ) ) ;
1818 console . log ( `Address: ${ chalk . cyan ( wallets [ 0 ] . publicKey ) } ` ) ;
19+ console . log ( chalk . dim ( '\nNext steps:' ) ) ;
20+ console . log ( chalk . dim ( ' runcode start — start coding' ) ) ;
21+ console . log ( chalk . dim ( ' runcode balance — check USDC balance' ) ) ;
22+ console . log ( chalk . dim ( ' runcode start -m free — use free models (no USDC needed)' ) ) ;
1923 saveChain ( 'solana' ) ;
2024 return ;
2125 }
@@ -35,6 +39,10 @@ export async function setupCommand(chainArg?: string) {
3539 if ( wallets . length > 0 ) {
3640 console . log ( chalk . yellow ( 'Wallet already exists.' ) ) ;
3741 console . log ( `Address: ${ chalk . cyan ( wallets [ 0 ] . address ) } ` ) ;
42+ console . log ( chalk . dim ( '\nNext steps:' ) ) ;
43+ console . log ( chalk . dim ( ' runcode start — start coding' ) ) ;
44+ console . log ( chalk . dim ( ' runcode balance — check USDC balance' ) ) ;
45+ console . log ( chalk . dim ( ' runcode start -m free — use free models (no USDC needed)' ) ) ;
3846 saveChain ( 'base' ) ;
3947 return ;
4048 }
You can’t perform that action at this time.
0 commit comments