This workflow triggers a webhook when a pull request is closed and merged, specifically for branches containing 'feat'. It sends relevant PR data to a specified webhook URL.
- Add check-kilocode-change script in packages/kilo-vscode/package.json
- Update CI to use the script instead of inlined grep
- Document the check in root AGENTS.md alongside knip
The timestamp approach incorrectly deleted valid baselines that Playwright
didn't rewrite (because they already matched). Instead, read the Storybook
index.json to compute the expected set of screenshot filenames, and only
remove baselines that don't correspond to any current story.
The previous approach of removing all baselines before regeneration caused
spurious changes because Playwright produces slightly different PNGs across
runs (within tolerance but different bytes). Also, skipped stories had their
baselines permanently deleted.
Instead, create a timestamp marker before the test run and delete only
screenshots that weren't touched by Playwright (i.e., stale baselines for
removed stories). This also reverts the spurious baseline changes from the
previous auto-commit.
Add a 'format:check' step to the test-vscode workflow so PRs that
introduce formatting drift in packages/kilo-vscode are caught before
merge. Uses the existing 'format:check' script (prettier --check .)
already defined in packages/kilo-vscode/package.json.
Ref: #6919
* feat(vscode): add knip dead code detection to agent-manager
Add knip to the kilo-vscode package to detect and prevent dead code in
the agent-manager. This includes:
- knip.json config scoped to src/agent-manager/ and webview-ui/agent-manager/
- CI pipeline step in test-vscode.yml to run knip on every PR
- Clean up unused exports: narrow interfaces/types to non-exported where
only used locally, remove unused re-exports from FileTree.tsx and
review-comments.ts
* expand knip scope to entire kilo-vscode package
- Widen project scope from agent-manager only to src/**/*.ts and
webview-ui/**/*.{ts,tsx}
- Exclude vendored src/services/autocomplete/** from analysis
- Enable ignoreExportsUsedInFile for component Props patterns
- Delete 4 dead files: legacy-migration barrel/messages, settings
barrel, webview telemetry util
- Trim barrel re-exports in cli-backend, telemetry, browser-automation
to only what consumers actually import through the barrel
- Unexport private helpers: getNonce, joinCspDirectives,
NEW_EXTENSION_IS_STILL_EXPERIMENTAL flag, getVSCodeAPI,
dispatchMockProviders, errorCodes
- Narrow 5 unused exported types to non-exported
migrate default model IDs from kilo/auto to kilo-auto/frontier and related references across the codebase. update defaults in gateway constants, VSCode provider, tests, UI defaults, and e2e seed. align docs and examples to use kilo-auto/frontier and kilo-auto/free. this is a breaking change for existing configurations
BREAKING CHANGE: update default model IDs to kilo-auto/frontier and kilo-auto/free
kilo/auto and kilo/auto-free no longer used as defaults; update all
references accordingly
Add Storybook + Playwright visual regression testing for the VS Code
extension's composite webview UI. This tests the full composition of
kilo-ui components with extension-specific contexts and styles.
- .storybook/ config with kilo-vscode theme defaults
- StoryProviders mock wrapper for DataProvider, SessionContext, etc.
- 7 composite stories: tool+permission, permission dock, tool cards,
chat idle/busy, multi-tool assistant message
- Playwright config on port 6007 with auto-discovery
- CI workflow updated with parallel kilo-vscode visual regression job
- Exported SessionContext and LanguageContext for story use
- Add package.json to Storybook cache key (dep version changes invalidate cache)
- Add res.ok check before parsing Storybook index JSON
- Remove duplicate maxDiffPixelRatio (already in playwright.config.ts)
- Use parseInt for PLAYWRIGHT_WORKERS to handle non-numeric values
The workflow now:
1. Runs --update-snapshots to write new/changed baselines
2. Commits any changes back to the branch
3. Fails the job if baselines changed, so the PR author is notified
This avoids silently accepting visual changes — the author must pull
and review the updated baselines.
- Add @playwright/test, playwright.config.ts (Chromium, 1280x720)
- Test file auto-discovers all stories from Storybook's index.json
- Screenshots cropped to #storybook-root, grouped per component
- CI workflow on Blacksmith with Storybook/Playwright/Bun caching
- Paths filter: only runs when kilo-ui or its deps change
- Auto-commits missing baselines back to the branch via CI
- Skips head-only (Font, Favicon) and non-deterministic (Typewriter) stories
- Documented in CONTRIBUTING.md
packages/app is not actively maintained so its E2E tests on Windows
and Linux are no longer useful. Disable the e2e job with `if: false`
and remove it from the required gate job's dependencies.
These packages feed directly into the extension webview. An upstream opencode
merge that only touches packages/ui or packages/kilo-ui would previously skip
the kilo-vscode unit tests entirely, allowing contract regressions to merge
undetected.
The unit tests (bun test tests/unit/) are pure — no CLI binary needed — so
adding these paths has no performance cost.
- Update AGENTS.md to reflect main as default branch
- Update GitHub Actions workflows to trigger on main branch
- Update publish scripts to cherry-pick from origin/main
- Update upstream merge scripts and documentation
- Update CONTRIBUTING.md links in PR standards workflow
- Fix disabled workflow and documentation links
All development commands (bun dev, npm run dev) and external services
(models.dev, ai-sdk.dev) remain unchanged as they are unrelated to branch names.