Skip to content
Merged
Show file tree
Hide file tree
Changes from 77 commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
99e6500
chore: Add plans for server separation of services refactor to enable…
bashandbone Nov 28, 2025
6c8fc4f
chore: update planning docs
bashandbone Nov 28, 2025
e8af406
refactor: moved fastmcp initialization to new 'mcp' package, moved mi…
bashandbone Nov 29, 2025
8a3c6b1
Refactor CodeWeaver application state management
bashandbone Nov 30, 2025
e7544aa
Initial plan
Copilot Nov 30, 2025
1188a34
Initial analysis of refactor state
Copilot Nov 30, 2025
c69a268
Fix server refactor: add ServerSetup, app_bindings, fix imports and b…
Copilot Nov 30, 2025
878fbd1
Fix lint issues and update exports
Copilot Nov 30, 2025
0344fa2
Merge pull request #169 from knitli/copilot/refactor-mcp-server-creation
bashandbone Nov 30, 2025
e79c43a
refactor(server): Continued server refactoring, splitting server.serv…
bashandbone Nov 30, 2025
03be278
refactor(server): completed background services refactor
bashandbone Dec 1, 2025
515867f
refactor(server) separated lifespan creation and fixed several small …
bashandbone Dec 1, 2025
9ea28da
fix(imports): fixed several imports affected by refactoring
bashandbone Dec 1, 2025
9e918bd
refactor(server): broke up http mcp server run command in main.py for…
bashandbone Dec 1, 2025
b7c075a
chore: move schema to v1 folder, add guide for remaining refactor
bashandbone Dec 1, 2025
bf31708
refactor(cli): refactored new start command to use updated context ma…
bashandbone Dec 1, 2025
970c6c4
fix: correct 'data_header' to 'date_header' in Uvicorn server setting…
bashandbone Dec 1, 2025
5d3e317
chore: refactoring cleanup
bashandbone Dec 1, 2025
d7a4870
chore: update reuse compliance
bashandbone Dec 1, 2025
753608f
Initial plan
Copilot Dec 1, 2025
2ed5591
Fix IndexingStats computed_field to methods and add telemetry to fixture
Copilot Dec 1, 2025
f01dad4
Fix telemetry test to check for actual query fields
Copilot Dec 1, 2025
a0b3b0e
Merge pull request #170 from knitli/copilot/fix-broken-tests-and-cove…
bashandbone Dec 1, 2025
b147a3c
feat: update versioning to PEP 440 compliance and enhance tests for v…
bashandbone Dec 1, 2025
75bbfbd
fix: add eol in .roo/mcp.json
bashandbone Dec 1, 2025
8cbce08
Enhance AWSProviderSettings documentation and improve JSON schema han…
bashandbone Dec 1, 2025
868b37b
chore: update settings schema
bashandbone Dec 1, 2025
0b9a974
Potential fix for pull request finding 'Redundant assignment'
bashandbone Dec 1, 2025
f54d1ae
merge in main README changes
bashandbone Nov 28, 2025
eaa04b2
Initial plan
Copilot Dec 1, 2025
7dc725b
Add REUSE.toml for proper third-party licensing, remove incorrect .li…
Copilot Dec 1, 2025
1319b68
Revert unintentional changes to _version.py
Copilot Dec 1, 2025
d037b43
Fix missing trailing newline in .claude/mcp.json
Copilot Dec 1, 2025
9d9b4a4
chore: format reuse.toml
bashandbone Dec 1, 2025
d6a8f5d
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
bc5d978
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
a3b3d83
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
eeea5af
fix: workflow syntax casuing copilot failures
bashandbone Dec 1, 2025
abaa4c2
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
9da52a6
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
18666b9
feat: add cloud agent-specific mise config and remove caching from gl…
bashandbone Dec 1, 2025
0695356
Update mise.toml
bashandbone Dec 1, 2025
8ca5434
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
4fcfe83
Update src/codeweaver/cli/commands/start.py
bashandbone Dec 1, 2025
fff80af
Update src/codeweaver/server/health/health_service.py
bashandbone Dec 1, 2025
9a5246c
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
7b784d6
Update src/codeweaver/server/management.py
bashandbone Dec 1, 2025
f8534fc
Update src/codeweaver/mcp/server.py
bashandbone Dec 1, 2025
e28466f
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
9e2785a
Update src/codeweaver/server/background_services.py
bashandbone Dec 1, 2025
b06474e
Update src/codeweaver/mcp/server.py
bashandbone Dec 1, 2025
066eaa0
Update version and refactor middleware context usage across multiple …
bashandbone Dec 1, 2025
ef5d4ea
Update src/codeweaver/server/server.py
bashandbone Dec 1, 2025
ff7bb72
Update src/codeweaver/common/statistics.py
bashandbone Dec 1, 2025
7df9249
Update src/codeweaver/mcp/server.py
bashandbone Dec 1, 2025
9bc8b37
Update mise.toml
bashandbone Dec 1, 2025
e9d4ca9
Initial plan
Copilot Dec 1, 2025
41f8430
chore: minor style edit to README.md
bashandbone Nov 28, 2025
0f4bb06
fix: update claude.yml to allow more turns
bashandbone Dec 1, 2025
a14b0b5
fix: correct method call for sparse vector preparation
github-actions[bot] Dec 1, 2025
0c811f4
Initial plan
Copilot Dec 1, 2025
b4d5a90
Fix Qdrant health check endpoint and improve wait logic in CI
Copilot Dec 1, 2025
5c43294
Address code review: use TCP healthcheck for Qdrant, extract URLs to …
Copilot Dec 1, 2025
6d3c9f6
Update docker-compose.yml
bashandbone Dec 1, 2025
b5e2fe4
Initial plan
Copilot Dec 1, 2025
6289eb2
Remove auto-generated _version.py from git tracking (in .gitignore)
Copilot Dec 1, 2025
392a5fc
Initial plan
Copilot Nov 30, 2025
b90eac2
Initial analysis of refactor state
Copilot Nov 30, 2025
ffc9e80
Initial plan
Copilot Dec 1, 2025
f568767
Initial plan
Copilot Dec 1, 2025
4675d41
fix: fix resource use issues with copilot setup
bashandbone Dec 1, 2025
aae77b1
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
f919ae0
fix: increased timeouts and handling in docker.yml to correct continu…
bashandbone Dec 1, 2025
1a271c8
remove _version
bashandbone Dec 1, 2025
a68b392
fix: eol
bashandbone Dec 1, 2025
56464ca
fix: eol
bashandbone Dec 1, 2025
c84f64a
Potential fix for pull request finding 'Module is imported more than …
bashandbone Dec 1, 2025
d4b1377
Update src/codeweaver/server/management.py
bashandbone Dec 1, 2025
c1a9adc
Merge branch 'main' into feat-background-services
bashandbone Dec 1, 2025
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
7 changes: 5 additions & 2 deletions .github/actions/setup-python-env/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,9 @@ runs:
if: inputs.skip-mise-setup != 'true'
shell: bash
run: |
export PATH="$HOME/.local/bin:$PATH" -E ci
export PATH="$HOME/.local/bin:$PATH"
export MISE_ENV="ci"
export MISE_YES=1
mise trust --all
mise run setup > /dev/null 2>&1 || true
# Guard heavy setup with a timeout to limit runner memory and time usage in CI
timeout 10m mise run setup > /dev/null 2>&1 || true
14 changes: 7 additions & 7 deletions .github/workflows/claude.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ jobs:
VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }}
CODEWEAVER_PROJECT_PATH: ${{ github.workspace }}
MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MISE_ENV: "ci"
MISE_ENV: "cloudagent"
steps:
- name: Checkout Repository
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
Expand All @@ -55,7 +55,7 @@ jobs:
base_branch: main
use_commit_signing: true
claude_args: |
--max-turns 30
--max-turns 100
--allowedTools Bash,Batch,Glob,Grep,ToDoWrite,View,mcp__context7__get-library-docs,mcp__context7__resolve-library-id,mcp__sequential-thinking__sequentialthinking,mcp__github_ci__get_workflow_run_details,mcp__codeweaver__find_code
--mcp-config .mcp.json
prompt: |
Expand All @@ -82,8 +82,8 @@ jobs:
use_commit_signing: true
base_branch: main
claude_args: |
--max-turns 30
--allowedTools Bash,Batch,Glob,Grep,ToDoWrite,View,mcp__context7__get-library-docs,mcp__context7__resolve-library-id,mcp__sequential-thinking__sequentialthinking,mcp__github_ci__get_workflow_run_details,mcp__codeweaver__find_code
--max-turns 100
--allowedTools Bash,Batch,Glob,Grep,ToDoWrite,View,mcp__context7__get-library-docs,mcp__context7__resolve-library-id,mcp__sequential-thinking__sequentialthinking,mcp__github_ci__get_workflow_run_details,mcp__codeweaver__find_code,WebFetch,WebSearch
--mcp-config .mcp.json
prompt: |
REPO: ${{ github.repository }}
Expand All @@ -108,7 +108,7 @@ jobs:
use_commit_signing: true
base_branch: main
claude_args: |
--max-turns 30
--max-turns 50
--allowedTools Bash,Batch,Glob,Grep,ToDoWrite,View,mcp__context7__get-library-docs,mcp__context7__resolve-library-id,mcp__sequential-thinking__sequentialthinking,mcp__github_ci__get_workflow_run_details,mcp__codeweaver__find_code
--mcp-config .mcp.json
prompt: |
Expand Down Expand Up @@ -136,8 +136,8 @@ jobs:
use_commit_signing: true
base_branch: main
claude_args: |
--max-turns 30
--allowedTools Bash,Batch,Glob,Grep,ToDoWrite,View,mcp__context7__get-library-docs,mcp__context7__resolve-library-id,mcp__sequential-thinking__sequentialthinking,mcp__github_ci__get_workflow_run_details,mcp__codeweaver__find_code
--max-turns 200
--allowedTools Bash,Batch,Glob,Grep,ToDoWrite,View,mcp__context7__get-library-docs,mcp__context7__resolve-library-id,mcp__sequential-thinking__sequentialthinking,mcp__github_ci__get_workflow_run_details,mcp__codeweaver__find_code,WebFetch,WebSearch
--mcp-config .mcp.json
prompt: |
REPO: ${{ github.repository }}
Expand Down
24 changes: 15 additions & 9 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,16 @@ jobs:
VOYAGE_API_KEY: ${{ secrets.VOYAGE_API_KEY }}
CODEWEAVER_PROJECT_PATH: ${{ github.workspace }}
MISE_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
MISE_ENV: "ci"
MISE_ENV: "cloudagent"
MISE_YES: 1
runs-on: ubuntu-latest
# Add an overall job timeout so we don't let runaway installs exhaust the runner indefinitely
timeout-minutes: 50
# Set the permissions to the lowest permissions possible needed for your steps.
# Copilot will be given its own token for its operations.
permissions:
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission. If you don't clone the repository in your[...]
# If you want to clone the repository as part of your setup steps, for example to install dependencies, you'll need the `contents: read` permission.
contents: write
# You can define any steps you want, and they will run before the agent starts.
# If you do not check out your code, Copilot will do this for you.
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
Expand All @@ -45,7 +45,7 @@ jobs:
~/.local/share/mise
~/.local/bin/mise
~/.local/share/mise/shims
~/. cache/mise
~/.cache/mise
~/.local/bin
key: mise-copilot-${{ runner.os }}-${{ hashFiles('mise.ci.toml') }}
restore-keys: |
Expand All @@ -60,7 +60,7 @@ jobs:
key: uv-copilot-${{ runner.os }}-${{ hashFiles('uv.lock') }}
restore-keys: |
uv-copilot-${{ runner.os }}-
uv-${{ runner. os }}-
uv-${{ runner.os }}-
- uses: jdx/mise-action@fcec31d82eb5c88cd7eb3fe3c270cb093aeeef18
with:
# Disable automatic env export to avoid hanging on enter hook in CI
Expand All @@ -76,15 +76,21 @@ jobs:
cd codeweaver
fi
echo "Mise setup in directory: $(pwd)"
MISE="$(which mise)"
MISE="$(which mise || true)"
if [ -z "$MISE" ]; then
echo "mise not found on PATH; skipping install step"
exit 0
fi
export MISE
MISE_DIR="$(dirname "$MISE")"
export MISE_DIR
# Trust the config globally
"$MISE" --quiet -y trust
# Also set the trusted config paths environment variable for subprocesses
echo "MISE_TRUSTED_CONFIG_PATHS=$PWD/mise.toml:$PWD/mise.ci.toml" >> "$GITHUB_ENV"
"$MISE" --quiet -y install 2>&1 || echo "Warning: Some tools failed to install due to network limitations in CI environment"
echo "MISE_TRUSTED_CONFIG_PATHS=$PWD/mise.toml:$PWD/mise.cloudagent.toml" >> "$GITHUB_ENV"
# Guard the install with a timeout to prevent OOM / runaway installs in CI
# If the install fails or timeouts, we continue with a warning so Copilot can still run.
timeout 10m "$MISE" --quiet -y install 2>&1 || echo "Warning: Some tools failed to install due to network limitations or timeout in CI environment"
env:
MISE_DIR: ${{ runner.temp }}/mise
- name: Configure Mise and Activate Environment
Expand Down
20 changes: 14 additions & 6 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ on:
workflow_dispatch:
inputs:
update_description_only:
description: 'Only update Docker Hub description (no build)'
description: "Only update Docker Hub description (no build)"
description: "Only update Docker Hub description (no build)"
required: false
type: boolean
default: false
Expand Down Expand Up @@ -168,14 +169,15 @@ jobs:
echo "Error: .git directory not found!"
exit 1
fi
# .github/workflows/docker.yml
- name: Create test environment file
run: |
cat > .env << EOF
PROJECT_PATH=.
CODEWEAVER_PORT=9328
QDRANT_PORT=6333
QDRANT_GRPC_PORT=6334
VOYAGE_API_KEY=test-key-for-compose-test
CODEWEAVER_PROFILE=quickstart # ← Add this
COLLECTION_NAME=codeweaver-test
ENABLE_TELEMETRY=false
LOG_LEVEL=INFO
Expand All @@ -184,23 +186,29 @@ jobs:
run: |
docker compose build
docker compose up -d
# .github/workflows/docker.yml
- name: Wait for services to be healthy
run: |
echo "Waiting for Qdrant to be ready..."
timeout 60 bash -c 'until curl -sf http://localhost:6333/health; do sleep 2; done'

echo "Waiting for CodeWeaver to be ready..."
# CodeWeaver may take longer due to initial setup
timeout 120 bash -c 'until curl -sf http://localhost:9328/health/ 2>/dev/null; do sleep 5; done' || true
# Increase timeout to 5 minutes for initial model downloads
timeout 300 bash -c 'until curl -sf http://localhost:9328/health/ 2>/dev/null; do echo "Waiting for CodeWeaver (may download models on first run)..."; sleep 10; done'
- name: Test Qdrant accessibility
env:
QDRANT_HEALTH_URL: http://localhost:6333/healthz
run: |
echo "Testing Qdrant health endpoint..."
curl -f http://localhost:6333/health || (docker compose logs qdrant && exit 1)
curl -sf "$QDRANT_HEALTH_URL" || (echo "Qdrant health check failed" && docker compose logs qdrant && exit 1)
echo "Qdrant health check passed!"
- name: Test CodeWeaver accessibility
env:
CODEWEAVER_HEALTH_URL: http://localhost:9328/health/
run: |
echo "Testing CodeWeaver health endpoint..."
curl -f http://localhost:9328/health/ || (docker compose logs codeweaver && exit 1)
continue-on-error: true # May fail without valid API key, but we test connectivity
curl -f http://localhost:9328/health/ || (docker compose logs codeweaver && exit 1)
- name: Check logs for errors
if: always()
run: |
Expand Down
Loading
Loading