scai
Version:
> AI-powered CLI tool for commit messages **and** pull request reviews — using local models.
149 lines (111 loc) • 7.94 kB
Markdown
## 2025-06-23
The new markdown bullet-point entry for CHANGELOG.md includes the following updates:
* Added support for generating changelog entries based on Git diffs using the `changelog` command.
* Updated the summary of the code file directly to the terminal using the `summ` command.
* Refactored the code to use the new `handleChangelogUpdate()` function instead of the old `updateReadmeIfNeeded()` function for generating changelogs.
## 2025-06-24
### Changelog Update (Version 0.1.16)
* Update to version 0.1.16 with changes from `package.json`.
* Add support for running modules using the `module` command.
* Add support for generating tests using the `tests` module.
* Add support for suggesting a commit message using the `suggest` module.
* Add support for updating the changelog using the `changelog` module.
## 2025-06-29
Type handling with the module pipeline
┌────────────────────────────────────────────────────────────────┐
│ 1. Command Layer (CLI) │
│ - User interaction │
│ - Handles input/output │
│ │
│ 🡆 Uses: │
│ - Input: PromptInput │
│ - Output: PromptOutput (reads summary/suggestions) │
└────────────┬───────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ 2. PromptModule Layer │
│ - Domain-specific logic │
│ - Calls `generate()` │
│ - Parses model output into usable fields │
│ │
│ 🡆 Type: PromptModule │
│ - run(input: PromptInput) => Promise<PromptOutput> │
│ │
│ 🡆 Uses: │
│ - Receives: PromptInput │
│ - Calls: generate(PromptInput, model): Promise<PromptOutput>│
│ - Parses output.content → summary/suggestions fields │
└────────────┬───────────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────────────┐
│ 3. generate() Function │
│ - Sends prompt to model │
│ - Returns raw model text in `.content` │
│ │
│ 🡆 Signature: │
│ generate(input: PromptInput, model: string) │
│ => Promise<PromptOutput> │
│ │
│ 🡆 Output fields: │
│ - content: string (LLM output text) │
│ - filepath?: string (optional passthrough) │
└────────────────────────────────────────────────────────────────┘
## 2025-06-30
* Added context generation via summaries in sqlite3 db with FTS5
* Improved the `dbstats.sh` script to include more accurate row counts and improved formatting for better readability. (#20)
* Added an `IGNORED_FOLDER_GLOBS` constant in `src/config/IgnoredPaths.ts` to allow for ignoring folders and file globs during indexing and scanning. (#17)
* Fixed a bug in the `searchFiles` function of `src/db/fileIndex.ts` that prevented search results from being returned correctly. (#25)
* Updated the `runModulePipeline` function in `src/pipeline/runModulePipeline.ts` to allow for returning more accurate output and ensure consistent return types. (#27)
## 2025-07-01
### Version 0.1.20 (2023-04-01)
* Added support for querying file summaries and a local model using the `scai ask` command. The command will first search for matching files and pass their summaries to the model for context-based synthesis, if any are found. If no summaries are found, it will instead query the model for context without them.
## 2025-07-12
* • Fixes to improve code quality and maintainability.
* • Enhances model initialization for better performance.
* • Adds support for generating changelogs based on Git diff.
* • Improves the handling of ignored files to reduce noise in the model.
* • Updates the `changelog` command to generate a meaningful summary.
* • Enhances the `sugg` command to provide more accurate suggestions.
* • Fixes issues with refactoring code to improve readability.
## 2025-07-24
* Added token and owner/repo parameters to `getPullRequestsForReview` function
* Updated `askUserToPickPR` function to accept a list of PR objects
* Removed unnecessary code from `reviewPullRequestCmd`
* Added `cancel` option to `askReviewApproval` function
## 2025-08-10
• Removed versioned dist folder
• Update .gitignore to ignore Node and build artifacts, editor/IDE files, and project-specific ignores.
• Added scripts for building cli, server, and dashboard
• Restructure the workspace into 3 modules, cli, dashboard, server
• Improved `askChangelogApproval` to support editing and skipping of changelog entries
## 2025-08-12
* Added support for backing up SCAI folder with timestamped directory.
* Split file processing into logical chunks with logging.
* Improved commit suggestion generation logic.
* Removed unnecessary files and updated index.ts to use handleAgentRun instead.
* Fetch download statistics from NPM API.
## 2025-08-16
• Update preserveCodeModule to compare blocks correctly and handle duplicate blocks
• Normalize line endings and detect comments in preserveCodeModule
## 2025-08-18
• Add interactive delete repository command
• Refactor DeleteIndex command to handle repository deletion correctly
## 2025-08-19
* Improved line classification and merging logic
## 2025-08-19
• Update `gen` command's `comm` subcommand to allow targeting files or folders
## 2025-08-20
• Add DB-related commands to db subcommand (check, reset, migrate)
• Update table view limits for files and functions in dbcheck.ts
• Improved resetDatabase command with confirmation prompt before deleting database
## 2025-08-23
* Improved CLI configuration settings with context-aware actions
* Improved logging and added active repo change detection
## 2025-08-24
• Improved CLI review command with AI-generated suggestions and enhanced user interface.
## 2025-08-26
• Fixed bug where entire block was returned as a single line for multi-line comments
• Add multi-line comment handling with ~90% accuracy
• Update CLI config file to use codellama:13b model and 4096 context length