Conversation
Resolves two moderate Dependabot vulnerabilities: SSH agent panic on malformed messages and unbounded memory consumption in SSH connections.
fix: update golang.org/x/crypto to v0.48.0
Lightweight standalone package for login and connect TUI flows, separate from the seed TUI. Reuses existing spinner and text input components from the TUI framework.
Replace goroutine spinners and manual ANSI in login and connect with configtui Bubble Tea models. Replace pterm in dbinfo with dbheader + fmt. All error messages and output preserved.
refactor: replace pterm with lipgloss in subscription display
refactor: rewrite config commands to Bubble Tea
Legacy compatibility layer for keychain operations that was never imported anywhere in the codebase. All callers use `internal/keychain` directly.
Remove `DSNResolver.GetDatabaseName()` (orchestrator uses `dsn.ExtractDatabaseName()` directly), `EventHandler.logVerboseHumanPrompt()`, `AuthValidator.IsAuthenticated()` (all callers use `Validate()`), `DatabaseConnector.ConnectWithTimeout()` (only `Connect()` is used), and unused `SeedState.Area` and `SeedState.Frames` fields.
Remove `auth.IsLoggedIn`, `auth.SetLoggedIn`, `auth.SetLoggedOut` (never called from anywhere) and `keychain.MustGetManager()` (dead code with dangerous panic pattern).
Single `auth.Service` instance shared across the orchestrator instead of 4 separate instantiations. `Validate()` now returns the access token directly, eliminating `getAccessToken()` and the redundant `WhoAmI` call. Saves 1-2 HTTP round-trips per run.
`FetchLatestVersion()` previously made an HTTP call on every CLI invocation. Now the cache stores `LastCheckTime` and skips the HTTP call when within `checkInterval` (24 hours), using the cached `LatestVersion` instead. The PersistentPreRun context timeout is increased from 2s to 5s to accommodate the 3-second HTTP timeout when a fetch does occur.
`GetVersion` and `GetCLIVersion` are now fetched concurrently using goroutines after the manifest is resolved, reducing `--version` latency by running both HTTP calls in parallel instead of sequentially.
Replaces 4 identical private `isVerbose()` functions across backend, manifest, auth, and keychain packages with a single exported function in the logging package.
Replaces per-call http.Client creation with a package-level shared client. Enables TCP connection pooling across manifest fetch calls.
Replaces grpc.DialContext + WithBlock with grpc.NewClient which is non-blocking and the recommended API going forward.
The `seedfast_connections_test` tool now verifies connectivity using `pgxpool` instead of returning a static success message.
refactor: remove dead code and unused exports
…duplicate-api-calls # Conflicts: # cmd/dbinfo.go
refactor: deduplicate API calls and reduce code duplication
perf: optimize CLI startup performance
refactor: clean up minor inefficiencies
…gement refactor: improve connection management
…nections-test # Conflicts: # internal/mcpserver/handlers.go
fix: real database connection test in MCP server
Add ScopeIssues field to AskHumanMsg for structured scope issue passthrough from proto. Add PromptWarnings and PromptOption types to bridge orchestration warning data to TUI PromptPhase. Update convertAskHuman to populate ScopeIssues from proto UserQuestion.
Arrow-key navigation selector following the TextInputComponent pattern. Supports PromptOption items with Label/Answer pairs, keyboard navigation, and cancel via Ctrl+C/Esc.
Accept optional PromptWarnings in constructor. When warnings with options are present, show styled warning lines and selector instead of text input. Selector "describe" option falls through to text input mode. Factory passes nil to preserve existing TUI behavior.
Add RunPrompt standalone Bubble Tea program that wraps PromptPhase with promptActions to capture results without gRPC. Add buildPromptWarnings to convert warningFormatResult to TUI types. Replace pterm prompt rendering and runScopeInput/runScopeSelector calls in handleAskHuman with single RunPrompt call.
Cover SelectorComponent navigation, PromptPhase warning mode, promptActions channel behavior, buildPromptWarnings option building, helper functions, promptApp delegation, and EventBridge ScopeIssues.
docs: add plan for TUI prompt wiring in production
Replace pterm-based scope rendering in handlePlanProposed and
handleAskHuman with the TUI PlanPhase component via a new
RunScopeDisplay function. Add configurable header support to
PlanPhase for replan mode ("Previous seeding scope").
feat: migrate scope display from pterm to TUI
Remove .claude/ and .mcp.json from git tracking and add .claude/, .mcp.json, docs/ to .gitignore. Public repo must not contain internal documentation, skills, or config.
Re-register OS signal handlers after Bubble Tea exits raw mode to ensure CTRL+C continues working. Add MarkComplete to prompt phase to prevent stale spinner on final render. Send cancellation to backend when user interrupts during ask_human.
feat: migrate CLI rendering to Bubble Tea TUI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Major release consolidating the Bubble Tea UI migration and codebase improvements.
UI Migration
Performance
Code Quality
internal/securepackagelogging.IsVerbose(),auth.ExtractUserIdentifier(),dsn.ResolveRawFromSources()grpc.NewClientfrom deprecatedDialContextTokenManagerto standalone functionsFixes