| Age | Commit message (Collapse) | Author | |
|---|---|---|---|
| 2026-03-16 | Decompose App God struct into embedded section structs | Paul 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-16 | Refactor oversized functions and split large test files | Paul 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-16 | Remove os.Setenv from MCP server production code | Paul 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-16 | Replace panic with graceful error returns in tmuxedit and mcp-server | Paul 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-16 | Fix time.After timer leak in stats.acquireFileLock | Paul 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-16 | Fix data races in logging package using atomic operations | Paul 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-16 | Release v0.24.0v0.24.0 | Paul 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-16 | Release v0.23.1v0.23.1 | Paul Buetow | |
| 2026-03-15 | Release v0.23.0v0.23.0 | Paul Buetow | |
| 2026-03-14 | Release v0.22.3v0.22.3 | Paul Buetow | |
| 2026-03-14 | Release v0.22.2v0.22.2 | Paul Buetow | |
| 2026-03-14 | Release v0.22.1v0.22.1 | Paul Buetow | |
| 2026-03-13 | release: v0.22.0v0.22.0 | Paul Buetow | |
| 2026-03-10 | Bump version to 0.20.2v0.20.2 | Paul Buetow | |
| 2026-03-10 | task 80330fc4: deduplicate default config path helper | Paul Buetow | |
| 2026-03-10 | task dac9b1e5: avoid LSP startup panic on StateDir failure | Paul Buetow | |
| 2026-03-10 | task bf088a70: extract LSP client and completion state | Paul Buetow | |
| 2026-03-02 | release: v0.20.1v0.20.1 | Paul Buetow | |
| 2026-03-02 | hexaiaction: replace global action state with Runner struct (task 406) | Paul Buetow | |
| 2026-03-02 | hexaicli: move column printer into internal/termprint package (task 406) | Paul Buetow | |
| 2026-03-02 | lsp: inject StatusSink to decouple core from tmux package (task 407) | Paul Buetow | |
| 2026-03-02 | appconfig: return toml raw-unmarshal errors instead of ignoring (task 409) | Paul Buetow | |
| 2026-03-02 | io: use errors.Is for EOF checks in lsp and mcp servers (task 409) | Paul Buetow | |
| 2026-03-02 | llm: extract shared doJSON and logStart helpers (task 409) | Paul Buetow | |
| 2026-03-02 | gotest: extract Go codegen heuristics from lsp handlers (task 406) | Paul Buetow | |
| 2026-03-02 | hexailsp: add ConfigurableServerRunner for runtime ApplyOptions (task 408) | Paul Buetow | |
| 2026-03-02 | lsp: use appconfig.CustomAction directly for custom actions (task 411) | Paul Buetow | |
| 2026-03-02 | hexaiaction: use sectioned config interface instead of full App (task 409) | Paul Buetow | |
| 2026-03-02 | mcp: depend on SlashCommandSyncer interface instead of concrete type (task 410) | Paul Buetow | |
| 2026-03-02 | lsp: decompose tryLLMCompletion orchestration helpers (task 415) | Paul Buetow | |
| 2026-03-02 | lsp: decompose resolveGoTest workflow into helpers (task 416) | Paul Buetow | |
| 2026-03-02 | hexaicli: decompose runCLIJobs and runChat helpers (task 417) | Paul Buetow | |
| 2026-03-02 | lsp: decompose detectAndHandleChat into focused helpers (task 418) | Paul Buetow | |
| 2026-03-02 | llmutils: remove remaining default-model wrappers in callers (task 413) | Paul Buetow | |
| 2026-03-02 | lsp: cancel handler contexts on shutdown via server context (task 423) | Paul Buetow | |
| 2026-03-02 | lsp: use context-mode registry for additional context dispatch (task 408) | Paul Buetow | |
| 2026-03-02 | remove plan | Paul Buetow | |
| 2026-03-02 | appconfig: split App into focused section helpers (task 406) | Paul Buetow | |
| 2026-03-02 | lsp: extract completion/chat/codeaction server subtypes (task 406) | Paul Buetow | |
| 2026-03-02 | lsp: make exit flag atomic to avoid data race (task 406) | Paul Buetow | |
| 2026-03-02 | lsp: handle code action payload marshal errors (task 406) | Paul Buetow | |
| 2026-03-02 | lsp: simplify ServerOptions to config-first model (task 410) | Paul Buetow | |
| 2026-03-02 | lsp: return cleanly on exit and propagate runner errors (task 410) | Paul Buetow | |
| 2026-03-02 | llmutils: centralize provider normalization and client setup (task 410) | Paul Buetow | |
| 2026-03-02 | codeaction: add Build/Resolve handler registries (task 410) | Paul Buetow | |
| 2026-03-02 | llm: add provider registry and self-registration factories (task 410) | Paul Buetow | |
| 2026-03-02 | appconfig: split config module and decompose oversized funcs (task 406) | Paul Buetow | |
| 2026-02-22 | docs: clarify Codex uses native Ctrl+G external editor | Paul Buetow | |
| 2026-02-13 | chore: deprecate hexai-mcp-server as experimental | Paul Buetow | |
| Add deprecation notices across hexai-mcp-server codebase and documentation. The MCP server is now considered experimental and not actively maintained, as prompts are managed through slash commands and meta-commands instead. Changes: - Add runtime deprecation warning to stderr on binary startup - Mark feature as deprecated in README.md - Add deprecation notices to all 8 MCP documentation files - Add deprecation log message to run.go - Update Magefile.go build comment The code remains fully functional but warns users of its experimental status. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com> | |||
| 2026-02-12 | also ignore /hexai | Paul Buetow | |
