mirror of
https://github.com/coder/coder.git
synced 2026-06-02 20:48:20 +00:00
fix: collapse agent command output by default (#25748)
This commit is contained in:
+12
-4
@@ -1336,7 +1336,7 @@ func (api *API) userPreferenceSettings(rw http.ResponseWriter, r *http.Request)
|
||||
httpapi.Write(ctx, rw, http.StatusOK, codersdk.UserPreferenceSettings{
|
||||
TaskNotificationAlertDismissed: taskAlertDismissed,
|
||||
ThinkingDisplayMode: sanitizeThinkingDisplayMode(thinkingMode),
|
||||
ShellToolDisplayMode: sanitizeAgentDisplayMode(shellToolMode),
|
||||
ShellToolDisplayMode: sanitizeShellToolDisplayMode(shellToolMode),
|
||||
CodeDiffDisplayMode: sanitizeAgentDisplayMode(codeDiffMode),
|
||||
AgentChatSendShortcut: sanitizeAgentChatSendShortcut(agentChatSendShortcut),
|
||||
})
|
||||
@@ -1446,13 +1446,13 @@ func (api *API) putUserPreferenceSettings(rw http.ResponseWriter, r *http.Reques
|
||||
if err != nil {
|
||||
return newUserPreferenceSettingsAPIError("Internal error updating shell tool display mode.", err)
|
||||
}
|
||||
settings.ShellToolDisplayMode = sanitizeAgentDisplayMode(updated)
|
||||
settings.ShellToolDisplayMode = sanitizeShellToolDisplayMode(updated)
|
||||
} else {
|
||||
stored, err := tx.GetUserShellToolDisplayMode(ctx, user.ID)
|
||||
if err != nil && !errors.Is(err, sql.ErrNoRows) {
|
||||
return newUserPreferenceSettingsAPIError("Error reading shell tool display mode.", err)
|
||||
}
|
||||
settings.ShellToolDisplayMode = sanitizeAgentDisplayMode(stored)
|
||||
settings.ShellToolDisplayMode = sanitizeShellToolDisplayMode(stored)
|
||||
}
|
||||
|
||||
if params.CodeDiffDisplayMode != "" {
|
||||
@@ -1545,12 +1545,20 @@ func sanitizeThinkingDisplayMode(raw string) codersdk.ThinkingDisplayMode {
|
||||
return codersdk.ThinkingDisplayModeAuto
|
||||
}
|
||||
|
||||
func sanitizeShellToolDisplayMode(raw string) codersdk.AgentDisplayMode {
|
||||
mode := sanitizeAgentDisplayMode(raw)
|
||||
if mode == "" {
|
||||
return codersdk.AgentDisplayModeAlwaysCollapsed
|
||||
}
|
||||
return mode
|
||||
}
|
||||
|
||||
func sanitizeAgentDisplayMode(raw string) codersdk.AgentDisplayMode {
|
||||
mode := codersdk.AgentDisplayMode(raw)
|
||||
if slices.Contains(codersdk.ValidAgentDisplayModes, mode) {
|
||||
return mode
|
||||
}
|
||||
return codersdk.AgentDisplayModeAuto
|
||||
return ""
|
||||
}
|
||||
|
||||
func sanitizeAgentChatSendShortcut(raw string) codersdk.AgentChatSendShortcut {
|
||||
|
||||
@@ -2423,7 +2423,7 @@ func TestAgentDisplayModePreferences(t *testing.T) {
|
||||
require.Equal(t, field, sdkErr.Validations[0].Field)
|
||||
}
|
||||
|
||||
t.Run("defaults to auto", func(t *testing.T) {
|
||||
t.Run("defaults shell tools to always collapsed", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
client, _ := coderdtest.CreateAnotherUser(t, adminClient, firstUser.OrganizationID)
|
||||
@@ -2433,8 +2433,8 @@ func TestAgentDisplayModePreferences(t *testing.T) {
|
||||
|
||||
settings, err := client.GetUserPreferenceSettings(ctx, codersdk.Me)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, codersdk.AgentDisplayModeAuto, settings.ShellToolDisplayMode)
|
||||
require.Equal(t, codersdk.AgentDisplayModeAuto, settings.CodeDiffDisplayMode)
|
||||
require.Equal(t, codersdk.AgentDisplayModeAlwaysCollapsed, settings.ShellToolDisplayMode)
|
||||
require.Empty(t, settings.CodeDiffDisplayMode)
|
||||
})
|
||||
|
||||
t.Run("round-trips shell tool display mode", func(t *testing.T) {
|
||||
|
||||
@@ -297,7 +297,7 @@ export const BlockList: FC<{
|
||||
const thinkingDisplayMode: ThinkingDisplayMode =
|
||||
prefQuery.data?.thinking_display_mode || "auto";
|
||||
const shellToolDisplayMode: TypesGen.AgentDisplayMode =
|
||||
prefQuery.data?.shell_tool_display_mode || "auto";
|
||||
prefQuery.data?.shell_tool_display_mode || "always_collapsed";
|
||||
const codeDiffDisplayMode: TypesGen.AgentDisplayMode =
|
||||
prefQuery.data?.code_diff_display_mode || "auto";
|
||||
|
||||
|
||||
@@ -282,7 +282,7 @@ export const ThinkingDuringStreamingWithToolCalls: Story = {
|
||||
expect(canvas.getAllByText("Thinking").length).toBeGreaterThanOrEqual(1);
|
||||
|
||||
const executeButton = canvas.getByRole("button", {
|
||||
name: /collapse command/i,
|
||||
name: /expand command/i,
|
||||
});
|
||||
const readFileLabel = canvas.getByText(/reading README\.md/i);
|
||||
const thinkingText = canvas.getAllByText("Thinking").at(-1);
|
||||
|
||||
@@ -299,6 +299,7 @@ export const ExecuteModelIntent: Story = {
|
||||
|
||||
export const ExecuteModelIntentRunning: Story = {
|
||||
args: {
|
||||
shellToolDisplayMode: "always_expanded",
|
||||
status: "running",
|
||||
args: {
|
||||
command: executeCommand,
|
||||
|
||||
Reference in New Issue
Block a user