summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-03-16Add bounds checks to extractRangeText and split into helper functionsPaul Buetow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Use read lock for cache misses in completionState.cacheGetPaul Buetow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Rename timeout helpers to match actual durations (timeout20s, timeout18s)Paul Buetow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Replace interface{} with any in LSP typesPaul Buetow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Use filepath.Join instead of fmt.Sprintf for path constructionPaul Buetow
Replace string-based path building with filepath.Join in LSP and MCP server log path helpers for platform-correct path separators. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Add doc comments to exported types and functionsPaul Buetow
Document ~30 exported types in lsp/types.go and exported functions in llm/provider.go, lsp/server.go, and hexailsp/run.go. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Split mcp/server.go (962L) into server, handlers_prompt, handlers_toolPaul Buetow
server.go (223L): core lifecycle and routing handlers_prompt.go (420L): prompt CRUD handlers handlers_tool.go (335L): tool handlers and schema builders Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Split config_load.go into config_load.go and config_env.goPaul Buetow
Move environment variable handling functions into config_env.go (269L), keeping config_load.go at 697L. Both well under the 1000-line limit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Merge runOnce and runOnceWithOpts in hexaiaction/prompts.goPaul Buetow
Consolidate near-identical functions into a single runOnce that accepts requestArgs (callers pass zero-value when no options needed). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Add gofumpt formatting target to MagefilePaul Buetow
Add 'mage fmt' target that runs gofumpt -w on the project. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Fix mixed pointer/value receivers on appconfig.AppPaul Buetow
Change all value receivers on App to pointer receivers for consistency. Update callers that pass App values to pass pointers where needed for the actionConfig interface. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Replace custom stringsTrim with strings.TrimSpacePaul Buetow
Remove duplicate stringsTrim implementations in stats and tmux packages, replacing all call sites with the standard library strings.TrimSpace. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Use %w for error wrapping in appconfig config_load.goPaul Buetow
Replace %v with %w in three fmt.Errorf calls that wrap actual error values, enabling errors.Is/errors.As chains for callers. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Decompose App God struct into embedded section structsPaul Buetow
Replace 60+ flat fields in App with 4 embedded section structs: CoreConfig, ProviderConfig, PromptConfig, FeatureConfig. Go field promotion preserves all existing field access patterns. Updated flattenAppConfig to recurse into embedded structs for runtimeconfig. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Refactor oversized functions and split large test filesPaul Buetow
Split DefaultPrompts (201L), loadFromFile (83L), and Update (74L) into focused helper functions under 50 lines each. Split handlers_test.go (1650L) and config_test.go (1419L) into logical sub-files under 1000L. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Remove os.Setenv from MCP server production codePaul Buetow
Replace environment variable communication between cmd and internal packages with explicit MCPOverrides struct. CLI flag values are now passed via typed struct fields through Run/RunWithFactory/RunBackfill. Env var support preserved through appconfig's applyMCPEnv pipeline. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Replace panic with graceful error returns in tmuxedit and mcp-serverPaul Buetow
Change initDebugLog() and defaultLogPath() to return errors instead of panicking. Callers now handle errors gracefully with proper messages. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Fix time.After timer leak in stats.acquireFileLockPaul Buetow
Replace per-iteration time.After with a single time.NewTimer that is reused via Reset() and cleaned up with defer Stop(). Prevents leaking a timer and channel on every retry iteration. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Fix data races in logging package using atomic operationsPaul Buetow
Replace bare package-level vars with atomic.Pointer[log.Logger] for std and atomic.Int32 for logPreviewLimit to prevent concurrent access races. Add comprehensive tests including concurrency, edge cases, and nil logger. Coverage: 100%. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Release v0.24.0v0.24.0Paul Buetow
Bring unit test coverage from ~75% to 85.1% project-wide. All internal packages now exceed 80% coverage. Refactored cmd entrypoints to extract testable run() functions with injectable seams. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-16Release v0.23.1v0.23.1Paul Buetow
2026-03-15Release v0.23.0v0.23.0Paul Buetow
2026-03-14Release v0.22.3v0.22.3Paul Buetow
2026-03-14Release v0.22.2v0.22.2Paul Buetow
2026-03-14Release v0.22.1v0.22.1Paul Buetow
2026-03-13release: v0.22.0v0.22.0Paul Buetow
2026-03-10Bump version to 0.20.2v0.20.2Paul Buetow
2026-03-10task 80330fc4: deduplicate default config path helperPaul Buetow
2026-03-10task dac9b1e5: avoid LSP startup panic on StateDir failurePaul Buetow
2026-03-10task bf088a70: extract LSP client and completion statePaul Buetow
2026-03-02release: v0.20.1v0.20.1Paul Buetow
2026-03-02hexaiaction: replace global action state with Runner struct (task 406)Paul Buetow
2026-03-02hexaicli: move column printer into internal/termprint package (task 406)Paul Buetow
2026-03-02lsp: inject StatusSink to decouple core from tmux package (task 407)Paul Buetow
2026-03-02appconfig: return toml raw-unmarshal errors instead of ignoring (task 409)Paul Buetow
2026-03-02io: use errors.Is for EOF checks in lsp and mcp servers (task 409)Paul Buetow
2026-03-02llm: extract shared doJSON and logStart helpers (task 409)Paul Buetow
2026-03-02gotest: extract Go codegen heuristics from lsp handlers (task 406)Paul Buetow
2026-03-02hexailsp: add ConfigurableServerRunner for runtime ApplyOptions (task 408)Paul Buetow
2026-03-02lsp: use appconfig.CustomAction directly for custom actions (task 411)Paul Buetow
2026-03-02hexaiaction: use sectioned config interface instead of full App (task 409)Paul Buetow
2026-03-02mcp: depend on SlashCommandSyncer interface instead of concrete type (task 410)Paul Buetow
2026-03-02lsp: decompose tryLLMCompletion orchestration helpers (task 415)Paul Buetow
2026-03-02lsp: decompose resolveGoTest workflow into helpers (task 416)Paul Buetow
2026-03-02hexaicli: decompose runCLIJobs and runChat helpers (task 417)Paul Buetow
2026-03-02lsp: decompose detectAndHandleChat into focused helpers (task 418)Paul Buetow
2026-03-02llmutils: remove remaining default-model wrappers in callers (task 413)Paul Buetow
2026-03-02lsp: cancel handler contexts on shutdown via server context (task 423)Paul Buetow
2026-03-02lsp: use context-mode registry for additional context dispatch (task 408)Paul Buetow
2026-03-02remove planPaul Buetow