Changelog
Цей контент ще не доступний вашою мовою.
Changelog
[Unreleased]
[0.5.23] - 2026-05-21
Added
- Notifications — unified notification center for GitHub and plugin events; status bar badge and QuickPick with categorization and scope toggle.
- Secret leaks — Gitleaks CLI provider alongside existing built-in secret detection.
- GitHub — branch creation can use Gemini for suggested names; improved notification URL handling.
Changed
- Project structure —
devManager.quality.autoSyncdefaults tofalsefor explicit control over structure sync.
[0.5.22] - 2026-05-20
Added
- Pre-commit —
devManager.realtime.precommit.requireVscodeCommitblocks commits from the integrated terminal and AI agents; only VS Code / Cursor / Antigravity Source Control UI is allowed. Detection usesVSCODE_GIT_COMMAND(set by the git extension on SCM commits, not injected into terminals). SetSNAKEFLOW_ALLOW_TERMINAL_COMMIT=1to bypass in CI.
[0.5.21] - 2026-05-18
Added
- Pre-commit — 20 universal built-in scanners (conflict markers, debug/console statements, trailing whitespace, bidirectional text, localhost/private IP URLs, missing final newline, OS artifacts, backup/build artifact paths, sensitive extensions, case collisions, large/empty files, BOM, CRLF, JSON syntax, protected-branch guard, new submodule guard). Each toggle maps to
devManager.realtime.precommit.scanners.*in settings.
Fixed
- Project settings —
devManager.project.name/devManager.project.dirare no longer written to shared.vscode/settings.jsonwhen they match the workspace folder (avoids machine-specific paths in team config).
[0.5.20] - 2026-05-18
Fixed
- Quality Hub & Cloud (team members) — workspace members on the free plan now inherit Pro from the workspace owner (same rule as Team Tracker).
GET /api/mereturnsplan: prowhen the owner has an active Pro subscription, so builtin and cloud Quality Hub checks unlock without a separate subscription.
[0.5.19] - 2026-05-18
Added
- Voice Dictation on macOS — record via
ffmpeg(AVFoundation default microphone,none:default), then transcribe with Gemini. Status bar mic,Ctrl+Alt+H, and GitHub Issue microphone buttons work on macOS whenffmpegis on PATH and the IDE has microphone permission.
[0.5.18] - 2026-05-18
Fixed
- GitHub Issues — assignee, search, and sort filters now apply correctly when grouped by sprint; empty sprint groups are hidden when filters are active. Active filters are shown in the Issues view description.
Added
- Voice Dictation on Linux — record via
ffmpeg(PulseAudio/PipeWire or ALSA default input), then transcribe with Gemini. Status bar mic,Ctrl+Alt+H, and GitHub Issue microphone buttons work on Linux whenffmpegis on PATH. Windows continues to use the built-in MCI recorder.
[0.5.17] - 2026-05-14
Changed
- Team Tracker — idle activity window is hard-capped at 2 minutes in the collector (workspace and user settings can no longer stretch it to 15 minutes). Default idle window is 2 minutes when no workspace policy applies.
- Team Tracker —
devManager.team.activityWatchUrlis honored only for localhost / 127.0.0.1; other hosts fall back to the default URL so a fake remote ActivityWatch server cannot drive the input signal. - Team Tracker — when ActivityWatch reports a non-empty
always_active_pattern, the AW input signal is ignored for counting (still used for window/app classification where available), reducing “always active” tampering.
[0.5.16] - 2026-05-13
Changed
- Release — version bump for marketplace distribution (includes Team Tracker status bar internal-time display from 0.5.15).
[0.5.15] - 2026-05-12
Changed
- Team Tracker — status bar time shows internal tracked minutes for member workspaces only (matches the dashboard internal column). Previously it showed total worked wall-clock minutes, which could look higher when external or other-workspace time was included.
[0.5.14] - 2026-05-12
Changed
- Team Tracker: Status —
SnakeFlow: Team Tracker — Statusnow outputs a full diagnostics report to theSnakeFlow Team TrackerOutput channel instead of a single toast. The report covers: JWT and GitHub token presence,devManager.team.enabledflag, live/api/team/meHTTP status and workspace list, ActivityWatch reachability and bucket details, the latest collector tick reason (ACTIVE / IDLE / SKIP + repo), and today’s sender totals. Makes it straightforward to diagnose why time is not being counted (no membership, expired auth, AW not running, etc.).
[0.5.13] - 2026-05-12
Fixed
- Team Tracker — stopping tracking no longer disposes the status bar item (which broke the clock icon after login when configuration refreshed). The bar resets to idle instead.
- Team Tracker — clicking the status bar before sign-in now offers Sign in instead of a misleading “not running” warning.
- Project path —
devManager.project.dirfrom shared workspace settings: OS-incompatible absolute paths (e.g. Windows drive paths on macOS/Linux) fall back to the workspace folder;requireProjectwarns and falls back when the configured directory is missing, reducing raw VS Code terminal cwd errors.
[0.5.12] - 2026-05-12
Added
- Pre-commit hook installer — installs the SnakeFlow pre-commit hook with dynamic script execution so the gate runs from the extension install path.
- Commit check status bar —
CommitCheckStatusBaris wired into activation for clearer pre-commit / quality state while committing. - ShellStep
background— optional background mode for long-running shell steps in workflows.
Changed
- Pre-commit UX — operation events, Markdown reporting, output-channel logging, and clearer error handling around the pre-commit gate.
GitHub
- Sprint management — sprint-related actions and UI in the GitHub integration.
[0.5.11] - 2026-05-09
Added
- Docs: No Manual Migrations —
media/docs: built-in checks and Quality overview, CLI tools page (install notes), configuration reference (devManager.realtime,noManualMigrationssettings), changelog; English and Ukrainian. - Migration safety: full coverage pass — closes the remaining gaps for Prisma + Drizzle in one go:
- Drizzle: regen-and-diff — wraps
drizzle.config.*into a tmp ESM wrapper without:swapped to a tmp dir, runsdrizzle-kit generate, then diffs against on-disk migrations. Catches hand edits to existing.sqlfiles (the previous journal-only check missed these). Falls back to the journal +drizzle-kit checkpath when regen tooling is unavailable. - Drizzle: robust
out:resolution — replaces the regex parser with anode --input-type=module(ornpx tsx) ESM probe, cached by config mtime. Falls back to the regex when the probe fails. - Prisma: multi-file schema (
prismaSchemaFolder) —noManualMigrations,prismaValidateandprismaMigrateStatusnow detectprisma/schema/*.prismadirectories and pass them to--schemacorrectly. - Removed/renamed migrations — new
detectRemovedMigrations()helper scans recent git history (configurable lookback) and flags any deleted or renamed migration file across all adapters (Prisma, Drizzle, Atlas) withcode: 'migration-removed-or-renamed'. Settings:noManualMigrations.checkRemoved,noManualMigrations.gitLookback. - Squawk: data-risk + down-pair scanners — pure-Node post-pass that flags
UPDATE/DELETEwithoutLIMITor batchedWHERE id IN (...)(unbatched-data-migration),BEGIN/COMMITblocks withoutSET LOCAL lock_timeout/statement_timeout(missing-lock-timeout), and missing*.down.sql/down()siblings for non-Prisma/Drizzle migrations (missing-down-migration). Settings:squawk.dataRisk(off|warn|error),squawk.requireDownMigration. - Prisma Migrate Status: realtime watch — re-runs
prisma migrate statuson changes toprisma/migrations/**and.env*, debounced to 2s and cached for 30s. Setting:prismaMigrateStatus.realtime. - Migrations CI Gate — new built-in provider that fails Quality Hub when an ORM project has no GitHub Actions workflow running migration safety commands (
prisma migrate diff,drizzle-kit check,atlas migrate validate), or when realtime /noManualMigrationsis disabled locally. Setting:migrationsCiGate.enabled. - Pre-commit: migrations strict mode — new
realtime.precommit.migrationsMode(off|warn|block-strict) blocks commits where staged migration files have ANY SnakeFlow finding (warnings included). Also surfaces a one-time warning whencore.hooksPathis overridden to a non-default path (a common silent--no-verifyvector).
- Drizzle: regen-and-diff — wraps
Changed
- Default keybindings — moved from the
Ctrl+Mchord toCtrl+Alt+<letter>(Ctrl+Alt+Mmain menu,Ctrl+Alt+S/Q/Rservers,Ctrl+Alt+F/Ctrl+Alt+Ifull vs incremental Quality Hub,Ctrl+Alt+GGitHub issue,Ctrl+Alt+Nscripts,Ctrl+Alt+Pfilter providers,Ctrl+Alt+H/Ctrl+Alt+Shift+Hvoice dictation). Docs and README updated to match. - Marketplace publish script —
publish-markets.cjsreadsVSCE_PAT/OVSX_PATfromplugin/.envand monorepo-root.env; clearer error messages when tokens are missing.
[0.5.10] - 2026-04-22
Added
- Enhanced Schema Linting and RLS Checks — New configuration options in
package.jsonallow users to specify fields to ignore during schema linting and exclude specific SQL paths from checks. The RLS check provider now supports excluding tables from validation. These enhancements provide greater flexibility and control over schema validation processes. - Improved Workspace Data Handling — The
getMembershipsfunction has been updated to ensure workspace properties likerepo_patternsandapp_patternsare properly validated, preventing potential errors caused by invalid data structures. Membership refresh is now forced before editing patterns to guarantee the use of the latest data. - Custom Workflow Management — Introduced commands for creating, editing, deleting, and running custom workflows within the workflow manager. Commands are now dynamically registered to handle custom workflows as they are added or removed.
- Advanced Migration Safety — Comprehensive migration safety checks for Prisma and Drizzle have been added, including the detection of removed or renamed migrations from Git history. New configuration options allow customization of lookback periods and enable/disable checks. A pre-commit gate is introduced for stricter migration checks, preventing commits with detected issues in staged migration files.
- Documentation Enhancements — Updated documentation includes details on new migration safety checks, their configuration options, and the Migrations CI Gate. The Quality Hub documentation has been improved to clarify migration checks and their integration with CI workflows.
- Schema Cleanup — Obsolete migration files, legacy columns, and tables related to push permissions and workspace management have been removed to streamline the migration process and reflect current application architecture.
- Quality Checks and Configuration — Added new quality checks and enhanced existing ones. Configuration options have been expanded for wake lock management, real-time diagnostics, and custom workflows. TypeScript configuration enforces stricter type checking, and GitHub Actions workflows are updated for security by pinning third-party actions.
- Command Execution Safety — New ESLint rules restrict the use of shell-injection-prone child_process APIs outside the quality-provider layer, promoting safer command execution. Commands now utilize utility functions to prevent potential security vulnerabilities.
- Real-time Diagnostics and Quality Providers — New quality providers for dead exports and Knip enable real-time diagnostics. The status bar is enhanced to track new provider IDs. Wake lock management ensures better process handling, and promptfoo dependency is added for improved prompt management.
- Rate-Limiting for Active Minutes — An hourly rate-limit for active minutes tracking has been implemented using a new KV namespace. The active-minutes API now utilizes this store, replacing the previous database approach. Documentation reflects the new rate-limit implementation.
- Team Tracker Documentation — Updated documentation includes details on the per-workspace app allowlist feature, allowing admins to configure regex patterns for ActivityWatch app and title. Internal vs. external minute classification rules are clarified.
- External App Tracking — Introduced a new
APP_LABELregex to validate synthetic labels for time spent in apps outside the workspace allowlist. The active-minutes API accommodates both repository and app labels. - Pre-commit Gate Functionality — Added a pre-commit gate command to block commits based on real-time errors, enhancing code quality before submission.
- Hourly Cap for Active Minutes — Implemented a new table
active_minutes_hourlyto enforce a per-hour cap of 60 minutes. Theactive-minutesAPI incorporates this cap, and theTeamCollectortracks gated minutes. - Team Tracker Commands and Configuration — Introduced new commands for Team Tracker, including login, logout, status, and workspace management, along with configuration settings for activity tracking and ActivityWatch integration.
- Streamlined Team Features — Removed the tools menu command and associated UI elements. Introduced new commands for team activity tracking and updated configuration options for team tracking.
- Enhanced Cloud Dashboard and Team Management — Added new commands for managing teams, including editing repository patterns, generating invitations, syncing commit data, setting member roles, and managing workspace membership. The cloud dashboard supports these commands with new action buttons. Workspace member management has been improved by removing deprecated fields.
- Simplified Cloud Dashboard UI — Removed redundant text and logout buttons from the team section in the cloud dashboard to streamline the user interface and focus on key metrics and actions.
Changed
- Default Keybindings — Moved from the
Ctrl+Mchord toCtrl+Alt+<letter>for various commands, including the main menu, servers, Quality Hub, GitHub issue, scripts, filter providers, and voice dictation. Documentation and README have been updated accordingly.
[0.5.9] - 2026-04-21
Added
- Team Management Commands — Added new commands for managing teams within workspaces, including:
- Editing repository patterns.
- Generating invitations for new members.
- Syncing commit data.
- Setting member roles.
- Kicking members from workspaces.
- Leaving workspaces.
- Deleting workspaces.
- Enhanced Cloud Dashboard — The cloud dashboard now supports the new team management commands, providing a more comprehensive interface for workspace administration. New action buttons have been integrated for workspace and member management.
Changed
- Simplified Team Section Display — Redundant explanatory text has been removed from the team section in the cloud dashboard to streamline the user interface and improve focus on key metrics and actions.
- Removed Logout Buttons — “Sign out” buttons have been removed from the team section and header authentication in the cloud dashboard to simplify the user interface and focus on core workspace management actions.
Fixed
- Workspace Member Fields — The
is_primaryandshare_external_repo_namesfields have been removed from theworkspace_memberstable and related API endpoints. This simplifies workspace member management by eliminating deprecated fields. - Team Dashboard Metrics — Enhanced team dashboard metrics to include classification of commits as internal or external based on repository patterns. This provides more granular insights into team activity.
[0.5.8] - 2026-04-20
Security
- Quality Hub — shell injection hardening — new
_safeShell.tswithisSafeGitRef,isSafeRelPath,isSafeIdentifier,quoteShellArg, andUnsafeShellInputError. All settings-driven inputs inoasdiff,commitlint,graphqlInspector,bufBreaking,eslint,act,bearer, andprismaMigrateStatusare now strictly validated and shell-quoted before reachinggit show/ CLI invocations. - Quality Hub — secret scrubbing —
scrubSecretsis now applied to HTTP error bodies inqualityProviderBase.httpRequest, CLI stdout/stderr in_thinCli, andbearererrors so tokens accidentally embedded in responses no longer leak into the sidebar. - Quality Hub —
secretLeaks— wraps user-providedskipPatternsintry/catchto survive invalid regex; auto-gates when a stronger secret scanner (Gitleaks/TruffleHog) is enabled.
Fixed
- Quality Hub — auto-gate accuracy — gates now consult a
BINARY_CACHEprimed at the start of every run (primeBinaryCache()), so a heuristic only stands down when the stronger CLI is actually installed, not merely toggled on in settings. - Quality Hub —
componentInventory— detectsforwardRef(...),memo(...), and class components; accumulates prop counts across multiple parameters; resolves interface- and type-alias-based props within the same file. - Quality Hub —
rlsCheck— narrows file targeting tomigrations/directories (Prisma, Drizzle, Atlas, sqlx, Rails, Supabase) and replaces naïvesplit(';')with a SQL splitter that respects single-quoted literals, dollar-quoted PL/pgSQL bodies ($$ … $$,$tag$ … $tag$), and--//* */comments. - Quality Hub —
complexity—default:clauses now contribute +1 to McCabe cyclomatic score alongsidecaseclauses. - Quality Hub —
magicNumbers— hoistedgetFullText().split(/\r?\n/)out of the AST visitor, eliminating the per-literal O(N²) scan on large files. - Quality Hub —
_thinCli—npxCliTool.isInstallednow resolves the npm package and probesnode_modules/.bin(incl..cmdon Windows) instead of trustingnpx’s presence; child processes are killed when the caller’sAbortSignalfires;UnsafeShellInputErrorthrown frombuildCommandis caught and reported asskip. - Quality Hub — cloud opt-in —
profileEnableOverrideno longer auto-enablescloudproviders under any profile; tokens-and-billing providers stay strictly opt-in. - Quality Hub —
noFocusedTests—.todotest cases are now counted and surfaced in the summary. - Quality Hub —
pgtapPresence— verifies file contents call into the pgTAP API (plan,ok,is,throws_ok,has_table, …) before counting them as test files; mere placement undertests/is no longer sufficient. - Quality Hub —
_shared.collectSourceFiles— symlinks that escape the project root are now skipped, preventing infinite recursion and out-of-tree disclosure. - Quality Hub —
_shared.readLines— strips trailing\r, fixing regex anchors on CRLF-terminated files. - Quality Hub —
agentContext—recommendedSectionsnow also targets.cursor/rules/**(largest file used as representative);GEMINI.mdline cap reads dedicatedgeminiMd.failLines(default 300) instead ofwarnLines * 2.recommendedSectionsalso recognises CLAUDE.md / GEMINI.md as pointer files when they merely link to AGENTS.md (≤10 non-heading lines, each referencingagents.md) — pointers inherit the grade from AGENTS.md instead of being penalised for missing sections, matching the agents.md convention. - Quality Hub — Doctor — header reports both the active profile and
isStrictModeActive()instead of the rawstrictModeflag. - Quality Hub — Setup Wizard — Socket.dev added to
PROVIDER_SETUP; tagline catalogue updated foranyCoverage,componentInventory,socket, anddeadExports. - Quality Hub —
vibeprofile — strong-provider set now includesgolangciLint,act,schemaLint,trojanSource,vale,alex,lychee,promptfoo,dotenvLinter. - Subcategory —
edgeCompatrecategorised asquality(wassecurity).
Docs
AGENTS.mdclarifies provider categories (builtin / cli / cloud / custom) and surfacesisQualityProviderEnabledas the canonical gate.README.mdcorrects the cloud-provider count from 16 to 10 and lists each provider explicitly.reference/configuration.mdnotes that the table is representative and the canonical list lives in thepackage.jsoncontributes.configurationsection.
[0.5.7] - 2026-04-20
Added
- Quality Hub — profiles —
devManager.quality.profile(strict,balanced,vibe, defaultstrict). Strict mode turns on every check by default, promotes missing tooling to failures when combined with strict behaviour, and supports optionaldevManager.quality.warnAsFailto treat warnings as failures. Balanced keeps the same default enablement but leaves warnings as warnings. Vibe enables only strong cloud + external-CLI checks by default; heuristic built-ins are opt-in via per-providerenabled. - Quality Hub — 26 new built-in checks — supply chain (
attw,publint,lockfileLint,npmProvenance,syncpack,manypkg,scorecard), quality (typeCoverage,commitlint,noFocusedTests,stylelint,prettierCheck), performance (sizeLimit,lighthouseCi), API contracts (oasdiff,graphqlInspector,bufBreaking), security and supply extras (dockle,grype,dive,hardenRunnerAudit,sbom,sentrySourcemaps,trojanSource), database (rlsCheck,pgtapPresence,sqruff), and docs/prose (vale,alex,lychee,promptfoo,dotenvLinter). Each maps todevManager.quality.builtin.<id>.*settings in the extension manifest. - Quality Hub — Socket.dev — cloud provider
socketfor npm supply-chain signals (malicious packages, install scripts, telemetry, typosquatting). ConfiguredevManager.quality.socket.{enabled, token, thresholdCritical, thresholdHigh}. - Quality Hub — auto-gate — additional pairs so weaker heuristics stand down when Stylelint, Commitlint, Lighthouse CI, Size Limit, or attw-style tooling is configured in the repo.
Removed
- Quality Hub (BREAKING) — removed built-in providers
eslintSecurityandmigrationsExist. Use the main ESLint provider witheslint-plugin-security, and migration/schema checks (prismaMigrateStatus,drizzleCheck,atlas,squawk, etc.) instead. - Database Tools menu — removed
SnakeFlow: Database Tools, thedatabase.tscommand module, ORM auto-detection used only by that menu, and related settings/commands. Run database CLIs directly or via your agent workflow.
Changed
- Quality Hub — stronger heuristics — rewritten on the TypeScript compiler API where applicable: structural fingerprints for duplicate UI components, per-function McCabe complexity, AST-based
anyand magic-number detection, stronger secret scanning (entropy + updated patterns, always-on alongside other scanners), neutral README section checks, and broader agent-context file detection with a consistent recommended section layout for agent docs. - Wake Lock — the status bar toggle is the single source of truth; the lock is held only while there is real editor activity (edits, saves, terminal, tasks, debug, Quality Hub). After
devManager.wakeLock.idleThresholdSeconds(default120) of idle time the lock releases. RemoveddevManager.wakeLock.keepAwakeDuringSession; addeddevManager.wakeLock.idleThresholdSeconds(30–1800).
[0.5.6] - 2026-04-18
Added
- Quality Hub — auto-gate duplicate built-ins — new setting
devManager.quality.autoGateDuplicates.enabled(defaulttrue). When a stronger alternative is active in the project, the overlapping regex/heuristic built-in silently stands down (itsisConfigured()returnsfalse). Pairs auto-gated:Type Safety/Broad Types/Return Types/Non-Null Assertions/Enum Usage→ ESLint@typescript-eslint;Parameter Count→ any JS/TS linter (ESLint / Biome / Oxlint);Long Lines/Mixed Indent→ Prettier / Biome / EditorConfig;React Hook Rules→eslint-plugin-react-hooks;Accessibility→eslint-plugin-jsx-a11y;Secret Leaks→ Trivy / Bearer / Semgrep (when enabled);ESLint Security→eslint-plugin-securityalready in main config;LCOV Coverage→ Codecov / Coveralls (when configured);Copy-Paste (jscpd)→ SonarCloud (reportsduplicated_lines_density);Cross-Layer Imports→ dependency-cruiser or arch-DSL;Coupling Metrics/Import Depth/Barrel Files→ dependency-cruiser. Set tofalseto run every enabled provider regardless of overlap. - Quality Hub — filter / search — new title-bar button (magnifier) and command
SnakeFlow: Filter Quality Providers...(shortcutCtrl+Alt+P). Enter a term to filter the tree by provider id, label, summary, details, or tagline across Cloud / Built-in / Custom groups and all subcategories. While a filter is active a header row showsFilter: "term" — click to clear; the title-bar magnifier switches to a clear-filter icon. Empty groups collapse, so you can quickly narrow to one provider among 40+. - Wake Lock — full coverage for AI chat sessions — two new settings make the wake lock work while the AI agent generates in Cursor / VS Code / Antigravity (those IDEs do not expose a public “assistant is generating” event).
devManager.wakeLock.keepAwakeDuringSession(defaulttrue) holds the lock for the entire editor session, so the PC never sleeps while the window is open.devManager.wakeLock.keepDisplayAwake(defaulttrue) addsES_DISPLAY_REQUIREDon Windows and usescaffeinate -dion macOS, so the monitor also stays on (previously the extension only prevented system sleep — the display still blanked after the OS idle timer). - Project Structure — Tags (Nx-style) — orthogonal axis on top of
layers. New settingsdevManager.quality.builtin.projectStructure.tagDefs(assign tags to files by path glob) andtagRules(restrict which tag sets may import each other). Coversscope:*andtype:*cross-cutting concerns that strict layering can’t express. The auto-syncedAGENTS.mdmanaged block now surfaces a Tags table alongside the Layer table. - Scorecard export — new command
SnakeFlow: Export Quality Scorecard (Backstage)runs the full Quality Hub and writes a Backstage-compatibleSystemScorecardJSON (apiVersion,kind,metadata,spec.checks[]) todevManager.quality.scorecard.outputPath(defaultscorecard.json). Zero new dependencies — plugs SnakeFlow straight into Backstage / Cortex / Port dashboards. - Layer graph export — new command
SnakeFlow: Export Layer Graph (DOT)emits a Graphviz.dotof the inter-layer import graph derived fromprojectStructure.layers. Violations are drawn as dashed red edges. Render withdot -Tsvg layer-graph.dot -o layer-graph.svg. Single source of truth: samelayersconfig that enforces the rules also generates the picture. - CodeQL (SARIF) built-in — new provider
builtin-codeqlreads findings from a pre-generated SARIF file (fast, offline, default) or optionally runs thecodeqlCLI live with per-git-SHA caching. Parses rule IDs, levels, file:line, and messages into Quality Hub results. Cross-function dataflow SAST used by GitHub Advanced Security; free for OSS. Settings:codeql.{enabled, sarifPath, runCli, cliPath, suites, cacheDir}. - Dead Exports — new provider
builtin-deadExportsflags named TS/JS exports no other file imports. Reuses the import graph SnakeFlow already builds forprojectStructure.layers; follows re-exports and barrels explicitly. Complements Knip (faster, no subprocess, catches barrel false-negatives). Ignore list viadeadExports.ignore. - Architecture DSL — new provider
builtin-archDslloads an opt-in.snakeflow/architecture.tsfile containing ArchUnit-style fitness functions (rule(name).from(layer('domain')).shouldNot().dependOn(layer('ui'))) and evaluates them against the import graph. Transpiled via esbuild, executed in a Nodevmsandbox that blocks allrequire()except a virtualsnakeflowmodule — no network or fs escapes. Supports bothlayer()andtag()selectors. - Stale Feature Flags — new provider
builtin-staleFlagsscans for references to retired flag keys (staleFlags.retiredKeys). Matchesflags.X,flags['X'],flags.get('X'),isEnabled('X'),featureFlag('X'). Piranha-inspired — reports every call site with file:line so the AI agent can rewrite dead branches. - Bundle Size Budget — new provider
builtin-bundleBudgetparses an esbuild--metafile=meta.jsonand fails when any output exceeds its budget. Budgets declared as[{ pattern: "dist/extension.js", maxKB: 2048 }]; patterns are path globs matched against metafile output keys. Reports actual KB + percent over budget. - Project Structure — Layer Visibility (Bazel-style) — new setting
devManager.quality.builtin.projectStructure.layersdeclares architectural layers (name,pathglob,canImportallow-list). Built-in TypeScript/JavaScript import parser validates every relative import against the declared layer graph; external/package imports are ignored. Supports per-fileexceptions: [{file, canImport}]for friend-module patterns and upfront graph validation — duplicate names, unknown layer references, and cycliccanImportedges produce a singlefailwith the exact cycle path instead of noisy per-import warnings. - AGENTS.md Structure Sync — new command
SnakeFlow: Sync AGENTS.md Structure Blockregenerates a managed region insideAGENTS.md(between<!-- SNAKEFLOW:STRUCTURE:BEGIN -->/:END -->markers) fromprojectStructure.fileRules/folderRulesandquality.skipFiles/skipDirs. Auto-syncs on settings change whendevManager.agentContext.structureSync.autoSyncistrue(default). Only non-inferable architectural hints (layer rules, file placement, required exports, don’t-touch zones) are injected — numeric limits are deliberately excluded per Anthropic context-engineering guidance and ETH Zurich (Feb 2026) research showing auto-generated context files reduce agent success by 0.5–3%. - Agent Context — Structure Block Drift sub-check — warns when the managed block in
AGENTS.mddrifted fromprojectStructuresettings; run the sync command (or change any watched setting) to regenerate. - dependency-cruiser inline rules — new setting
devManager.quality.builtin.dependencyCruiser.rulesaccepts a full depcruise configuration object directly insettings.json. When non-empty, it is materialised to a temp.dependency-cruiser.jsonand passed via--configon each run; the temp file is cleaned up afterwards. Precedence: settings rules → local.dependency-cruiser.*file →--no-config. This lets JS/TS projects keep all Quality Hub configuration in VS Code settings without committing a separate JS config file, and works seamlessly with Cloud Settings Sync.
Fixed
- Heavy Imports check — no longer flags example
importstatements that live inside JSDoc / block comments (false positive on its own source file). Line and block comments are now skipped before the import regex runs. - Directory Depth check — stops recursing into nested sub-packages (directories that carry their own
package.json/Cargo.toml/go.mod/pyproject.toml/composer.json/pom.xml). Embedded docs sites (e.g.media/docs/**Astro Starlight) and monorepo members are no longer reported against the outer project’s depth budget. - Coupling Metrics check — strips comments before counting imports (prevents inflated fan-out from JSDoc examples) and adds a new
devManager.quality.builtin.couplingMetrics.ignoreFilessetting to exclude legitimate composition roots / provider registries from the high-fan-out report.
Changed
- Cloud registration flow — made silent registration resilient: retries on every activation until it succeeds (tracked via
snakeflow.cloud.registeredAt) instead of running exactly once. Previously, the one-shot flag was set before the attempt, so users who had no GitHub session at first activation never registered, even after later signing in. - Cloud onboarding CTA — users without an active GitHub session now see a one-time, non-intrusive prompt (
Sign in/Not now/Don't show again) instead of silently skipping. Controlled bysnakeflow.cloud.onboardingShownAt. - Cloud HTTP layer — added a 10s request timeout, explicit UTF-8 decoding, and server-error propagation (non-2xx responses now throw with the server’s error message instead of being parsed as “no token”).
- Cloud diagnostics — silent registration now logs outcomes (skip reason, HTTP errors, network/timeout) to the
SnakeFlowoutput channel instead of swallowing every failure.
[0.3.16] - 2026-04-16
Fixed
- Git API typing —
GitRepositoryin the shared helper now declarescheckout, matching the built-in Git extension API used for branch checkout. - Build scripts —
npm run compile/watch/vscode:prepublishnow callmedia/docs/sync-changelog.cjs(the script lives next to the docs site, not under a top-leveldocs/folder).
Changed
- Documentation — refreshed the docs site: Quality Hub overview and cloud provider list aligned with the extension, command palette reference (including incremental quality runs and internal commands), built-in checks catalog, and Quick Start keybinding reference (later releases use
Ctrl+Alt+<letter>defaults with separate chords for incremental runs vs GitHub issue creation).
[0.3.15] - 2026-04-14
Fixed
- Squawk encoding — stderr from Squawk (and Windows system errors) is now sanitized before display. Non-ASCII bytes caused by the cp1251 / UTF-8 mismatch on Windows were replaced with
?, so the error hint in Quality Hub is always readable ASCII instead of mojibake.
[0.3.14] - 2026-04-14
Fixed
- Marketplace installation — removed JavaScript obfuscation from the build. The
javascript-obfuscatoroutput (hex identifiers + base64 string arrays) was triggering Windows Defender false positives, causing the VSIX to be quarantined mid-download and resulting in a truncated ZIP error on installation.
[0.3.13] - 2026-04-14
Added
- Bearer on Windows — Bearer SAST scanner now probes Scoop/WinGet shims and, if no native binary is found, transparently runs Bearer inside WSL (
wsl -e bearer) with the project dir remapped to/mnt/<drive>/…— falling back to Docker only as a last resort. Install options: nativebearer.exeon PATH,curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | shinside WSL, ordocker pull bearer/bearer. - Squawk: auto-detect
.squawk.toml— Squawk provider now automatically locates.squawk.tomlin the project root or any direct subdirectory (e.g.application/.squawk.toml) and passes--configto the CLI. - Squawk:
excludeRulessetting — newdevManager.quality.builtin.squawk.excludeRules(string array) maps to--exclude-ruleCLI flags. - Squawk:
assumeInTransactionsetting — newdevManager.quality.builtin.squawk.assumeInTransactionboolean passes--assume-in-transactionto suppress warnings about statements safe only inside transactions. - Bearer:
enabledandpathsettings — newdevManager.quality.builtin.bearer.enabledanddevManager.quality.builtin.bearer.pathfor explicit provider control.
Fixed
- Semgrep — binary blocked by Device Guard or antivirus (
UNKNOWN,ENOENT,EPERM) now returnsskipwith a helpful message instead of an opaque error. - Semgrep: relative
--config— relative paths indevManager.quality.semgrep.config(e.g.application/.semgrep/) are now resolved against the project root for both local and Docker runs. Previously they resolved against the VS Code host process cwd and producedunable to find a configerrors. Missing config paths now surface a clearconfig not founderror up front instead of Semgrep’s generic warning. - Squawk — binary blocked by Device Guard or antivirus now returns a clear error message with install instructions.
[0.4.0] - 2024-05-15
Added
- Squawk 2.x Support — enhanced handling for Squawk 2.x flat violations output.
- Git Progress Notifications — new progress notifications provide better user experience during Git operations.
- Changelog Generation Command — a new command to generate changelog from Git commits, improving project documentation.
- Breaking Change Support — changelog generation now supports breaking changes and conventional commit types.
- New Project Management Commands — multiple new commands added, including ‘Copy Result’, ‘Add Steps to Pipeline’, and ‘Send Issue to Chat’.
- Quality Check Configurations — introduced new quality check configurations.
- CI/CD, Cloud Sync, and Voice Dictation Commands — new commands enhance features in these areas.
- Automatic Changelog Updates — changelog automatically updates with new commit entries under
## [Unreleased]. - Auto Changelog Setting — a new setting in
package.jsonfor auto changelog functionality. - Dynamic Versioning — the extension now reads the version from
package.jsonfor dynamic versioning in the changelog. - Semantic Version Suggestion — logic implemented to suggest the next semantic version based on commit types.
- Development Prompts Customization — added default milestone and customized prompts for issue and PR analysis in the
devManagersettings.
Changed
- API Keys Tab and Cloud API Removed — the API Keys tab in the SnakeFlow Cloud Dashboard and associated API endpoints (for generating and managing personal API keys) have been removed.
- Native Git Operations — Git operations (fetching, pulling, and pushing branches) now use native VS Code Git API calls for better integration and status updates, replacing terminal command executions.
- Changelog Entry Structure — changelog entries are now organized by conventional commit types and include breaking flags for a refined structure.
- Changelog Version Sections — changelog entry insertion now supports version-specific sections for better organization and clarity.
- Existing Commands Refactored — existing commands have been refactored for better integration and usability.
- Changelog Display Mode — changelog entries are now prepended to the file (instead of appended) for better visibility of recent changes.
Improved
- Squawk Output Processing — Squawk output parsing now supports multiple formats (flat array, array of file reports, object keyed by filename) with enhanced error handling.
- Quality Command Installation Feedback — progress notifications added for quality command installation.
- Changelog Command Integration — seamless integration of the changelog command within the extension.
- Changelog Readability — noise filtering, sorting, and formatting of commits in the changelog have been enhanced for better readability.
- Documentation and User Experience — overall documentation and user experience have been improved, including command descriptions.
- Changelog Generation Process — the overall changelog generation process has been enhanced for better usability and integration.
- Code Review and CI Analysis Guidance — improved guidance for code review and CI analysis, ensuring a structured approach to handling PRs and issues.
[0.3.12] - 2026-04-14
Fixed
- Changelog sync — docs changelog is now always kept in sync with the root
CHANGELOG.mdon every build, package, and watch start.
[0.3.11] - 2026-04-13
Added
- Silent cloud registration — on first activation, SnakeFlow silently registers the user in SnakeFlow Cloud if a GitHub session is already present in the IDE (no prompts or dialogs). A one-time notification confirms the connection with an “Open Dashboard” shortcut.
Changed
- Cloud auth scope reduced — the GitHub OAuth scope for SnakeFlow Cloud login is now
read:useronly (previouslyrepo,read:user,read:org). GitHub Features such as Issues and Pull Requests still use the full scope set; only the cloud JWT exchange was narrowed.
[0.3.10] - 2026-04-13
Changed
- Support contact — extension metadata, license, and documentation now list
vaulttec-dev@proton.meas the primary contact address.
[0.3.9] - 2026-04-13
Changed
- Marketplace discovery —
package.jsonnow uses only VS Code–allowed Marketplace categories (invalidDatabasesremoved) and fills the keyword tag list to the documented limit for better search visibility.
[0.3.8] - 2026-04-12
Added
- API Keys tab — new tab in the SnakeFlow Cloud Dashboard to generate and manage personal API keys for programmatic access to the SnakeFlow Cloud API. Supports creating keys (with a custom name), copying the key on first reveal, and revoking existing keys. Keys authenticate via the
X-API-Keyheader. - SnakeFlow Cloud API — new REST endpoints:
GET /api/keys,POST /api/keys,DELETE /api/keys/:id. API keys use thesnfk_prefix format (industry-standard). Raw keys are never stored — only a SHA-256 hash is persisted. - API Reference — interactive Scalar API Reference page added to the documentation site at snakeflow.pages.dev/api-reference. Covers all Cloud API endpoints with request/response schemas and try-it-out support.
[0.3.7] - 2026-04-12
Changed
- Voice Dictation (status bar) — after transcription, the IDE chat panel is focused and text is pasted automatically into the current conversation without creating a new chat.
[0.3.6] - 2026-04-12
Changed
- Voice Dictation (status bar) — transcribed text is now copied to clipboard instead of opening a new chat. A notification with an “Open Chat” button lets you paste into the current conversation with Ctrl+V.
Added
- Voice Dictation for comments — microphone button added to the “Add comment” field in Edit Issue form. Dictate comments the same way as descriptions.
[0.3.5] - 2026-04-12
Added
- Voice Dictation — new microphone button
$(mic)in the status bar (Windows only). Click once to start recording, click again to stop — Gemini AI transcribes the audio and sends the result directly to the IDE chat (Cursor Chat / Copilot Chat). RequiresdevManager.gemini.apiKey. - Voice Dictation in Issue forms — microphone button added to the Description field in both New Issue and Edit Issue forms. Records audio via system microphone and inserts the transcribed text into the description.
devManager.gemini.dictationLanguage— new setting to specify the spoken language for voice dictation transcription (auto,uk,en,de,fr,es,pl, and more). Defaults toauto(Gemini detects language automatically).
[0.3.4] - 2026-04-12
Added
- Cloud Dashboard — Push Access control — repository settings owners can now manage who is allowed to push configuration to the cloud. Other team members see a read-only list and their own push access status.
Fixed
- Cloud Dashboard buttons — navigation tabs (Overview, Projects, Account) and all action buttons (Push to Cloud, Pull from Cloud, Logout, Delete) are now fully interactive.
Changed
- Cloud Dashboard — Refresh button consolidated to the footer; removed the duplicate from the Overview card.
[0.3.3] - 2026-04-12
Added
devManager.quality.skipFiles— new workspace setting to exclude specific files and path patterns from Quality Hub checks. Supports relative paths,*.vsix, and**/suffixglob patterns. Applied to line count, TODO count, import depth, test ratio, file size, and Semgrep result aggregation.devManager.quality.builtin.pkgAudit.failOnHigh— controls severity threshold for the Package Audit check: whenfalse, HIGH-severity npm vulnerabilities report as warn instead of fail (only CRITICAL triggers a failure). Useful for gradually tightening supply-chain hygiene.- Documented settings thresholds — Coupling Metrics, Magic Numbers, and Parameter Count built-in checks now expose their warning/failure thresholds in the Settings UI for easy customization.
Changed
- Semgrep built-in: suppressed the
path-join-resolve-traversalrule for workspace paths to reduce noise on trusted codebases. - Import Depth built-in: comment lines are no longer counted — regex examples in source code no longer inflate import-depth scores.
- Long Lines built-in:
skipFilesexclusion list is now applied during file iteration for consistency with other checks. - Debug Leaks built-in: build-tooling scripts are correctly identified and excluded when the “skip script files” option is enabled.
- File Size built-in: packaged extension artifacts are excluded from the largest-files report.
[0.3.2] - 2026-04-12
[0.3.1] - 2026-04-12
[0.3.0] - 2026-04-11
Changed
- Build / distribution — extension ships as a single bundled file for a smaller
.vsixand simpler deployment. Developer workflow:compile/build/vscode:prepublishfor release;watchfor fast rebuilds during extension development;bundlefor a non-minified debug build. - Removed legacy build pipeline — the old sequential project runner is gone.
Ctrl+Alt+Fruns Quality Hub only. For lint, typecheck, tests, and build, use custom checks in settings or built-in / CLI providers.
[0.2.9] - 2026-04-11
Changed
- License — switched from MIT to a proprietary license: free to install and use for personal or internal business use; redistribution, modification, forking, and commercial resale are not allowed. See the
LICENSEfile in the package for full terms.
[0.2.8] - 2026-04-11
Added
- Documentation link in main menu — new “Open Documentation” item in the Tools submenu (
Ctrl+Alt+M→ Tools → Open Documentation) opens snakeflow.pages.dev in the browser. - Email icon in docs header — contact email icon added to the documentation site navigation bar.
Fixed
- VS Code Marketplace metadata — updated homepage, support contact, categories (including Debuggers and Linters), and keywords for clearer discovery.
[0.2.7] - 2026-04-11
Changed
- Marketplace metadata — homepage now points to the documentation site; support contact updated; added Debuggers and Linters categories; expanded keywords.
[0.2.6] - 2026-04-11
Added
- Documentation site — launched snakeflow.pages.dev built with Astro Starlight; covers all features, quality checks, configuration reference, CLI tool installation, cloud provider setup, FAQ, and Changelog. Available in English and Ukrainian.
- Green snake icon — extension icon and documentation logo updated to green (
#22c55e) variant. - Contact — support email added to README and documentation FAQ.
Fixed
- Package size — reduced from 83 MB to 325 KB by excluding
docs/and.github/from.vscodeignore. - tsconfig — added
docstoexcludelist to prevent Astro source files from being compiled by the root TypeScript compiler.
[0.2.5] - 2026-04-11
Fixed
- Cross-platform binary detection — CLI tools are checked for presence on
PATHbefore running, so missing tools return skip instead of a confusing error (notably on Windows with non-English locales). Applies to Hadolint, ShellCheck, golangci-lint, Trivy, and Bandit. - README rewritten — now covers every feature, all 60+ quality checks, Docker Desktop installation, Docker image pull instructions, CLI tool installation for every supported platform, cloud provider setup, and full configuration reference.
[0.2.4] - 2026-04-11
Added
- Stryker — mutation testing provider for JS/TS projects; reports mutation score with killed/survived/no-coverage breakdown (
npm i -D @stryker-mutator/core) - Bearer — SAST security scanning provider that detects sensitive data flows and vulnerabilities (
bearer scan) - Component Inventory — pure Node.js check that scans exported React/Vue/Svelte components and hooks, groups them by UI pattern (Button, Modal, Input, etc.) and flags consolidation opportunities
- Any Coverage — reads generic
coverage-summary.json(Istanbul/NYC/Jest) and reports line/branch/function coverage percentages - LCOV Coverage — parses
lcov.infofiles; works with any language that generates LCOV (Jest, Go, Python coverage, Ruby, etc.) - JSDoc Coverage — estimates JSDoc documentation coverage for JS/TS exported functions and classes (pure Node.js)
- golangci-lint — runs
golangci-lint run --out-format jsonfor Go projects; reports linter violations by severity - GitHub Actions Audit — pure Node.js check that scans
.github/workflows/YAML files for security issues: pinned actions,pull_request_target,actions/github-script, dangerous${{ }}expressions - Empty Tests — detects test files with no assertions (
it/test/expect/assertblocks), multi-language (JS/TS/Python/Go/Java/Rust) - Heavy Imports — flags JS/TS files importing known large libraries (
lodash,moment,rxjs,antd, etc.) without tree-shaking-friendly subpath imports - Coupling Metrics — measures afferent/efferent coupling and instability index per file; flags highly unstable or overly depended-upon modules
- Magic Numbers — detects hardcoded numeric literals that should be named constants, multi-language
- Parameter Count — flags functions/methods with too many parameters (default: warn ≥4, fail ≥7)
- Barrel Files — detects oversized
index.ts/jsre-export barrels that hurt tree-shaking and build performance - Cross-Layer Imports — detects forbidden import direction violations between architectural layers (e.g.
utilsimporting fromcomponents)
Fixed
- Bearer — JSON output was never parsed correctly;
bearer scan --format jsonoutputs findings grouped by severity ({ critical, high, medium, low }) — was expecting a flatfindings[]array, causing all scans to always report “No findings”
[0.2.3] - 2026-04-11
Added
- Git branch status bar item now auto-fetches from remote every 60 seconds and on window focus — ahead/behind counts stay in sync with the remote without manual refresh
Changed
- Git branch status bar item repositioned immediately to the right of VS Code’s built-in sync button for a more natural grouping
- Git branch status bar item no longer shows the branch name (VS Code already shows it) — displays icon + ahead/behind indicators only
- GitHub auth status bar item no longer shows the account name — displays icon only (account name visible in tooltip)
- Clicking a branch in the Git Branches sidebar now opens it on GitHub (compare view) instead of checking it out locally
- Removed “Delete Multiple Branches” and “Delete Gone Branches” buttons from the Git Branches panel title bar
Fixed
skill-template/SKILL.mdwas excluded from the packaged.vsixby.vscodeignore— caused “Error creating skill: ENOENT” when running the Create Skill command
[0.2.2] - 2026-04-08
Changed
- Changelog translated to English
[0.2.1] - 2026-04-08
Fixed
- Fixed Marketplace metadata links (
repository,bugs,homepage) - Windows PowerShell commands now use
spawnwith an array of arguments instead ofexecwith a string — fixes nested-quote issues when passing PowerShell scripts through cmd.exe killByPorton Windows: rewritten withspawn, timeout, and double-resolve guardgetPortPidson Windows: rewritten withspawn— more reliable delivery of multi-line PS scriptsgetProcessDescriptionon Windows: rewritten withspawnSyncand argument arraylsofon macOS/Linux: now correctly handlesENOENT(lsof not installed) — resolves silently instead of throwinggetOrCreateTerminal: addedenvparameter for passing environment variables; whenenvis provided a fresh terminal is always created so the env takes effectrunInTerminal: forwardsenvtogetOrCreateTerminal
Changed
- IDE detection now distinguishes three IDE types: Cursor, Antigravity, VS Code (previously Antigravity fell into the VS Code category without its own
%APPDATA%\Antigravitypath) - Linux: user config path now respects
XDG_CONFIG_HOME(instead of a hardcoded~/.config) - Marketplace extension categories updated for better discoverability
[0.2.0] - 2026-04-08
Changed
- Renamed extension to SnakeFlow
- Servers are now a fully dynamic array — any number of servers, any language or runtime (Next.js, Vite, Django, Rails, Go, etc.)
- Package manager auto-detected from lockfile:
pnpm-lock.yaml,yarn.lock,bun.lockb,package-lock.json - Database actions auto-detected from project dependencies (Prisma, Drizzle, TypeORM, Knex) — no manual config needed
- Status bar completely revamped: git branch with ahead/behind indicators, GitHub auth status, per-server live monitoring
Added
- Git Branches sidebar panel — view, checkout, and delete branches without leaving the IDE
- Pull Requests sidebar panel — view open PRs, send PR context to Cursor Chat for AI review
- GitHub Issues — search, filter by milestone / assignee / date, create branch from issue, send to Cursor Chat
- GitHub Actions — run workflows locally via
act - Semgrep security scan with auto / security-audit / CI dry-run profiles
- Git commands — pull from origin, sync from upstream, push to origin
- Gemini AI title generation for GitHub Issues (optional, requires API key)
- Custom database actions — fully configurable via settings UI with variable substitution
- Custom container actions — configurable Docker Compose or any infra command
- Status bar: git branch indicator shows current branch name, commits ahead/behind, click to pull
- Status bar: GitHub auth indicator — shows signed-in account or prompts to sign in
devManager.git.defaultBranchsetting — fallback when remote HEAD cannot be detecteddevManager.git.protectedBranchessetting — branches requiring extra confirmation before deletedevManager.prToChat.prompt— custom prompt prepended when sending PR to Cursor ChatdevManager.issueToChat.prompt— custom prompt prepended when sending issue to Cursor ChatdevManager.github.defaultMilestone— default milestone for new issuesdevManager.gemini.apiKey/devManager.gemini.model— Gemini AI integration settingsdevManager.database.actions— fully custom database action menu
Fixed
- Cross-platform terminal disposal errors (try-catch in sendCtrlC/disposeTerminal)
- Server status now uses combined check: port + terminal presence (avoids false positives from external processes)
[0.1.0] - 2026-02-14
Added
- Project auto-detection from workspace folder
- Server control: start/stop/restart dev servers
- Quality Hub: built-in + CLI checks, custom project scripts, live sidebar results
- Database / Prisma: Studio, generate, migrate, db push, seed, reset
- GitHub PR AI Feedback reports (requires
ghCLI) - Docker Compose management
- Project tree view in sidebar
- Status bar with current project and server status
- Cross-platform support (Windows, macOS, Linux)