- Updated bash-execute-script, create-files-script, edit-files-script, and grep-search-script to handle base64 encoded JSON arguments, improving robustness against data corruption.
- Refactored corresponding tool scripts to encode command parameters as base64 before execution.
- Enhanced integration tests to validate the new base64 encoding functionality across various file tools.
- Removed sequential test execution settings from vitest configuration to improve performance.
- Updated bash-execute-script to handle missing arguments and improved error handling for JSON parsing.
- Refactored create-files-tool to process file creation sequentially, enhancing directory management and error reporting.
- Enhanced read-files-tool to return structured error messages when no file paths are provided.
- Updated grep-search-tool to accept raw ripgrep commands, simplifying the command structure and improving output handling.
- Removed outdated test files and integrated new test cases for improved coverage and validation across file tools.
- Introduced the `ls-files-script` module to handle file listing with various options (detailed, all, recursive, human-readable).
- Added integration tests for the `ls-files-script` to validate functionality across different scenarios, including handling of hidden files and non-existent paths.
- Removed the previous `ls-files-tool` integration tests to streamline the testing process and focus on the new implementation.
- Updated the `ls-files-tool` to utilize the new `ls-files-script` for execution and code generation.
- Enhanced error handling and output parsing for improved robustness.
- Rename create-file-functions.ts to create-files-script.ts
- Implement script pattern matching ls-files-tool structure
- Update create-file-tool.ts to execute script via sandbox
- Add comprehensive unit tests for script functionality
- Add integration tests for script execution
- Update existing tests to work with new pattern
The create-files-tool now follows the established script pattern where
the script handles the core file creation logic and the tool serves as
a medium that executes the script in a sandboxed environment.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Introduced integration tests for various file tools including bash execution, file creation, deletion, editing, and listing.
- Enhanced the check-off todo list tool to support multiple items and improved error handling for non-existent tasks.
- Updated test cases to cover edge scenarios and ensure robust validation across all tools.
- Increased timeout for the docs agent workflow to accommodate longer-running tests.
- Added section in CLAUDE.md for direct database access during integration testing.
- Updated `maxSteps` in `docs-agent` to allow for more complex tasks.
- Improved validation in `docs-agent-context` for sandbox instances.
- Enhanced `create-docs-todos` step to handle todos more effectively.
- Introduced comprehensive integration tests for the docs agent workflow, covering various scenarios and edge cases.
- Added test helpers for creating mock dbt projects and managing sandboxes.
- Implemented error handling and logging improvements in the workflow execution process.
This PR migrates the Rust and libraries to TypeScript in the new package.
## Changes
### New Access Controls Package
- Implemented complete asset permissions system with CRUD operations
- Added dataset permissions with all 5 access paths (admin, direct user, user→group, team→direct, team→group, org→default)
- Implemented cascading permissions (metrics inherit from dashboards/chats/collections)
- Added LRU caching to replace Redis (30-second TTL)
- Comprehensive test coverage (148 tests passing, 3 skipped pending createUser)
### Database Package Updates
- Fixed AssetType enum to include all 14 asset types
- Added missing database queries for permissions
- Fixed timestamp fields to use ISO strings
- Added getUserOrganizationsByUserId function
- Created organized query structure by table
### AI Package Updates
- Updated getPermissionedDatasets API calls to new format
- Changed property references from ymlFile to ymlContent
- Fixed all test mocks to match new API structure
### Trigger App Updates
- Updated to use new access controls API
- Fixed test mocks to match DatasetListResult structure
- Added proper type imports
### Server Shared Updates
- Added request/response types for access control endpoints
- Exported types for API consistency
## Testing
- All packages build successfully with turbo build:dry-run
- All tests pass with turbo test:unit
- Full type safety maintained throughout
## Migration Notes
- Drop-in replacement for Rust libraries
- Same permission model and roles
- Cache invalidation strategies implemented
- Soft delete pattern maintained
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>