Skip to content

release: Devran AI Kit v4.2.1#8

Merged
emredursun merged 6 commits intomainfrom
dev
Mar 22, 2026
Merged

release: Devran AI Kit v4.2.1#8
emredursun merged 6 commits intomainfrom
dev

Conversation

@emredursun
Copy link
Copy Markdown
Contributor

Summary

Patch release v4.2.1 with DX improvements and documentation fixes.

Changes

  • Git untrack hintkit init now detects when .agent/ is gitignored but still tracked, and prints git rm -r --cached .agent/ command
  • Gemini fix — moved require('child_process') outside try block
  • Stale test count — fixed 382 → 388 across README badges and docs
  • What's New — updated to include v4.2.0 gitignore-by-default changes
  • Version sync — 4.2.1 across package.json, manifest, README, docs, CheatSheet

Test plan

  • 388/388 tests passing
  • 4/4 CI checks passing
  • kit verify — 127 passed, 0 failed

Awaiting your approval to merge.

🤖 Generated with Claude Code

emredursun and others added 2 commits March 22, 2026 23:45
* fix: add git untrack hint when .agent/ is gitignored but still tracked

When kit init detects that .agent/ was added to .gitignore but is
still tracked by git (from a previous commit), it now prints:

  ⚠️  .agent/ is gitignored but still tracked by git.
  Run this to untrack (keeps local files):
  git rm -r --cached .agent/

This prevents users from having to figure out the git rm --cached
command themselves. The kit does NOT run the command automatically
because git rm is a destructive git operation that should require
explicit developer consent.

* fix: v4.2.1 — untrack hint, stale counts, version sync

- Move require('child_process') outside try block (gemini M-1)
- Fix stale test count: 382 → 388 across README badges and text
- Update "What's New" to include v4.2.0 changes (gitignore-by-default)
- Add v4.2.0 section to docs/index.md landing page
- Version bump to 4.2.1
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request introduces Devran AI Kit v4.2.1, a patch release focused on improving developer experience and ensuring documentation accuracy. Key updates include a new kit init feature that guides users on untracking gitignored files, a correction to the reported test suite count, and comprehensive version synchronization across the project. The changes aim to provide clearer guidance and up-to-date information for users.

Highlights

  • Git Untrack Hint: The kit init command now detects if the .agent/ directory is gitignored but still tracked, providing a helpful command (git rm -r --cached .agent/) to untrack it.
  • Test Count Update: The reported number of passing tests has been updated from 382 to 388 across documentation and README badges.
  • Version Synchronization: The Devran AI Kit version has been consistently updated to v4.2.1 across all relevant configuration files and documentation.
  • Documentation Enhancements: The 'What's New' sections in the documentation have been updated to accurately reflect features introduced in v4.2.0, including the gitignore-by-default behavior and the new untrack hint.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a patch release for v4.2.1, including DX improvements and documentation updates. The main functional change is in kit init, which now detects if the .agent/ directory is git-ignored but still tracked, and provides a hint to the user. The rest of the changes are version bumps and documentation updates across various files to reflect the new version and features. My review identifies one area for improvement in the new kit init logic for better code quality and maintainability.

bin/kit.js Outdated
log(' Run this to untrack (keeps local files):', 'yellow');
log(` ${colors.cyan}git rm -r --cached .agent/${colors.reset}`, 'reset');
}
} catch {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While syntactically valid since ES2019, using a parameterless catch block can hide unexpected errors and make debugging more difficult. It's a good practice to always capture the error object, even if you intend to ignore it. This allows for future enhancements, such as conditional logging for debugging, without changing the current behavior of silently ignoring the error.

Suggested change
} catch {
} catch (err) {

@emredursun
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a patch release for v4.2.1. It includes version bumps across several documentation and configuration files, updates the test count, and adds a helpful hint in the kit init command to untrack the .agent/ directory if it's gitignored but still tracked. The changes are consistent with the release summary. I've added one medium-severity comment in bin/kit.js regarding the placement of a require statement inside a try...catch block for improved error handling robustness.

bin/kit.js Outdated
log(' ✓ .agent/ already in .gitignore', 'green');
}
// Detect if .agent/ is still git-tracked despite being gitignored
const { execSync } = require('child_process');
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

While it's good that this require is outside the try...catch block for execSync, it's still inside a larger try...catch block (lines 334-357) that handles errors for .gitignore operations. If require('child_process') were to fail, it would be caught and reported as a .gitignore update failure, which is misleading. It would be more robust to move this require statement outside of any try...catch blocks, for example, to the top of the initCommand function or at least before the try on line 334.

@emredursun
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request is a patch release for v4.2.1, focusing on developer experience improvements and documentation fixes. The changes primarily consist of version bumps across various files, updates to test counts, and enhancements to the "What's New" section in the documentation. A notable improvement in bin/kit.js is the addition of a helpful hint for users when .agent/ is gitignored but still tracked. I have one suggestion to slightly refactor the placement of require statements in bin/kit.js to better align with the project's existing lazy-loading pattern, which could offer a minor performance benefit and improve code consistency.

bin/kit.js Outdated
Comment on lines 332 to 334
const { addToGitignore } = require('../lib/io');
const { execSync } = require('child_process');
if (!options.shared) {
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

For better performance and to maintain consistency with the lazy-loading pattern used elsewhere in this file, it's a good practice to move these require statements inside the if (!options.shared) block, as they are only used within that scope. This avoids loading these modules when they are not needed (i.e., when --shared is used).

Suggested change
const { addToGitignore } = require('../lib/io');
const { execSync } = require('child_process');
if (!options.shared) {
if (!options.shared) {
const { addToGitignore } = require('../lib/io');
const { execSync } = require('child_process');

@emredursun
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a patch release for v4.2.1, which includes several developer experience improvements, documentation fixes, and version bumps across the project. The changes are well-implemented, particularly the new hint for untracking the .agent/ directory. I have identified a minor inconsistency in the release notes where a new feature from this PR is attributed to the previous v4.2.0 release. I've provided specific suggestions to address this for better clarity.

Comment on lines +100 to +107
### v4.2.0

| Change | Details |
|---|---|
| Gitignore by default | `kit init` adds `.agent/` to `.gitignore` — personal dev tooling |
| `--shared` flag | Opt-in to commit `.agent/` for team sharing |
| Untrack hint | Detects tracked `.agent/` and prints `git rm --cached` command |
| 388 tests | 37 test suites across unit, structural, and security |
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The 'What's New' section is a great addition. However, the 'Untrack hint' feature is being introduced in this pull request for v4.2.1, but it's currently listed under the v4.2.0 release notes. This could be confusing for users tracking new features.

To improve clarity, I suggest creating a new section for v4.2.1 and moving the 'Untrack hint' there. This will accurately reflect the product's release history.

Suggested change
### v4.2.0
| Change | Details |
|---|---|
| Gitignore by default | `kit init` adds `.agent/` to `.gitignore` — personal dev tooling |
| `--shared` flag | Opt-in to commit `.agent/` for team sharing |
| Untrack hint | Detects tracked `.agent/` and prints `git rm --cached` command |
| 388 tests | 37 test suites across unit, structural, and security |
### v4.2.1
| Change | Details |
|---|---|
| Untrack hint | Detects tracked `.agent/` and prints `git rm --cached` command |
| DX Improvements | Minor fixes and documentation updates for v4.2.0 features |
### v4.2.0
| Change | Details |
|---|---|
| Gitignore by default | `kit init` adds `.agent/` to `.gitignore` — personal dev tooling |
| `--shared` flag | Opt-in to commit `.agent/` for team sharing |
| 388 tests | 37 test suites across unit, structural, and security |

Comment on lines +91 to +98
## What's New in v4.2.0

- **Gitignore by default** — `kit init` adds `.agent/` to `.gitignore` automatically. Personal dev tooling stays local.
- **`--shared` flag** — Opt-in for teams that want to commit `.agent/` to the repo
- **Untrack hint** — Detects tracked `.agent/` and prints the `git rm --cached` command
- **Cross-IDE Support** — Native config generation for Claude Code, Antigravity, Cursor, OpenCode, and Codex
- **3 Language Reviewers** — TypeScript, Python, Go specialized code review agents
- **388 tests** — 37 test suites across unit, structural, and security
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Similar to my comment on README.md, the 'Untrack hint' feature is being introduced in this v4.2.1 release, but it's listed here under the v4.2.0 release notes. To maintain accurate release documentation, it would be best to place this feature's announcement under a new v4.2.1 heading.

Suggested change
## What's New in v4.2.0
- **Gitignore by default**`kit init` adds `.agent/` to `.gitignore` automatically. Personal dev tooling stays local.
- **`--shared` flag** — Opt-in for teams that want to commit `.agent/` to the repo
- **Untrack hint** — Detects tracked `.agent/` and prints the `git rm --cached` command
- **Cross-IDE Support** — Native config generation for Claude Code, Antigravity, Cursor, OpenCode, and Codex
- **3 Language Reviewers** — TypeScript, Python, Go specialized code review agents
- **388 tests** — 37 test suites across unit, structural, and security
## What's New in v4.2.1
- **Untrack hint** — Detects tracked `.agent/` and prints the `git rm --cached` command
- **Documentation Fixes** — Updated release notes for v4.2.0 features
## What's New in v4.2.0
- **Gitignore by default**`kit init` adds `.agent/` to `.gitignore` automatically. Personal dev tooling stays local.
- **`--shared` flag** — Opt-in for teams that want to commit `.agent/` to the repo
- **Cross-IDE Support** — Native config generation for Claude Code, Antigravity, Cursor, OpenCode, and Codex
- **3 Language Reviewers** — TypeScript, Python, Go specialized code review agents
- **388 tests** — 37 test suites across unit, structural, and security

@emredursun emredursun merged commit fa982c1 into main Mar 22, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant