Перейти до вмісту

Усі налаштування

Усі параметри в просторі імен devManager.*.

Редагування:

  • Ctrl+, → пошук @ext:vaulttec-dev.snakeflow-dev-manager
  • Або .vscode/settings.json (workspace, окремо для кожного проєкту)

Примітка: Quality Hub реєструє понад 90 провайдерів і сотні ключів devManager.quality.<providerId>.*. Таблиці нижче — репрезентативні приклади за категоріями. Повний актуальний перелік переглядайте в Налаштуваннях IDE: Ctrl+, → пошук devManager.quality. — біля кожного ключа є вбудований опис.


Проєкт

ПараметрТипЗа замовчуваннямОпис
devManager.project.namestringautoІдентифікатор проєкту
devManager.project.dirstringautoАбсолютний шлях до кореня
devManager.project.packageManagerenum"auto"auto | npm | pnpm | yarn | bun
devManager.project.serversarray[]Конфігурації dev-серверів
devManager.project.composePathstring""Шлях до Compose (порожньо = авто)
devManager.project.containerActionsarrayautoМеню контейнерів

Git і GitHub

ПараметрТипЗа замовчуваннямОпис
devManager.git.defaultBranchstring"main"Fallback назви гілки
devManager.git.protectedBranchesstring[]["main","master","develop","staging","production"]Підтвердження перед видаленням
devManager.github.defaultMilestonestring""Milestone для нових issues
devManager.prToChat.promptstring""Промпт для PR у чат
devManager.issueToChat.promptstring""Промпт для Issue у чат

SnakeFlow Cloud

ПараметрТипЗа замовчуваннямОпис
devManager.cloud.apiUrlstringhttps://snakeflow.pages.devБазовий URL сервісу синхронізації (HTTPS). Змінюйте лише якщо використовуєте власний хост.

Детальніше: Синхронізація налаштувань у хмарі → — команди та приватність.


Team Tracker

ПараметрТипЗа замовчуваннямОпис
devManager.team.enabledbooleanfalseУвімкнено — облік активних хвилин за UTC-добу та відправка в team API після входу.
devManager.team.idleWindowMinutesnumber5Заявлене вікно тиші (1–15). Зміна перезапускає Team Tracker. Якщо ви вже в workspace, collector фактично бере мінімум idle_window_minutes з сервера для кожного workspace. Без membership використовується вбудовані 5 хв до вступу в workspace.
devManager.team.useActivityWatchbooleantrueВикористовувати локальний ActivityWatch для системної миші/клавіатури.
devManager.team.requireActivityWatchbooleantrueЖорстка вимога: хвилини не рахуються, доки ActivityWatch недоступний.
devManager.team.activityWatchUrlstringhttp://localhost:5600Базовий URL REST API локального aw-server.
devManager.team.requireTrackingbooleanfalseЯкщо true — попередження, коли трекінг вимкнено і сесію не запущено.
devManager.team.idleSleepWindowstring""Локальний інтервал HH:MM-HH:MM, у якому collector примусово IDLE. Порожньо = вимкнено. Див. Інтервал сну.

Allowlist програм (regex по назві вікна / app з ActivityWatch) — це не параметр devManager.*: адмін workspace налаштовує на сервері (вкладка Cloud Team або команда SnakeFlow: Team Tracker — Edit App Allowlist). Детальніше: Team Tracker → — двофакторна активність, інтервал сну, статус-бар, ActivityWatch, internal/external, лог.


Docker і CI

ПараметрТипЗа замовчуваннямОпис
devManager.docker.composeCommandstring"docker compose"CLI Compose
devManager.ci.workflowsPathstring".github/workflows"Шлях до workflow GitHub Actions

AI (Gemini + Dictation)

ПараметрТипЗа замовчуваннямОпис
devManager.gemini.apiKeystring""Ключ Google Gemini для заголовків issues та голосового введення
devManager.gemini.modelstring"gemini-2.5-flash"Назва моделі
devManager.gemini.dictationLanguageenum"auto"Мова для транскрибації голосового введення. auto = Gemini визначає автоматично. Варіанти: uk, en, de, fr, es, pl, it, pt, nl, cs, ja, zh, ko

Детальніше: Голосове введення →


Quality Hub — загальне

ПараметрТипЗа замовчуваннямОпис
devManager.quality.customChecksarray[]Кастомні перевірки
devManager.quality.skipDirsstring[][]Додаткові назви папок (не glob), що додаються до вбудованих виключень
devManager.quality.skipFilesstring[][]Відносні шляхи від кореня проєкту (слеші /), шаблони на кшталт *.vsix або **/file.ext — для багатьох built-in і агрегації Semgrep
devManager.quality.timeoutnumber30Макс. час перевірки (хв)
devManager.quality.maxBuffernumber50Макс. stdout (МБ)
devManager.quality.chatReportenum"onFail"auto | onFail | manual | never — коли відкривати чат зі звітом після прогону
devManager.quality.chatPromptstring""Текст на початку звіту в чат

Quality Hub — хмарні провайдери

Кожен сервіс має devManager.quality.<id>.enabled (більшість за замовчуванням вимкнені; CodeQL — увімкнений). Обов’язкові поля різні — немає одного універсального token для всіх.

Повний перелік ключів і поведінка: Хмарні провайдери →

Ідентифікатори в налаштуваннях (частина з них описана в хмарних провайдерах): sonarcloud, snyk, codecov, coveralls, codeclimate, codacy, deepsource, coderabbit, qodo, greptile, cubic, codeant, qlty, codeql, aikido, socket, … — повний список шукайте devManager.quality. у Налаштуваннях.

Приклади (деталі — у статті про cloud):

"devManager.quality.sonarcloud.enabled": true,
"devManager.quality.sonarcloud.token": "",
"devManager.quality.sonarcloud.projectKey": "",
"devManager.quality.sonarcloud.serverUrl": "https://sonarcloud.io",
"devManager.quality.snyk.token": "",
"devManager.quality.snyk.orgId": "",
"devManager.quality.coderabbit.enabled": true,
"devManager.quality.coderabbit.apiKey": ""

Quality Hub — вбудовані перевірки

Замість <check> — назва перевірки. Спільне:

ПараметрТипЗа замовчуванням
devManager.quality.builtin.<check>.enabledbooleantrue

Приклади порогів:

"devManager.quality.builtin.lineCount.warnLines": 300,
"devManager.quality.builtin.lineCount.failLines": 500,
"devManager.quality.builtin.functionLength.warnLines": 40,
"devManager.quality.builtin.functionLength.failLines": 80,
"devManager.quality.builtin.complexity.warnScore": 10,
"devManager.quality.builtin.complexity.failScore": 20,
"devManager.quality.builtin.fileSize.warnKb": 50,
"devManager.quality.builtin.fileSize.failKb": 200,
"devManager.quality.builtin.importDepth.warnDepth": 4,
"devManager.quality.builtin.importDepth.failDepth": 6,
"devManager.quality.builtin.dependencyCount.warnAt": 50,
"devManager.quality.builtin.dependencyCount.failAt": 100,
"devManager.quality.builtin.parameterCount.warnAt": 4,
"devManager.quality.builtin.parameterCount.failAt": 7,
"devManager.quality.builtin.jscpd.threshold": 5,
"devManager.quality.builtin.jscpd.minLines": 5,
"devManager.quality.builtin.trivy.failOnSeverity": "HIGH",
"devManager.quality.builtin.trivy.warnOnSeverity": "MEDIUM",
"devManager.quality.builtin.trivy.path": "trivy",
"devManager.quality.builtin.golangciLint.warnAt": 5,
"devManager.quality.builtin.golangciLint.failAt": 20,
"devManager.quality.builtin.golangciLint.path": "golangci-lint",
"devManager.quality.builtin.bandit.path": "bandit",
"devManager.quality.builtin.bearer.path": "bearer",
"devManager.quality.builtin.returnTypes.warnAt": 10,
"devManager.quality.builtin.returnTypes.failAt": 50,
"devManager.quality.builtin.noManualMigrations.enabled": true,
"devManager.quality.builtin.noManualMigrations.severity": "error",
"devManager.quality.builtin.noManualMigrations.adapters": ["drizzle", "prisma", "atlas"],
"devManager.quality.builtin.noManualMigrations.checkRemoved": true,
"devManager.quality.builtin.noManualMigrations.gitLookback": 50,
"devManager.quality.builtin.prismaMigrateStatus.realtime": true,
"devManager.quality.builtin.squawk.dataRisk": "warn",
"devManager.quality.builtin.squawk.requireDownMigration": false,
"devManager.quality.builtin.migrationsCiGate.enabled": true,
"devManager.quality.semgrep.config": "auto"

Назви вбудованих перевірок:

lineCount · functionLength · complexity · fileSize · longLines · importDepth · directoryDepth · dependencyCount · todoCount · commentedCode · duplicateFiles · testRatio · mixedIndent · encoding · secretLeaks · debugLeaks · gitignoreCheck · magicNumbers · parameterCount · barrelFiles · couplingMetrics · crossLayerImports · componentInventory · heavyImports · anyCoverage · jsdocCoverage · lcovCoverage · actionsAudit · emptyTests · jscpd · knip · dependencyCruiser · pkgAudit · outdatedDeps · licenseCheck · hadolint · shellcheck · golangciLint · bearer · stryker · trivy · bandit · semgrep · act · envConsistency · lockfileSync · nodeVersionConsistency · readmeCheck · changelogCheck · codeownersCheck · tscCheck · asyncAwaitMisuse · errorHandling · returnTypes · reactHookRules · a11yCheck · yamllint · spectral · checkov · sqlfluff · markdownlint · attw · publint · lockfileLint · npmProvenance · syncpack · manypkg · scorecard · typeCoverage · commitlint · noFocusedTests · noManualMigrations · migrationsCiGate · stylelint · prettierCheck · sizeLimit · lighthouseCi · oasdiff · graphqlInspector · bufBreaking · dockle · grype · dive · hardenRunnerAudit · sbom · sentrySourcemaps · trojanSource · rlsCheck · pgtapPresence · sqruff · vale · alex · lychee · promptfoo · dotenvLinter

Профіль якостіdevManager.quality.profile (strict | balanced | vibe, за замовчуванням strict) керує тим, які перевірки типово запускаються. strict — максимальний набір (усі ввімкнені, warning трактується як fail). balanced — той самий набір увімкнень, але warning лишається warning. vibe — за замовчуванням лише «сильні» хмарні та CLI-інструменти. Параметри enabled у конкретного провайдера завжди мають пріоритет. Див. також devManager.quality.warnAsFail — накладання «підвищення» warning до fail.

Realtime Quality

Додаткові у редакторі повторні прогоні для провайдерів із realtime-хуками.

ПараметрТипЗа замовчуваннямОпис
devManager.realtime.enabledbooleantrueГоловний вимикач.
devManager.realtime.onType.enabledbooleantrueПовтор після введення тексту.
devManager.realtime.onSave.enabledbooleantrueПовтор після збереження.
devManager.realtime.precommit.modeenum"warn"off | warn | block — реакція на error-рівень діагностик SnakeFlow на staged файлах. block спрацьовує при запуску SnakeFlow: Pre-commit Gate (devManager.realtime.precommitGate) або якщо команду прив’язано до git-hook.
devManager.realtime.precommit.migrationsModeenum"warn"off | warn | block-strict — додаткова політика для staged шляхів міграцій (prisma/migrations/, drizzle/ тощо). block-strict блокує commit, якщо на цих файлах є будь-яка діагностика SnakeFlow (включно з warning). Може один раз попередити, якщо core.hooksPath вказує не на стандартні .git/hooks.

No Manual Migrations, Prisma Migrate Status (watch) і подібні перевірки можуть оновлювати діагностику при змінах файлів схеми/міграцій, якщо ввімкнено і перевірку, і realtime. Див. No Manual Migrations →.

Pre-commit Gate: ручні міграції

devManager.realtime.precommit.scanners.orphanMigrations (за замовч. true) блокує коміт, якщо в Drizzle migrations/ зафіксовано .sql, тег якого відсутній у meta/_journal.json. Ловить ручні міграції, які обходять drizzle-kit generate. Працює і у VS Code Source Control gate, і в авто-встановленому .git/hooks/pre-commit.

Pre-commit Gate: надсилати помилки у чат

devManager.realtime.precommit.sendFailToChat (за замовч. true) — коли gate блокує коміт (через VS Code Source Control або через термінал через авто-встановлений .git/hooks/pre-commit), SnakeFlow автоматично відкриває поточну панель AI-чату і вставляє список помилок. AI може одразу запропонувати виправлення.

Сирий звіт зберігається у .snakeflow/last-precommit-fail.json (додано до .gitignore). Вимкніть налаштування, щоб зупинити автоматичне надсилання у чат, зберігаючи решту поведінки gate без змін.

Pre-commit Gate: сканування staged-only

Gate сканує post-commit стан робочої директорії — рівно те, що потрапить у HEAD після цього коміту. Перед запуском сканерів SnakeFlow ховає всі незастейджені зміни (як зміни tracked-файлів, так і untracked-файли) шляхом збереження бінарного патчу, а після — відновлює їх. Підхід ідентичний lint-staged і покриває найпоширенішу пастку pre-commit:

Локально виправляєте баг і стейджите іншу зміну через git add -p. Фікс лишається unstaged. vitest / knip / tsc бачать фікс у робочій дир-ї → проходять. А зламаний файл їде у HEAD.

Зі staged-only command-сканери бачать саме той стан, який git збирається закомітити. Fast-path повністю пропускає цю обгортку, якщо немає незастейджених змін (95% комітів — нульовий overhead). Стани mid-merge / rebase / cherry-pick детектяться і не чіпаються. Якщо авто-відновлення фейлиться (рідко: одночасні записи на диск тощо), unstaged-дельта зберігається у .snakeflow/precommit-restore-<ts>.patch із готовою командою git apply для відновлення.

Pre-commit Gate: кастомні перевірки

devManager.realtime.precommit.customChecks дозволяє команді додавати власні перевірки поряд із вбудованими. Два типи:

  • kind: "pattern" — JS regex по доданих рядках diff (scope: "diff", типово) або повному файлу (scope: "file"). Фільтр через filePattern glob (типово **).
  • kind: "command" — shell-команда у корені репозиторію. Ненульовий exit = помилка. Таймаут — devManager.realtime.precommit.customCheckTimeoutMs (типово 30000 мс). Виконується вже у staged-only робочій дир-ї (див. вище).

Кожна перевірка має id (стабільний ідентифікатор), необов’язковий label, і severity ("error" блокує коміт, "warn" — інформативна). Налаштування зберігаються у .vscode/settings.json — після git pull команда отримує однаковий набір.

"devManager.realtime.precommit.customChecks": [
{ "id": "no-todo", "label": "No TODO/FIXME", "kind": "pattern", "pattern": "TODO|FIXME", "filePattern": "src/**/*.{ts,tsx}", "scope": "diff", "severity": "error" },
{ "id": "run-tests", "label": "Unit tests", "kind": "command", "command": "npm test --silent", "severity": "error" }
]

Область дії перевірки: Hub / Реалтайм / Пре-коміт

Кожен провайдер якості має три незалежні рубильники. Їх можна комбінувати довільно — наприклад, залишити перевірку у Quality Hub, вимкнути live-підкреслення, але увімкнути блокування коміту.

РубильникКлюч налаштуванняЗа замовч.Ефект
Hub (Quality Hub, Ctrl+Alt+F)devManager.quality.builtin.<id>.enabledtrue (builtin), false (cloud)Включає / виключає перевірку з пакетного запуску
Реалтайм (live-діагностика)devManager.quality.builtin.<id>.realtimetrueВмикає підкреслення при наборі / збереженні
Пре-коміт (git-шлюз)devManager.quality.builtin.<id>.precommitfalseБлокує коміт, якщо перевірка знаходить помилки у staged-файлах

Ті ж самі три ключі є для cloud-провайдерів під devManager.quality.<id>.*.

Приклад: жорстка пре-коміт-політика

Увімкнути ESLint і Prettier для блокування комітів, але прибрати live-підкреслення від Prettier (щоб не шуміло при кожному натисканні клавіші):

.vscode/settings.json
{
"devManager.quality.builtin.eslint.precommit": true,
"devManager.quality.builtin.prettierCheck.precommit": true,
"devManager.quality.builtin.prettierCheck.realtime": false
}

Як працює precommit-область

Коли devManager.realtime.precommit.mode дорівнює block (за замовчуванням), SnakeFlow збирає всі VS Code діагностики від увімкнених realtime-провайдерів для staged-файлів. До лічильника помилок потрапляють лише провайдери, де .precommit = true. Сім вбудованих сканерів (secrets, envFiles, focusedTests, dangerousPatterns, lockfileDrift, schemaDrift, orphanMigrations) керуються власними ключами devManager.realtime.precommit.scanners.* і завжди враховуються незалежно від прапора .precommit.


Workflows

AI-керовані сценарії: багатокрокові перевірки, візуальна регресія, поріг покриття.

ПараметрТипЗа замовчуваннямОпис
devManager.workflows.anthropicApiKeystring""Ключ Anthropic для кроків AI у workflow
devManager.workflows.claudeModelstring"sonnet"Модель Claude для AI-кроків (підтягується з API)
devManager.workflows.timeoutMinutesnumber60Макс. тривалість одного прогону workflow (хв; 0 = без обмеження)
devManager.workflows.minCoveragenumber80Мінімальне покриття тестами % для проходження
devManager.workflows.maxCostUsdnumber5Макс. витрати на AI (USD) за прогон до зупинки
devManager.workflows.visualTolerancenumber0.1Допустима різниця пікселів % перед прапором візуальної регресії
devManager.workflows.runsPerWorkflownumber1Скільки разів кожен workflow запускається на один тригер
devManager.workflows.watchdogSecondsnumber90Секунд тиші, після яких крок вважається завислим
devManager.workflows.maxChangedFilesnumber50Макс. змінених файлів workflow до зупинки
devManager.workflows.parallelRolesbooleanfalseПаралельний запуск multi-role кроків
devManager.workflows.isolateDatabasebooleantrueОкрема копія БД на кожен прогон
devManager.workflows.viewports.mobilebooleantrueВключити mobile viewport у візуальні / Lighthouse перевірки
devManager.workflows.viewports.tabletbooleanfalseВключити tablet viewport
devManager.workflows.viewports.desktopbooleantrueВключити desktop viewport
devManager.workflows.lighthouseMinobject{performance:70,seo:80}Мінімальні бали Lighthouse (0–100)
devManager.workflows.useApiKeybooleanfalseАвтентифікація запитів workflow за API-ключем
devManager.workflows.testAccountsarray[]Тестові акаунти для входу в workflow
devManager.workflows.customarray[]Власні визначення workflow

Wake Lock

Блокує сон ОС під час активності в редакторі та за потреби під час Quality Hub. Не залежить від обліку хвилин у Team Tracker →. Детально: Wake Lock →.

ПараметрТипЗа замовчуваннямОпис
devManager.wakeLock.enabledbooleantrueГоловний перемикач. false — і трекер активності в статус-барі, і авто Quality Hub не отримують лок.
devManager.wakeLock.autoActivatebooleantrueАвтоматично тримати wake lock на час повного прогону Quality Hub (acquire('Quality Hub')), незалежно від перемикача в статус-барі.
devManager.wakeLock.keepDisplayAwakebooleantrueТримати дисплей увімкненим (ES_DISPLAY_REQUIRED у Windows; на частині Linux дисплей може все одно гаснути).
devManager.wakeLock.idleThresholdSecondsnumber120При перемикачі ON — секунд без сигналів активності перед звільненням активнісного лока (довгограючі task самі по собі не «якорять» лок).
devManager.wakeLock.readyTimeoutMsnumber0Очікування готовності helper (0 = дефолт платформи).
devManager.wakeLock.startRetriesnumber2Повторні спроби запуску helper.
devManager.wakeLock.maxHoldHoursnumber4Якщо refCount лишається більше нуля безперервно стільки годин — попередження в лог і notification (0 = вимкнено). Без примусового release.
devManager.wakeLock.persistLogbooleanfalseДублювати рядки каналу Wake Lock у <workspace>/.vscode/snakeflow-wakelock.log або <workspace>/.cursor/snakeflow-wakelock.log (ротація 1 МБ). Потрібна відкрита папка workspace.

Команди: SnakeFlow: Wake Lock — Toggle / SnakeFlow: Wake Lock — Diagnose (довідник команд →).


Контекст агента

Керування контекстом для AI-агента та автооновлення документації.

ПараметрТипЗа замовчуваннямОпис
devManager.agentContext.structureSync.enabledbooleantrueАвтогенерація знімка структури проєкту для AI-контексту
devManager.agentContext.structureSync.autoSyncbooleantrueПовторна синхронізація знімка при зміні файлів
devManager.docUpdater.commitCountnumber20Скільки останніх комітів аналізувати при автооновленні доків
devManager.docUpdater.filesarray[]Файли документації для підтримки в актуальному стані (шлях + промпт)
devManager.github.defaultMilestonestring""Milestone GitHub за замовчуванням для issues і PR, створених AI
devManager.prToChat.promptstring""Промпт на початку при відправці diff PR у чат AI
devManager.issueToChat.promptstring""Промпт на початку при відправці GitHub issue у чат AI

Див. також