@dreb/coding-agent 2.31.1 → 2.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/dist/modes/interactive/interactive-mode.d.ts +18 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +139 -94
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/tui.md +2 -9
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/custom-provider-qwen-cli/package.json +1 -1
- package/examples/extensions/with-deps/package.json +1 -1
- package/package.json +2 -2
package/docs/tui.md
CHANGED
|
@@ -448,7 +448,7 @@ interface MyTheme {
|
|
|
448
448
|
The TUI uses a two-zone rendering architecture:
|
|
449
449
|
|
|
450
450
|
- **Committed region** — the first N children of the TUI root (set via `setCommittedChildCount()`). Their output is written to terminal scrollback once and **never re-rendered** by the differential renderer. This prevents the "transcript replay" problem where every turn-end would re-emit the entire session into scrollback.
|
|
451
|
-
- **Live region** — all children after the committed boundary. This is the only content the differential renderer manages. Full redraws are cheap because they only clear and rewrite the small live region (streaming message +
|
|
451
|
+
- **Live region** — all children after the committed boundary. This is the only content the differential renderer manages. Full redraws are cheap because they only clear and rewrite the small live region (streaming message + editor inline status + footer).
|
|
452
452
|
|
|
453
453
|
### Key methods
|
|
454
454
|
|
|
@@ -462,7 +462,7 @@ The TUI uses a two-zone rendering architecture:
|
|
|
462
462
|
|
|
463
463
|
1. `interactive-mode.ts` maintains a `committedChatContainer` (finalized messages/tools) and a live `chatContainer` (streaming + pending)
|
|
464
464
|
2. When a message or tool finalizes, it moves from live → committed container, and `commit()` advances the boundary
|
|
465
|
-
3. The differential renderer (`doRender`) only renders live children, so
|
|
465
|
+
3. The differential renderer (`doRender`) only renders live children, so normal live updates repaint only the live region — not the whole transcript. The main working indicator is rendered inside the editor input line so turn start/end changes do not add or remove a live-region row. If the live region had grown taller than the viewport (a big tool output, a long streaming message, overlay padding), shrink/viewport-shift paths use a live-only viewport restore: they clear and repaint the visible live working area bottom-anchored without replaying committed transcript lines or clearing native scrollback. The predicate is `prevViewportTop > 0`.
|
|
466
466
|
4. Terminal width changes and other global mutations call `recommitAll()` for one deliberate repaint
|
|
467
467
|
|
|
468
468
|
### Prefix-commit ordering rule
|
|
@@ -478,13 +478,6 @@ Two complementary measures prevent this:
|
|
|
478
478
|
1. **Stable height while open** — the menu block is padded to a per-session high-water mark, so filtering to fewer matches never shrinks the live region. Filtering only repaints in place.
|
|
479
479
|
2. **`recommitAll()` on close** — dismissing or accepting the menu repaints the whole transcript with position-independent sequences, restoring the committed content that scrolled off. This is safe because such menus only appear while the user is typing at the bottom with no agent streaming.
|
|
480
480
|
|
|
481
|
-
### Environment variables
|
|
482
|
-
|
|
483
|
-
| Variable | Purpose |
|
|
484
|
-
|----------|---------|
|
|
485
|
-
| `DREB_DEBUG_REDRAW=1` | Log every full-redraw trigger to `~/.dreb/agent/dreb-debug.log` |
|
|
486
|
-
| `DREB_TUI_DEBUG=1` | Write full render state to `/tmp/tui/` on each differential render |
|
|
487
|
-
|
|
488
481
|
## Debug logging
|
|
489
482
|
|
|
490
483
|
Set `DREB_TUI_WRITE_LOG` to capture the raw ANSI stream written to stdout.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dreb/coding-agent",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.32.1",
|
|
4
4
|
"description": "Coding agent CLI with read, bash, edit, write tools and session management",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"drebConfig": {
|
|
@@ -120,6 +120,6 @@
|
|
|
120
120
|
"directory": "packages/coding-agent"
|
|
121
121
|
},
|
|
122
122
|
"engines": {
|
|
123
|
-
"node": "
|
|
123
|
+
"node": "22.x"
|
|
124
124
|
}
|
|
125
125
|
}
|