summaryrefslogtreecommitdiff
path: root/internal/hexaiaction/custom_exec_test.go
AgeCommit message (Collapse)Author
2026-06-11Thread context.Context through blocking I/O entry pointsPaul Buetow
Accept ctx as the first parameter on the blocking I/O entry points and propagate it to downstream blocking calls so the work is cancellable from the process entry point: - appconfig.Load / LoadWithOptions: honor ctx before the blocking file reads, returning defaults on a cancelled context. - LSP: lsp.Server.Run(ctx) ties the serve loop to the caller context via a new watchParentContext bridge (cancels the server context, aborting in-flight LLM work). Threaded through hexailsp.Run/RunWithConfig/ RunWithFactory and runtimeconfig.Store.Reload. - MCP: mcp.Server.Run(ctx) stops accepting requests once ctx is cancelled; threaded through hexaimcp.Run/RunWithFactory/RunBackfill. - editor: RunEditor/OpenTempAndEdit/OpenFile take ctx and use exec.CommandContext so a cancelled context kills the editor subprocess; threaded through hexaicli, hexaiaction and askcli call sites. Top-level callers (cmd/hexai-lsp-server, cmd/hexai-mcp-server) now build a signal-cancelled context (SIGINT/SIGTERM) so shutdown tears the run down cleanly. Updated comments to explain the cancellation flow and added cancellation tests for the LSP/MCP loops, editor, and config load. All tests pass with -race; cross-package coverage 86.2%. Co-Authored-By: Claude Opus 4.8 <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-02hexaiaction: replace global action state with Runner struct (task 406)Paul Buetow
2025-09-14release: v0.10.0v0.10.0Paul Buetow