feat: crush-inspired TUI improvements, activity bar polish, startup fresh session
TUI improvements: - semantic icon constants (✓ ◆ ▣ ✕ ⌘ ◌ ◔ ◉) - pill-style metadata bar with model/provider/session/context - fuzzy command palette with deterministic subsequence scoring - input history navigation (ctrl+p / ctrl+n) - structured tool log cards (▣ tool_name + args preview) - no-background activity indicator and meta bar for cleaner rendering Startup behavior: - default startup creates a fresh session - explicit --resume <id> restores saved context - added main_test.go for initializeSession coverage
This commit is contained in:
@@ -13,11 +13,11 @@ import (
|
||||
"strings"
|
||||
|
||||
"agentu/internal/agent"
|
||||
"agentu/pkg/config"
|
||||
"agentu/pkg/llm"
|
||||
"agentu/internal/session"
|
||||
"agentu/internal/tools"
|
||||
"agentu/internal/tui"
|
||||
"agentu/pkg/config"
|
||||
"agentu/pkg/llm"
|
||||
)
|
||||
|
||||
const defaultConfigContent = `# agentu configuration
|
||||
@@ -112,15 +112,8 @@ func run() error {
|
||||
return err
|
||||
}
|
||||
|
||||
// Resume session
|
||||
if *resumeID != "" {
|
||||
if err := modelManager.Resume(*resumeID); err != nil {
|
||||
return fmt.Errorf("resume session: %w", err)
|
||||
}
|
||||
} else {
|
||||
if err := modelManager.ResumeLatest(); err != nil {
|
||||
return fmt.Errorf("resume latest session: %w", err)
|
||||
}
|
||||
if err := initializeSession(modelManager, *resumeID); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
|
||||
@@ -141,6 +134,19 @@ func run() error {
|
||||
return repl(ctx, assistant, modelManager)
|
||||
}
|
||||
|
||||
func initializeSession(modelManager *session.Manager, resumeID string) error {
|
||||
if resumeID != "" {
|
||||
if err := modelManager.Resume(resumeID); err != nil {
|
||||
return fmt.Errorf("resume session: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
if _, err := modelManager.NewSession(); err != nil {
|
||||
return fmt.Errorf("start new session: %w", err)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func bootstrapConfig(configPath string) error {
|
||||
resolved, err := config.ResolvePath(configPath)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user