Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
49e7f33
feat: workflow improvements and MCP enhancements
rishitank Jan 2, 2026
494e0c0
fix: use Europe/London timezone in dependabot config
rishitank Jan 2, 2026
f0e1666
feat: implement full MCP spec support
rishitank Jan 2, 2026
49b2d03
feat: add automatic version bumping to release workflow
rishitank Jan 2, 2026
b962a01
feat: add comprehensive tests and logging/setLevel handler
rishitank Jan 2, 2026
5daf33d
feat: add workspace analysis tools with comprehensive tests
rishitank Jan 2, 2026
b1518b5
fix: address all PR review comments
rishitank Jan 2, 2026
662828f
📝 Add docstrings to `feature/workflow-improvements`
coderabbitai[bot] Jan 2, 2026
dc69227
Merge pull request #2 from rishitank/coderabbitai/docstrings/b1518b5
rishitank Jan 2, 2026
46f2d7e
feat: add 4 new workspace/git tools with tests
rishitank Jan 2, 2026
d28e3fc
Merge remote-tracking branch 'origin/feature/workflow-improvements' i…
rishitank Jan 2, 2026
4f001f4
fix: Remove empty lines in doc comments to fix Clippy errors
rishitank Jan 2, 2026
9101c12
docs: Update tool count to 59, add depth limit to discover_files
rishitank Jan 2, 2026
b661366
docs: Add future enhancements from code review comments
rishitank Jan 2, 2026
07e9094
security: Fix path traversal vulnerability in DependencyGraphTool
rishitank Jan 2, 2026
923e687
security: Fix path traversal in complete_file_path
rishitank Jan 2, 2026
7e65250
feat: Address known limitations from code review
rishitank Jan 2, 2026
da360e7
fix: Address remaining CodeRabbit nitpick comments
rishitank Jan 2, 2026
51ebf78
feat: Add AI-powered changelog generation to release workflow
rishitank Jan 2, 2026
3c96591
feat: Fix enhance_prompt and add bundle_prompt for proper context inj…
rishitank Jan 2, 2026
f653fdc
feat: Add comprehensive multi-language support for symbol detection
rishitank Jan 2, 2026
782dd75
feat: Add integration tests and TypeScript/Rust gap analysis
rishitank Jan 2, 2026
3f76bc1
docs: Update documentation with new tools and testing guide
rishitank Jan 3, 2026
39eeb6e
fix: Address remaining CodeRabbit review comments
rishitank Jan 3, 2026
2aa8e37
test: Fix integration tests to accept valid JSON-RPC responses
rishitank Jan 3, 2026
146c597
feat: Add m1rl0k/Context-Engine compatible tools
rishitank Jan 3, 2026
62889a3
docs: Update documentation with new m1rl0k-compatible tools
rishitank Jan 3, 2026
3ce0a00
fix: address CodeRabbit review comments
rishitank Jan 3, 2026
3805e76
docs: fix documentation discrepancies flagged by CodeRabbit
rishitank Jan 3, 2026
39d2f9c
docs: fix README tool count from 73 to 69
rishitank Jan 4, 2026
f67a6c2
feat: implement Agent Skills architecture for progressive disclosure
rishitank Jan 4, 2026
98df399
feat: add 4 more skills and expose skills as MCP prompts
rishitank Jan 4, 2026
48351aa
test: add comprehensive unit and integration tests for skills
rishitank Jan 4, 2026
dea0d2c
add augment commands
rishitank Jan 4, 2026
aa64cef
fix: address code review feedback
rishitank Jan 4, 2026
1cde7d5
fix: address remaining code review nitpicks
rishitank Jan 4, 2026
776dbd8
fix: use assert! instead of assert_eq! with literal bool
rishitank Jan 4, 2026
e38ce36
fix: wire include_related flag in ContextSearchTool
rishitank Jan 4, 2026
a64e759
fix: propagate regex compilation errors in search_with_pattern
rishitank Jan 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
67 changes: 67 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
version: 2
updates:
# Rust dependencies (Cargo)
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Europe/London"
open-pull-requests-limit: 10
commit-message:
prefix: "deps"
labels:
- "dependencies"
- "rust"
reviewers:
- "rishitank"
groups:
# Group minor/patch updates to reduce PR noise
rust-minor-updates:
patterns:
- "*"
update-types:
- "minor"
- "patch"
# Keep major updates separate for careful review
rust-major-updates:
patterns:
- "*"
update-types:
- "major"

# GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Europe/London"
open-pull-requests-limit: 5
commit-message:
prefix: "ci"
labels:
- "dependencies"
- "github-actions"
reviewers:
- "rishitank"

# Docker (if Dockerfile exists)
- package-ecosystem: "docker"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Europe/London"
open-pull-requests-limit: 5
commit-message:
prefix: "docker"
labels:
- "dependencies"
- "docker"
reviewers:
- "rishitank"

189 changes: 185 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,162 @@
name: Release

on:
# Manual trigger with version input
workflow_dispatch:
inputs:
version:
description: 'Release version (e.g., 2.0.2). Leave empty to auto-bump patch version.'
required: false
type: string
bump_type:
description: 'Version bump type (only used if version is empty)'
required: false
type: choice
options:
- patch
- minor
- major
default: patch
prerelease:
description: 'Is this a pre-release?'
required: false
type: boolean
default: false
# Triggered by tag push (manual releases)
push:
tags:
- 'v*'
# Triggered after successful CI on main
workflow_run:
workflows: ["CI"]
types:
- completed
branches:
- main

permissions:
contents: write

jobs:
# Check if release should proceed
check:
runs-on: ubuntu-latest
outputs:
should_release: ${{ steps.check.outputs.should_release }}
version: ${{ steps.check.outputs.version }}
needs_bump: ${{ steps.check.outputs.needs_bump }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Check release conditions
id: check
run: |
# Get current version from Cargo.toml
CURRENT_VERSION=$(grep '^version = ' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
echo "Current version: $CURRENT_VERSION"

# For workflow_dispatch
if [ "${{ github.event_name }}" == "workflow_dispatch" ]; then
if [ -n "${{ inputs.version }}" ]; then
# Explicit version provided
echo "should_release=true" >> $GITHUB_OUTPUT
echo "version=${{ inputs.version }}" >> $GITHUB_OUTPUT
if [ "${{ inputs.version }}" != "$CURRENT_VERSION" ]; then
echo "needs_bump=true" >> $GITHUB_OUTPUT
else
echo "needs_bump=false" >> $GITHUB_OUTPUT
fi
else
# Auto-bump version based on bump_type
IFS='.' read -r MAJOR MINOR PATCH <<< "$CURRENT_VERSION"
case "${{ inputs.bump_type }}" in
major)
NEW_VERSION="$((MAJOR + 1)).0.0"
;;
minor)
NEW_VERSION="${MAJOR}.$((MINOR + 1)).0"
;;
patch|*)
NEW_VERSION="${MAJOR}.${MINOR}.$((PATCH + 1))"
;;
esac
echo "Auto-bumped to: $NEW_VERSION"
echo "should_release=true" >> $GITHUB_OUTPUT
echo "version=$NEW_VERSION" >> $GITHUB_OUTPUT
echo "needs_bump=true" >> $GITHUB_OUTPUT
fi
exit 0
fi

# For tag push, always release
if [ "${{ github.event_name }}" == "push" ] && [[ "${{ github.ref }}" == refs/tags/v* ]]; then
echo "should_release=true" >> $GITHUB_OUTPUT
echo "version=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
echo "needs_bump=false" >> $GITHUB_OUTPUT
exit 0
fi

# For workflow_run, check if CI succeeded and version changed
if [ "${{ github.event_name }}" == "workflow_run" ]; then
if [ "${{ github.event.workflow_run.conclusion }}" != "success" ]; then
echo "CI did not succeed, skipping release"
echo "should_release=false" >> $GITHUB_OUTPUT
exit 0
fi

# Check if this version tag already exists
if git tag -l "v$CURRENT_VERSION" | grep -q .; then
echo "Tag v$CURRENT_VERSION already exists, skipping release"
echo "should_release=false" >> $GITHUB_OUTPUT
else
echo "New version v$CURRENT_VERSION detected, will release"
echo "should_release=true" >> $GITHUB_OUTPUT
echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
echo "needs_bump=false" >> $GITHUB_OUTPUT
fi
exit 0
fi

echo "Unknown trigger, skipping release"
echo "should_release=false" >> $GITHUB_OUTPUT

# Bump version in Cargo.toml if needed
bump-version:
needs: check
if: needs.check.outputs.should_release == 'true' && needs.check.outputs.needs_bump == 'true'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}

- name: Update Cargo.toml version
run: |
VERSION="${{ needs.check.outputs.version }}"
echo "Updating Cargo.toml to version $VERSION"
sed -i "s/^version = \".*\"/version = \"$VERSION\"/" Cargo.toml
cat Cargo.toml | head -5

- name: Commit version bump
run: |
VERSION="${{ needs.check.outputs.version }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add Cargo.toml
git commit -m "chore: bump version to $VERSION [skip ci]"
git push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

build:
needs: [check, bump-version]
# Run if should_release is true, and either no bump needed OR bump-version succeeded
if: |
always() &&
needs.check.outputs.should_release == 'true' &&
(needs.check.outputs.needs_bump != 'true' || needs.bump-version.result == 'success')
strategy:
matrix:
include:
Expand All @@ -26,6 +173,13 @@ jobs:
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
# Fetch latest to get version bump commit
fetch-depth: 0

- name: Pull latest changes
run: git pull origin ${{ github.ref_name }} || true

- name: Install Rust
uses: dtolnay/rust-toolchain@stable
Expand All @@ -46,24 +200,51 @@ jobs:
path: ${{ matrix.artifact }}

release:
needs: build
needs: [check, bump-version, build]
if: |
always() &&
needs.check.outputs.should_release == 'true' &&
needs.build.result == 'success'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Pull latest changes
run: git pull origin ${{ github.ref_name }} || true

- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts

- name: Create and push tag
if: github.event_name == 'workflow_run' || github.event_name == 'workflow_dispatch'
run: |
VERSION="${{ needs.check.outputs.version }}"
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

# Check if tag already exists
if git tag -l "v$VERSION" | grep -q .; then
echo "Tag v$VERSION already exists, skipping"
else
git tag -a "v$VERSION" -m "Release v$VERSION"
git push origin "v$VERSION"
fi
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Create Release
uses: softprops/action-gh-release@v1
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ needs.check.outputs.version }}
name: v${{ needs.check.outputs.version }}
files: |
artifacts/**/*
generate_release_notes: true
draft: false
prerelease: false
prerelease: ${{ github.event_name == 'workflow_dispatch' && inputs.prerelease || false }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Loading
Loading