Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
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
3 changes: 0 additions & 3 deletions .continue/agents/breaking-change-detector.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,17 @@ Analyze this pull request for breaking changes that may leave stale references e
## What Constitutes a Breaking Change

1. **CLI command renames or removals** - If a command registered in `extensions/cli/src/commands/` is renamed, removed, or has its flags changed, check that:

- Documentation in `docs/` reflects the new name
- Agent definitions in `.continue/agents/` don't reference the old command
- Skills in `skills/` are updated
- README and CONTRIBUTING.md are current
- GitHub Actions workflows don't invoke the old command

2. **Public API changes** - If exported functions, interfaces, or types in `core/` or `packages/` are renamed or have signature changes, check that:

- All callers in `gui/`, `extensions/`, and `binary/` are updated
- Type definitions in `packages/config-types/` are consistent

3. **Configuration schema changes** - If config file formats (YAML or JSON) are modified, check that:

- Validation logic handles both old and new formats (or migration is provided)
- Documentation examples use the new format
- Default configs are updated
Expand Down
2 changes: 0 additions & 2 deletions .continue/agents/dependency-security-review.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,12 @@ Review this pull request for changes to dependencies. A significant portion of P
### For Any `package.json` Changes

1. **New dependencies** - For each newly added dependency:

- Is it well-maintained (not abandoned)?
- Does it have known vulnerabilities?
- Is it the right choice, or does an existing dependency already cover this use case?
- Is the version pinned appropriately (exact vs range)?

2. **Major version bumps** - For major version upgrades:

- Are there breaking changes that affect our usage?
- Have the callers been updated to match the new API?

Expand Down
1 change: 0 additions & 1 deletion .continue/agents/error-message-quality.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ Review this pull request for error handling quality. The most common user-facing
1. **Catch blocks that discard error details** - Look for `catch` blocks that re-throw or return a generic message without including the original error's message, status code, or context.

2. **HTTP status codes without user-friendly mapping** - When making API calls (especially to LLM providers), ensure that common HTTP errors produce distinct, actionable messages:

- `401` → "Invalid API key" (not "Unknown error")
- `402` → "Insufficient funds or quota exceeded"
- `403` → "Access denied - check your API key permissions"
Expand Down
3 changes: 0 additions & 3 deletions .continue/agents/input-validation.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,17 @@ Review this pull request for input validation quality. The most common user issu
## What to Check

1. **API keys and secrets** - Any code that accepts API keys, tokens, or credentials should:

- Reject obviously invalid values (empty strings, whitespace-only, placeholder text like "your-api-key-here")
- Validate format where possible (e.g., OpenAI keys start with `sk-`, Anthropic keys start with `sk-ant-`)
- Provide a clear error message before making a network request with a bad key

2. **Configuration values** - New or modified config parsing should:

- Validate required fields are present and non-empty
- Validate types (e.g., numbers are actually numbers, URLs are valid URLs)
- Provide clear error messages that name the specific field and expected format
- Not crash the entire config loading process for a single invalid value

3. **User text inputs** - New or modified UI inputs should:

- Handle empty/whitespace-only submissions gracefully
- Sanitize inputs that will be used in file paths, URLs, or shell commands
- Not allow submission of invalid data that will fail silently later
Expand Down
3 changes: 0 additions & 3 deletions .continue/agents/test-coverage.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,16 @@ Review this pull request to determine if new functionality has adequate test cov
## When Tests Are Expected

1. **New exported functions or classes** - Any new public function, class, or module that is exported and used by other parts of the codebase should have at least basic unit tests covering:

- The happy path (expected inputs produce expected outputs)
- Edge cases (empty inputs, null/undefined, boundary values)
- Error cases (invalid inputs throw or return appropriate errors)

2. **New CLI commands or subcommands** - Should have:

- Smoke tests verifying the command registers and runs
- Tests for flag parsing and validation
- Tests for expected output format

3. **Bug fixes** - If a PR fixes a bug, there should be a regression test that:

- Reproduces the original bug condition
- Verifies the fix resolves it

Expand Down
36 changes: 18 additions & 18 deletions .github/actions/build-vscode-extension/action.yml
Original file line number Diff line number Diff line change
@@ -1,49 +1,49 @@
name: 'Build VS Code Extension'
description: 'Build VS Code extension for a specific platform'
name: "Build VS Code Extension"
description: "Build VS Code extension for a specific platform"
inputs:
platform:
description: 'Target platform (win32, linux, alpine, darwin)'
description: "Target platform (win32, linux, alpine, darwin)"
required: true
arch:
description: 'Target architecture (x64, arm64, armhf)'
description: "Target architecture (x64, arm64, armhf)"
required: true
npm_config_arch:
description: 'npm config arch (x64, arm64, arm)'
description: "npm config arch (x64, arm64, arm)"
required: true
pre-release:
description: 'Whether to build as pre-release'
description: "Whether to build as pre-release"
required: false
default: 'false'
default: "false"
commit-sha:
description: 'Commit SHA for version modification (optional, uses first 7 chars)'
description: "Commit SHA for version modification (optional, uses first 7 chars)"
required: false
default: ''
default: ""
github-token:
description: 'GitHub token for downloading ripgrep'
description: "GitHub token for downloading ripgrep"
required: true
outputs:
target:
description: 'The target string used for the build'
description: "The target string used for the build"
value: ${{ steps.set-target.outputs.target }}
vsix-path:
description: 'Path to the generated VSIX file'
value: 'extensions/vscode/*.vsix'
description: "Path to the generated VSIX file"
value: "extensions/vscode/*.vsix"
build-path:
description: 'Path to the build artifacts'
value: 'extensions/vscode/build'
description: "Path to the build artifacts"
value: "extensions/vscode/build"

runs:
using: 'composite'
using: "composite"
steps:
- uses: actions/setup-node@v4
with:
node-version-file: ".nvmrc"

- name: Set target variable
id: set-target
shell: bash
run: echo "target=${{ inputs.platform }}-${{ inputs.arch }}" >> $GITHUB_OUTPUT

- name: Cache npm
uses: actions/cache@v4
with:
Expand Down
20 changes: 10 additions & 10 deletions .github/actions/setup-component/action.yml
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
name: 'Setup Component'
description: 'Cache and install dependencies for a specific component'
name: "Setup Component"
description: "Cache and install dependencies for a specific component"
inputs:
component:
description: 'Component name (core, gui, vscode, binary)'
description: "Component name (core, gui, vscode, binary)"
required: true
include-packages:
description: 'Whether to include packages cache (default: true)'
description: "Whether to include packages cache (default: true)"
required: false
default: 'true'
default: "true"
include-root:
description: 'Whether to include root cache (default: false)'
required: false
default: 'false'
description: "Whether to include root cache (default: false)"
required: false
default: "false"

runs:
using: 'composite'
using: "composite"
steps:
- uses: actions/setup-node@v4
with:
Expand Down Expand Up @@ -54,4 +54,4 @@ runs:
shell: bash
run: |
cd ${{ inputs.component == 'vscode' && 'extensions/vscode' || inputs.component }}
npm ci
npm ci
8 changes: 4 additions & 4 deletions .github/workflows/continue-agents.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ on:
workflow_call:
inputs:
agents-path:
description: 'Path to agents folder'
description: "Path to agents folder"
required: false
default: '.continue/agents'
default: ".continue/agents"
type: string
secrets:
ANTHROPIC_API_KEY:
description: 'Anthropic API key for Claude'
description: "Anthropic API key for Claude"
required: true

permissions:
Expand Down Expand Up @@ -60,7 +60,7 @@ jobs:
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
node-version: "20"

- name: Install Continue CLI
run: npm i -g @continuedev/cli
Expand Down
24 changes: 12 additions & 12 deletions .github/workflows/label-merged-prs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,11 @@ jobs:
runs-on: ubuntu-latest
permissions:
pull-requests: write

steps:
- name: Checkout repository
uses: actions/checkout@v6

- name: Check if author is in tier list
id: check-author
run: |
Expand All @@ -29,39 +29,39 @@ jobs:
"RomneyDa"
"Patrick-Erichsen"
)

PR_AUTHOR="${{ github.event.pull_request.user.login }}"
SHOULD_LABEL="false"

for user in "${USERS[@]}"; do
if [[ "$PR_AUTHOR" == "$user" ]]; then
SHOULD_LABEL="true"
break
fi
done

echo "should_label=$SHOULD_LABEL" >> $GITHUB_OUTPUT

- name: Determine and apply tier label
if: steps.check-author.outputs.should_label == 'true'
uses: actions/github-script@v8
with:
script: |
const pr = context.payload.pull_request;

// Check if PR already has a tier label
const existingLabels = pr.labels.map(l => l.name);
if (existingLabels.some(label => label.match(/^tier [1-3]$/))) {
console.log('PR already has a tier label, skipping');
return;
}

// Function to extract conventional commit prefix
function getConventionalPrefix(title) {
const match = title.match(/^([a-z]+)(\s|$|:)/);
return match ? match[1] : '';
}

// Function to determine tier
function determineTier(pr) {
const additions = pr.additions;
Expand Down Expand Up @@ -102,9 +102,9 @@ jobs:
// Tier 3: Smaller improvements
return 'tier 3';
}

const tier = determineTier(pr);

if (tier) {
console.log(`Assigning ${tier} label to PR #${pr.number}`);
console.log(`Title: ${pr.title}`);
Expand All @@ -118,4 +118,4 @@ jobs:
});

console.log(`✓ Label '${tier}' added successfully`);
}
}
1 change: 0 additions & 1 deletion .github/workflows/preview.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -150,4 +150,3 @@ jobs:
run: |
cd extensions/vscode
npx ovsx publish --pre-release -p ${{ secrets.VSX_REGISTRY_TOKEN }} --packagePath ../../vsix-artifacts/*.vsix

2 changes: 1 addition & 1 deletion .github/workflows/stable-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ permissions:
contents: write
issues: write
pull-requests: write
id-token: write # Required for OIDC
id-token: write # Required for OIDC

jobs:
stable-release:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/upload-runloop-blueprint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ on:
branches:
- main
paths:
- '.github/workflows/runloop-blueprint-template.json'
- '.github/workflows/runloop-blueprint-staging-template.json'
- ".github/workflows/runloop-blueprint-template.json"
- ".github/workflows/runloop-blueprint-staging-template.json"

permissions:
contents: read
Expand Down
2 changes: 1 addition & 1 deletion .node-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
20.20.1
22.22.3
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v20.20.1
v22.22.3
4 changes: 1 addition & 3 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,6 @@ Continue is quickly adding features, and we'd love to hear which are the most im
an enhancement are:

- Create an issue

- First, check whether a similar proposal has already been made
- If not, [create an issue](https://github.com/continuedev/continue/issues)
- Please describe the enhancement in as much detail as you can, and why it would be useful
Expand Down Expand Up @@ -115,7 +114,7 @@ process as welcoming and straightforward as possible.

#### Pre-requisites

You should have Node.js version 20.20.1 (LTS) or higher installed. You can get it
You should have Node.js version 22.22.3 (LTS) or higher installed. You can get it
on [nodejs.org](https://nodejs.org/en/download) or, if you are using NVM (Node Version Manager), you can set the correct
version of Node.js for this project by running the following command in the root of the project:

Expand Down Expand Up @@ -146,7 +145,6 @@ npm i -g vite
`install-all-dependencies`

2. Start debugging:

1. Switch to Run and Debug view
2. Select `Launch extension` from drop down
3. Hit play button
Expand Down
8 changes: 4 additions & 4 deletions actions/general-review/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,7 +121,7 @@ runs:
run: |
# Create directory for scripts
mkdir -p .continue-action-scripts

# Check if we're running in the Continue repo itself (scripts exist locally)
if [ -f "actions/general-review/scripts/buildPrompt.js" ] && [ -f "actions/general-review/scripts/writeMarkdown.js" ]; then
echo "Running in Continue repo - using local scripts from current checkout"
Expand All @@ -139,18 +139,18 @@ runs:
curl -sSL https://raw.githubusercontent.com/continuedev/continue/main/actions/general-review/scripts/writeMarkdown.js \
-o .continue-action-scripts/writeMarkdown.js
fi

# Verify scripts exist
if [ ! -f .continue-action-scripts/buildPrompt.js ]; then
echo "Error: buildPrompt.js not found"
exit 1
fi

if [ ! -f .continue-action-scripts/writeMarkdown.js ]; then
echo "Error: writeMarkdown.js not found"
exit 1
fi

echo "Scripts ready:"
ls -lh .continue-action-scripts/

Expand Down
1 change: 0 additions & 1 deletion binary/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -218,7 +218,6 @@ async function buildWithEsbuild() {
pathsToVerify.push(
`${targetDir}/continue-binary${exe}`,
`${targetDir}/index.node`, // @lancedb
`${targetDir}/build/Release/node_sqlite3.node`,
`${targetDir}/rg${exe}`, // ripgrep binary
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai Bot May 15, 2026

Choose a reason for hiding this comment

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

P1: Removed sqlite3 native module verification without completing dependency removal or updating the new SEA build path; builds may pass validation while failing at runtime when sqlite is exercised.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At binary/build.js, line 221:

<comment>Removed sqlite3 native module verification without completing dependency removal or updating the new SEA build path; builds may pass validation while failing at runtime when sqlite is exercised.</comment>

<file context>
@@ -218,7 +218,6 @@ async function buildWithEsbuild() {
       `${targetDir}/continue-binary${exe}`,
       `${targetDir}/index.node`, // @lancedb
-      `${targetDir}/build/Release/node_sqlite3.node`,
       `${targetDir}/rg${exe}`, // ripgrep binary
     );
   }
</file context>
Fix with Cubic

);
}
Expand Down
Loading
Loading