Skip to content

Commit 5c8099c

Browse files
Kasper Jungeclaude
authored andcommitted
release: v0.4.0b3
Peek UX improvements: scrollbar, thinking traces, full text/tool args, context token display, persistent Shift+P hint, clearer page nav labels. Fix HTML comments in code blocks breaking prompt assembly. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 59de1ef commit 5c8099c

4 files changed

Lines changed: 22 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,23 @@
22

33
All notable changes to ralphify are documented here.
44

5+
## 0.4.0b3 — 2026-04-12
6+
7+
### Improved
8+
9+
- **Full-screen peek scrollbar** — a scrollbar on the right edge of the full-screen peek view shows your position in the activity log, so you always know where you are in a long session.
10+
- **Thinking traces visible** — agent reasoning (thinking blocks) now appears in the activity feed as dim italic text instead of being silently dropped. Long thinking traces are split by newline so you can scroll through the full reasoning.
11+
- **Full text and tool args** — assistant text output is no longer truncated to 100 characters, and tool parameters for Agent and ToolSearch now show their actual values (description, prompt, query, max_results) instead of just listing parameter names.
12+
- **Context token display** — token counts in the panel title now show as `ctx 156k · out 3.2k` instead of `↑156k ↓3.2k`, making context window usage immediately clear.
13+
- **Persistent Shift+P hint** — the compact panel footer now always shows "Shift+P full screen" so new users discover full-screen peek without reading docs.
14+
- **Clearer page navigation labels** — the full-screen footer now says `b page up · space page down` instead of the ambiguous `b/space page`.
15+
16+
### Fixed
17+
18+
- **HTML comments in code blocks**`<!-- -->` comments inside fenced code blocks in RALPH.md files no longer break prompt assembly.
19+
20+
---
21+
522
## 0.4.0b2 — 2026-04-12
623

724
### Added

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "ralphify"
3-
version = "0.4.0b2"
3+
version = "0.4.0b3"
44
description = "Stop stressing over not having an agent running. Ralph is always running"
55
readme = "README.md"
66
license = "MIT"

src/ralphify/_console_emitter.py

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -361,18 +361,15 @@ def _apply_assistant(self, raw: dict[str, Any]) -> None:
361361
text = block.get("thinking", "")
362362
if text:
363363
for tline in text.split("\n"):
364-
self.add_scroll_line(
365-
f"[dim italic]{escape_markup(tline)}[/]"
366-
)
364+
self.add_scroll_line(f"[dim italic]{escape_markup(tline)}[/]")
367365

368366
elif block_type == "text":
369367
text = block.get("text", "")
370368
if text:
371369
for tline in text.split("\n"):
372370
if tline.strip():
373371
self.add_scroll_line(
374-
f"[italic {_brand.LAVENDER}]"
375-
f"\"{escape_markup(tline)}\"[/]"
372+
f'[italic {_brand.LAVENDER}]"{escape_markup(tline)}"[/]'
376373
)
377374

378375
elif block_type == "tool_use":
@@ -403,9 +400,7 @@ def _apply_assistant(self, raw: dict[str, Any]) -> None:
403400
f"[dim]{escape_markup(arg)}[/]"
404401
)
405402
else:
406-
self.add_scroll_line(
407-
f"[bold {color}]{escape_markup(name)}[/]"
408-
)
403+
self.add_scroll_line(f"[bold {color}]{escape_markup(name)}[/]")
409404

410405
def _apply_user(self, raw: dict[str, Any]) -> None:
411406
msg = raw.get("message", {})

tests/test_console_emitter.py

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1370,9 +1370,7 @@ def test_apply_tool_use_updates_counters(self):
13701370

13711371
def test_apply_system_init_sets_model(self):
13721372
panel = _IterationPanel()
1373-
panel.apply(
1374-
{"type": "system", "subtype": "init", "model": "claude-opus-4-6"}
1375-
)
1373+
panel.apply({"type": "system", "subtype": "init", "model": "claude-opus-4-6"})
13761374
assert panel._model == "claude-opus-4-6"
13771375

13781376
def test_apply_usage_updates_tokens(self):

0 commit comments

Comments
 (0)