@dreb/coding-agent 2.25.1 → 2.25.2

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 CHANGED
@@ -40,6 +40,8 @@
40
40
 
41
41
  ### Fixed
42
42
 
43
+ - Fixed `/buddy off` not persisting across sessions — the buddy reappeared in the TUI on restart. The `hidden` flag was persisted correctly, but the startup auto-mount ignored it. The startup mount is now gated on the persisted `hidden` flag (extracted into `mountExistingBuddyIfVisible()`); a hidden buddy stays loaded but unmounted until you run `/buddy` to bring it back. ([#243](https://github.com/aebrer/dreb/issues/243))
44
+
43
45
  - Fixed subagents silently returning empty results when a child's final response was truncated at the model's token limit. The subagent spawn handler now inspects the last assistant message's `stopReason`: a clean exit with no output now surfaces a descriptive error (truncation, loud truncation failure, or "completed with no output") instead of a silent empty string, and a clean exit with partial output now flags the truncation via `errorMessage` while preserving the partial text — covering both raw `length` truncation and the loud `error` stopReason produced when the core agent loop exhausts its length retries. The parent renders these errors even on a clean (exit code 0) exit. ([#240](https://github.com/aebrer/dreb/issues/240))
44
46
 
45
47
  - Fixed ghost whitespace appearing after the TUI content shrinks (e.g., closing the copy selector, filtering slash-command autocomplete, editor line deletion). The differential renderer now triggers a full screen redraw when content shrinks instead of clearing extra lines individually, which some terminals would not collapse. ([#217](https://github.com/aebrer/dreb/issues/217))
@@ -332,6 +332,14 @@ export declare class InteractiveMode {
332
332
  private executeCompaction;
333
333
  private handleBuddyCommand;
334
334
  private mountAndRevealBuddy;
335
+ /**
336
+ * Load the persisted buddy at startup and mount it only if it is visible.
337
+ * A buddy hidden via `/buddy off` is still loaded by start() (disabled) so
338
+ * context/idle wiring stays intact, but it must not be re-mounted on screen
339
+ * in a new session — that is the regression fixed for #243. Extracted into a
340
+ * standalone method so the mount-gate decision is directly unit-testable.
341
+ */
342
+ private mountExistingBuddyIfVisible;
335
343
  private mountBuddy;
336
344
  private removeBuddy;
337
345
  private showBuddyStatsPanel;