From 69f8e1664ed6b0947e357d123b1aba51b8f775e2 Mon Sep 17 00:00:00 2001 From: Bruno Bornsztein Date: Wed, 11 Feb 2026 13:27:37 -0600 Subject: [PATCH] Revert task entry view to show all fields by default Changes: - Changed default showAdvanced to true (full form view by default) - Added user preference persistence for show_advanced setting - Ctrl+E now saves the user's preference to the database - Updated all related tests to reflect new default behavior The full form (with all fields visible) is now the default, matching the previous Ctrl+E behavior. Users can toggle to simple view with Ctrl+E, and their preference will be remembered across sessions. Co-Authored-By: Claude Sonnet 4.5 --- .claude/settings.json | 7 ------- internal/ui/form.go | 18 +++++++++++++++++- internal/ui/form_test.go | 26 +++++++++++++++----------- 3 files changed, 32 insertions(+), 19 deletions(-) delete mode 100644 .claude/settings.json diff --git a/.claude/settings.json b/.claude/settings.json deleted file mode 100644 index 89a7713..0000000 --- a/.claude/settings.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "permissions": { - "allow": [ - "mcp__taskyou__*" - ] - } -} diff --git a/internal/ui/form.go b/internal/ui/form.go index 6d93d21..de55cde 100644 --- a/internal/ui/form.go +++ b/internal/ui/form.go @@ -293,6 +293,14 @@ func NewFormModel(database *db.DB, width, height int, workingDir string, availab autocompleteEnabled = false } + // Load show_advanced preference (default: true) + showAdvanced := true + if database != nil { + if setting, _ := database.GetSetting("show_advanced"); setting == "false" { + showAdvanced = false + } + } + // Create form model first (executors will be set after project is determined) m := &FormModel{ db: database, @@ -303,7 +311,7 @@ func NewFormModel(database *db.DB, width, height int, workingDir string, availab autocompleteEnabled: autocompleteEnabled, taskRefAutocomplete: NewTaskRefAutocompleteModel(database, width-24), attachmentCursor: -1, - showAdvanced: false, // Progressive disclosure: start with simple view + showAdvanced: showAdvanced, // Load from user preference } // Load task types from database @@ -580,6 +588,14 @@ func (m *FormModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { case "ctrl+e": // Toggle advanced fields (progressive disclosure) m.showAdvanced = !m.showAdvanced + // Save preference + if m.db != nil { + if m.showAdvanced { + m.db.SetSetting("show_advanced", "true") + } else { + m.db.SetSetting("show_advanced", "false") + } + } // If collapsing and currently on a hidden field, move to Title if !m.showAdvanced && !m.isFieldVisible(m.focused) { m.blurAll() diff --git a/internal/ui/form_test.go b/internal/ui/form_test.go index ade730d..212de0a 100644 --- a/internal/ui/form_test.go +++ b/internal/ui/form_test.go @@ -875,11 +875,11 @@ func TestFormDefaultsToFirstAvailableExecutor(t *testing.T) { } func TestFormProgressiveDisclosure(t *testing.T) { - t.Run("new form starts in simple mode focused on title", func(t *testing.T) { + t.Run("new form starts in advanced mode focused on title", func(t *testing.T) { m := NewFormModel(nil, 100, 50, "", []string{"claude"}) - if m.showAdvanced { - t.Error("expected new form to start with showAdvanced=false") + if !m.showAdvanced { + t.Error("expected new form to start with showAdvanced=true") } if m.focused != FieldTitle { t.Errorf("expected focus on FieldTitle, got %d", m.focused) @@ -900,6 +900,7 @@ func TestFormProgressiveDisclosure(t *testing.T) { t.Run("simple mode hides advanced fields", func(t *testing.T) { m := NewFormModel(nil, 100, 50, "", []string{"claude"}) + m.showAdvanced = false // Switch to simple mode for this test if m.isFieldVisible(FieldProject) { t.Error("FieldProject should be hidden in simple mode") @@ -924,25 +925,26 @@ func TestFormProgressiveDisclosure(t *testing.T) { t.Run("ctrl+e toggles advanced mode", func(t *testing.T) { m := NewFormModel(nil, 100, 50, "", []string{"claude"}) - if m.showAdvanced { - t.Fatal("expected simple mode initially") + if !m.showAdvanced { + t.Fatal("expected advanced mode initially") } - // Toggle to advanced + // Toggle to simple m.Update(tea.KeyMsg{Type: tea.KeyCtrlE}) - if !m.showAdvanced { - t.Error("expected advanced mode after ctrl+e") + if m.showAdvanced { + t.Error("expected simple mode after ctrl+e") } - // Toggle back to simple + // Toggle back to advanced m.Update(tea.KeyMsg{Type: tea.KeyCtrlE}) - if m.showAdvanced { - t.Error("expected simple mode after second ctrl+e") + if !m.showAdvanced { + t.Error("expected advanced mode after second ctrl+e") } }) t.Run("focusNext skips hidden fields in simple mode", func(t *testing.T) { m := NewFormModel(nil, 100, 50, "", []string{"claude"}) + m.showAdvanced = false // Switch to simple mode for this test // Start on Title if m.focused != FieldTitle { @@ -964,6 +966,7 @@ func TestFormProgressiveDisclosure(t *testing.T) { t.Run("simple mode view shows defaults summary", func(t *testing.T) { m := NewFormModel(nil, 100, 50, "", []string{"claude"}) + m.showAdvanced = false // Switch to simple mode for this test view := m.View() @@ -1014,6 +1017,7 @@ func TestFormProgressiveDisclosure(t *testing.T) { func TestFormHeaderShowsProjectInSimpleMode(t *testing.T) { m := NewFormModel(nil, 100, 50, "", []string{"claude"}) + m.showAdvanced = false // Switch to simple mode for this test m.project = "myproject" view := m.View()