Skip to content

fix: user import preview uses wrong repo destination#41

Closed
softwarecatscomgm wants to merge 45 commits intolbb00:mainfrom
softwarecatscomgm:fix/user-import-preview
Closed

fix: user import preview uses wrong repo destination#41
softwarecatscomgm wants to merge 45 commits intolbb00:mainfrom
softwarecatscomgm:fix/user-import-preview

Conversation

@softwarecatscomgm
Copy link
Copy Markdown

Summary

  • Fix previewImport() not using userTargetDir and userDefaultSourceDir when --user flag is set
  • Before: --user --dry-run showed destination as .claude/settings.json
  • After: correctly shows .claude/user/settings.json
  • Also includes list --diff Repo(P)/Repo(U) column split

Test plan

  • Failing test written first, confirmed failure
  • Fix applied, test passes
  • 850 tests passing, zero TS errors
  • Smoke tested with ais claude settings import settings.json --user --dry-run

dldinternet and others added 30 commits March 9, 2026 21:06
- Fix claude-agents adapter mode from directory to file with .md suffix
- Add claude-commands adapter for .claude/commands/ management
- Add --user flag to import command for user-level config (~/.claude/)
- Add import-all command: batch import with single git commit,
  symlink skip via lstat(), interactive/dry-run/force/quiet support
- Register import-all in registerAdapterCommands for all tools

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
When --force overwrites identical content, git commit fails with
"nothing to commit". Check for staged changes before committing
and print informational message instead of crashing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Claude Code commands can be flat .md files or directories containing
sub-commands (e.g., bowser/, opsx/). Hybrid mode discovers both.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Both adapters now support directories alongside .md files,
matching the commands adapter change in 8f3f548.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… adapters (AGT-9)

Add 4 new Claude Code adapters to ai-rules-sync:
- output-styles (directory mode)
- status-lines (directory mode)
- agent-memory (directory mode)
- settings (file mode with .json suffix resolution)

Also fixes 5 pre-existing test failures (mode: file→hybrid for claude-agents/commands/rules)
and adds 120 new tests bringing all fork-modified files to 80%+ coverage.

525 tests passing, 0 failures.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Remove "(powered by linkany X.Y.Z)" from version output string.
Bump version to 0.8.0-beta.2.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…apters

feat(claude): add output-styles, status-lines, agent-memory, settings adapters
…ve output-styles

- Remove claude-output-styles adapter (.claude/output-styles does not exist)
- Add userTargetDir to claude-status-lines pointing to ~/.claude/status_lines
- Add changeset for minor version bump
Add claude-settings, claude-status-lines, agents-md adapters with
user-import support. Add list command for showing adapter status.
Improve sync engine with user rule handling. Add tests.
Integrates upstream changes while preserving all fork-only features:
- 6 Claude adapters (commands, rules, settings, status-lines, agent-memory, agents)
- import-all and list commands
- User-mode support (userTargetDir, userDefaultSourceDir, skipIgnore)
- Hybrid mode support

Upstream features integrated:
- sourceDir object format (file/directory modes)
- init --only/--exclude tool filtering
- Wildcard (*) config fallback
- Local path symlink support (ais use /path)
- Config extensibility refactor (typed helpers)
- VitePress documentation site

Conflict resolutions (5 files):
- pnpm-lock.yaml: deleted for regeneration
- CHANGELOG.md: accepted fork version (managed via changesets)
- .gitignore: merged both sides' additions
- package.json: kept fork version 0.8.0-beta.3 and deps, added vitepress
- agents-md.ts: adopted upstream direct-export pattern, preserved fork's
  findAgentsMdInDir() for case-insensitive filesystem safety

Semantic adapter conflicts (auto-merged, verified):
- claude-rules.ts: fork's hybrid mode preserved (upstream had file mode)
- claude-agents.ts: fork's hybrid mode preserved (upstream had directory mode)

See MERGE_NOTES.md for full conflict analysis and resolution details.
Resolve 3 issues discovered during post-merge verification:
- Add vite ^7.0.0 devDependency to fix vitest/vitepress peer conflict
- Update agents-md tests for nested configPath ['agentsMd', 'file']
- Fix inferDefaultMode to return adapter.tool instead of configPath key

Regenerate pnpm-lock.yaml for merged dependencies.
Finalize MERGE_NOTES.md with complete conflict inventory, resolution
rationale, interface audit results, test fix log, and follow-up items.

Upstream range: aa53caa..6b562a3
Tests: 827 passed, 0 failed (93 files)
Runs type check, build, and tests on Node 20/22.
Also includes spec status updates from upstream merge tasks.
Add vitest.config.ts with v8 coverage provider and 80% global thresholds.
Add 18 new test files covering git, plugins, commands, adapters, dotany,
and utilities. All 802 tests pass with zero failures.
dldinternet and others added 15 commits March 23, 2026 20:04
…very

Scans project target directories for Claude files regardless of ais
management status. Supports type filtering, quiet mode, and cross-refs
with project config for i/l status markers. Extracts reusable
scanAdapterTargetDir() from import-all discovery logic.
Shows all entries across local disk, repo, and user config in a single
table with per-source status columns (l/i/a/-). Supports type filtering,
quiet mode (tab-separated), and graceful handling when no repo configured.
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.

2 participants