Skip to content

refactor: use detected tool name everywhere (TOOL_NAME == detected name) - #16

Merged
FZ2000 merged 3 commits into
mainfrom
refactor/manifest-detected-name
Mar 6, 2026
Merged

refactor: use detected tool name everywhere (TOOL_NAME == detected name)#16
FZ2000 merged 3 commits into
mainfrom
refactor/manifest-detected-name

Conversation

@FZ2000

@FZ2000 FZ2000 commented Mar 6, 2026

Copy link
Copy Markdown
Owner

Problem

Appliers used short internal names (claude, gemini, copilot) for TOOL_NAME while tool detection returned full names (claude-code, gemini-cli, github-copilot). This mismatch meant status.py needed a get_applier() roundtrip just to find the right manifest file — and made the naming confusing throughout.

Changes

Applier Before After
ClaudeApplier TOOL_NAME = "claude" TOOL_NAME = "claude-code"
GeminiApplier TOOL_NAME = "gemini" TOOL_NAME = "gemini-cli"
CopilotApplier TOOL_NAME = "copilot" TOOL_NAME = "github-copilot"
  • Extractors: source_tool field updated to match (claudeclaude-code, etc.)
  • status.py: removed get_applier() indirection — ToolManifest(name) works directly; also brings in the manifest-based synced/out of sync consistency check
  • Tests: updated throughout

Result

Detected name, TOOL_NAME, manifest filename, and source_tool in cache are all consistent — no more translation layer needed.

207 tests passing.

Ace added 3 commits March 6, 2026 12:40
Previously appliers used short internal names ('claude', 'gemini', 'copilot')
for TOOL_NAME, while detection returned full names ('claude-code', 'gemini-cli',
'github-copilot'). This required a get_applier() roundtrip in status.py just to
find the right manifest file.

Changes:
- ClaudeApplier.TOOL_NAME: 'claude' → 'claude-code'
- GeminiApplier.TOOL_NAME: 'gemini' → 'gemini-cli'
- CopilotApplier.TOOL_NAME: 'copilot' → 'github-copilot'
- Extractors: source_tool field updated to match (claude→claude-code, etc.)
- status.py: remove get_applier() indirection — ToolManifest(name) works directly
- status.py: bring in manifest-based consistency check (synced/out-of-sync)
- Tests updated throughout
- Remove _ALIASES from appliers/__init__.py and extractors/__init__.py
  ('claude', 'gemini', 'copilot' no longer accepted; use full names)
- get_applier() and get_extractor() now raise with a helpful message
  listing valid tool names on invalid input
- README: update --tools examples to use full names (gemini-cli, not gemini)
- src/ui.py: update docstring example to 'claude-code'
@FZ2000
FZ2000 merged commit 7e4a723 into main Mar 6, 2026
4 checks passed
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