diff --git a/internal/db/connect.go b/internal/db/connect.go index 6452dabdb3a5de6ffb0f618062631dfe4b25102d..95df2e491d13918d8ea66a3f8312438a42e81b4f 100644 --- a/internal/db/connect.go +++ b/internal/db/connect.go @@ -1,6 +1,7 @@ package db import ( + "context" "database/sql" "fmt" "os" @@ -15,7 +16,7 @@ import ( "github.com/pressly/goose/v3" ) -func Connect() (*sql.DB, error) { +func Connect(ctx context.Context) (*sql.DB, error) { dataDir := config.Get().Options.DataDirectory if dataDir == "" { return nil, fmt.Errorf("data.dir is not set") diff --git a/internal/tui/tui.go b/internal/tui/tui.go index a37a55cfbbd05eba217b10691a15d0caed7c183a..fb77e5a8f30d8f4cd290d3a8d4026694c690a109 100644 --- a/internal/tui/tui.go +++ b/internal/tui/tui.go @@ -230,20 +230,20 @@ func (a *appModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) { contextWindow := model.ContextWindow usedTokens := session.CompletionTokens + session.PromptTokens remainingTokens := contextWindow - usedTokens - + // Get effective max tokens for this agent (considering overrides) maxTokens := a.app.CoderAgent.EffectiveMaxTokens() - + // Apply 10% margin to max tokens maxTokensWithMargin := int64(float64(maxTokens) * 1.1) - + // Trigger auto-summarize if remaining tokens < max tokens + 10% margin // Also ensure we have a reasonable minimum threshold to avoid too-frequent summaries minThreshold := int64(1000) // Minimum 1000 tokens remaining before triggering if maxTokensWithMargin < minThreshold { maxTokensWithMargin = minThreshold } - + if remainingTokens < maxTokensWithMargin && !config.Get().Options.DisableAutoSummarize { // Show compact confirmation dialog cmds = append(cmds, util.CmdHandler(dialogs.OpenDialogMsg{