Skip to content

fix(sync-config-ai): extend TUI to 10 envs, 5 categories, native entries, drift detection (v1.5.1)#14

Merged
savez merged 10 commits intomainfrom
007-sync-ai-config-tui
Apr 2, 2026
Merged

fix(sync-config-ai): extend TUI to 10 envs, 5 categories, native entries, drift detection (v1.5.1)#14
savez merged 10 commits intomainfrom
007-sync-ai-config-tui

Conversation

@savez
Copy link
Copy Markdown
Owner

@savez savez commented Apr 2, 2026

Summary

  • 10 AI environments (was 5): adds Cursor, Windsurf, Continue.dev, Zed, Amazon Q alongside VS Code Copilot, Claude Code, OpenCode, Gemini CLI, GitHub Copilot CLI
  • 5 category types (was 4): adds Rules with MDC format (Cursor), markdown (others), TOML templates (Gemini commands), YAML merge (Continue.dev)
  • 6 TUI tabs: Environments (read-only detection) + one tab per category (MCPs, Commands, Rules, Skills, Agents) — each with Native/Managed dual sections
  • Native entries: read-only section showing unmanaged items already in each tool's config; press i to import into dvmi management
  • Drift detection: ⚠ indicator on managed entries that diverged from file state; Enter opens resolution view (re-deploy / accept-changes)
  • Env var masking: MCP env vars shown as first6*** by default; press r to reveal
  • Chezmoi auto-sync: ai-config.json synced after every create/edit/delete/activate/deactivate
  • Schema v2: ai-config.json upgraded with automatic v1→v2 migration
  • --json output extended with nativeEntries, rule category, drifted boolean per entry

Test plan

  • pnpm test — all 771 tests pass across unit, services, integration, snapshot suites
  • pnpm lint — no ESLint/Prettier violations
  • dvmi sync-config-ai --json — outputs valid JSON with all 5 category types and nativeEntries
  • dvmi sync-config-ai --help — exits 0, mentions AI/config/sync
  • Manual: run TUI, verify 10 environments detected, Native/Managed sections visible in each category tab

Version

Patch release 1.5.1 — extends the sync-config-ai command introduced in 1.5.0.

🤖 Generated with Claude Code

savez and others added 10 commits April 1, 2026 10:57
Introduces `dvmi sync-config-ai` — an interactive full-screen TUI for
managing AI coding tool configurations (MCP servers, commands, skills,
agents) across VS Code Copilot, Claude Code, OpenCode, Gemini CLI, and
GitHub Copilot CLI from a single place.

Key capabilities:
- Filesystem scan on every launch detects installed AI tools (project +
  global paths, including ~/.config/opencode/ for globally installed OpenCode)
- 5-tab TUI: Environments (read-only) + dedicated tab per category type
  (MCPs | Commands | Skills | Agents) — each tab shows only its entries
- Inline forms with type-specific fields and a mini text editor for
  multi-line content; Environments multi-select filtered to compatible
  tools per compatibility matrix
- Full CRUD: create, edit, deactivate/activate, delete with confirmation
- Entries persist in ~/.config/dvmi/ai-config.json and are deployed to
  target environment config files on save
- Chezmoi integration: auto-syncs AI config after mutations if configured;
  shows setup tip in footer otherwise
- --json flag for non-interactive/CI use

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Format all source and test files with Prettier (space-free destructuring,
consistent import spacing). Add project-level Claude Code slash commands
under .claude/commands/ for speckit workflow integration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add .claude/ to .gitignore and remove tracked files — project-level
Claude Code commands and memory are local-only artifacts.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace stale content (old repo references, incorrect versions) with
the actual release history from v1.0.0 to v1.4.2, plus an [Unreleased]
section documenting the sync-config-ai feature landing in v1.5.0.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Added dotfiles, prompts, vuln, logs, security, sync-config-ai, and welcome
commands that existed in src/ but were not documented in the README.
Also updated the "What It Does" feature table to reflect the full feature set.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ies, drift detection

- Add 5 new AI environments: Cursor, Windsurf, Continue.dev, Zed, Amazon Q
- Add Rules category (5th type) with MDC/markdown deployment support
- Add native entry parsing — show unmanaged items in read-only Native section
- Add drift detection with re-deploy/accept-changes resolution UI
- Add env var masking for MCP entries with r to reveal, i to import native
- Wire chezmoi sync after every store mutation
- Bump schema to v2 with migration, expand --json output
- Bump version to 1.5.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add v1.5.1 changelog entry with new environments, categories, native entries, drift detection
- Update README sync-config-ai section with 10 envs, TUI sections, key bindings, --json flag

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
# Conflicts:
#	CHANGELOG.md
#	CLAUDE.md
#	README.md
#	package.json
#	src/commands/sync-config-ai/index.js
#	src/formatters/ai-config.js
#	src/services/ai-config-store.js
#	src/services/ai-env-deployer.js
#	src/services/ai-env-scanner.js
#	src/types.js
#	src/utils/tui/form.js
#	src/utils/tui/tab-tui.js
#	tests/integration/sync-config-ai.test.js
#	tests/services/ai-config-sync.test.js
#	tests/snapshots/__snapshots__/sync-config-ai.test.js.snap
#	tests/snapshots/sync-config-ai.test.js
#	tests/unit/services/ai-config-store.test.js
#	tests/unit/services/ai-env-deployer.test.js
#	tests/unit/services/ai-env-scanner.test.js
@savez savez merged commit 2e7adf9 into main Apr 2, 2026
3 checks passed
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

Coverage Report

@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 2, 2026

QA Report

Check Status
🔍 Lint
🧪 Test & Coverage
🔐 Secrets Scan

Generated automatically by QA Workflow

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant