அம்சங்கள்

சரிபார்த்தலும் பழுதுநீக்கமும்

கடைசியாகப் புதுப்பித்தது 19 அக்டோபர், 2026
ccam 0.6.0 மற்றும் Claude Code 2.1.302 உடன் சரிபார்க்கப்பட்டது

இந்தப் பக்கம் ஆங்கிலத்திலிருந்து இயந்திரம் மூலம் மொழிபெயர்க்கப்பட்டது. திருத்தங்கள் வரவேற்கப்படுகின்றன. இந்தப் பக்கத்தை GitHub-இல் திருத்துங்கள்

இந்தப் பக்கத்தில்

ccam doctor உங்கள் ccam நிறுவலைச் சரிபார்க்கிறது: Claude Code binary, ஒவ்வொரு கணக்கின் கோப்புறை, உள்நுழைவு, பகிர்வு இணைப்புகள், பகிரப்பட்ட MCP சர்வர்கள், usage endpoint, உங்கள் குறுக்குவழிக் கட்டளைகள். ccam doctor --fix தரவை இழக்காமல் செய்யக்கூடியவற்றைச் சரிசெய்கிறது, அது மாற்றும் எந்தக் கோப்பையும் முதலில் ஒரு காப்புப்பிரதிக் கோப்புறைக்கு நகர்த்துகிறது. ccam <name> பகிர்வு இணைப்புச் சிக்கலுடன் நிற்கும்போது, கோப்புகளைக் கையால் மீட்டெடுத்த பிறகு, அல்லது Claude Code புதுப்பிப்புக்குப் பிறகு இதை இயக்குங்கள்.

பயன்பாடு

ccam doctor                  # check everything, change nothing
ccam doctor --fix            # check, then repair what is safe to repair
ccam --dry-run doctor --fix  # report only: what --fix would repair

ஒவ்வொரு கண்டுபிடிப்பும் ஒரு குறியுடன் கூடிய ஒரு வரி: ✓ சரி, · தகவல், ! எச்சரிக்கை, ✗ பிழை. கணக்குக் கண்டுபிடிப்புகள் கணக்கின் பெயருடன் தொடங்கும்.

$ ccam doctor
✓ Claude Code 2.1.302 (Claude Code) (/home/me/.local/bin/claude)
! personal: folder permissions are 755 (should be 0700)
! personal: .credentials.json permissions are 644 (should be 0600)
✓ personal: login valid (me@example.com)
✗ personal: /home/me/.local/share/ccam/profiles/personal/settings.json: set to shared but is a real file, not a link
· personal: unknown entries (Claude Code layout may have changed): newthing
! work: not logged in → `ccam login work`
✓ work: share links OK
! missing shortcuts in /home/me/.local/bin: ccp

`ccam doctor --fix` repairs what it can.

--fix உடன், சரிசெய்யப்பட்ட ஒவ்வொரு கண்டுபிடிப்பும் → fixed என்று முடியும்:

$ ccam doctor --fix
✓ Claude Code 2.1.302 (Claude Code) (/home/me/.local/bin/claude)
! personal: folder permissions are 755 (should be 0700) → fixed
! personal: .credentials.json permissions are 644 (should be 0600) → fixed
✓ personal: login valid (me@example.com)
✗ personal: /home/me/.local/share/ccam/profiles/personal/settings.json: set to shared but is a real file, not a link → fixed
· personal: unknown entries (Claude Code layout may have changed): newthing
! work: not logged in → `ccam login work`
✓ work: share links OK
! missing shortcuts in /home/me/.local/bin: ccp → fixed

Options

Option என்ன செய்யும் இயல்புநிலை
--fix பாதுகாப்பாகப் பழுதுநீக்கக்கூடியவற்றைச் சரிசெய்யும் (மாற்றப்பட்ட கோப்புகள் காப்புப்பிரதி எடுக்கப்படும்) off
--dry-run (global) ஒவ்வொரு சரிபார்ப்பையும் இயக்கும், ஆனால் --fix உடனும் எதையும் சரிசெய்யாது off

ccam doctor எந்த argument-ஐயும் ஏற்காது. அது --dry-run-ஐ மதிக்கும்: ccam --dry-run doctor --fix ccam doctor அச்சிடும் அதே கண்டுபிடிப்புகளை அச்சிட்டு, எதையும் மாற்றாது.

குறைந்தது ஒரு ✗ கண்டுபிடிப்பு சரிசெய்யப்படாமல் இருந்தால் exit code 1, இல்லையென்றால் 0. எச்சரிக்கைகளும் தகவல்களும் ஒருபோதும் இயக்கத்தைத் தோல்வியடையச் செய்யாது. --fix இல்லாமல் இயக்கம் தோல்வியடைந்தால், ccam ஒரு வெற்று வரியுடனும் `ccam doctor --fix` repairs what it can. உடனும் முடியும். ஏற்ற முடியாத config-உம் 1 மற்றும் ஒரு ccam: பிழையுடன் முடியும்.

இது எப்படி வேலை செய்கிறது

internal/cli/doctor.go ~/.config/ccam/config.toml-ஐ ஏற்றி, internal/doctor/doctor.go-இல் உள்ள doctor.Run-ஐ அழைக்கிறது; அது சரிபார்ப்புகளை ஒரு நிலையான வரிசையில் இயக்கி, கண்டுபிடிப்புகளைத் திருப்பித் தருகிறது. --fix Options.Fix ஆக அனுப்பப்படுகிறது, dry run-இல் அது false ஆக அமைக்கப்படும்.

நடுப் பகுதி ஒவ்வொரு கணக்குக்கும் ஒருமுறை இயங்கும். சரிபார்ப்புகளும், ஒவ்வொன்றுக்கும் --fix என்ன செய்கிறது என்பதும்:

  1. Claude Code பதிப்பு (checkClaude). launcher செய்வது போலவே claude binary-ஐக் கண்டறிந்து claude --version-ஐ இயக்குகிறது. பதிப்பு 2.1.302-இல் தொடங்கவில்லை என்றால், அதாவது ccam-இன் கோப்புறை அமைப்பு சரிபார்க்கப்பட்ட பதிப்பில் (doctor.LayoutVersion), அது · ccam was verified against the folder layout of Claude Code 2.1.302. Any 'unknown entries' below may mean the layout changed என்பதைச் சேர்க்கிறது. binary இல்லாமையும் தோல்வியடையும் --version-உம் பிழைகள். சரிசெய்தல் இல்லை.
  2. சூழலில் உள்ள credentials (checkAuthEnv). CLAUDE_CODE_OAUTH_TOKEN, ANTHROPIC_API_KEY அல்லது ANTHROPIC_AUTH_TOKEN அமைக்கப்பட்டிருந்தால் எச்சரிக்கிறது: அந்த shell-இலிருந்து தொடங்கும் ஒவ்வொரு கணக்கும் அதைப் பெறும், Claude Code கணக்கின் சொந்த உள்நுழைவை விட அதற்கு முன்னுரிமை கொடுக்கும். சரிசெய்தல் இல்லை; அதை நீங்களே நீக்குங்கள்.
  3. கோப்புறை (checkProfile). கணக்குக் கோப்புறை இல்லாதது பிழை, அந்தக் கணக்கின் சரிபார்ப்புகள் அங்கேயே முடியும். group அல்லது other bits ஏதேனும் அமைக்கப்பட்ட அனுமதிகள் எச்சரிக்கை; --fix chmod 0700-ஐ இயக்கும்.
  4. உள்நுழைவுக் கோப்பு (checkCredentials). .credentials.json lstat மூலம் சரிபார்க்கப்படுகிறது. ஒவ்வொரு கணக்குக்கும் சொந்த token இருக்க வேண்டும் என்பதால், symlink பிழை, அது சரிசெய்யப்படாது. 0600 அல்லாத mode எச்சரிக்கை; --fix chmod 0600-ஐ இயக்கும். பிறகு உள்நுழைவு படிக்கப்படுகிறது (macOS-இல் முதலில் Keychain-இலிருந்து). உள்நுழைவு இல்லாதது ccam login <name>-ஐச் சுட்டும் எச்சரிக்கை. காலாவதியான refresh token login expired பிழை; காலாவதியான access token வெறும் தகவல் மட்டுமே, ஏனெனில் அடுத்த தொடக்கத்தில் Claude Code அதைப் புதுப்பிக்கும். இவற்றில் எதுவும் சரிசெய்யப்படாது.
  5. பகிர்வு இணைப்புகள் (share.Check). share.Layout-இல் உள்ள ஒவ்வொரு பாதையையும் கணக்கின் பகிர்வு அமைப்புகளுடன், lstat மற்றும் readlink-ஐ மட்டும் பயன்படுத்தி ஒப்பிடுகிறது. அது நான்கு வகைகளைத் தெரிவிக்கிறது: இல்லாத இணைப்பு, வேறிடத்தைச் சுட்டும் இணைப்பு, இணைப்பு இருக்க வேண்டிய இடத்தில் உண்மையான கோப்பு, இப்போது local ஆக உள்ள உருப்படிக்கு மீதமிருக்கும் இணைப்பு. இல்லாத இணைப்பு எச்சரிக்கை, மற்றவை பிழைகள்.
  6. தெரியாத உள்ளீடுகள் (checkUnknownEntries). Claude Code அமைப்பு மாறியிருக்கலாம் என்பதற்கான குறிப்பாக, கணக்குக் கோப்புறையில் ccam-க்குத் தெரியாத (share.Known) மேல்நிலைப் பெயர்களைப் பட்டியலிடுகிறது. தகவல் மட்டுமே.
  7. Plugin பாதைகள் (checkPlugins). Plugin registries (installed_plugins.json, known_marketplaces.json) absolute பாதைகளைச் சேமிக்கின்றன. ஒவ்வொரு குழுவின் plugins/-இலும், ஒரு கணக்கின் கோப்புறை வழியாகச் செல்லும் பாதைகள் அந்தக் கணக்கு நீக்கப்படும்போதோ பெயர் மாற்றப்படும்போதோ உடைந்துவிடும். --fix அவற்றை profile.RewritePluginPaths மூலம் குழுக் கோப்புறைக்கு மாற்றி எழுதுகிறது; இது registry கோப்பின் atomic எழுதுதல்.
  8. MCP சர்வர்கள் (checkMCP). ஒவ்வொரு குழுவின் mcp.json-ஐயும் ஒருமுறை ஏற்றுகிறது. படிக்க முடியாத கோப்பு பிழை; mcp.Validate-இல் தோல்வியடையும் சர்வர் எச்சரிக்கை. சரிசெய்தல் இல்லை.
  9. Usage பதில் வடிவம் (checkUsageFormat). cache இல்லாமல், வழக்கமான 3 வினாடி வரம்புடன், ஒரு கணக்கு பதில் அளிக்கும் வரை ஒன்றன்பின் ஒன்றாக usage endpoint-இடம் கேட்கிறது. பதில் இனி parse ஆகவில்லை என்றால், ccam usage நிலை வரி cache-க்குத் திரும்பும் என்று எச்சரிக்கிறது. network-ஐப் பயன்படுத்தும் ஒரே சரிபார்ப்பு இதுதான்.
  10. குறுக்குவழிகள் (checkShims). ஏதாவது ஒரு கணக்குக்குக் குறுக்குவழி இருந்தால் மட்டுமே. ~/.local/bin-இல் இல்லாத இணைப்புகள் எச்சரிக்கை; --fix shim.Install-ஐ அழைக்கிறது, அது இல்லாத இணைப்புகளை மட்டுமே உருவாக்கும், மற்ற கோப்புகளை ஒருபோதும் தொடாது. PATH-இல் இல்லாத bin கோப்புறை எச்சரிக்கை, அது சரிசெய்யப்படாது.

தொடக்கப் பாதை இல்லாத இணைப்பை அந்த இடத்திலேயே உருவாக்குகிறது, ஆனால் தரவை இழக்கக்கூடிய எதற்கும் நின்று இங்கே சுட்டிக்காட்டுகிறது:

$ ccam work
ccam: stopped because of share link problems:
  /home/me/.local/share/ccam/profiles/work/CLAUDE.md: set to shared but is a real file, not a link
Repair them with `ccam doctor --fix`, then run again

எந்தப் பகிர்வு இணைப்புச் சிக்கலுக்கும், --fix கணக்கின் பகிர்வு அமைப்புகளைத் தற்போதைய நிலையாகவும் இலக்கு நிலையாகவும் கொடுத்து share.Build-ஐ அழைக்கிறது, பிறகு Plan.Apply-ஐ. Build வட்டில் உள்ளதிலிருந்து ஒவ்வொரு படியையும் மீண்டும் பெறுகிறது, ccam share பயன்படுத்தும் அதே திட்டம், அதனால் பழுதுநீக்கம் பகிர்வை இயக்குவதற்கான அதே விதிகளைப் பின்பற்றுகிறது.

இங்கே settings.json ஓர் உண்மையான கோப்பு. குழுவிடம் ஏற்கெனவே வேறுபட்ட settings.json இருப்பதால், முரண்பாடு அதன் இயல்புநிலைத் தேர்வான KeepGroup-ஐ எடுக்கிறது, அதனால் குழுவின் நகல் அப்படியே இருக்கிறது. கணக்கின் கோப்பு கணக்குக் கோப்புறைக்குள் .ccam-backup/<time>/settings.json-க்கு நகர்கிறது, os.Symlink பாதையைக் குழுவுடன் இணைக்கிறது. மற்ற நிலைகள்:

  • குழுவிடம் இன்னும் நகல் இல்லையென்றால், கணக்கின் கோப்பு குழுவுக்குள் நகர்ந்து அதன் முதல் உள்ளடக்கமாகிறது.
  • கோப்புறைக்கு, குழுவிடம் இல்லாத கோப்புகள் குழுவுக்குள் நகரும்; மீதி காப்புப்பிரதிக்குச் செல்லும்.
  • history.jsonl-க்கு, இயல்புநிலை merge by line: குழுவின் வரிகள், பிறகு உங்கள் புதிய வரிகள். குழுவின் முந்தைய நகல் .ccam-backup/<time>/group/-இல் சேமிக்கப்படும்.
  • மற்றொரு குழுவுக்கான இணைப்பு மாற்றப்படும். ccam-க்கு வெளியே உள்ள கோப்புறைக்கான இணைப்பு காப்புப்பிரதிக்குச் செல்லும், குழு காலியாக இருந்தால் அதன் உள்ளடக்கம் குழுவின் தொடக்க உள்ளடக்கமாகும்.
  • இப்போது local ஆக உள்ள உருப்படிக்காக மீதமிருக்கும் இணைப்பு நீக்கப்படும், கணக்குக்குக் குழுவின் உள்ளடக்கத்தின் நகல் கிடைக்கும்.

இணைப்புகளை நீக்குவதைத் தவிர, ஒவ்வொரு படியும் தரவைக் குழுவுக்குள்ளோ காப்புப்பிரதிக் கோப்புறைக்குள்ளோ நகர்த்துகிறது. எதுவும் நீக்கப்படுவதில்லை.

பாதுகாப்பும் விளிம்பு நிலைகளும்

  • வெறும் ccam doctor ஒருபோதும் எதையும் மாற்றுவதில்லை. scripts-இல் உறுதியாக இருக்க --fix உடன் --dry-run பயன்படுத்துங்கள்.
  • ஒரு கணக்கு இயங்குகிறதா என்று doctor --fix சரிபார்ப்பதில்லை. ஒரு கணக்கின் பகிர்வு இணைப்புகளைச் சரிசெய்யும் முன் அதன் Claude Code-ஐ மூடுங்கள், ஏனெனில் அமர்வு அந்தக் கோப்புகளில் தொடர்ந்து எழுதுகிறது.
  • பகிர்வுப் பழுதுநீக்கம் தோல்வியடைந்தால், ccam அந்தக் கணக்குக்கு could not repair share links: <error> என்று தெரிவித்து, அதன் தெரியாத உள்ளீட்டுச் சரிபார்ப்பைத் தவிர்க்கும். மற்ற கணக்குகள் தொடர்ந்து சரிபார்க்கப்படும்.
  • ccam share பாதியில் தோல்வியடைந்தால், அது முதலில் இலக்கு அமைப்புகளைச் சேமித்து, ccam doctor --fix மூலம் முடிக்கச் சொல்லும்.
  • symlink ஆன .credentials.json, காலாவதியான உள்நுழைவு, சூழல் credentials ஆகியவை தெரிவிக்கப்படும், ஆனால் ஒருபோதும் மாற்றப்படாது.
  • Plugin registry மாற்றங்கள் atomic ஆக எழுதப்படும், ஆனால் .ccam-backup/-க்கு நகலெடுக்கப்படாது.