-
Notifications
You must be signed in to change notification settings - Fork 0
dev #193
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
- Add backend LineageService for manifest parsing and graph traversal - Implement IPC channels for upstream/downstream/full lineage - Add renderer components: LineageModal, LineageGraph (React Flow + Dagre), Toolbar - Integrate Lineage button into ModelSplitButton - Add foundational types and service/controller wiring
…ts (Phase 3) - Add enableLineagePanel and default lineage preferences to Settings - Implement on-demand expansion in LineageModal for lazy loading - Add expand indicators to DbtNode with upstream/downstream controls - Wire up expansion handlers in LineageGraph to support incremental graph updates - Use DEFAULT_LINEAGE_SETTINGS constant for configuration source
…returning `undefined` modelIds) Implemented robust absolute path matching in [findNodeByFilePath] to correctly resolve models regardless of CWD or relative path differences.
- Integration of [SqlParserService] for advanced SQL parsing and lineage extraction using `sqlglot`. - Added column lineage support to [LineageService] and exposed it via IPC. - Enhanced [NodeDetailsPanel] to visualize column dependencies and support interactive expansion. - Added `sqlglot` package management to the Settings page ([DbtSettings] with auto-install capability. - Implemented node highlighting in `LineageGraph` on column hover for better visualization. - Improved [SelectedFileContextProvider] to leverage lineage data for richer AI context. - Updated IPC handlers and types (`lineage.ts`) to support the new lineage features.
- Add Lineage tab to TerminalLayout, visible when a dbt model is selected - Create reusable [LineageView] to share logic between tab and modal views - Implement maximize functionality to open Lineage graph in full-screen modal - Remove Lineage option from ModelSplitButton dropdown - Optimize LineageToolbar layout with compact Depth input - Improve LineageGraph responsiveness by using flexbox and removing fixed heights - Update styling in NodeDetailsPanel for better readability
Phase 1 of E2E testing implementation for dbt-studio Electron app. Added: - Playwright configuration with Electron support and CI detection - Electron test fixture with isolated userData per test - Base Page Object class with common utilities - App and Wait helper classes for test utilities - Initial app launch test suite with smoke tests - GitHub Actions workflow for multi-platform E2E testing - E2E test scripts in package.json Structure: - e2e/fixtures/ - Test fixtures including Electron launcher - e2e/page-objects/ - Page Object Model base and index - e2e/helpers/ - App and wait helper utilities - e2e/tests/ - Test specifications organized by feature"
- Fix HTML path resolution in [setupHelpers.ts]. - Refactor [app-launch.spec.ts] with robust [findStableWindow] logic to handle splash screen transitions. - Implement [first-run.spec.ts] to verify Setup Wizard appearance and initial state. - Patch [settings.service.ts] to mock network calls during testing. - Fix variable shadowing bug in smoke tests. - Rebuild native dependencies for Electron compatibility. - Update [.gitignore] to exclude build artifacts in `.erb/renderer`.
- Implement create, open, and delete flows in project-lifecycle.spec.ts. - Add programmatic data seeding and isolated fixtures for test hermeticity. - Enhance UI with data-testid attributes and a dedicated options menu. - Update E2E README with strategy guide and advance plan to Phase 4.
- Ensure the 'window' event listener is properly removed in both success and timeout paths to prevent listener accumulation. - Fixed a lint error regarding variable declaration order.
Improved reliability and cross-platform compatibility of the E2E test suite. E2E Helpers & Page Objects: - AppHelper: takeScreenshot now safely creates the target directory. - WaitHelper: Fixed waitForText handling of Locator + RegExp. - BasePage: dismissToasts now uses a robust dynamic loop. - SetupWizard: Added fail-fast assertion to completeWizard. - SqlEditor: Added cross-platform support for modifier keys (Meta/Control). Test Logic & Main Process: - app-launch.spec: Improved window title and user data path assertions. - SettingsService: Mocked venv structure for Python in E2E mode. - setupHelpers: Added missing renderer artifact check for E2E mode.
- Split `electron.fixture` into clean and seeded variants to support different testing needs.
- Added [electron-seeded.fixture.ts] with pre-configured project ('test_project') and DuckDB connection ('test_db') for feature tests.
- Restored [electron.fixture.ts] to clean state for project lifecycle tests.
- Updated [basic-queries.spec.ts] to use the seeded fixture.
- Added `data-testid` attributes to SQL Editor wrappers, Query Results pane, and Error components for reliable selectors.
- Updated E2E README with fixture usage guidelines.
- fix(sql-editor): use multi-strategy text retrieval (monaco global/clipboard/DOM) - fix(settings): use platform-aware dummy executable names (exe on windows) - fix(fixtures): satisfy Playwright & Biome linting for empty destructuring - fix(selectors): escape project names and use explicit visibility assertions"
…se tests - Configure Jest for integration tests with [jest.integration.config.js] running in Node environment - Add integration test scripts to [package.json] - Setup directory structure in `tests/integration/` including utilities and fixtures - Add `better-sqlite3` as dev dependency and configure module mapping to resolve native module ABI mismatch - Implement initial integration tests for [MainDatabaseService] using a real temporary SQLite database - Use private property access in tests for teardown to avoid modifying application code - Update documentation and add developer guide for integration tests
- Add DuckDBService integration tests (4 tests) - Add PostgreSQL Connector integration tests (4 tests) - Enhance MainDatabaseService tests (3 tests) - Update test infrastructure and documentation
- add unit Jest config (tests/unit/jest.config.js) with jsdom + ts-jest - add global unit test setup and Electron/IPC mocks - add reusable mocks under tests/mocks - add initial unit tests for small stable helpers - update npm scripts for unit test commands and add CI step to run npm test - document unit test setup in tests/unit/README.md and mark Phase 1 implemented in docs
- add unit tests for renderer helper utilities (utils.test.ts) - add unit tests for Zod schema validation (provider + data lake schemas) - export Zod schemas from components to enable unit testing without rendering UI - update unit testing README with section-by-section commands and phase 2 notes - update unit test plan doc to reflect phase 2 implementation progress
…dd Phase 2.1 completion details
- Add unit tests for connectors.service and git.service wrappers - Add React Query hook test for useConfigureConnection - Add ConfirmationModal component test
- add unit tests for aiProviders.service IPC wrapper methods (incl. generateCompletion)
- Fix connector validation test to assert specific error properties instead of generic property check - Improve projects IPC test by creating test project data to ensure consistent test conditions - Add explicit project structure verification with created project lookup - Increase PostgreSQL container test timeout to 130000ms to accommodate startup delays - Clear and recreate test directory in MainDatabaseService setup for clean test state - Add Node.js polyfills (TextEncoder/TextDecoder) and OpenAI shims to jest integration setup - These changes ensure tests are more deterministic and handle async operations reliably
- Add comprehensive integration tests for settings IPC handlers (load, save, dialog, restart) - Verify file dialog invocation and path selection handling - Test restart and exit functionality through mocked Electron APIs - Ensure proper cleanup of test artifacts after test execution - Extends Phase 2 integration test coverage for IPC project handlers
Wrap refetchRemotes in a try/catch block to prevent the UI from stalling when a remote refresh fails. This ensures the "Add Remote" modal is closed, the pending state is cleared, and any errors are properly surfaced via the git error handler.
- Fix shell injection vulnerability by using an environment variable for `github.head_ref`.
- Update `actions/checkout` and `actions/setup-node` to v6.
- Update Node.js version to the current LTS ('lts/*').
Feature/unit testing
- Implement SSL/TLS support for PostgreSQL connections across frontend UI and backend execution - Update PostgreSQL schema extraction, JDBC URL generation, and dbt profile mapping to respect SSL settings - Standardize loading indicators across all connection types (BigQuery, Snowflake, Redshift, etc.) using mutation states - Fix state reset bug when navigating between connections of the same type by adding React keys - Resolve multiple ESLint issues including nested ternaries and formatting
…netica-db-with-tabs
- Fix SQL injection vulnerability in Kinetica schema extraction - Fix bug where editing Kinetica timeout incorrectly modified the port - Update connection equality check to include timeout and SSL bypass settings - Ensure proper error propagation in connector IPC handlers - Add accessible label to SQL tab close button
…onsiveness - Add configurable SSL verification for Postgres - Refactor SQL tabs to avoid nested buttons and improve accessibility - Fix crash in secure storage when handling empty passwords - Improve error reporting and loading states in the SQL editor - Standardize Kinetica connection header and fix E2E test locators
…lidate/allowlist pip package names in installPackage
- Fix path suffix matching to prevent false positives by validating path boundaries (separator or start of string) - Add detailed comments explaining the legacy fallback behavior and potential edge cases - Improve edge ID generation in LineageGraph to include relationship and depth for uniqueness - Add missing lineage metadata query invalidation in LineageView refresh - Reset UI state (expanded columns, fetch flag) when selected node changes in NodeDetailsPanel - Add success callback to column lineage fetch to properly track completion state - Optimize lineage queries to only execute for SQL models, skipping .yml/.yaml files - Add error handler for Python process startup failures in SqlParserService - Fix Python script formatting (trailing whitespace) and add dialect fallback to 'snowflake' - Improve Terminal component to track loading and error states for model queries
- Remove excessive console.log statements from lineage service methods - Add stdin error handler to gracefully handle EPIPE errors in SQL parser - Add writable check before writing to process stdin to prevent errors - Fix query enablement condition to include projectId validation in LineageView - Add projectId guard in NodeDetailsPanel column lineage handler - Remove ButtonBase import and replace with Box in TabButton styled component - Remove disableRipple prop from TabButton to use default MUI behavior - Fix code formatting and line length issues in path matching logic
…dling - Import ColumnLineageEdge type for proper type safety - Add selectedColumn filter to return lineage for specific columns only - Add targets filter to return lineage only for columns in targets list - Add showIndirectEdges filter to exclude indirect edges when disabled - Improve code comments to document request filter behavior - Explicitly type columnLineage array as ColumnLineageEdge[] instead of any - Refactor edge creation to use const variable for better readability - Add indirect edge filtering logic for future edge type support - Enhance request handling to support upstream expansion configuration
Feature dbt lineage
Feature/kinetica db with tabs
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the
✨ Finishing touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…oject feat: Add option to remove the .git directory after cloning a reposit…
Version/1.3.0
No description provided.