@defai.digital/ax-cli 3.11.0 → 3.11.4

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 +17 -158
  2. package/dist/sdk/version.d.ts +1 -1
  3. package/dist/sdk/version.js +1 -1
  4. package/dist/sdk/version.js.map +1 -1
  5. package/dist/ui/components/chat-history.js +102 -31
  6. package/dist/ui/components/chat-history.js.map +1 -1
  7. package/dist/ui/components/diff-renderer.js +8 -4
  8. package/dist/ui/components/diff-renderer.js.map +1 -1
  9. package/dist/ui/components/keyboard-help.js +11 -5
  10. package/dist/ui/components/keyboard-help.js.map +1 -1
  11. package/dist/ui/components/keyboard-hints.js +6 -3
  12. package/dist/ui/components/keyboard-hints.js.map +1 -1
  13. package/dist/ui/components/reasoning-display.js +9 -6
  14. package/dist/ui/components/reasoning-display.js.map +1 -1
  15. package/dist/ui/components/tool-group-display.js +86 -21
  16. package/dist/ui/components/tool-group-display.js.map +1 -1
  17. package/dist/ui/hooks/use-enhanced-input.d.ts +1 -0
  18. package/dist/ui/hooks/use-enhanced-input.js +105 -15
  19. package/dist/ui/hooks/use-enhanced-input.js.map +1 -1
  20. package/dist/ui/utils/change-summarizer.js +84 -19
  21. package/dist/ui/utils/change-summarizer.js.map +1 -1
  22. package/dist/ui/utils/markdown-renderer.js +11 -5
  23. package/dist/ui/utils/markdown-renderer.js.map +1 -1
  24. package/dist/ui/utils/semantic-action-detector.js +51 -7
  25. package/dist/ui/utils/semantic-action-detector.js.map +1 -1
  26. package/dist/ui/utils/tool-grouper.d.ts +2 -0
  27. package/dist/ui/utils/tool-grouper.js +184 -20
  28. package/dist/ui/utils/tool-grouper.js.map +1 -1
  29. package/dist/utils/paste-utils.js +29 -5
  30. package/dist/utils/paste-utils.js.map +1 -1
  31. package/node_modules/@ax-cli/schemas/package.json +1 -1
  32. package/package.json +1 -1
  33. package/packages/schemas/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"change-summarizer.js","sourceRoot":"","sources":["../../../src/ui/utils/change-summarizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAgB;IAC/C,8CAA8C;IAC9C,IAAI,KAAK,CAAC,SAAS,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CACrC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,KAAK,oBAAoB,IAAI,EAAE,CAAC,UAAU,EAAE,OAAO,CACvF,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,MAAM,QAAQ,GAAgB,IAAI,GAAG,EAAE,CAAC;IAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,CAAC;QAClE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACvD,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,kDAAkD;IAClD,IAAI,QAAQ,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,OAAO,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,UAAU,CAAC;IACzE,CAAC;IAED,wCAAwC;IACxC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAE1C,uCAAuC;IACvC,MAAM,WAAW,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE7C,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,SAAS,oBAAoB,CAAC,OAAe;IAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,IAAI,CAAC,OAAO;QAAE,OAAO,QAAQ,CAAC;IAE9B,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAEpC,uFAAuF;IACvF,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACzH,MAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IAE3H,IAAI,iBAAiB,IAAI,mBAAmB,EAAE,CAAC;QAC7C,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,iBAAiB,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;SAAM,IAAI,mBAAmB,EAAE,CAAC;QAC/B,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC;IAED,uCAAuC;IACvC,MAAM,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChF,MAAM,iBAAiB,GAAG,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IAElF,IAAI,eAAe,IAAI,iBAAiB,EAAE,CAAC;QACzC,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACvC,CAAC;SAAM,IAAI,eAAe,EAAE,CAAC;QAC3B,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,iBAAiB,EAAE,CAAC;QAC7B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,yBAAyB;IACzB,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1F,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAClE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED,iBAAiB;IACjB,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnF,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9D,QAAQ,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC1C,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3E,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACvC,CAAC;IAED,QAAQ;IACR,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QACvF,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC/B,CAAC;SAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACjC,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5F,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACjH,QAAQ,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAChC,CAAC;IAED,kBAAkB;IAClB,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACrH,QAAQ,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC3C,CAAC;IAED,gBAAgB;IAChB,IAAI,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9G,QAAQ,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACzC,CAAC;IAED,WAAW;IACX,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QACpH,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;IACpC,CAAC;IAED,cAAc;IACd,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;QAC3F,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACxC,CAAC;IAED,cAAc;IACd,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACxG,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAe,EAAE,QAAgB;IACnE,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;IAE7C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,WAAW;YACd,IAAI,SAAS,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC;YACrC,IAAI,SAAS,GAAG,EAAE;gBAAE,OAAO,GAAG,SAAS,QAAQ,CAAC;YAChD,IAAI,SAAS,GAAG,GAAG;gBAAE,OAAO,GAAG,SAAS,QAAQ,CAAC;YACjD,OAAO,GAAG,SAAS,gBAAgB,CAAC;QAEtC,KAAK,aAAa;YAChB,OAAO,GAAG,SAAS,gBAAgB,CAAC;QAEtC,KAAK,oBAAoB;YACvB,6BAA6B;YAC7B,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClC,OAAO,SAAS,CAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,CAAC;YACD,qBAAqB;YACrB,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YAChE,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;gBACrB,OAAO,GAAG,YAAY,UAAU,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAChE,CAAC;YACD,OAAO,SAAS,CAAC;QAEnB,KAAK,MAAM;YACT,IAAI,OAAO,CAAC,QAAQ,CAAC,yBAAyB,CAAC,EAAE,CAAC;gBAChD,OAAO,cAAc,CAAC;YACxB,CAAC;YACD,yBAAyB;YACzB,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClE,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;gBACnC,OAAO,WAAW,CAAC;YACrB,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;gBACjC,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC7D,OAAO,QAAQ,CAAC;YAClB,CAAC;YACD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,OAAO,GAAG,SAAS,QAAQ,CAAC;QAE9B,KAAK,QAAQ;YACX,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;YACnD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvC,OAAO,GAAG,KAAK,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YACpD,CAAC;YACD,OAAO,GAAG,SAAS,UAAU,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAE5D,KAAK,kBAAkB,CAAC;QACxB,KAAK,kBAAkB;YACrB,MAAM,KAAK,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;YACvD,OAAO,GAAG,KAAK,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAElD;YACE,IAAI,SAAS,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,EAAE,CAAC;gBAC1C,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;YACxB,CAAC;YACD,OAAO,GAAG,SAAS,QAAQ,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"change-summarizer.js","sourceRoot":"","sources":["../../../src/ui/utils/change-summarizer.ts"],"names":[],"mappings":"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"}
@@ -8,15 +8,21 @@ marked.setOptions({
8
8
  });
9
9
  export function MarkdownRenderer({ content }) {
10
10
  try {
11
+ // BUG FIX: Handle empty/whitespace-only content early to avoid unnecessary parsing
12
+ if (!content || !content.trim()) {
13
+ return React.createElement(Text, null, content || '');
14
+ }
11
15
  // Use marked.parse for synchronous parsing
12
16
  const result = marked.parse(content);
13
- // Handle both sync and async results
14
- const rendered = typeof result === 'string' ? result : content;
17
+ // Handle both sync and async results - Promise check for marked v5+
18
+ // BUG FIX: Check for Promise explicitly since typeof Promise is 'object'
19
+ const rendered = typeof result === 'string' ? result
20
+ : (result && typeof result === 'object' && 'then' in result) ? content
21
+ : content;
15
22
  return React.createElement(Text, null, rendered);
16
23
  }
17
- catch (error) {
18
- // Fallback to plain text if markdown parsing fails
19
- console.error('Markdown rendering error:', error);
24
+ catch {
25
+ // BUG FIX: Silent fallback to plain text - don't clutter CLI with errors
20
26
  return React.createElement(Text, null, content);
21
27
  }
22
28
  }
@@ -1 +1 @@
1
- {"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/ui/utils/markdown-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAE/C,sEAAsE;AACtE,MAAM,CAAC,UAAU,CAAC;IAChB,QAAQ,EAAE,IAAK,gBAAwB,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAuB;IAC/D,IAAI,CAAC;QACH,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,qCAAqC;QACrC,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC;QAC/D,OAAO,oBAAC,IAAI,QAAE,QAAQ,CAAQ,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,mDAAmD;QACnD,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;QAClD,OAAO,oBAAC,IAAI,QAAE,OAAO,CAAQ,CAAC;IAChC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"markdown-renderer.js","sourceRoot":"","sources":["../../../src/ui/utils/markdown-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,gBAAgB,MAAM,iBAAiB,CAAC;AAE/C,sEAAsE;AACtE,MAAM,CAAC,UAAU,CAAC;IAChB,QAAQ,EAAE,IAAK,gBAAwB,EAAE;CAC1C,CAAC,CAAC;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAuB;IAC/D,IAAI,CAAC;QACH,mFAAmF;QACnF,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,OAAO,oBAAC,IAAI,QAAE,OAAO,IAAI,EAAE,CAAQ,CAAC;QACtC,CAAC;QAED,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,oEAAoE;QACpE,yEAAyE;QACzE,MAAM,QAAQ,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM;YAClD,CAAC,CAAC,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO;gBACtE,CAAC,CAAC,OAAO,CAAC;QACZ,OAAO,oBAAC,IAAI,QAAE,QAAQ,CAAQ,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,OAAO,oBAAC,IAAI,QAAE,OAAO,CAAQ,CAAC;IAChC,CAAC;AACH,CAAC"}
@@ -98,7 +98,8 @@ export function detectSingleAction(entry) {
98
98
  return SemanticAction.Exploring;
99
99
  }
100
100
  // Edit operations
101
- if (toolName === 'str_replace_editor') {
101
+ // BUG FIX: Added multi_edit tool support
102
+ if (toolName === 'str_replace_editor' || toolName === 'multi_edit') {
102
103
  const filePath = args.path || args.file_path || '';
103
104
  if (CONFIG_FILE_PATTERNS.test(filePath)) {
104
105
  return SemanticAction.Configuring;
@@ -124,10 +125,38 @@ export function detectSingleAction(entry) {
124
125
  }
125
126
  return SemanticAction.Unknown;
126
127
  }
128
+ // BUG FIX: Handle bash_output tool for background task monitoring
129
+ // This tool checks output from background bash commands
130
+ if (toolName === 'bash_output') {
131
+ return SemanticAction.Unknown; // Will be grouped with parent bash action
132
+ }
127
133
  // Analysis tools
128
134
  if (toolName === 'analyze_architecture' || toolName === 'validate_best_practices') {
129
135
  return SemanticAction.Analyzing;
130
136
  }
137
+ // BUG FIX: Handle MCP tools by inferring action from tool name patterns
138
+ if (toolName.startsWith('mcp__')) {
139
+ // Extract the actual tool name part (mcp__server__toolname → toolname)
140
+ const parts = toolName.split('__');
141
+ const actualTool = parts.length >= 3 ? parts.slice(2).join('__').toLowerCase() : '';
142
+ // Infer action from MCP tool name patterns
143
+ if (actualTool.includes('read') || actualTool.includes('get') || actualTool.includes('list') || actualTool.includes('fetch')) {
144
+ return SemanticAction.Exploring;
145
+ }
146
+ if (actualTool.includes('write') || actualTool.includes('edit') || actualTool.includes('update') || actualTool.includes('create')) {
147
+ return SemanticAction.Implementing;
148
+ }
149
+ if (actualTool.includes('search') || actualTool.includes('find') || actualTool.includes('query')) {
150
+ return SemanticAction.Searching;
151
+ }
152
+ if (actualTool.includes('test') || actualTool.includes('check') || actualTool.includes('validate')) {
153
+ return SemanticAction.Testing;
154
+ }
155
+ if (actualTool.includes('build') || actualTool.includes('compile')) {
156
+ return SemanticAction.Building;
157
+ }
158
+ // Default MCP operations to Unknown (they'll use resource-based grouping)
159
+ }
131
160
  return SemanticAction.Unknown;
132
161
  }
133
162
  /**
@@ -168,7 +197,8 @@ export function detectSemanticAction(entries) {
168
197
  const editPaths = new Set();
169
198
  for (const entry of entries) {
170
199
  const toolName = entry.toolCall?.function?.name;
171
- if (toolName === 'str_replace_editor') {
200
+ // BUG FIX: Include multi_edit in refactoring detection
201
+ if (toolName === 'str_replace_editor' || toolName === 'multi_edit') {
172
202
  const args = parseToolArgs(entry);
173
203
  const filePath = args.path || args.file_path || '';
174
204
  if (filePath)
@@ -218,7 +248,8 @@ export function isCompatibleTransition(from, to) {
218
248
  return true;
219
249
  if (from === SemanticAction.Unknown || to === SemanticAction.Unknown)
220
250
  return false;
221
- const compatibleActions = COMPATIBLE_TRANSITIONS[from] || [];
251
+ // BUG FIX: Use nullish coalescing for safer fallback when action key doesn't exist
252
+ const compatibleActions = COMPATIBLE_TRANSITIONS[from] ?? [];
222
253
  return compatibleActions.includes(to);
223
254
  }
224
255
  /**
@@ -235,9 +266,12 @@ export function formatActionWithCounts(action, counts) {
235
266
  const parts = [];
236
267
  // For exploring, show file count
237
268
  if (action === SemanticAction.Exploring || action === SemanticAction.Searching) {
238
- const total = counts.reads + counts.searches;
239
- if (total > 0) {
240
- parts.push(`${total} read${total > 1 ? 's' : ''}`);
269
+ // BUG FIX: Show separate counts for reads and searches instead of mislabeling
270
+ if (counts.reads > 0) {
271
+ parts.push(`${counts.reads} read${counts.reads > 1 ? 's' : ''}`);
272
+ }
273
+ if (counts.searches > 0) {
274
+ parts.push(`${counts.searches} search${counts.searches > 1 ? 'es' : ''}`);
241
275
  }
242
276
  }
243
277
  // For implementing/refactoring, show edits and creates
@@ -262,9 +296,19 @@ export function formatActionWithCounts(action, counts) {
262
296
  parts.push(`${total} file${total > 1 ? 's' : ''}`);
263
297
  }
264
298
  }
299
+ // BUG FIX: For analyzing, show file count analyzed
300
+ if (action === SemanticAction.Analyzing) {
301
+ if (counts.files > 0) {
302
+ parts.push(`${counts.files} file${counts.files > 1 ? 's' : ''}`);
303
+ }
304
+ else if (counts.reads > 0) {
305
+ parts.push(`${counts.reads} file${counts.reads > 1 ? 's' : ''}`);
306
+ }
307
+ }
265
308
  // For unknown, show total operations
266
309
  if (action === SemanticAction.Unknown && parts.length === 0) {
267
- const total = counts.reads + counts.edits + counts.creates + counts.commands;
310
+ // BUG FIX: Include searches in total count
311
+ const total = counts.reads + counts.edits + counts.creates + counts.commands + counts.searches;
268
312
  if (total > 0) {
269
313
  parts.push(`${total} operation${total > 1 ? 's' : ''}`);
270
314
  }
@@ -1 +1 @@
1
- {"version":3,"file":"semantic-action-detector.js","sourceRoot":"","sources":["../../../src/ui/utils/semantic-action-detector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"semantic-action-detector.js","sourceRoot":"","sources":["../../../src/ui/utils/semantic-action-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH;;GAEG;AACH,MAAM,CAAN,IAAY,cAUX;AAVD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,yCAAuB,CAAA;IACvB,+CAA6B,CAAA;IAC7B,qCAAmB,CAAA;IACnB,uCAAqB,CAAA;IACrB,yCAAuB,CAAA;IACvB,6CAA2B,CAAA;IAC3B,6CAA2B,CAAA;IAC3B,qCAAmB,CAAA;AACrB,CAAC,EAVW,cAAc,KAAd,cAAc,QAUzB;AAED;;GAEG;AACH,MAAM,mBAAmB,GAAmC;IAC1D,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,oBAAoB;IAChD,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,WAAW;IACvC,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,sBAAsB;IACrD,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,eAAe;IACzC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,kBAAkB;IAC7C,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,oBAAoB;IAChD,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,kBAAkB;IAChD,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,wBAAwB;IACtD,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS;CACpC,CAAC;AAEF;;;GAGG;AACH,MAAM,sBAAsB,GAA6C;IACvE,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC;IAChF,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC;IACrK,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC,cAAc,CAAC,YAAY,EAAE,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,QAAQ,CAAC;IAC7G,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,YAAY,CAAC;IAC/E,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC,YAAY,CAAC;IACjF,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,cAAc,CAAC,SAAS,CAAC;IAChF,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC;IACpF,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC,cAAc,CAAC,WAAW,EAAE,cAAc,CAAC,SAAS,CAAC;IACpF,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE;CAC7B,CAAC;AAEF;;GAEG;AACH,MAAM,aAAa,GAAG,sGAAsG,CAAC;AAE7H;;GAEG;AACH,MAAM,cAAc,GAAG,mHAAmH,CAAC;AAE3I;;GAEG;AACH,MAAM,oBAAoB,GAAG,+EAA+E,CAAC;AAE7G;;GAEG;AACH,SAAS,aAAa,CAAC,KAAgB;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,CAAC;IACpD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAgB;IACjD,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAC/D,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;IAChD,IAAI,CAAC,QAAQ;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IAE7C,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;IAElC,oBAAoB;IACpB,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,kBAAkB;IAClB,IAAI,QAAQ,KAAK,WAAW,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QACzD,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,IAAK,IAAI,CAAC,SAAoB,IAAI,EAAE,CAAC;QAC3E,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,kBAAkB;IAClB,yCAAyC;IACzC,IAAI,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QACnE,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,IAAK,IAAI,CAAC,SAAoB,IAAI,EAAE,CAAC;QAC3E,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,cAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,oBAAoB;IACpB,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,IAAK,IAAI,CAAC,SAAoB,IAAI,EAAE,CAAC;QAC3E,IAAI,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACxC,OAAO,cAAc,CAAC,WAAW,CAAC;QACpC,CAAC;QACD,OAAO,cAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,8CAA8C;IAC9C,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,cAAc,EAAE,CAAC;QACvD,MAAM,OAAO,GAAI,IAAI,CAAC,OAAkB,IAAI,EAAE,CAAC;QAE/C,IAAI,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YAChC,OAAO,cAAc,CAAC,OAAO,CAAC;QAChC,CAAC;QAED,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACjC,OAAO,cAAc,CAAC,QAAQ,CAAC;QACjC,CAAC;QAED,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,kEAAkE;IAClE,wDAAwD;IACxD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;QAC/B,OAAO,cAAc,CAAC,OAAO,CAAC,CAAC,0CAA0C;IAC3E,CAAC;IAED,iBAAiB;IACjB,IAAI,QAAQ,KAAK,sBAAsB,IAAI,QAAQ,KAAK,yBAAyB,EAAE,CAAC;QAClF,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,wEAAwE;IACxE,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,uEAAuE;QACvE,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAEpF,2CAA2C;QAC3C,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7H,OAAO,cAAc,CAAC,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClI,OAAO,cAAc,CAAC,YAAY,CAAC;QACrC,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YACjG,OAAO,cAAc,CAAC,SAAS,CAAC;QAClC,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACnG,OAAO,cAAc,CAAC,OAAO,CAAC;QAChC,CAAC;QACD,IAAI,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YACnE,OAAO,cAAc,CAAC,QAAQ,CAAC;QACjC,CAAC;QACD,0EAA0E;IAC5E,CAAC;IAED,OAAO,cAAc,CAAC,OAAO,CAAC;AAChC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAoB;IACvD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,cAAc,CAAC,OAAO,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE,gBAAgB;IAChB,MAAM,YAAY,GAAG,IAAI,GAAG,EAA0B,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9D,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;QAChD,IAAI,QAAQ;YAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,8BAA8B;IAE9B,2CAA2C;IAC3C,MAAM,SAAS,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;IACtE,MAAM,SAAS,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACrE,MAAM,aAAa,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAExE,IAAI,SAAS,IAAI,CAAC,IAAI,SAAS,KAAK,CAAC,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QAC7D,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,uCAAuC;IACvC,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,sDAAsD;IACtD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,4CAA4C;QAC5C,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACpC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC;YAChD,uDAAuD;YACvD,IAAI,QAAQ,KAAK,oBAAoB,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;gBACnE,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;gBAClC,MAAM,QAAQ,GAAI,IAAI,CAAC,IAAe,IAAK,IAAI,CAAC,SAAoB,IAAI,EAAE,CAAC;gBAC3E,IAAI,QAAQ;oBAAE,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,cAAc,CAAC,WAAW,CAAC;QACpC,CAAC;IACH,CAAC;IAED,2BAA2B;IAC3B,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7C,OAAO,cAAc,CAAC,OAAO,CAAC;IAChC,CAAC;IAED,4BAA4B;IAC5B,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC9C,OAAO,cAAc,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,+BAA+B;IAC/B,IAAI,SAAS,GAAG,CAAC,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,CAAC;QACnE,OAAO,cAAc,CAAC,YAAY,CAAC;IACrC,CAAC;IAED,YAAY;IACZ,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/C,OAAO,cAAc,CAAC,SAAS,CAAC;IAClC,CAAC;IAED,cAAc;IACd,IAAI,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;QACjD,OAAO,cAAc,CAAC,WAAW,CAAC;IACpC,CAAC;IAED,gCAAgC;IAChC,IAAI,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC;IACvC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;QAC3C,IAAI,KAAK,GAAG,QAAQ,IAAI,MAAM,KAAK,cAAc,CAAC,OAAO,EAAE,CAAC;YAC1D,QAAQ,GAAG,KAAK,CAAC;YACjB,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAoB,EAAE,EAAkB;IAC7E,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,IAAI,KAAK,cAAc,CAAC,OAAO,IAAI,EAAE,KAAK,cAAc,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAEnF,mFAAmF;IACnF,MAAM,iBAAiB,GAAG,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7D,OAAO,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAsB;IACzD,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;AACpF,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,MAAsB,EACtB,MAOC;IAED,MAAM,IAAI,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,iCAAiC;IACjC,IAAI,MAAM,KAAK,cAAc,CAAC,SAAS,IAAI,MAAM,KAAK,cAAc,CAAC,SAAS,EAAE,CAAC;QAC/E,8EAA8E;QAC9E,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,UAAU,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,IAAI,MAAM,KAAK,cAAc,CAAC,YAAY,IAAI,MAAM,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;QACpF,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED,2CAA2C;IAC3C,IAAI,MAAM,KAAK,cAAc,CAAC,OAAO,IAAI,MAAM,KAAK,cAAc,CAAC,QAAQ,EAAE,CAAC;QAC5E,IAAI,MAAM,CAAC,QAAQ,GAAG,CAAC,EAAE,CAAC;YACxB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,QAAQ,WAAW,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,MAAM,KAAK,cAAc,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC;QAC3D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,QAAQ,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAED,mDAAmD;IACnD,IAAI,MAAM,KAAK,cAAc,CAAC,SAAS,EAAE,CAAC;QACxC,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,QAAQ,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,qCAAqC;IACrC,IAAI,MAAM,KAAK,cAAc,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5D,2CAA2C;QAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/F,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;YACd,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,aAAa,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC"}
@@ -40,6 +40,8 @@ export interface ToolGroup {
40
40
  resources?: string[];
41
41
  /** Whether this is a semantic group (vs resource-based) */
42
42
  isSemanticGroup?: boolean;
43
+ /** Whether all operations in the group have completed (have tool_result) */
44
+ isComplete?: boolean;
43
45
  }
44
46
  /**
45
47
  * Union type for grouped or individual entries
@@ -10,6 +10,18 @@ import { UI_CONFIG, CACHE_CONFIG } from '../../constants.js';
10
10
  import { SemanticAction, detectSingleAction, detectSemanticAction, isCompatibleTransition, formatActionWithCounts, } from './semantic-action-detector.js';
11
11
  // Re-export SemanticAction for consumers
12
12
  export { SemanticAction } from './semantic-action-detector.js';
13
+ /**
14
+ * Simple hash function for cache key fallback
15
+ * Uses djb2 algorithm - fast and produces reasonable distribution
16
+ */
17
+ function simpleHash(str) {
18
+ let hash = 5381;
19
+ for (let i = 0; i < str.length; i++) {
20
+ hash = ((hash << 5) + hash) + str.charCodeAt(i);
21
+ hash = hash & hash; // Convert to 32-bit integer
22
+ }
23
+ return (hash >>> 0).toString(16); // Convert to unsigned and hex
24
+ }
13
25
  /**
14
26
  * Cache for parsed tool arguments to avoid redundant JSON.parse calls
15
27
  * Key: toolCall.id (unique per tool call)
@@ -77,6 +89,9 @@ function extractErrorSummary(error) {
77
89
  return undefined;
78
90
  // Get first line only
79
91
  const firstLine = error.split('\n')[0].trim();
92
+ // BUG FIX: Return undefined if first line is empty after trim
93
+ if (!firstLine)
94
+ return undefined;
80
95
  // Truncate if too long (80 chars max for display)
81
96
  if (firstLine.length > 80) {
82
97
  return firstLine.substring(0, 77) + '...';
@@ -97,11 +112,14 @@ function getResourceFromToolCall(entry) {
97
112
  if (!argsStr)
98
113
  return '';
99
114
  // Use toolCall.id for caching (unique per call)
100
- // Fallback to argsStr hash if no ID (shouldn't happen in practice)
101
- const toolCallId = entry.toolCall?.id || `fallback:${argsStr.substring(0, 50)}`;
115
+ // BUG FIX: Improved fallback key to use tool name + args length + hash of full args
116
+ // to reduce collision risk (previously only used first 50 chars)
117
+ const toolCallId = entry.toolCall?.id ||
118
+ `fallback:${toolName}:${argsStr.length}:${simpleHash(argsStr)}`;
102
119
  const args = parseToolArguments(toolCallId, argsStr);
103
120
  // File operations
104
- if (toolName === 'view_file' || toolName === 'str_replace_editor' || toolName === 'create_file') {
121
+ // BUG FIX: Added multi_edit and read_file tool support
122
+ if (toolName === 'view_file' || toolName === 'read_file' || toolName === 'str_replace_editor' || toolName === 'create_file' || toolName === 'multi_edit') {
105
123
  return args.path || args.file_path || '';
106
124
  }
107
125
  // Search operations
@@ -109,7 +127,8 @@ function getResourceFromToolCall(entry) {
109
127
  return `search:${args.query || ''}`;
110
128
  }
111
129
  // Bash operations
112
- if (toolName === 'bash') {
130
+ // BUG FIX: Handle both 'bash' and 'execute_bash' tool names
131
+ if (toolName === 'bash' || toolName === 'execute_bash') {
113
132
  const cmd = args.command || '';
114
133
  // Group by command type (git, npm, etc)
115
134
  // Handle empty/whitespace commands by trimming first
@@ -139,22 +158,40 @@ function getResourceFromToolCall(entry) {
139
158
  const path = args.path || '';
140
159
  return path ? `validation:${path}` : 'validation:project';
141
160
  }
161
+ // BUG FIX: Handle MCP tools (mcp__servername__toolname format)
162
+ if (toolName.startsWith('mcp__')) {
163
+ // Extract server name for grouping MCP operations by server
164
+ const parts = toolName.split('__');
165
+ const serverName = parts.length >= 2 ? parts[1] : 'unknown';
166
+ // Try to extract a resource from common argument patterns
167
+ const resource = args.path || args.file_path ||
168
+ args.query || args.uri ||
169
+ args.url || '';
170
+ return resource ? `mcp:${serverName}:${resource}` : `mcp:${serverName}`;
171
+ }
142
172
  return '';
143
173
  }
144
174
  /**
145
175
  * Determine group type based on tool name
146
176
  */
147
177
  function getGroupType(toolName) {
148
- if (toolName === 'bash' || toolName === 'bash_output')
178
+ // BUG FIX: Handle both 'bash' and 'execute_bash' tool names
179
+ if (toolName === 'bash' || toolName === 'execute_bash' || toolName === 'bash_output')
149
180
  return 'bash';
150
181
  if (toolName === 'search')
151
182
  return 'search';
152
183
  if (toolName === 'create_todo_list' || toolName === 'update_todo_list')
153
184
  return 'todo';
154
- if (toolName === 'view_file' || toolName === 'str_replace_editor' || toolName === 'create_file')
185
+ // BUG FIX: Added multi_edit and read_file tool support
186
+ if (toolName === 'view_file' || toolName === 'read_file' || toolName === 'str_replace_editor' || toolName === 'create_file' || toolName === 'multi_edit')
155
187
  return 'file';
156
188
  if (toolName === 'analyze_architecture' || toolName === 'validate_best_practices')
157
189
  return 'analysis';
190
+ // BUG FIX: Handle MCP tools - group as 'mixed' but allow proper resource-based grouping
191
+ // MCP tools have varied purposes so we can't assign a specific type, but they will still
192
+ // group by server+resource via getResourceFromToolCall
193
+ if (toolName.startsWith('mcp__'))
194
+ return 'mixed';
158
195
  return 'mixed';
159
196
  }
160
197
  /**
@@ -183,8 +220,10 @@ function shouldGroupByResource(current, previous, groupSize, maxGroupSize, timeW
183
220
  return false;
184
221
  }
185
222
  const timeDiff = currentTime - previousTime;
186
- // Reject if time difference is negative (out of order) or exceeds window
187
- if (timeDiff < 0 || timeDiff > timeWindow) {
223
+ // BUG FIX: Allow zero time difference (same timestamp) and use absolute value
224
+ // for time window check. Tool operations can have identical timestamps when
225
+ // batched together, and order in the entries array matters more than timestamp.
226
+ if (Math.abs(timeDiff) > timeWindow) {
188
227
  return false;
189
228
  }
190
229
  // Must operate on the same resource
@@ -219,8 +258,9 @@ function shouldGroupSemantically(current, previous, groupSize, maxGroupSize, tim
219
258
  return false;
220
259
  }
221
260
  const timeDiff = currentTime - previousTime;
261
+ // BUG FIX: Use absolute value for time window check (consistent with resource-based grouping)
222
262
  // Semantic grouping uses a larger time window (2x)
223
- if (timeDiff < 0 || timeDiff > timeWindow * 2) {
263
+ if (Math.abs(timeDiff) > timeWindow * 2) {
224
264
  return false;
225
265
  }
226
266
  // Check semantic compatibility
@@ -260,17 +300,103 @@ export function groupConsecutiveTools(entries, options = {}) {
260
300
  const effectiveMaxGroupSize = semanticGrouping ? maxSemanticGroupSize : maxGroupSize;
261
301
  const result = [];
262
302
  let currentGroup = null;
303
+ // Track tool call IDs we've already seen to avoid duplicating tool_call/tool_result pairs
304
+ const seenToolCallIds = new Set();
263
305
  for (const entry of entries) {
264
306
  // Non-tool entries always break the group
265
307
  if (entry.type !== 'tool_call' && entry.type !== 'tool_result') {
266
308
  if (currentGroup) {
267
309
  finalizeGroup(currentGroup);
268
- result.push(currentGroup);
310
+ // BUG FIX: Don't wrap single-item groups - return the entry directly
311
+ if (currentGroup.operations.length === 1) {
312
+ result.push(currentGroup.operations[0]);
313
+ }
314
+ else {
315
+ result.push(currentGroup);
316
+ }
269
317
  currentGroup = null;
270
318
  }
271
319
  result.push(entry);
272
320
  continue;
273
321
  }
322
+ const toolCallId = entry.toolCall?.id;
323
+ // BUG FIX: Skip deduplication logic if no toolCallId - can't match pairs without ID
324
+ if (!toolCallId) {
325
+ // No ID means we can't dedupe, just add to group normally
326
+ // Fall through to normal grouping logic below
327
+ }
328
+ else if (seenToolCallIds.has(toolCallId)) {
329
+ // BUG FIX: Handle tool_call/tool_result pairs
330
+ // If this is a tool_result for a tool_call we've already processed,
331
+ // replace the tool_call entry with the tool_result (which has more complete info)
332
+ // This is a tool_result for a previously seen tool_call
333
+ let replaced = false;
334
+ // First, try to find and replace in the current group
335
+ if (currentGroup) {
336
+ const existingIndex = currentGroup.operations.findIndex((op) => op.toolCall?.id === toolCallId && op.type === 'tool_call');
337
+ if (existingIndex !== -1) {
338
+ // Replace tool_call with tool_result (has complete info including result)
339
+ currentGroup.operations[existingIndex] = entry;
340
+ currentGroup.endTime = entry.timestamp instanceof Date ? entry.timestamp : new Date(entry.timestamp);
341
+ // Update error state from the result
342
+ if (entry.toolResult && !entry.toolResult.success) {
343
+ currentGroup.hasError = true;
344
+ if (!currentGroup.errorSummary) {
345
+ currentGroup.errorSummary = extractErrorSummary(entry.toolResult?.error);
346
+ }
347
+ }
348
+ // BUG FIX: Recompute isComplete after replacement in currentGroup too
349
+ currentGroup.isComplete = checkGroupComplete(currentGroup);
350
+ replaced = true;
351
+ }
352
+ }
353
+ // BUG FIX: If not in current group, search in already-flushed result entries
354
+ // This handles the case where a group was flushed before its tool_result arrived
355
+ if (!replaced) {
356
+ // BUG FIX: Limit backward search to avoid O(n²) performance on large histories
357
+ // Only search last 100 entries - tool_results should arrive shortly after tool_calls
358
+ const searchLimit = Math.max(0, result.length - 100);
359
+ for (let i = result.length - 1; i >= searchLimit; i--) {
360
+ const resultEntry = result[i];
361
+ // Check if it's a ToolGroup containing the tool_call
362
+ if (isToolGroup(resultEntry)) {
363
+ const existingIndex = resultEntry.operations.findIndex((op) => op.toolCall?.id === toolCallId && op.type === 'tool_call');
364
+ if (existingIndex !== -1) {
365
+ // Replace tool_call with tool_result in the flushed group
366
+ resultEntry.operations[existingIndex] = entry;
367
+ resultEntry.endTime = entry.timestamp instanceof Date ? entry.timestamp : new Date(entry.timestamp);
368
+ // BUG FIX: Update error state for flushed groups too
369
+ if (entry.toolResult && !entry.toolResult.success) {
370
+ resultEntry.hasError = true;
371
+ if (!resultEntry.errorSummary) {
372
+ resultEntry.errorSummary = extractErrorSummary(entry.toolResult?.error);
373
+ }
374
+ }
375
+ // BUG FIX: Recompute isComplete after replacement
376
+ resultEntry.isComplete = checkGroupComplete(resultEntry);
377
+ replaced = true;
378
+ break;
379
+ }
380
+ }
381
+ else {
382
+ // Check if it's an individual ChatEntry that matches
383
+ const chatEntry = resultEntry;
384
+ if (chatEntry.toolCall?.id === toolCallId && chatEntry.type === 'tool_call') {
385
+ // Replace the individual entry with the tool_result
386
+ result[i] = entry;
387
+ replaced = true;
388
+ break;
389
+ }
390
+ }
391
+ }
392
+ }
393
+ // Skip adding as new entry (whether replaced or not - avoid duplicates)
394
+ continue;
395
+ }
396
+ // Mark this tool call ID as seen
397
+ if (toolCallId) {
398
+ seenToolCallIds.add(toolCallId);
399
+ }
274
400
  const resource = getResourceFromToolCall(entry);
275
401
  const toolName = entry.toolCall?.function?.name || 'unknown';
276
402
  const groupType = getGroupType(toolName);
@@ -292,7 +418,7 @@ export function groupConsecutiveTools(entries, options = {}) {
292
418
  resources: resource ? [resource] : [],
293
419
  };
294
420
  }
295
- else if (shouldGroup(entry, currentGroup.operations[currentGroup.operations.length - 1], currentGroup.operations.length, effectiveMaxGroupSize, timeWindow)) {
421
+ else if (currentGroup.operations.length > 0 && shouldGroup(entry, currentGroup.operations[currentGroup.operations.length - 1], currentGroup.operations.length, effectiveMaxGroupSize, timeWindow)) {
296
422
  // Add to existing group
297
423
  currentGroup.operations.push(entry);
298
424
  currentGroup.endTime = entry.timestamp instanceof Date ? entry.timestamp : new Date(entry.timestamp);
@@ -307,11 +433,21 @@ export function groupConsecutiveTools(entries, options = {}) {
307
433
  if (resource && currentGroup.resources && !currentGroup.resources.includes(resource)) {
308
434
  currentGroup.resources.push(resource);
309
435
  }
436
+ // BUG FIX: Update groupType to 'mixed' if new entry has different type
437
+ if (groupType !== currentGroup.groupType && currentGroup.groupType !== 'mixed') {
438
+ currentGroup.groupType = 'mixed';
439
+ }
310
440
  }
311
441
  else {
312
442
  // Can't group, flush current and start new
313
443
  finalizeGroup(currentGroup);
314
- result.push(currentGroup);
444
+ // BUG FIX: Don't wrap single-item groups - return the entry directly
445
+ if (currentGroup.operations.length === 1) {
446
+ result.push(currentGroup.operations[0]);
447
+ }
448
+ else {
449
+ result.push(currentGroup);
450
+ }
315
451
  currentGroup = {
316
452
  resource,
317
453
  operations: [entry],
@@ -328,14 +464,35 @@ export function groupConsecutiveTools(entries, options = {}) {
328
464
  // Flush final group
329
465
  if (currentGroup) {
330
466
  finalizeGroup(currentGroup);
331
- result.push(currentGroup);
467
+ // BUG FIX: Don't wrap single-item groups - return the entry directly
468
+ // This prevents unnecessary group wrapper for standalone tool operations
469
+ if (currentGroup.operations.length === 1) {
470
+ result.push(currentGroup.operations[0]);
471
+ }
472
+ else if (currentGroup.operations.length > 1) {
473
+ // BUG FIX: Only push groups with 2+ operations
474
+ result.push(currentGroup);
475
+ }
476
+ // Note: Empty groups (0 operations) are silently dropped
332
477
  }
333
478
  return result;
334
479
  }
480
+ /**
481
+ * Check if all operations in a group have completed (have tool_result)
482
+ */
483
+ function checkGroupComplete(group) {
484
+ // BUG FIX: Handle empty operations array edge case
485
+ if (group.operations.length === 0) {
486
+ return true; // Empty group is considered complete
487
+ }
488
+ return group.operations.every((op) => op.type === 'tool_result' || (op.toolResult !== undefined));
489
+ }
335
490
  /**
336
491
  * Finalize a group by computing semantic action and description
337
492
  */
338
493
  function finalizeGroup(group) {
494
+ // BUG FIX: Always compute isComplete to show proper status indicator
495
+ group.isComplete = checkGroupComplete(group);
339
496
  if (!group.isSemanticGroup)
340
497
  return;
341
498
  // Detect semantic action from all operations
@@ -372,9 +529,11 @@ export function getOperationCounts(group) {
372
529
  continue;
373
530
  switch (toolName) {
374
531
  case 'view_file':
532
+ case 'read_file': // BUG FIX: Count read_file as reads
375
533
  counts.reads++;
376
534
  break;
377
535
  case 'str_replace_editor':
536
+ case 'multi_edit': // BUG FIX: Count multi_edit as file updates
378
537
  counts.updates++;
379
538
  break;
380
539
  case 'create_file':
@@ -384,6 +543,7 @@ export function getOperationCounts(group) {
384
543
  counts.searches++;
385
544
  break;
386
545
  case 'bash':
546
+ case 'execute_bash': // BUG FIX: Handle execute_bash tool
387
547
  case 'bash_output':
388
548
  counts.bash++;
389
549
  break;
@@ -412,7 +572,9 @@ export function getGroupDuration(group) {
412
572
  if (Number.isNaN(startMs) || Number.isNaN(endMs)) {
413
573
  return 0;
414
574
  }
415
- return endMs - startMs;
575
+ // BUG FIX: Return 0 for negative durations (out-of-order timestamps)
576
+ const duration = endMs - startMs;
577
+ return duration < 0 ? 0 : duration;
416
578
  }
417
579
  /**
418
580
  * Format duration in human-readable form
@@ -423,15 +585,17 @@ export function formatDuration(ms) {
423
585
  if (!Number.isFinite(ms) || ms < 0) {
424
586
  return '0ms';
425
587
  }
426
- if (ms < 1000) {
427
- return `${ms}ms`;
588
+ // BUG FIX: Round to integer to avoid "123.456ms" display
589
+ const roundedMs = Math.round(ms);
590
+ if (roundedMs < 1000) {
591
+ return `${roundedMs}ms`;
428
592
  }
429
- else if (ms < 60000) {
430
- return `${(ms / 1000).toFixed(1)}s`;
593
+ else if (roundedMs < 60000) {
594
+ return `${(roundedMs / 1000).toFixed(1)}s`;
431
595
  }
432
596
  else {
433
- const minutes = Math.floor(ms / 60000);
434
- const seconds = Math.floor((ms % 60000) / 1000);
597
+ const minutes = Math.floor(roundedMs / 60000);
598
+ const seconds = Math.floor((roundedMs % 60000) / 1000);
435
599
  return `${minutes}m ${seconds}s`;
436
600
  }
437
601
  }