- add dataset download step in `performBenchmarks` method
- integrate with filesystem service to fetch musicbrainz dataset
- update benchmark execution flow to include download step
- add `downloadTypesenseDataset` method to fetch datasets from urls
- implement `decompressStream` to handle gunzip and tar extraction
- add support for jsonl file extraction and saving
- update file system imports to include `writeFile`
- add new github action workflow for automated benchmark testing
- configure workflow to run every 12 hours via cron
- implement binary comparison between successful test runs
- setup influxdb for storing benchmark metrics
- add artifact management for test binaries and benchmark data
- remove separate `integration-tests.yml` workflow
- add integration tests as a dependent job in `tests.yml`
- update artifact download action to use `actions/download-artifact`
- simplify workflow triggers by removing workflow_run dependency
- make `ipAddress` optional in `TypesenseProcessManager`
- remove default ip address fallback
- conditionally add peering address arguments to process startup
- restructure argument building for better readability
- add dynamic log level setting based on application's logger level
- use `debug` level when application is in debug mode
- fallback to `info` level for all other cases
- add `networkInterfaces` detection for CI environments
- make `ip` parameter optional in test command
- add fallback to default ip for non-CI environments
- introduce `isInCi` flag to control ip detection behavior
- handle null ip case in `writeToNodesFile`
- Add benchmark command to compare performance between commits
- Add time-based metrics for search and indexing operations
- Add result formatting with percentage change calculations
- Add configurable failure threshold for performance regression
- Add container and process management for test execution
- Add `validateK6Environment` function for env var validation
- Add type-safe validation for required k6 environment variables
- Add specific validation rules for numeric, string, and duration values
- Add error reporting for invalid environment configurations
- Add `NodeConfig` interface for typesense node configuration
- Add `initNode` method to validate node configuration
- Make `snapshotPath` optional with default value
- Add option to disable multi-node mode in `startProcess`
- Simplify process error handling and cleanup
- Add `Album` interface for music data structure
- Add `NumericIndices` type helper for array index types
- Add `EnsureExhaustive` type for record validation
- Add `EnvVariableKey` generic type for environment variables
- add `openAIEmbeddingTest` method to test custom dimension embeddings
- add `getCollection` method to `TypesenseProcessManager` for validation
- add node config tracking to `IntegrationTests` class for process management
- update test chain to include openai embedding test step
- add `snapshotTest` method to run snapshot test
- add private `verifySnapshot` method to check if snapshot file exists
- add private `saveSnapshot` method to take a snapshot of the Typesense process
- update `test` command to run `snapshotTest` after `conversationTest`
- add `snapshotPath` option to `integrationTestOptionsSchema` and `test` command
- pass `snapshotPath` to `IntegrationTests` constructor
- add `getSnapshotPath` getter to `TypesenseProcessManager`
- add `snapshot` method to `TypesenseProcessManager` to take a snapshot of a Typesense process
- extract `writeToNodesFile`, `createDataDirectories`, `mapNodesToDirectories` and `startAndVerifyProcesses` into a new `setupProcesses` method
- make extracted methods private
- update `test` command to use `setupProcesses` method
- simplify `test` command by removing unnecessary variable assignments
- add new github action workflow that runs after main tests
- download built binary from previous workflow artifacts
- setup node environment and run benchmark integration tests
- Add `tests` command to run typesense integration tests
- Implement conversation model and collection creation
- Add base collection with text embedding support
- Add health check verification for cluster nodes
- Support multiple node configuration with data directories
- Create typesense client instance with connection configuration
- Add methods for collection operations (create, query, index)
- Add conversation model creation support
- Add health check capability via `callOutToProcess`
- Make processes map public for external access
- Update `buildAndSave` method to return the full destination path
- Modify `save` method to return the build destination for downstream use
- Chain results using `map` to propagate the destination path
- Export `dirName` constant using `fileURLToPath` for ESM compatibility
- Replace hardcoded `__dirname` with `dirName` in `install.ts` command
- Fix imports ordering in `install.ts` for better readability
- Add process controller with cleanup and event handling
- Add process manager with process lifecycle methods
- Add port mapping for multiple nodes
- Add executable validation and process spawning
- Add createDirectory method with option to empty existing dir
- Add yesToAll flag to skip prompts
- Extract directory validation logic into reusable methods
- Add readdir check for empty directories
- Improve error handling and feedback
- Add `install` command to handle typesense installation flow
- Add command-line options parsing with zod schema validation
- Add service orchestration for build process
- Add error handling and progress reporting
- Add verbose logging support and yes-to-all flag
- Add `ServiceContainer` class to manage service dependencies
- Add initialization logic for filesystem, docker, and git services
- Add support for both host and container git operations
- Add typesense manager integration
- Add service retrieval with type safety
- Add `DockerService` class to handle container lifecycle operations
- Add methods for container validation, execution, and file copying
- Add support for building images with platform-specific configuration
- Add container start/stop operations with parallel processing
- Add logging and progress indicators using `ora` spinners
- Add `FilesystemService` class to handle directory operations
- Implement methods for existence checks, path resolution and cleanup
- Add platform detection utility for cross-platform support
- Add interactive prompt for directory creation using `inquirer`