refactor(tui): improve config resilience and scroll navigation
app.go changes: - Add loadConfigOrDefault() helper that returns sensible defaults when config loading fails, ensuring TUI can always start even with corrupted config files - Extract scroll navigation constants (scrollOverhead, minHalfPageScroll, minContentHeight) for clarity and consistency - Apply accent border styling to loading card for visual polish - Replace inline config.Load() calls with loadConfigOrDefault() setup.go changes: - Use loadConfigOrDefault() for consistent error handling during setup wizard initialization and config persistence The loadConfigOrDefault pattern improves user experience by gracefully degrading rather than failing hard when config issues occur. Users can still access the TUI and reconfigure via the Settings tab. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -19,7 +19,7 @@ type setupValues struct {
|
||||
|
||||
// newSetupForm builds the huh form for first-run configuration.
|
||||
func newSetupForm(numSessions int, claudeDir string, vals *setupValues) *huh.Form {
|
||||
cfg, _ := config.Load()
|
||||
cfg := loadConfigOrDefault()
|
||||
|
||||
// Pre-populate defaults
|
||||
vals.days = cfg.General.DefaultDays
|
||||
@@ -98,7 +98,7 @@ func newSetupForm(numSessions int, claudeDir string, vals *setupValues) *huh.For
|
||||
|
||||
// saveSetupConfig persists the setup wizard values to the config file.
|
||||
func (a *App) saveSetupConfig() error {
|
||||
cfg, _ := config.Load()
|
||||
cfg := loadConfigOrDefault()
|
||||
|
||||
if a.setupVals.sessionKey != "" {
|
||||
cfg.ClaudeAI.SessionKey = a.setupVals.sessionKey
|
||||
|
||||
Reference in New Issue
Block a user