Commit Graph

91 Commits

Author SHA1 Message Date
Gregory Gauthier
6eeb919013 refactor(chat): improve chat command with better UI, prompts, and model handling
- Simplify model selection and defaults in config
- Enhance system prompt and history management
- Update CLI output with colors and exit commands
- Remove placeholder tool handling for cleaner agent mode
2026-03-04 11:04:08 +00:00
Gregory Gauthier
87851513f1 refactor(chat): deprecate agent command and integrate into chat with --agent flag
- Add deprecation warning to agent command, redirecting to `grokkit chat --agent`.
- Refactor chat command to support --agent mode with tool calling, custom models, and history management.
- Introduce basic tool call handling placeholder in agent mode.
- Update config defaults for chat and chat-agent models.
2026-03-04 10:49:53 +00:00
Gregory Gauthier
5bf6b0c91c docs(todo): reorganize queued tasks and update completed items
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
- Reordered and updated queued task list with new entries like non-interactive-query.md.
- Moved changelog.md to completed with version note.
- Standardized link formats and list markers in README.md.
2026-03-04 09:50:54 +00:00
Gregory Gauthier
f6ff1f990a docs(todo): update title and description for non-interactive-query
All checks were successful
CI / Test (push) Successful in 36s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 21s
Rename from "grokkit query Go tools integration" to "grokkit query Simple Query Tool"
and revise description to focus on a one-shot prompt/answer tool for concise queries.
2026-03-04 09:37:24 +00:00
Gregory Gauthier
5d251e88d4 docs(todo): add spec for grokkit non-interactive query tool
All checks were successful
CI / Test (push) Successful in 41s
CI / Lint (push) Successful in 28s
CI / Build (push) Successful in 22s
Adds a detailed description, examples, and ROI for the `grokkit query` feature, focusing on concise programming Q&A with optional wordy mode.
2026-03-04 09:25:07 +00:00
1e95d3613d docs(changelog): add initial CHANGELOG.md with v0.1.8 entries
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 22s
Introduces a new CHANGELOG.md file documenting notable changes, including added features like release scripts, grokkit changelog command, git helpers, tests, and TODO/README updates. Also covers changes such as flag adjustments, CI updates, README modifications, task reprioritization, and removal of file backups in favor of Git-based management.
2026-03-03 22:34:02 +00:00
5f93b43cd6 refactor(changelog): change version flag shorthand to uppercase V
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 27s
CI / Build (push) Successful in 21s
Release / Create Release (push) Successful in 37s
Update the shorthand from "v" to "V" in the changelog command and adjust the corresponding test assertion.
2026-03-03 22:27:49 +00:00
162504fa88 feat(release): add release.sh script
All checks were successful
CI / Test (push) Successful in 34s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 21s
Introduce a bash script to automate the Grokkit release process. It handles version validation, git tag creation, changelog generation via grokkit changelog, committing changes via grokkit commit, and pushing to the repository. Includes safety checks and user confirmations.
2026-03-03 22:21:29 +00:00
6005a2192a chore(ci): disable coverage threshold enforcement
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 19s
Comment out the step in CI workflow that enforces a minimum test coverage of 65%.
2026-03-03 22:14:07 +00:00
c84a9561bc docs(readme): add changelog to command list
Some checks failed
CI / Test (push) Failing after 1m1s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
Update the README to include the new grokkit-changelog command in the list of features.
2026-03-03 22:08:40 +00:00
db96cf5229 docs(README): add section for grokkit changelog command
Some checks failed
CI / Test (push) Failing after 26s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
Document the new `grokkit changelog` command, including usage examples for generating changelog sections suitable for Gitea release notes.
2026-03-03 22:06:45 +00:00
ce5367c3a7 feat(cmd): add changelog command for AI-generated release notes
Some checks failed
CI / Test (push) Failing after 27s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
- Implement `grokkit changelog` command with flags for version, since, stdout, and commit reminder
- Add git helpers for latest/previous tags and formatted log since ref
- Include tests for message building and full changelog construction
2026-03-03 21:59:09 +00:00
c5bec5ce43 chore(todo): reprioritize queued tasks with changelog at top
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 21s
- Reorder README.md queued list to prioritize changelog first, followed by interactive-agent, make, tea, and gotools.
- Update priorities in individual queued/*.md files accordingly.
- Add detail to changelog.md about using generated CHANGELOG.md for Gitea release notes.
2026-03-03 21:11:33 +00:00
95ce892fa4 docs(todo): update queued task priorities and add README
All checks were successful
CI / Test (push) Successful in 34s
CI / Lint (push) Successful in 39s
CI / Build (push) Successful in 21s
Adjusted priorities for features including audit, changelog, gotools, interactive-agent, and rg.
Added todo/README.md as a table of contents listing all queued and completed tasks.
2026-03-03 21:00:03 +00:00
f33e27cfbf refactor(safety): replace file backups with Git-based change management
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
Update safety features to leverage Git for version control and rollbacks instead of creating .bak files. This includes:
- Removing backup mentions from README.md, cmd/lint.go, ARCHITECTURE.md, and TROUBLESHOOTING.md
- Adding detailed Git workflow for managing changes in README.md
- Updating troubleshooting guide with Git rollback instructions
- Modifying feature lists and safety descriptions to emphasize Git integration
2026-03-03 20:49:27 +00:00
81fd65b14d refactor(cmd): remove automatic .bak backup creation
All checks were successful
CI / Test (push) Successful in 35s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 19s
Eliminate .bak file backups from edit, docs, lint, testgen, and agent commands to simplify safety features, relying on previews and confirmations instead. Update README, architecture docs, troubleshooting, and TODOs to reflect changes. Adjust tests to remove backup assertions.
2026-03-03 20:44:39 +00:00
7881ac2446 refactor(testgen): enforce stricter rules in Go test prompt
All checks were successful
CI / Test (push) Successful in 27s
CI / Lint (push) Successful in 19s
CI / Build (push) Successful in 14s
Release / Create Release (push) Successful in 1m58s
Update the test generation prompt for Go to prohibit monkey-patching, global variable reassignments, and reflect tricks. Mandate use of only idiomatic Go with real function calls, table-driven tests, and simple happy/error path coverage. Simplify unit and live test structures for better production readiness.
2026-03-03 19:25:33 +00:00
fd9fbee655 refactor(testgen): enhance debugging for empty responses and refine Go test prompt
Some checks failed
CI / Test (push) Successful in 29s
CI / Lint (push) Failing after 7s
CI / Build (push) Failing after 6s
- Add user-facing message showing the selected model
- Implement detailed error logging when AI response is empty, including raw preview
- Update Go test generation prompt for better naming, rules against monkey-patching, and simplicity
2026-03-03 18:58:40 +00:00
b76aa6f800 refactor(testgen): generalize Go test generation prompt
All checks were successful
CI / Test (push) Successful in 28s
CI / Lint (push) Successful in 19s
CI / Build (push) Successful in 15s
- Remove Grokkit-specific references to make the prompt more versatile.
- Update unit and live test patterns for broader applicability, including standard testing.T usage.
- Adjust test name derivation and skip messages for consistency.
- Sync test assertions in testgen_test.go with the updated prompt.
2026-03-03 18:27:49 +00:00
b82016028e refactor(testgen): refine Go test prompt to match scaffold style exactly
All checks were successful
CI / Test (push) Successful in 28s
CI / Lint (push) Successful in 18s
CI / Build (push) Successful in 15s
- Updated getTestPrompt for Go to enforce exact test structure: unit with t.Parallel() and logs, optional live with precise skip message.
- Ensured test name derivation, no unused imports, and pure output.
- Added example TestTestgenCmd_Unit and _Live in testgen_test.go to demonstrate the new pattern.
- Minor fixes to Python and C prompts for consistency.
2026-03-03 18:06:13 +00:00
Gregory Gauthier
d1eaa5234b refactor(testgen): update Go prompt to enforce unit + live test pattern
All checks were successful
CI / Test (push) Successful in 28s
CI / Lint (push) Successful in 18s
CI / Build (push) Successful in 15s
- Modify user message to reference new pattern in system prompt
- Revise Go test prompt for exact unit/live structure matching scaffold_test.go
- Update testgen_test.go to match new prompt prefix
2026-03-03 16:52:50 +00:00
Gregory Gauthier
0ef58cb5a4 fix(cmd): use Fprintf for efficiency and handle Chdir error in tests
All checks were successful
CI / Test (push) Successful in 25s
CI / Lint (push) Successful in 37s
CI / Build (push) Successful in 15s
- Replace WriteString + Sprintf with Fprintf in harvestContext for better performance.
- Wrap deferred Chdir in scaffold tests with error logging to avoid silent failures.
2026-03-03 15:50:30 +00:00
Gregory Gauthier
eadb4452a8 chore(todo): mark scaffold as completed and queue interactive agent
Some checks failed
CI / Test (push) Successful in 25s
CI / Lint (push) Failing after 31s
CI / Build (push) Successful in 12s
- Renamed todo/queued/scaffold.md to todo/completed/scaffold.md to indicate task completion.
- Added todo/queued/interactive-agent.md with details for the next priority feature: a persistent conversational agent mode for Grokkit.
2026-03-03 15:37:40 +00:00
Gregory Gauthier
1bcf55dedb test(cmd): add tests for scaffold command
Some checks failed
CI / Test (push) Successful in 58s
CI / Lint (push) Failing after 37s
CI / Build (push) Successful in 32s
Add fast unit test and live integration tests for the scaffold command, including
scenarios for basic usage, flags like --with-tests, --dry-run, and --force.

Remove unused charmbracelet dependencies (bubbles, bubbletea, lipgloss, etc.)
and add testify for assertions. Update go.mod and go.sum accordingly.
2026-03-03 15:24:06 +00:00
Gregory Gauthier
3ea26c403a feat(cmd): add scaffold command for AI-assisted file creation
All checks were successful
CI / Test (push) Successful in 39s
CI / Lint (push) Successful in 27s
CI / Build (push) Successful in 22s
Introduce a new `scaffold` command that uses Grok to generate new files based on a description.
Includes options for generating tests, dry runs, force overwrite, and language override.
Detects language from file extension and harvests project context for better generation.
2026-03-03 14:18:05 +00:00
b884f32758 chore(todo): add priorities to queued items and new tool integration plans
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 19s
- Added priority markers (e.g., "Priority: X of 12") to existing queued TODOs like audit, changelog, profile, scaffold.
- Introduced new detailed TODO markdowns for agent integrations: cnotes, git-chglog, gotools, make, pprof, rg, tea.
- Enhances planning for grokkit agent tooling ecosystem.
2026-03-02 23:42:06 +00:00
c33578b9af feat(scaffold): add spec for grokkit scaffold command to queued tasks
All checks were successful
CI / Test (push) Successful in 32s
CI / Lint (push) Successful in 24s
CI / Build (push) Successful in 19s
Queues a detailed specification for implementing the `grokkit scaffold` command, which enables AI-powered code generation for new files based on natural language descriptions and codebase patterns. Includes CLI examples, implementation notes, flags, and ROI analysis.
2026-03-02 22:39:13 +00:00
fcaad3b936 feat(audit): add todo for AI-powered code audit command
All checks were successful
CI / Test (push) Successful in 31s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 20s
Adds a queued todo item outlining the `grokkit audit` feature for comprehensive code audits, including security, performance, and best practices analysis with actionable reports and fix previews.
2026-03-02 22:32:55 +00:00
0bebde05b5 docs(readme): update test coverage metrics
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 21s
Release / Create Release (push) Successful in 37s
Adjust test coverage badge and details from 72% to 68%, and lower CI gate from 70% to 65% to reflect current status.
2026-03-02 22:23:48 +00:00
34789c50a5 test(cmd): improve error handling in completion test writer close
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
Handle potential errors when closing the pipe writer in TestCompletionCmd,
and use a deferred anonymous function to ignore errors in defer.
2026-03-02 22:19:47 +00:00
d13731facb ci(workflow): lower coverage threshold to 65% and remove test output file
Some checks failed
CI / Test (push) Successful in 34s
CI / Lint (push) Failing after 18s
CI / Build (push) Successful in 20s
Adjust the CI workflow to enforce a 65% test coverage threshold instead of 70% to accommodate current coverage levels. Delete the obsolete .output.txt file containing old test run logs.
2026-03-02 22:16:13 +00:00
ebb0cbcf3a test(cmd): add unit tests for completion, root execution, config, errors, and logger
Some checks failed
CI / Test (push) Failing after 26s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
- Add tests for shell completion generation in completion_test.go
- Add tests for root command execution and flags in root_test.go
- Expand config tests for temperature, timeout, and log level getters
- Add APIError unwrap test in errors_test.go
- Add WithContext tests in logger_test.go
- Stage test output artifact in .output.txt
2026-03-02 22:12:54 +00:00
c54bc511c9 feat(testgen): add AI unit test generation command
Some checks failed
CI / Test (push) Failing after 27s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
- Implement `grokkit testgen` for Go/Python/C/C++ files
- Add language-specific prompts and test file conventions
- Include backups, previews, auto-apply flag
- Update README with docs and examples
- Add unit tests for helper functions
- Mark todo as completed
2026-03-02 21:57:33 +00:00
599b478a17 chore(build): remove goreleaser configuration
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 24s
CI / Build (push) Successful in 19s
Delete the .goreleaser.yaml file as it's no longer needed for the build and release process.
2026-03-02 21:39:21 +00:00
918ccc01c8 refactor(tests): improve error handling and defer usage
All checks were successful
CI / Test (push) Successful in 31s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 22s
Release / Create Release (push) Successful in 36s
- Add error checking for os.Setenv and io operations in test files
- Use anonymous functions in defer to ignore errors from os.Remove, os.Setenv, etc.
- Minor formatting and consistency fixes in tests and client code
2026-03-02 21:33:11 +00:00
032301e041 chore(lint): update golangci-lint configuration
Some checks failed
CI / Test (push) Successful in 34s
CI / Lint (push) Failing after 25s
CI / Build (push) Successful in 20s
Switch default linters to standard and retain misspell enablement, removing explicit enables for govet, errcheck, staticcheck, ineffassign, unused, and gosimple.
2026-03-02 21:25:21 +00:00
586dfeaa8c chore: move gofmt from linters to formatters in .golangci.yml
Some checks failed
CI / Test (push) Successful in 33s
CI / Lint (push) Failing after 16s
CI / Build (push) Successful in 21s
Correctly configure gofmt as a formatter instead of a linter for proper linting behavior.
2026-03-02 21:21:21 +00:00
4f40c7e8d7 chore(lint): remove typecheck from golangci linters
Some checks failed
CI / Test (push) Successful in 31s
CI / Lint (push) Failing after 17s
CI / Build (push) Successful in 20s
Disable the typecheck linter as it may be redundant or unnecessary in the current setup.
2026-03-02 21:18:43 +00:00
03e6703c58 chore(ci): upgrade golangci-lint-action to v7
Some checks failed
CI / Test (push) Successful in 32s
CI / Lint (push) Failing after 39s
CI / Build (push) Successful in 20s
2026-03-02 21:13:31 +00:00
78baa5a400 chore(ci): upgrade golangci-lint-action to v6
Some checks failed
CI / Test (push) Successful in 34s
CI / Lint (push) Failing after 37s
CI / Build (push) Successful in 21s
Update the golangci-lint action in the CI workflow to version 6 and specify lint version v2.1.6 for improved compatibility and features.
2026-03-02 21:10:46 +00:00
90d7b3359d chore(ci): pin golangci-lint version to v2.1.6
Some checks failed
CI / Test (push) Successful in 33s
CI / Lint (push) Failing after 19s
CI / Build (push) Successful in 21s
2026-03-02 21:06:02 +00:00
99ef10b16b refactor(cmd): extract run funcs and add injectable deps for testability
Some checks failed
CI / Test (push) Successful in 34s
CI / Lint (push) Failing after 19s
CI / Build (push) Successful in 20s
- Introduce newGrokClient and gitRun vars to allow mocking in tests.
- Refactor commit, commitmsg, history, prdescribe, and review cmds into separate run funcs.
- Update docs, lint, and review to use newGrokClient.
- Add comprehensive unit tests in run_test.go covering happy paths, errors, and edge cases.
- Expand grok client tests with SSE server mocks for Stream* methods.
2026-03-02 20:47:16 +00:00
f763976a27 docs(client): add documentation comments to Client struct and methods
Some checks failed
CI / Test (push) Failing after 24s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
Release / Create Release (push) Successful in 36s
Add detailed GoDoc-style comments for the Client struct, NewClient function,
and various streaming methods to improve code readability and documentation.
Also include a comment for CleanCodeResponse and minor formatting adjustments.
2026-03-02 20:20:18 +00:00
0aa806be70 feat(cmd): add AI documentation generation and command tests
Some checks failed
CI / Test (push) Failing after 25s
CI / Lint (push) Has been skipped
CI / Build (push) Has been skipped
- Implemented `grokkit docs` command for generating language-specific documentation comments (godoc, PEP 257, Doxygen, etc.) with previews, backups, and auto-apply option
- Extracted message builder functions for commit, history, pr-describe, and review commands
- Added comprehensive unit tests for all command message builders (commit_test.go, docs_test.go, history_test.go, lint_test.go, prdescribe_test.go, review_test.go)
- Enforced 70% test coverage threshold in CI workflow
- Added .golangci.yml configuration with linters like govet, errcheck, staticcheck
- Updated Makefile to include -race in tests and add help target
- Updated README.md with new docs command details, workflows, and quality features
- Added .claude/ to .gitignore
- Configured default model for docs command in config.go
2026-03-02 20:13:50 +00:00
6e3a52728e chore(todo): complete feature suggestions TODO and queue individual tasks
All checks were successful
CI / Test (push) Successful in 30s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 20s
- Update CI workflow runner from ubuntu-latest to ubuntu-gitea for auto-complete-todo.
- Move 3-new-feature-suggestions.md to completed/.
- Create queued TODOs for testgen, changelog, and profile features.
2026-03-02 19:33:34 +00:00
d0a4b8922d chore(ci): add auto-complete TODO workflow
All checks were successful
CI / Test (push) Successful in 33s
CI / Lint (push) Successful in 26s
CI / Build (push) Successful in 20s
Introduce Gitea Actions workflow to automatically move TODO files from queued to completed on PR events for feature branches.
Update README with setup instructions and benefits.
2026-03-02 19:20:11 +00:00
742edd7742 docs(readme): add TODO workflow section
All checks were successful
CI / Test (push) Successful in 32s
CI / Lint (push) Successful in 24s
CI / Build (push) Successful in 20s
Add documentation for the TODO workflow policy and process, including branching, PRs, and post-merge steps.
2026-03-02 19:18:20 +00:00
200b2f9aaf refactor(todo): organize TODO items into queued and completed directories
All checks were successful
CI / Test (push) Successful in 30s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 21s
- Update README.md to reflect new todo/ directory structure with queued/ for pending items and completed/ for historical records.
- Rename docs/TODO.md to todo/completed/MODEL_ENFORCEMENT.md.
- Add example todo/queued/TODO_ITEM.md with initial TODO steps.
2026-03-02 19:03:27 +00:00
a9127deedd docs(README): update version info, installation details, and project structure
All checks were successful
CI / Test (push) Successful in 31s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 19s
- Update Go version to 1.24.2 in badge and requirements
- Change repository URL to repos.gmgauthier.com
- Update example VERSION to 0.1.3
- Revise model alias for "fast"
- Add testing and linting instructions in Development section
- Expand directory structure with new internal packages and files
2026-03-02 18:56:20 +00:00
68df041a09 test(version): add tests for version information
All checks were successful
CI / Test (push) Successful in 32s
CI / Lint (push) Successful in 25s
CI / Build (push) Successful in 20s
Add unit tests to verify that Version is set and note that Commit and BuildDate may be empty in development builds.

Update .gitignore to ignore the .junie/ directory.
2026-03-02 18:41:27 +00:00