Skip to content

Commit 427fd44

Browse files
committed
feat: setup guidance, CHANGELOG consolidation (v1.4.0)
1 parent 1613d91 commit 427fd44

File tree

4 files changed

+45
-1
lines changed

4 files changed

+45
-1
lines changed

CHANGELOG.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,33 @@
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

dist/commands/setup.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
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": {

src/commands/setup.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)