Skip to content

🤖 feat: add intent-only bash summaries#3360

Merged
ThomasK33 merged 1 commit into
mainfrom
feat/bash-intent-only-summaries
May 21, 2026
Merged

🤖 feat: add intent-only bash summaries#3360
ThomasK33 merged 1 commit into
mainfrom
feat/bash-intent-only-summaries

Conversation

@ThomasK33
Copy link
Copy Markdown
Member

@ThomasK33 ThomasK33 commented May 21, 2026

Summary

Adds an intent-only option for collapsed bash summaries, alongside the existing command and intent-plus-command modes.

Background

The settings UI already allowed users to choose between seeing the raw bash command or the model intent plus command. This adds the missing mode for users who only want the model intent in collapsed bash rows.

Implementation

  • Adds a persisted collapsed bash summary mode with shared normalization helpers.
  • Adds the Intent option to General settings.
  • Renders collapsed bash headers according to the selected mode, with transcript-level providers to avoid per-row storage subscriptions and keep transcript dialogs reactive.
  • Stabilizes full-suite unit runs by making window-event handling tolerate test window stubs and by giving the WorkspaceStore test window mock the expected event APIs.

Validation

  • bun test src/browser/features/Tools/bashCollapsedSummary.test.ts src/browser/features/Settings/Sections/GeneralSection.test.tsx
  • bun test src/browser/stores/WorkspaceStore.test.ts src/browser/stores/GitStatusStore.test.ts src/browser/utils/commands/sources.test.ts src/browser/utils/chatCommands.test.ts src/browser/features/Messages/UserMessageContent.inline-skill.test.tsx src/node/services/tools/task_apply_git_patch.test.ts
  • make typecheck
  • make lint
  • make fmt-check
  • make static-check
  • Storybook dogfood with screenshots/video for the settings dropdown and intent-only bash summary rendering.

Risks

Low: change is scoped to bash tool collapsed summary presentation and a global UI preference; the command remains visible in expanded details.


Generated with mux • Model: openai:gpt-5.5 • Thinking: xhigh • Cost: $22.14

@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Nice work!

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 65e3d7bebf

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/browser/features/Tools/BashCollapsedSummaryModeContext.tsx
@ThomasK33 ThomasK33 force-pushed the feat/bash-intent-only-summaries branch from 65e3d7b to ecca4c3 Compare May 21, 2026 20:52
@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

1 similar comment
@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

@ThomasK33 ThomasK33 force-pushed the feat/bash-intent-only-summaries branch from ecca4c3 to 2634855 Compare May 21, 2026 20:54
@ThomasK33
Copy link
Copy Markdown
Member Author

Addressed Codex feedback:

  • Wrapped subagent transcript rendering in BashCollapsedSummaryModeProvider so bash rows in transcript dialogs react to the global collapsed-summary preference the same way the main chat transcript does.

@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. Bravo.

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ThomasK33 ThomasK33 force-pushed the feat/bash-intent-only-summaries branch from 2634855 to 23afb69 Compare May 21, 2026 21:05
@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 23afb6988e

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/browser/features/Tools/bashCollapsedSummary.ts Outdated
@ThomasK33 ThomasK33 force-pushed the feat/bash-intent-only-summaries branch from 23afb69 to de88aaa Compare May 21, 2026 21:13
@ThomasK33
Copy link
Copy Markdown
Member Author

Addressed Codex feedback:

  • Intent-only mode now returns a non-command fallback (display_name, or Bash command when the display name matches the raw command) when model_intent is unavailable or repeats the command.
  • Added regression coverage so intent-only mode does not expose the raw command in those cases.

@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 👍

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

# Conflicts:
#	src/browser/stores/WorkspaceStore.test.ts
@ThomasK33 ThomasK33 force-pushed the feat/bash-intent-only-summaries branch from de88aaa to eea511d Compare May 21, 2026 21:45
@ThomasK33
Copy link
Copy Markdown
Member Author

@codex review

@chatgpt-codex-connector
Copy link
Copy Markdown

Codex Review: Didn't find any major issues. 🚀

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@ThomasK33 ThomasK33 enabled auto-merge May 21, 2026 22:01
@ThomasK33 ThomasK33 added this pull request to the merge queue May 21, 2026
Merged via the queue into main with commit 789053a May 21, 2026
40 of 42 checks passed
@ThomasK33 ThomasK33 deleted the feat/bash-intent-only-summaries branch May 21, 2026 22:17
mux-bot Bot added a commit that referenced this pull request May 22, 2026
The intent-only summary mode added in #3360 introduced a second normalizeForComparison(value) !== normalizeForComparison(command) call, so the same whitespace- and case-insensitive command-equality check now appears in three spots: filtering a redundant intent, filtering a redundant display-name fallback, and the trailing-using-clause stripper. Pull that predicate into a single matchesCommand helper next to normalizeForComparison so all three callsites read as 'intent (or display name, or candidate) is the same as the command' and any future tweak to the comparison normalization happens in one place. Pure rename/extract: the helper composes the existing normalizer, returns the identical boolean, and no callsite changes its branch direction.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant