Conversation
* Align naming conventions with AWS CLI (#71) * Align registry names with AWS CLI conventions Rename 7 services to match AWS CLI naming: - computeoptimizer → compute-optimizer - cognito → cognito-idp - config → configservice - costexplorer → ce - eventbridge → events - macie → macie2 - sfn → stepfunctions Old names preserved as aliases for backward compatibility. Closes #65 * Fix pseudo-ARN prefix to match registry service name (ce) * Add comment explaining pseudo-ARN format for Cost Explorer * Rename directories to align with AWS CLI conventions - Service dirs: costexplorer→ce, eventbridge→events, sfn→stepfunctions, cognito→cognito-idp, config→configservice, macie→macie2, computeoptimizer→compute-optimizer, servicequotas→service-quotas, licensemanager→license-manager, networkfirewall→network-firewall - Resource dirs: hyphenate compound names (e.g., loggroups→log-groups) - Update imports and ARN mappings Closes #65 * Rename bedrock dirs to kebab-case for AWS CLI consistency * Fix DAO error strings and deduplicate client helpers * Fix error strings and deduplicate client helpers * Fix package names to match directory names (events, stepfunctions) * Add develop branch to CI triggers * feat: propagate ALL_PROXY to HTTP_PROXY/HTTPS_PROXY (#74) * feat: support ALL_PROXY environment variable (#69) * feat: propagate ALL_PROXY to HTTP_PROXY and configure NO_PROXY Extend proxy support based on issue #69 feedback: - Propagate ALL_PROXY to both HTTP_PROXY and HTTPS_PROXY - Auto-configure NO_PROXY for AWS credential endpoints: - 169.254.169.254 (EC2 IMDS) - 169.254.170.2 (ECS Task Role) - 169.254.170.23 (EKS Pod Identity) - Preserve existing NO_PROXY entries, only add missing endpoints Refs #69, #67 * fix: default NO_PROXY to IMDS only and remove proxy value from logs - NO_PROXY now only includes EC2 IMDS (169.254.169.254) by default - ECS/EKS endpoints can be added via config (TODO #67) - Remove proxy URL from log output to avoid credential exposure * refactor: simplify splitNoProxy and use tagged switch in parseFlags * refactor: separate NO_PROXY config from ALL_PROXY propagation configureNoProxy() now runs independently when any proxy is set, not tied to ALL_PROXY propagation. Cleaner separation of concerns. * refactor: remove lowercase env var support for simplicity * refactor: remove NO_PROXY auto-configuration * refactor: skip proxy propagation for --help/--version and cleanup test * test: add test case for lowercase all_proxy not supported * feat: add alias completion in command mode (#76) * feat: add alias completion in command mode (#70) Include aliases in GetSuggestions() so :cost+Tab suggests cost-explorer. Self-referential aliases (sfn→sfn) excluded from suggestions. * refactor: use prefix+fuzzy for diff completion * refactor: use CutPrefix and cache GetAliases * refactor: extract match functions to shared module - Move fuzzyMatch and matchNamesWithFallback to match.go - Make :tag/:tags clear behavior explicit - Sort suggestions alphabetically (services + aliases) * refactor: cache GetAliasesForService and sort match results * refactor: unify command parser pattern for sort and login * test: add cache concurrency tests and improve comments * refactor: use CutPrefix in ecs tasks render * refactor: use CutSuffix in parseNumericValue * fix: quote profile name in error message for clarity * fix: lowercase pattern in fuzzyMatch for case insensitivity * chore: remove .claude symlink * chore: add .claude to gitignore * fix: lowercase pattern in matchNamesWithFallback prefix check * fix: return defensive copy from alias cache methods
Pull Request Review: Sync main into develop (v0.6.0 release)OverviewThis PR merges the v0.6.0 release from main back into develop. The release includes significant improvements including AWS CLI naming alignment, proxy support enhancements, and alias completion features. Overall, this is a well-executed merge with high code quality. ✅ StrengthsCode Quality & Best Practices
Security
Performance
📋 Observations & Minor Suggestions1. Potential Race Condition (Low Risk)File: The Suggestion: Add a comment explaining this is intentional: // propagateAllProxy copies ALL_PROXY to HTTP_PROXY/HTTPS_PROXY if not set.
// Called before log initialization - logs will be no-op until EnableFile() called.
func propagateAllProxy() {2. Test IsolationFile: The test uses Observation: Current implementation is fine for Go 1.17+, but consider documenting the Go version requirement since 3. Directory Rename ConsistencyObservation: The PR renames 250 files to align with AWS CLI kebab-case conventions. This is excellent for consistency, but: Question for maintainers: Have you verified all import path updates in files not shown in the diff? The genimports script should handle this, but a quick verification would be prudent. 4. Fuzzy Match AlgorithmFile: The fuzzy match implementation is simple and effective, but has O(n*m) complexity. Suggestion: For future optimization (not blocking), consider caching lowercase conversions if patterns are reused frequently. 🔍 Detailed Code ReviewProxy Support ImplementationFiles: Strengths:
Minor note: The usage text (line 171) correctly documents ALL_PROXY. Consider adding a note about case sensitivity. Registry Alias SystemFiles: Strengths:
Excellent practice: The cache returns Match UtilitiesFiles: Strengths:
Note: Line 30 lowercases the pattern, and line 34 lowercases each name. This is correct and thoroughly tested. 🧪 Test Coverage AssessmentExcellent Coverage (all new features tested):
Missing Tests (acceptable for merge commit):
🔒 Security AnalysisNo concerns identified:
⚡ Performance ConsiderationsOptimizations Implemented:
Potential Future Optimizations (not blocking):
📊 Code Metrics
✨ ConclusionRecommendation: APPROVE ✅ This is a high-quality merge commit that brings v0.6.0 changes into develop. The code demonstrates:
The observations noted above are minor and do not block merging. This PR successfully syncs the release branch while maintaining code quality standards. Great work on the v0.6.0 release! 🎉 Review conducted by Claude Code Assistant |
Summary
Merge main branch into develop to sync after v0.6.0 squash release.
This resolves the conflict in PR #80 by incorporating the squashed v0.6.0 changes back into develop.
Changes: Merge commit only, resolves conflict in
cmd/claws/main.go