Conversation
…0-58Z chore: release v0.32.0
…l fix, and lastly shell error fixed
feat: small fixes, truncation for docker output, default bedrock mode…
…8-10Z chore: release v0.32.1
Phase 1: Audit & Triage - 3 plans created - 7 total tasks defined - Ready for execution Plans: - 01-01: Tool inventory (2 auto tasks) - 01-02: Testing protocol & results (1 auto, 1 checkpoint, 1 auto) - 01-03: Bug categorization & prioritization (3 auto tasks) Co-Authored-By: Claude <noreply@anthropic.com>
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.224 to 1.0.228. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](serde-rs/serde@v1.0.224...v1.0.228) --- updated-dependencies: - dependency-name: serde dependency-version: 1.0.228 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com>
- Organized 28 tools into 5 test categories (A-E) by prerequisites - Defined basic, realistic, and edge case tests per tool - Included test prompts to trigger each tool - Prioritized P0-P3 based on risk from inventory - Added pre-test setup and post-test cleanup checklists
…mode - Moved src/agent/session.rs to src/agent/session/mod.rs - Created src/agent/session/plan_mode.rs with extracted types - Extracted: IncompletePlan struct, find_incomplete_plans fn, PlanMode enum - Added re-exports for backward compatibility - mod.rs reduced from 1937 to 1839 lines Co-Authored-By: Claude <noreply@anthropic.com>
Extract ~560 lines from session/mod.rs to providers.rs: - get_available_models function - has_api_key function - load_api_key_to_env function - get_configured_providers function - run_bedrock_setup_wizard function - prompt_api_key function ChatSession methods delegate to providers module functions. Re-exports added for backward compatibility. Co-Authored-By: Claude <noreply@anthropic.com>
Extract 7 slash command handlers from session/mod.rs into dedicated commands.rs module as free functions that take &mut ChatSession: - handle_model_command - handle_provider_command - handle_reset_command - handle_profile_command - handle_plans_command - handle_resume_command - handle_list_sessions_command Also includes list_profiles helper function used by profile command. Co-Authored-By: Claude <noreply@anthropic.com>
- Add mod commands declaration - Replace all 7 handle_* method implementations with delegations to commands::handle_* functions - Remove list_profiles helper (now in commands.rs) - Clean up unused imports (load_agent_config, save_agent_config, Write) session/mod.rs reduced by ~730 lines. Co-Authored-By: Claude <noreply@anthropic.com>
Extract print_help, print_logo, and print_banner functions from session/mod.rs to a dedicated ui.rs submodule. This completes the session module decomposition by moving all UI display logic to a focused module. Co-Authored-By: Claude <noreply@anthropic.com>
Add src/agent/tools/error.rs with shared error handling infrastructure: - ToolErrorContext trait for adding context when propagating errors - format_error_for_llm function for LLM-friendly error JSON formatting - format_error_with_context for errors with additional fields - ErrorCategory enum with common error types (FileNotFound, PermissionDenied, etc.) - detect_error_category helper for automatic category detection - Comprehensive unit tests This module provides utilities without replacing individual tool error types. Each tool keeps its own error type but uses these utilities for consistent formatting. Co-Authored-By: Claude <noreply@anthropic.com>
Update file_ops.rs, shell.rs, and analyze.rs to use new error utilities: file_ops.rs: - Improve validate_path error messages with specific io::ErrorKind handling - Add path info to error messages for FileNotFound, PermissionDenied - Use format_error_for_llm for file-too-large and invalid line range errors - Better context in path-outside-boundary errors shell.rs: - Use format_error_with_context for command rejection errors - Improve validate_working_dir with specific error messages - Better structured errors for plan mode rejections - Use ErrorCategory::UserCancelled for cancellation responses analyze.rs: - Validate path exists before analysis - Return structured errors with suggestions - Auto-detect error category (permission, file not found, etc.) Each tool keeps its own error type but uses utilities for consistent formatting. Co-Authored-By: Claude <noreply@anthropic.com>
- Add `pub mod error;` declaration in mod.rs - Add re-exports for commonly used error utilities: - ErrorCategory, ToolErrorContext, detect_error_category - format_error_for_llm, format_error_with_context - Add module-level documentation explaining the error handling pattern - Document the 4-step pattern for using error utilities in tools Co-Authored-By: Claude <noreply@anthropic.com>
Add src/agent/tools/response.rs with standardized response formatting: - ToolResponse struct with success, data, metadata fields - ResponseMetadata struct with truncation/compression info - format_success() for simple success responses - format_success_with_metadata() for responses with metadata - format_file_content() for file read operations - format_file_content_range() for line range reads - format_list() for directory/list operations - format_write_success() for write operations - format_cancelled() for user cancellation responses - 12 unit tests covering all functionality Integrates with existing truncation.rs limits for consistency. Module declared as public for use by other tools. Co-Authored-By: Claude <noreply@anthropic.com>
Update file_ops.rs to use response formatting utilities: - ReadFileTool: use format_file_content() and format_file_content_range() - ListDirectoryTool: use format_list() for consistent directory listings - WriteFileTool: use format_cancelled() for cancellation responses - WriteFilesTool: use format_cancelled() for cancellation responses Response format remains backward compatible with existing agent prompts. analyze.rs already uses compress_analysis_output which provides appropriate metadata (retrieval_id, compression info) - no changes needed. Co-Authored-By: Claude <noreply@anthropic.com>
Add response pattern documentation to mod.rs: - Document usage of format_file_content, format_list, etc. - Add example showing recommended usage pattern - Add re-exports for all response formatting utilities: ResponseMetadata, ToolResponse, format_cancelled, format_file_content, format_file_content_range, format_list, format_list_with_metadata, format_success, format_success_with_metadata, format_write_success This completes Phase 3 Tool Infrastructure: - 03-01: Audited patterns (TOOL-PATTERNS.md) - 03-02: Created error.rs with error utilities - 03-03: Created response.rs with response utilities Co-Authored-By: Claude <noreply@anthropic.com>
- Add general development commands: echo, printf, test, expr - Add build/package commands: pnpm run, yarn run, gradle, mvn, poetry, pip install, bundle exec - Add testing commands: npm test, yarn test, pnpm test, cargo test, go test, pytest, jest, vitest - Add git write commands: git add, commit, push, checkout, branch, merge, rebase, stash, fetch, pull, clone - Organize commands by category with documentation comments Addresses BUG-001: Shell command allowlist too restrictive Co-Authored-By: Claude <noreply@anthropic.com>
- Update tool definition to be more welcoming (remove RESTRICTED language) - List supported command categories in description - Explain the confirmation system that allows session-level approvals - Add categorize_command() helper to identify command types - Add get_category_suggestions() for context-aware suggestions - Improve rejection messages with category hints and specific guidance - Change "not in allowed list" to "not in default allowlist" (more accurate) Co-Authored-By: Claude <noreply@anthropic.com>
Add comprehensive test module with 14 test functions covering: - General development commands (echo, printf, test, expr) - addresses BUG-001 - Build commands (npm/yarn/pnpm alternatives, gradle, mvn, poetry, pip, bundle) - Testing commands (npm/yarn/pnpm test, cargo/go test, pytest, jest, vitest) - Git write commands (add, commit, push, checkout, branch, merge, etc.) - Dangerous commands still rejected (rm, bash, sudo, curl, wget) - Read-only mode allows read commands and blocks write commands - Command chain validation in read-only mode - Command categorization helper function - Category-specific suggestions - Regression tests for existing docker/terraform/kubernetes/linting commands Co-Authored-By: Claude <noreply@anthropic.com>
- ReadFileTool: Document truncation limits (2000 lines, 2000 char lines), start_line/end_line usage, and path restrictions - WriteFileTool: CLEARLY document path restriction as intentional security feature, suggest tmp/ directory in project for temporary files, document confirmation workflow - WriteFilesTool: Same path restriction documentation, document atomicity (all paths validated before any writes) - ListDirectoryTool: Document max entries (500), alphabetical sorting, automatic filtering of node_modules/.git/etc Addresses BUG-002 by making path restrictions clear and intentional. Co-Authored-By: Claude <noreply@anthropic.com>
- All path validation errors now use format_error_for_llm for consistent LLM-friendly error responses with structured JSON - ReadFileTool: Errors include suggestions like "Use list_directory to explore available files" and project root path - ListDirectoryTool: Errors suggest using '.' for project root - WriteFileTool/WriteFilesTool: Path boundary errors now include clear security explanation and suggest creating 'tmp/' directory in project - All errors include: attempted path, error category, project boundary, and actionable suggestions Path errors now return Ok(error_json) instead of Err() so LLM receives helpful feedback instead of opaque failure. Co-Authored-By: Claude <noreply@anthropic.com>
- Empty file handling: ReadFileTool returns clear "(empty file)" message instead of error when file has zero bytes - Binary file detection: Check for null bytes in first 1KB, return helpful message suggesting specialized tools for binary content - Symlink handling: ReadFileTool validates symlink targets are within project boundary, with clear error if symlink points outside - WriteFilesTool atomicity: All paths are validated BEFORE any files are written; if any path is invalid, lists all invalid paths and writes nothing Added helper functions: - is_likely_binary(): Detects binary content by checking for null bytes - validate_symlink_target(): Validates symlinks stay within project Co-Authored-By: Claude <noreply@anthropic.com>
Expanded tool definition with comprehensive documentation: - What gets analyzed: languages, frameworks, dependencies, build tools, architecture - Monorepo detection and handling explanation - Output format with compression and retrieval pattern - Supported languages list (Java, Go, JS/TS, Rust, Python) - Improved path parameter documentation for subdirectory analysis Co-Authored-By: Claude <noreply@anthropic.com>
Added graceful handling for edge cases: - Empty directory: Checks for empty dirs before analysis, returns helpful message - Large projects: Warns when >10000 files detected with count_files_recursive() - Unsupported project types: Returns guidance when no languages detected - Directory read errors: Proper error handling with suggestions The file count function skips common non-source directories (node_modules, target, .git, etc.) for efficiency and limits scanning to 15000 files. Co-Authored-By: Claude <noreply@anthropic.com>
- Add structured error handling using format_error_for_llm for: - File not found errors with recovery suggestions - Path outside boundary validation - Permission denied handling - Directory vs file validation - Enhance tool definition with comprehensive documentation: - Native implementation details - Supported rule categories - Output format explanation - Parameter descriptions with defaults - Add 6 new tests for helper functions and error handling Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- --verbose now produces detailed output (agent paths, install destinations) - update command forwards --dry-run, --global-only, --project-only, --verbose - Better diagnostic messages when --global-only/--project-only yields no agents Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Full README with logo, badges, supported agents table, CLI reference, examples, prerequisites, and how-it-works explanation - package.json: add license (GPL-3.0), repository, homepage, keywords, author, bugs URL - Logo referenced from GitHub raw URL (not bundled in npm package) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Design for exposing the existing internal RAG pipeline (compression + disk storage + retrieval) through CLI flags so external AI agents get compressed output instead of raw stdout blasts. Key decisions: --agent flag on scan commands, top-level retrieve subcommand, strict JSON output, disk-based latest resolution. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Covers --agent flag on 5 scan commands, retrieve subcommand, find_issues_array bugfix, CLI compression variants, and skill rewrites for all 11 skill files to use two-step retrieve pattern. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Fixes retrieval returning empty results for kubelint, hadolint, dclint, and helmlint outputs which use 'failures' field instead of 'issues'. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Scans /tmp/syncable-cli/outputs/ by embedded timestamp to find the most recent stored output. Enables 'sync-ctl retrieve latest' across separate CLI invocations. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
compress_tool_output_cli() and compress_analysis_output_cli() produce strict JSON without plaintext footer and use CLI-syntax retrieval hints for external AI agents. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Adds 'agent: bool' field to Analyze, Security, Vulnerabilities, Dependencies, Validate, and Optimize command structs. Adds Retrieve command variant with ref_id, query, and list fields. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Task 5: Wire --agent in main.rs match arms for Analyze, Security, Dependencies, Vulnerabilities, and Optimize commands. Each agent path forces JSON output, passes through compression pipeline via handle_agent_output helper, and stores full data for retrieval. Task 6: Refactor handle_vulnerabilities to return Result<String> so the agent path can capture JSON output for compression. Add Retrieve command handling with --list, latest resolution, filtered retrieval, and error reporting as structured JSON. Update suppress_update_banner to also suppress for --agent mode and Retrieve commands. Add Retrieve to telemetry command mapping. Update lib.rs patterns to ignore new agent field on all commands and add Retrieve arm (unreachable, handled in main.rs). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All 4 workflow skills now use --agent and teach agents to reuse ref_ids across steps via sync-ctl retrieve. Security gate in deploy pipeline uses compressed output status field instead of raw JSON parsing. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
All 6 scan command skills now use --agent instead of --json/--format json. Each skill includes a Reading Results section documenting compressed output format and available retrieve query filters. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… deploy preview/run, and pagination - Implement validate handler with hadolint, dclint, kubelint, helmlint (was a stub) - Fix vulnerability scanning to run audit tools per-directory (monorepo support) - Fix dependency scanning to discover subdirectories recursively - Add deploy preview/run CLI subcommands (non-interactive for agents) - Add --service-name flag to deploy preview/run - Add --limit/--offset pagination to retrieve command - Fix compression to handle dependencies map and vulnerable_dependencies array - Fix stdout leaking in --agent mode (quiet handlers, SYNCABLE_QUIET env var) - Add source_dir tracking to VulnerableDependency - Clean per-directory scan progress output (no repeated tool banners)
|
Mention Blocks like a regular teammate with your question or request: @blocks review this pull request Run |
Resolves all 26 merge conflicts by keeping our branch's versions, which include all agent output pipeline features built on top of the same codebase develop had. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…-webpki) All are in transitive dependencies via aws-sdk and rustls that we cannot bump directly. Fixes will land when upstream releases update these deps. - RUSTSEC-2026-0044..0048: aws-lc-sys (needs >=0.39.0, we have 0.37.1) - RUSTSEC-2026-0049: rustls-webpki (needs >=0.103.10, we have 0.103.9) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.