Claude Code ಈಗ ವಿನಾಶಕಾರಿ Git ಕಮಾಂಡ್ಗಳನ್ನು ತಡೆಯುತ್ತದೆ
Claude Code ಇತ್ತೀಚೆಗೆ ಹೊಸ ಸುರಕ್ಷತಾ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಸೇರಿಸಿದೆ. ಇದು ಈಗ ಆಟೋ ಮೋಡ್ನಲ್ಲಿ ವಿನಾಶಕಾರಿ git ಕಮಾಂಡ್ಗಳನ್ನು ತಡೆಯುತ್ತದೆ.
ಕೆಲವು ತಿಂಗಳ ಹಿಂದೆ, ಒಂದು AI ಏಜೆಂಟ್ ನನ್ನ ಕೆಲಸವನ್ನು ಬಹುತೇಕ ಅಳಿಸಿಹಾಕುತ್ತಿತ್ತು. ನಾನು ಹಳೆಯ ಕೋಡ್ ಅನ್ನು ನೋಡಲು ಅದಕ್ಕೆ ಕೇಳಿದೆ. ಅದು git reset --hard ಅನ್ನು ಚಲಾಯಿಸಿತು. ಈ ಕಮಾಂಡ್ ನನ್ನ ಎಲ್ಲಾ ಅನ್ಕಮಿಟೆಡ್ (uncommitted) ಬದಲಾವಣೆಗಳನ್ನು ಅಳಿಸಿಹಾಕಿತು. ನಾನು ಇಡೀ ಒಂದು ದಿನದ ಕೆಲಸವನ್ನು ಕಳೆದುಕೊಂಡೆ.
ಅಂದಿನಿಂದ, ನಾನು ನನ್ನ ಸೆಟ್ಟಿಂಗ್ಗಳಿಗೆ ಮ್ಯಾನುಯಲ್ ಆಗಿ 'deny rules'ಗಳನ್ನು ಸೇರಿಸಿದೆ. ನನ್ನ ನೇರ ಅನುಮತಿಯಿಲ್ಲದೆ git reset ಅಥವಾ git clean ನಂತಹ ಕಮಾಂಡ್ಗಳು ಚಲಾಯಿಸುವುದನ್ನು ತಡೆಯಲು ನಾನು ಬಯಸಿದ್ದೆ.
ಈಗ, Claude Code ಇದನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮಾಡುತ್ತದೆ. ಇದು ನಿಮ್ಮ ಉದ್ದೇಶವನ್ನು ಊಹಿಸಲು 'safety classifier' ಅನ್ನು ಬಳಸುತ್ತದೆ. ನೀವು ಕೆಲಸವನ್ನು ಎಸೆದುಹಾಕಲು ಕೇಳಿಲ್ಲ ಎಂದು ಅದು ಭಾವಿಸಿದರೆ, ಅದು ಕಮಾಂಡ್ ಅನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ.
ಮೊದಲು, ನಾನು ನನ್ನ ಮ್ಯಾನುಯಲ್ ರೂಲ್ಸ್ಗಳನ್ನು ಅಳಿಸಲು ಯೋಚಿಸಿದೆ. ಟೂಲ್ ಆಗಲೇ ಇದನ್ನು ಮಾಡುತ್ತಿದ್ದರೆ ನಾನು ಯಾಕೆ ಹೆಚ್ಚುವರಿ ಕೆಲಸ ಮಾಡಬೇಕು? ನಂತರ ನಾನು ಅವುಗಳನ್ನು ಏಕೆ ಇಟ್ಟುಕೊಳ್ಳಬೇಕು ಎಂಬುದು ನನಗೆ ಅರ್ಥವಾಯಿತು.
ಹೊಸ ಸುರಕ್ಷತಾ ವೈಶಿಷ್ಟ್ಯವು ಒಂದು inference ಆಗಿದೆ. ಇದು ನೀವು ಏನನ್ನು ಬಯಸುತ್ತೀರಿ ಎಂದು ಊಹಿಸಲು ಪ್ರಯತ್ನಿಸುವ ಒಂದು ಮಾಡೆಲ್ ಆಗಿದೆ. ಮಾಡೆಲ್ಗಳು ತಪ್ಪು ಮಾಡಬಹುದು. ಒಂದು ವೇಳೆ ಮಾಡೆಲ್ ಲಭ್ಯವಿಲ್ಲದಿದ್ದರೆ, ಸಿಸ್ಟಮ್ ವಿಫಲವಾಗಬಹುದು ಅಥವಾ ನಿಮ್ಮನ್ನು ತಪ್ಪಾಗಿ ನಿರ್ಧರಿಸಬಹುದು.
ನನ್ನ ಮ್ಯಾನುಯಲ್ ರೂಲ್ಸ್ಗಳು ವಿಭಿನ್ನವಾಗಿವೆ. ಅವು deterministic ಆಗಿವೆ. ಒಂದು ರೂಲ್ ಊಹಿಸುವುದಿಲ್ಲ. ಅದು ಕಮಾಂಡ್ಗೆ ಹೊಂದಿಕೆಯಾಗುತ್ತದೆ ಅಥವಾ ಆಗುವುದಿಲ್ಲ. ಇದು ಉದ್ದೇಶದ ಆಧಾರದ ಮೇಲೆ ಎಂದಿಗೂ ಬದಲಾಗದ ಕಠಿಣ ನಿಯಮವಾಗಿದೆ.
ನಾನು ಈಗ ಮೂರು ಪದರಗಳ ರಕ್ಷಣೆಯನ್ನು ಬಳಸುತ್ತಿದ್ದೇನೆ:
• ಉದ್ದೇಶಕ್ಕಾಗಿ classifier. ಇದು ನಿಮ್ಮ ಗುರಿಗಳನ್ನು ಅರ್ಥಮಾಡಿಕೊಳ್ಳುತ್ತದೆ. • ಖಚಿತತೆಗಾಗಿ ನನ್ನ deny rules. ಅವು ನಿರ್ದಿಷ್ಟ ಕಮಾಂಡ್ಗಳಿಗೆ ಕಠಿಣ ಹಿಡಿತವನ್ನು ಒದಗಿಸುತ್ತವೆ. • ನಿಯಂತ್ರಣಕ್ಕಾಗಿ sandbox. ಇದು ಏಜೆಂಟ್ ಅನ್ನು ನಿಮ್ಮ ಪ್ರಾಜೆಕ್ಟ್ ಫೋಲ್ಡರ್ನ ಒಳಗೇ ಇರಿಸುತ್ತದೆ.
ಹೊಸ ಡಿಫಾಲ್ಟ್ ಉತ್ತಮವಾಗಿದೆ, ಆದರೆ ಅದು ಎಲ್ಲವನ್ನೂ ಒಳಗೊಳ್ಳುವುದಿಲ್ಲ. ಇದು rm -rf ಅನ್ನು ತಡೆಯುವುದಿಲ್ಲ. ಇದು ಡೇಟಾಬೇಸ್ ವೈಪ್ (database wipe) ಅನ್ನು ತಡೆಯುವುದಿಲ್ಲ. ಇದು ನಿಮ್ಮ main branch ಗೆ force-push ಮಾಡುವುದನ್ನು ತಡೆಯುವುದಿಲ್ಲ.
ಒಂದು ಟೂಲ್ ಹೊಸ ಡಿಫಾಲ್ಟ್ ಅನ್ನು ಸೇರಿಸಿದ ಕಾರಣಕ್ಕೆ ನಿಮ್ಮ ಕಸ್ಟಮ್ ಸುರಕ್ಷತಾ ನಿಯಮಗಳನ್ನು ಅಳಿಸಬೇಡಿ. ಹೊಸ ಡಿಫಾಲ್ಟ್ ಅನ್ನು ನಿಮ್ಮ ಸೆಟಪ್ ಅನ್ನು ಆಡಿಟ್ ಮಾಡಲು ಒಂದು ಕಾರಣವಾಗಿ ಬಳಸಿ. ನಿಮ್ಮ ನಿಯಮಗಳನ್ನು ಬ್ಯಾಕಪ್ ಆಗಿ ಇಟ್ಟುಕೊಳ್ಳಿ ಮತ್ತು ಟೂಲ್ ಬಿಟ್ಟುಹೋದ ಅಂತರಗಳನ್ನು (gaps) ರಕ್ಷಿಸಲು ನಿಮ್ಮ ಹೆಚ್ಚುವರಿ ಸಮಯವನ್ನು ಬಳಸಿ.
Defense in depth ಎಂದರೆ ಪದರಗಳನ್ನು ಒಂದರ ಮೇಲೊಂದು ಜೋಡಿಸುವುದು. ಒಂದು ತಪ್ಪು ನಡೆಯದಂತೆ ತಡೆಯಲು ಮೂರು ವಿಭಿನ್ನ ತಪಾಸಣೆಗಳು ಇರುವ ವ್ಯವಸ್ಥೆಯೇ ಅತ್ಯಂತ ಸುರಕ್ಷಿತ ವ್ಯವಸ್ಥೆ.
Source: https://code.claude.com/docs/en/changelog
Optional learning community: https://t.me/GyaanSetuAi
