@dreb/coding-agent 2.38.1 → 2.40.0

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.
Files changed (33) hide show
  1. package/README.md +0 -1
  2. package/dist/config.d.ts +3 -5
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +16 -11
  5. package/dist/config.js.map +1 -1
  6. package/dist/core/settings-manager.d.ts +0 -6
  7. package/dist/core/settings-manager.d.ts.map +1 -1
  8. package/dist/core/settings-manager.js +0 -16
  9. package/dist/core/settings-manager.js.map +1 -1
  10. package/dist/core/slash-commands.d.ts.map +1 -1
  11. package/dist/core/slash-commands.js +0 -1
  12. package/dist/core/slash-commands.js.map +1 -1
  13. package/dist/migrations.d.ts.map +1 -1
  14. package/dist/migrations.js +1 -3
  15. package/dist/migrations.js.map +1 -1
  16. package/dist/modes/interactive/components/settings-selector.d.ts +0 -2
  17. package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
  18. package/dist/modes/interactive/components/settings-selector.js +0 -10
  19. package/dist/modes/interactive/components/settings-selector.js.map +1 -1
  20. package/dist/modes/interactive/interactive-mode.d.ts +0 -7
  21. package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
  22. package/dist/modes/interactive/interactive-mode.js +2 -85
  23. package/dist/modes/interactive/interactive-mode.js.map +1 -1
  24. package/docs/dashboard.md +41 -0
  25. package/docs/mach6.md +1 -1
  26. package/docs/settings.md +0 -1
  27. package/docs/version-history.md +9 -0
  28. package/package.json +3 -4
  29. package/CHANGELOG.md +0 -3371
  30. package/dist/utils/changelog.d.ts +0 -21
  31. package/dist/utils/changelog.d.ts.map +0 -1
  32. package/dist/utils/changelog.js +0 -87
  33. package/dist/utils/changelog.js.map +0 -1
@@ -27,7 +27,6 @@ import { TabTitleGenerator } from "../../core/tab-title.js";
27
27
  import { resolveThinkingDisplay } from "../../core/thinking.js";
28
28
  import { resolveToCwd } from "../../core/tools/path-utils.js";
29
29
  import { abortBackgroundAgents, discoverAgentTypes, getRunningBackgroundAgents } from "../../core/tools/subagent.js";
30
- import { getChangelogPath, getNewEntries, parseChangelog } from "../../utils/changelog.js";
31
30
  import { copyToClipboard } from "../../utils/clipboard.js";
32
31
  import { extensionForImageMimeType, readClipboardImage } from "../../utils/clipboard-image.js";
33
32
  import { parseGitUrl } from "../../utils/git.js";
@@ -99,7 +98,6 @@ export class InteractiveMode {
99
98
  currentWorkingMessage = this.defaultWorkingMessage;
100
99
  lastSigintTime = 0;
101
100
  lastEscapeTime = 0;
102
- changelogMarkdown = undefined;
103
101
  // Status line tracking (for mutating immediately-sequential status updates)
104
102
  lastStatusSpacer = undefined;
105
103
  lastStatusText = undefined;
@@ -146,7 +144,7 @@ export class InteractiveMode {
146
144
  customFooter = undefined;
147
145
  // Header container that holds the built-in or custom header
148
146
  headerContainer;
149
- // Built-in header (logo + keybinding hints + changelog)
147
+ // Built-in header (logo + keybinding hints)
150
148
  builtInHeader = undefined;
151
149
  // Custom header from extension (undefined = use built-in header)
152
150
  customHeader = undefined;
@@ -352,8 +350,6 @@ export class InteractiveMode {
352
350
  async init() {
353
351
  if (this.isInitialized)
354
352
  return;
355
- // Load changelog (only show new entries, skip for resumed sessions)
356
- this.changelogMarkdown = this.getChangelogForDisplay();
357
353
  // Ensure fd and rg are available (downloads if missing, adds to PATH via getBinDir)
358
354
  // Both are needed: fd for autocomplete, rg for grep tool and bash commands
359
355
  const [fdPath] = await Promise.all([ensureTool("fd"), ensureTool("rg")]);
@@ -396,36 +392,11 @@ export class InteractiveMode {
396
392
  this.headerContainer.addChild(new Spacer(1));
397
393
  this.headerContainer.addChild(this.builtInHeader);
398
394
  this.headerContainer.addChild(new Spacer(1));
399
- // Add changelog if provided
400
- if (this.changelogMarkdown) {
401
- this.headerContainer.addChild(new DynamicBorder());
402
- if (this.settingsManager.getCollapseChangelog()) {
403
- const versionMatch = this.changelogMarkdown.match(/##\s+\[?(\d+\.\d+\.\d+)\]?/);
404
- const latestVersion = versionMatch ? versionMatch[1] : this.version;
405
- const condensedText = `Updated to v${latestVersion}. Use ${theme.bold("/changelog")} to view full changelog.`;
406
- this.headerContainer.addChild(new Text(condensedText, 1, 0));
407
- }
408
- else {
409
- this.headerContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
410
- this.headerContainer.addChild(new Spacer(1));
411
- this.headerContainer.addChild(new Markdown(this.changelogMarkdown.trim(), 1, 0, this.getMarkdownThemeWithSettings(), undefined, true));
412
- this.headerContainer.addChild(new Spacer(1));
413
- }
414
- this.headerContainer.addChild(new DynamicBorder());
415
- }
416
395
  }
417
396
  else {
418
397
  // Minimal header when silenced
419
398
  this.builtInHeader = new Text("", 0, 0);
420
399
  this.headerContainer.addChild(this.builtInHeader);
421
- if (this.changelogMarkdown) {
422
- // Still show changelog notification even in silent mode
423
- this.headerContainer.addChild(new Spacer(1));
424
- const versionMatch = this.changelogMarkdown.match(/##\s+\[?(\d+\.\d+\.\d+)\]?/);
425
- const latestVersion = versionMatch ? versionMatch[1] : this.version;
426
- const condensedText = `Updated to v${latestVersion}. Use ${theme.bold("/changelog")} to view full changelog.`;
427
- this.headerContainer.addChild(new Text(condensedText, 1, 0));
428
- }
429
400
  }
430
401
  this.ui.addChild(this.committedChatContainer);
431
402
  this.ui.addChild(this.chatContainer);
@@ -680,32 +651,6 @@ export class InteractiveMode {
680
651
  }
681
652
  return undefined;
682
653
  }
683
- /**
684
- * Get changelog entries to display on startup.
685
- * Only shows new entries since last seen version, skips for resumed sessions.
686
- */
687
- getChangelogForDisplay() {
688
- // Skip changelog for resumed/continued sessions (already have messages)
689
- if (this.session.state.messages.length > 0) {
690
- return undefined;
691
- }
692
- const lastVersion = this.settingsManager.getLastChangelogVersion();
693
- const changelogPath = getChangelogPath();
694
- const entries = parseChangelog(changelogPath);
695
- if (!lastVersion) {
696
- // Fresh install - just record the version, don't show changelog
697
- this.settingsManager.setLastChangelogVersion(VERSION);
698
- return undefined;
699
- }
700
- else {
701
- const newEntries = getNewEntries(entries, lastVersion);
702
- if (newEntries.length > 0) {
703
- this.settingsManager.setLastChangelogVersion(VERSION);
704
- return newEntries.map((e) => e.content).join("\n\n");
705
- }
706
- }
707
- return undefined;
708
- }
709
654
  getMarkdownThemeWithSettings() {
710
655
  return {
711
656
  ...getMarkdownTheme(),
@@ -1912,11 +1857,6 @@ export class InteractiveMode {
1912
1857
  this.editor.setText("");
1913
1858
  return;
1914
1859
  }
1915
- if (text === "/changelog") {
1916
- this.handleChangelogCommand();
1917
- this.editor.setText("");
1918
- return;
1919
- }
1920
1860
  if (text === "/hotkeys") {
1921
1861
  this.handleHotkeysCommand();
1922
1862
  this.editor.setText("");
@@ -2941,11 +2881,9 @@ export class InteractiveMode {
2941
2881
  showNewVersionNotification(newVersion) {
2942
2882
  const action = theme.fg("accent", getUpdateInstruction("@dreb/coding-agent"));
2943
2883
  const updateInstruction = theme.fg("muted", `New version ${newVersion} is available. `) + action;
2944
- const changelogUrl = theme.fg("accent", "https://github.com/aebrer/dreb/blob/master/packages/coding-agent/CHANGELOG.md");
2945
- const changelogLine = theme.fg("muted", "Changelog: ") + changelogUrl;
2946
2884
  this.chatContainer.addChild(new Spacer(1));
2947
2885
  this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
2948
- this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}\n${changelogLine}`, 1, 0, undefined, true));
2886
+ this.chatContainer.addChild(new Text(`${theme.bold(theme.fg("warning", "Update Available"))}\n${updateInstruction}`, 1, 0, undefined, true));
2949
2887
  this.chatContainer.addChild(new DynamicBorder((text) => theme.fg("warning", text)));
2950
2888
  this.ui.requestRender();
2951
2889
  }
@@ -3189,7 +3127,6 @@ export class InteractiveMode {
3189
3127
  hideThinkingBlock: this.hideThinkingBlock,
3190
3128
  thinkingDisplaySupported,
3191
3129
  thinkingDisplay,
3192
- collapseChangelog: this.settingsManager.getCollapseChangelog(),
3193
3130
  doubleEscapeAction: this.settingsManager.getDoubleEscapeAction(),
3194
3131
  treeFilterMode: this.settingsManager.getTreeFilterMode(),
3195
3132
  showHardwareCursor: this.settingsManager.getShowHardwareCursor(),
@@ -3287,9 +3224,6 @@ export class InteractiveMode {
3287
3224
  this.showWarning(`Thinking display for "${model.id}" was not changed: a project-level "modelSettings" override in .dreb/settings.json takes precedence (effective: "${effective}"). Remove or edit that override to use this toggle.`);
3288
3225
  }
3289
3226
  },
3290
- onCollapseChangelogChange: (collapsed) => {
3291
- this.settingsManager.setCollapseChangelog(collapsed);
3292
- },
3293
3227
  onQuietStartupChange: (enabled) => {
3294
3228
  this.settingsManager.setQuietStartup(enabled);
3295
3229
  },
@@ -4042,23 +3976,6 @@ export class InteractiveMode {
4042
3976
  this.chatContainer.addChild(new Text(info, 1, 0, undefined, true));
4043
3977
  this.ui.requestRender();
4044
3978
  }
4045
- handleChangelogCommand() {
4046
- const changelogPath = getChangelogPath();
4047
- const allEntries = parseChangelog(changelogPath);
4048
- const changelogMarkdown = allEntries.length > 0
4049
- ? allEntries
4050
- .reverse()
4051
- .map((e) => e.content)
4052
- .join("\n\n")
4053
- : "No changelog entries found.";
4054
- this.chatContainer.addChild(new Spacer(1));
4055
- this.chatContainer.addChild(new DynamicBorder());
4056
- this.chatContainer.addChild(new Text(theme.bold(theme.fg("accent", "What's New")), 1, 0));
4057
- this.chatContainer.addChild(new Spacer(1));
4058
- this.chatContainer.addChild(new Markdown(changelogMarkdown, 1, 1, this.getMarkdownThemeWithSettings(), undefined, true));
4059
- this.chatContainer.addChild(new DynamicBorder());
4060
- this.ui.requestRender();
4061
- }
4062
3979
  /**
4063
3980
  * Capitalize keybinding for display (e.g., "ctrl+c" -> "Ctrl+C").
4064
3981
  */