summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-08-17cli+lsp: refactor main packages into internal runners; add testsPaul Buetow
- Move CLI logic to internal/hexaicli with Run/RunWithClient - Move LSP logic to internal/hexailsp with Run/RunWithFactory - Extract helpers; keep behavior identical for both binaries - Add unit tests for hexaicli (input parsing, messages, streaming) and hexailsp (factory wiring, client creation, logging settings) - Add top-of-file summaries and 'Not yet reviewed by a human' comments to all Go files - Update README with internal package docs
2025-08-17chore(release): bump version to 0.1.0v0.1.0Paul Buetow
2025-08-17cli: stream responses in hexai when supported (OpenAI, Ollama)Paul Buetow
- Add llm.Streamer optional interface - Implement ChatStream for OpenAI (SSE) and Ollama (JSON stream) - CLI uses streaming; LSP unchanged (non-streaming) - README: document streaming behavior for CLI
2025-08-17update readmePaul Buetow
2025-08-17docs(cli): document hexai CLI usage and behaviorsPaul Buetow
- Inputs from stdin/arg, concatenation rules - Stderr styling, immediate provider/model, final stats line - Default concise style; 'explain' keyword for verbose answers - Examples and exit codes
2025-08-17cli: add leading newline before stats on stderr for hexai outputPaul Buetow
2025-08-17cli: add hexai command-line tool and split LSP to hexai-lspPaul Buetow
- New cmd/hexai CLI: reads stdin/arg, prints LLM output to stdout - Prints provider/model immediately to stderr; summary at end - Refactor config loader to internal/appconfig - Update Taskfile to build/install/run both binaries - Update README with new CLI and LSP names
2025-08-17rename CLI binary to hexai-lspPaul Buetow
- Default log path: /tmp/hexai-lsp.log - Taskfile: build/copy/run hexai-lsp binary
2025-08-17llm: add GitHub Copilot providerPaul Buetow
- Implement copilot client reading COPILOT_API_KEY - Wire copilot_base_url and copilot_model config - Update README and config example; defaults to gpt-4.1 - Keep OpenAI default at gpt-4.1 for consistency
2025-08-17docs: remove CHANGELOG.mdPaul Buetow
2025-08-17docs: add CHANGELOG entry for 0.0.3Paul Buetow
2025-08-17chore: bump version to 0.0.3v0.0.3Paul Buetow
2025-08-17lsp/config: include ';' and '?' in default trigger charactersPaul Buetow
- Default trigger set when unset now [., :, /, _, ;, ?] - Update README and example config accordingly
2025-08-17lsp/config: make completion trigger characters configurablePaul Buetow
- Add trigger_characters to JSON config and ServerOptions - Store on server and advertise in initialize - Update README and example config - Preserve previous defaults when unset
2025-08-16lsp: refactor NewServer to use options structPaul Buetow
- Introduce ServerOptions to reduce constructor parameter count - Update main.go call site; preserve defaults and behavior - Build and run tests
2025-08-16lsp: add 'Resolve diagnostics' code action scoped to selectionPaul Buetow
- Parse diagnostics from CodeAction context; filter to overlap with selection - Build LLM prompt from selection-only diagnostics; replace only selected range - Keep existing 'Rewrite selection' action; return both when applicable - Add Diagnostic and CodeActionContext types; make CodeActionParams.Context raw JSON - Add helpers for range overlap; unit tests for filtering/overlap - Update README to document resolve-diagnostics action
2025-08-16fix(lsp): avoid duplicate assignment prefix in completionsPaul Buetow
- Prompt: instruct model to only continue from cursor; do not repeat LHS already typed.\n- Add stripDuplicateAssignmentPrefix to drop duplicated 'name :=' or 'name =' when model repeats it.\n- Tests: cover := and = cases.\n- .gitignore: ignore built binary and go caches.
2025-08-16feat(lsp): code action to rewrite selection with instruction detectionPaul Buetow
- Adds textDocument/codeAction handler that rewrites the selected range.\n- Instruction preference: strict ;text; marker first, then //, #, -- line comments, then single-line block comments (/* */ and <!-- -->). Earliest in the selection wins.\n- Removes the matched instruction from the selection before sending to LLM.\n- README: document code action workflow and instruction formats.
2025-08-16refactor(config): drop env-based config (except OPENAI_API_KEY)Paul Buetow
- Switch to config-file-only; only OPENAI_API_KEY read from env.\n- llm: replace env autodetect with Config + NewFromConfig; add newOpenAI/newOllama.\n- lsp: NewServer now accepts injected llm.Client.\n- cli: remove env overrides; extend appConfig with provider-specific fields; build client from config + OPENAI_API_KEY.\n- docs: update README (config-only, defaults to OpenAI, minimal example); simplify flags table.\n- add config.json.example.\n- prompts: enforce ;text; (no spaces) and add ;;text; to remove entire line; tests added.
2025-08-16feat(logging): add LLM stats (averages and per-minute)v0.0.2Paul Buetow
2025-08-16feat(logging): add LLM stats averages and per-minute metricsPaul Buetow
2025-08-16feat(cli): simplify flags to -log and -version; add JSON config with env ↵Paul Buetow
precedence; update README
2025-08-16feat(llm): add Ollama provider + provider selection and CLI override; update ↵v0.0.1Paul Buetow
README and logs
2025-08-16lsp/completion: strip inline ;...; prompt markers via AdditionalTextEdits; ↵Paul Buetow
update tests
2025-08-16revert: remove newline-after-colon insertion behavior and its testsPaul Buetow
2025-08-16logging: migrate LSP logs to global singleton (internal/logging); use ↵Paul Buetow
consistent colors/prefix; refactor LLM provider to use global logger and remove per-client loggers
2025-08-16llm: centralize ANSI color and logging helpers in logging.go; remove ↵Paul Buetow
duplicate color constants from openai.go
2025-08-16context: log when full-file/window context is skipped because document is ↵Paul Buetow
not open; add -no-disk-io flag with HEXAI_NO_DISK_IO env; plumb through server
2025-08-16logging: add -log-preview-limit flag with HEXAI_LOG_PREVIEW_LIMIT env; wire ↵Paul Buetow
through llm.SetLogPreviewLimit; document in README
2025-08-16llm/openai: log full message and response content without truncation; keep ↵Paul Buetow
cyan/green coloring and base black/grey styling
2025-08-16cmd: add HEXAI_CONTEXT_WINDOW_LINES env fallback for -context-window-lines; ↵Paul Buetow
update README flags table
2025-08-16cmd: support HEXAI_CONTEXT_MODE env fallback for -context-mode; update ↵Paul Buetow
README flags table and usage
2025-08-16llm/openai: switch sending color to cyan; enforce black background + grey ↵Paul Buetow
base on all messages; ensure colored segments return to base style
2025-08-16llm/openai: colorize logs — blue for outgoing context (messages), green ↵Paul Buetow
for received content preview, red for errors; print real newlines
2025-08-16llm/openai: log previews with real newlines (%s) instead of quoted strings ↵Paul Buetow
(%q) for better readability
2025-08-16lsp: split monolithic server.go into modules; add configurable max tokens ↵Paul Buetow
and context strategies (minimal|window|file-on-new-func|always-full); provide flags/env fallbacks; add unit tests for helpers and context; update README; remove obsolete files
2025-08-16llm: add pluggable provider with OpenAI default; extensive logging; LSP ↵Paul Buetow
completion integration with TextEdit, param-aware prompts; remove idle gating; label/filter improvements; docs update
2025-08-14Revert "feat(lsp): gate completion by context — require preceding space ↵Paul Buetow
and >=2s idle since last change; add logging for gating decisions" This reverts commit eb0bb96fd23cae6e92c5f8d77ef29db8b6d50dc1.
2025-08-14feat(lsp): gate completion by context — require preceding space and >=2s ↵Paul Buetow
idle since last change; add logging for gating decisions
2025-08-14feat(lsp): scaffold barebones LSP server with contextual completion; add ↵Paul Buetow
Taskfile and AGENTS.md; enable -log context logging
2025-08-03more on thisPaul Buetow
2025-08-03more on thisPaul Buetow
2025-08-02more ideasPaul Buetow
2025-08-01addin ideasPaul Buetow
2025-08-01add readmePaul Buetow