-
Notifications
You must be signed in to change notification settings - Fork 895
fix: UpdatePolicy update mask #17240
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
Merged
Merged
Conversation
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
BREAKING
Collaborator
|
We also need to update terraform plugin. |
ecmadao
approved these changes
Aug 21, 2025
d-bytebase
added a commit
that referenced
this pull request
Sep 23, 2025
* fix: declarative version check, disallow equal or less versions. (#17185) * fix: declarative version check, disallow equal or less versions. * chore: update test * feat: pagination for group (#17189) * feat: pagination for group * fix: lint * chore: update * chore: update * chore: update * perf: optimize batch fetch group * fix: missing password rotation (#17190) * fix: password rotation checks (#17194) * chore: update release validation (#17191) * chore: move declarative to root (#17192) * fix: router navigation and security issues (#17195) Co-authored-by: Claude <[email protected]> * docs: add vs DataGrip (#17197) * chore: export with schema (#17196) * feat: allow delete spec when creating plan (#17198) * feat: allow delete spec when creating plan 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * feat: allow delete/add specs for created plans without rollout (#17199) * feat: allow delete/add specs for created plans without rollout 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: add spec validation for ISSUE_CREATE action Prevent creating issues when plan specs are empty by: - Adding spec validation check using useSpecsValidation hook - Disabling ISSUE_CREATE action when specs are invalid - Showing helpful tooltip 'Missing statement' for disabled state 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: update disabled tooltip logic to use ActionConfig properties Properly combine global and individual action disabled states: - Primary action tooltip shows ActionConfig.description when individually disabled - Dropdown options respect both global and individual disabled states - Consistent tooltip priority: global disabledTooltip takes precedence over ActionConfig.description This ensures spec validation tooltips ('Missing statement') display correctly for ISSUE_CREATE action when specs are empty. 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * feat: check release handle multiple declarative files (#17201) * refactor: remove pg_query_go usage in cockroachdb sync (#17202) * feat(action): merge files for declarative rollout (#17203) * chore: add action tests (#17205) * chore: update change type to DML for export data specs (#17204) * chore: allow create instance and database without the environment (#17207) * chore: update ux for query result limit * chore: update * chore: mark environment as optional * fix: test * chore: update * fix: lint * fix: test * chore: allow delete environment * fix: lint * fix: lint * chore: update * chore: dev guard * fix: test * chore: allow create instance and database without the environment * refactor: migrate PostgreSQL parser from pg_query_go to ANTLR in data update executor (#17206) * refactor: migrate PostgreSQL parser from pg_query_go to ANTLR in data update executor * chore: fix linter * chore: update affectedRows to int64 (#17182) * perf: optimize member user checks with new MemberContainsUser helper (#17208) Add MemberContainsUser helper function in backend/utils/member.go that efficiently checks if a member contains a specific user without fetching all users. This replaces less efficient GetUsersByMember calls in predicate_columns_check.go and query_result_masker.go, improving performance for masking exception policy checks by enabling early returns on matches. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: update parser dependency (#17209) * fix: get latest taskrun (#17210) Close BYT-7910 * refactor: deprecate check column type (#17211) * refactor: remove pg_query_go usage in check.go * chore: deprecate * chore: update * fix: infinite redirect in navigation guard (#17213) * feat(UI): show revision type (#17215) Versioned or declarative * feat: hard-delete the instance (#17216) * feat: hard-delete the instance * chore: update * chore: update * chore(action): update readme (#17217) * refactor: simplify Oracle query handling code (#17218) - Move skipAddLimit() and subqueryListener from oracle.go to query.go for better organization - Extract convertTimestamp() function to reduce complexity in convertValue() - Break down skipAddLimit() into smaller, focused helper functions for better readability - Add section comments to group related functions (Type Conversion, Limit Handling, etc.) - Improve type safety with proper type assertions - Remove unused imports from oracle.go 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support hard-delete the project (#17219) * feat: support hard-delete the project * chore: update * fix: changelog filter by type (#17220) * fix: unify rollout button permission checks (#17221) Co-authored-by: Claude <[email protected]> * fix: handle null environments in rollout UI (#17223) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: run format check (#17225) * feat: prettierignore (#17227) * refactor: remove pg_query_go usage in sync (#17224) * refactor: remove pg_query_go usage in sync * chore: update * chore: update * chore: update * feat: support null environments in rollouts with placeholder handling (#17229) Add support for stages with null/empty environments by introducing a "-" placeholder: - Add formatStageIDFromEnvironment/formatEnvironmentFromStageID helper functions - Update proto documentation to clarify "-" usage for null environments - Add nullEnvironment() helper in frontend types - Handle null environment display across rollout UI components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove `ComposedInstance` type (#17231) * refactor: remove ComposedInstance type and related code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * fix: error (#17230) * fix: error * Update backend/runner/taskrun/schema_update_sdl_executor.go Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * Update backend/runner/taskrun/schema_update_sdl_executor.go --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * refactor: remove `ComposedRollout` and `ComposedIssueComment` types (#17232) Replace composed types with base proto types (Rollout, IssueComment) and use helper function `getIssueCommentType()` instead of type property. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove `ComposedRelease` type (#17233) Replace ComposedRelease with base Release proto type and use helper functions for user/project information lookup. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: string single quote only for mysql comment in sync (#17234) * fix: unquote only * chore: table * docs: add fish to README.md (#17235) * docs: add vs DataGrip * docs: add fish to readme. * perf: sql editor (part1) (#17236) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: sql editor (part2) (#17238) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: MonacoEditor MonacoEditor Components 1. useContent.ts - Added 50ms debounce on content changes to reduce update frequency - Prevents excessive re-renders when typing rapidly 2. useSelection.ts - REMOVED redundant listener: Eliminated onDidChangeModelContent that was causing unnecessary selection updates on every keystroke - Selection only updates when cursor actually moves, not when typing 3. useActiveRangeByCursor.ts - Replaced localStorage with in-memory cache using Map for statement ranges - Added 50ms debounce for cursor position updates - Optimized WebSocket processing with early string check before JSON parsing - Removed redundant statementRangeCache (kept only the ref-based storage) 4. MonacoTextModelEditor.vue - Combined multiple watchers into a single watcher for selection and activeRangeByCursor - Added 100ms throttle for selection update handling - Reduces reactive overhead from multiple separate watchers 5. useAutoComplete.ts - Added 500ms debounce for setMetadata LSP requests - Prevents flooding the LSP server with metadata updates while typing sqlEditor/tab.ts Major Optimization: Watch Only Active Tab - Before: Watched ALL tabs continuously, causing performance issues with many tabs - After: Only watches the currently active tab - Implementation: - Tracks current watcher with currentWatchedTabStop variable - Cleans up old watcher when switching tabs - Creates new watcher only for the active tab - Increased localStorage throttle from 100ms to 500ms Key Benefits: - Reduced watchers: From N watchers (one per tab) to just 1 watcher - Less localStorage I/O: Throttled to 500ms instead of 100ms - Better memory usage: No longer tracking changes in background tabs - Cleaner tab switching: Proper cleanup prevents memory leaks Overall Impact These changes significantly reduce: - Unnecessary re-renders during typing - LSP server load - LocalStorage I/O operations - Memory usage from excessive watchers - CPU usage from redundant reactive tracking The optimizations maintain all functionality while dramatically improving performance, especially noticeable when: - Typing rapidly in the editor - Working with multiple tabs - Handling large SQL files - Using autocomplete features * chore: move plan description from sidebar for main view (#17239) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: UpdatePolicy update mask (#17240) * fix: strip quote (#17237) * chore: add workaround for MySQL 0 time (#17241) * perf: sql editor (part3) (#17242) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: MonacoEditor MonacoEditor Components 1. useContent.ts - Added 50ms debounce on content changes to reduce update frequency - Prevents excessive re-renders when typing rapidly 2. useSelection.ts - REMOVED redundant listener: Eliminated onDidChangeModelContent that was causing unnecessary selection updates on every keystroke - Selection only updates when cursor actually moves, not when typing 3. useActiveRangeByCursor.ts - Replaced localStorage with in-memory cache using Map for statement ranges - Added 50ms debounce for cursor position updates - Optimized WebSocket processing with early string check before JSON parsing - Removed redundant statementRangeCache (kept only the ref-based storage) 4. MonacoTextModelEditor.vue - Combined multiple watchers into a single watcher for selection and activeRangeByCursor - Added 100ms throttle for selection update handling - Reduces reactive overhead from multiple separate watchers 5. useAutoComplete.ts - Added 500ms debounce for setMetadata LSP requests - Prevents flooding the LSP server with metadata updates while typing sqlEditor/tab.ts Major Optimization: Watch Only Active Tab - Before: Watched ALL tabs continuously, causing performance issues with many tabs - After: Only watches the currently active tab - Implementation: - Tracks current watcher with currentWatchedTabStop variable - Cleans up old watcher when switching tabs - Creates new watcher only for the active tab - Increased localStorage throttle from 100ms to 500ms Key Benefits: - Reduced watchers: From N watchers (one per tab) to just 1 watcher - Less localStorage I/O: Throttled to 500ms instead of 100ms - Better memory usage: No longer tracking changes in background tabs - Cleaner tab switching: Proper cleanup prevents memory leaks Overall Impact These changes significantly reduce: - Unnecessary re-renders during typing - LSP server load - LocalStorage I/O operations - Memory usage from excessive watchers - CPU usage from redundant reactive tracking The optimizations maintain all functionality while dramatically improving performance, especially noticeable when: - Typing rapidly in the editor - Working with multiple tabs - Handling large SQL files - Using autocomplete features * perf: result rendering * Update frontend/src/views/sql-editor/EditorCommon/ResultView/DataTable/VirtualDataTable.vue Co-authored-by: boojack <[email protected]> --------- Co-authored-by: boojack <[email protected]> * feat: implement direct issue creation from plan without drawer (#17244) * feat: implement direct issue creation from plan without drawer - Replace IssueCreationActionPanel drawer with direct handleIssueCreate action - Add comprehensive validation for issue creation including plan check status - Prevent creation when plan checks are running or failed with policy restrictions - Remove confirmation dialog for streamlined user experience - Maintain same validation logic as original panel (permissions, labels, etc.) - Navigate directly to issue detail page after creation * chore: update * feat: introduce AST-based comparer for PostgreSQL expression and view (#17243) * chore: enhance comparer * chore: fix tests * fix: lint error * chore: fix linter errors * chore: fix test and linter errors * chore: fix linter error * feat: support triggers * refactor: get database definition use metadata instead of definition (#17245) Previously, PostgreSQL GetDatabaseDefinition parse the index definition to get the metadata. Now, it will use the definition synced from sync.go. * feat: redirect to rollout page after final node approved (#17246) * feat: redirect to rollout page after final issue approval - Add logic to redirect to rollout page when issue receives final approval - Show success notification when issue is fully approved - Import required utilities for rollout navigation - Check approval flow to determine if current approval is final - Only redirect to rollout when both rollout exists and it's the last approval 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * perf: sql editor (part4) (#17247) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: MonacoEditor MonacoEditor Components 1. useContent.ts - Added 50ms debounce on content changes to reduce update frequency - Prevents excessive re-renders when typing rapidly 2. useSelection.ts - REMOVED redundant listener: Eliminated onDidChangeModelContent that was causing unnecessary selection updates on every keystroke - Selection only updates when cursor actually moves, not when typing 3. useActiveRangeByCursor.ts - Replaced localStorage with in-memory cache using Map for statement ranges - Added 50ms debounce for cursor position updates - Optimized WebSocket processing with early string check before JSON parsing - Removed redundant statementRangeCache (kept only the ref-based storage) 4. MonacoTextModelEditor.vue - Combined multiple watchers into a single watcher for selection and activeRangeByCursor - Added 100ms throttle for selection update handling - Reduces reactive overhead from multiple separate watchers 5. useAutoComplete.ts - Added 500ms debounce for setMetadata LSP requests - Prevents flooding the LSP server with metadata updates while typing sqlEditor/tab.ts Major Optimization: Watch Only Active Tab - Before: Watched ALL tabs continuously, causing performance issues with many tabs - After: Only watches the currently active tab - Implementation: - Tracks current watcher with currentWatchedTabStop variable - Cleans up old watcher when switching tabs - Creates new watcher only for the active tab - Increased localStorage throttle from 100ms to 500ms Key Benefits: - Reduced watchers: From N watchers (one per tab) to just 1 watcher - Less localStorage I/O: Throttled to 500ms instead of 100ms - Better memory usage: No longer tracking changes in background tabs - Cleaner tab switching: Proper cleanup prevents memory leaks Overall Impact These changes significantly reduce: - Unnecessary re-renders during typing - LSP server load - LocalStorage I/O operations - Memory usage from excessive watchers - CPU usage from redundant reactive tracking The optimizations maintain all functionality while dramatically improving performance, especially noticeable when: - Typing rapidly in the editor - Working with multiple tabs - Handling large SQL files - Using autocomplete features * perf: result rendering * perf: hover panel * chore: simplify the code * chore: update * chore: update * chore: update * fix: revert changes * feat: add CREATE RULE support for PostgreSQL and fix cycle detection (#17248) Fixes cycle errors in schema dumps when using PostgreSQL routing rules pattern (view with INSERT/UPDATE/DELETE rules redirecting to tables). Changes: - Add RuleMetadata proto definition with fields for rule properties - Add rules field to TableMetadata and ViewMetadata - Implement getRules() to sync rules from pg_rewrite catalog (PostgreSQL only) - Add writeRules() to output CREATE RULE statements in dumps - Fix dependency cycle by filtering to only SELECT rules in getViewDependencies for both PostgreSQL and CockroachDB - Add comprehensive integration test for routing rules pattern - Update all generated proto files The implementation now correctly handles view-to-table routing patterns without causing "graph has cycle" errors and properly exports CREATE RULE statements in PostgreSQL schema dumps. CockroachDB gets the cycle fix but doesn't support CREATE RULE. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: make declarative flag as experimental (#17252) * fix: refactor plan components and fix section visibility (#17253) - Use usePlanContext instead of usePlanContextWithIssue - Fix FailedTaskRunsSection logic to use && instead of || - Extract shouldShowSpecList computed property for clarity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: introduce sdl test and fix bugs (#17251) * chore: introduce sdl test and fix bugs * chore: fix linter errors * chore: fix linter errors * chore: remove release creators in UI (#17255) * perf: batch fetch release creators to reduce API calls 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: remove creator --------- Co-authored-by: Claude <[email protected]> * chore(action-image): latest or versioned (#17254) * feat: improve task activity grouping by removing restrictive task ID check (#17257) ## Problem Task activities like "completed Task d1", "completed Task d2", "completed Task d3" were not being grouped together even though they represent the same type of action (task completion). This resulted in cluttered activity feeds with many similar entries. ## Solution Removed the restrictive `isEqual(fromTaskUpdate.tasks, toTaskUpdate.tasks)` check that prevented grouping of task updates with different task IDs. Now task activities are grouped when: - They're from the same creator - They have the same status transition (e.g., all "completed" transitions) - OR they have the same sheet transition ## Impact This change will significantly reduce visual clutter in the activity timeline by collapsing similar task activities (like multiple task completions) into a single entry with a count like "3 similar activities". ## Technical Details - Removed the lodash `isEqual` check for task arrays - Removed unused lodash import - Added clarifying comment about the grouping logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve issue detail page UI for better readability (#17256) * feat: improve issue detail page UI for better readability and modern aesthetics - Modernized Description section with clean borders and consistent typography - Redesigned comment cards with GitHub-style layout and subtle headers - Improved visual hierarchy with consistent font sizes and weights - Enhanced spacing and padding throughout for better readability - Simplified color scheme using unified gray scale - Updated markdown editor with tab-style write/preview toggle - Streamlined edit controls with better visibility - Applied consistent design system across all components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: restore edited timestamp and similar activities display - Restored "edited" timestamp display for comments - Restored similar activities count display - Fixed linting errors for unused i18n keys - Maintained clean design while preserving functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> Co-authored-by: steven <[email protected]> * fix: fk on update/delete options (#17260) * chore: add description input for plans without issue (#17259) * feat: add description input for plans without issues Add a compact description input field under the title in HeaderSection for plans that don't have associated issues. The input auto-saves on blur and only shows border when focused for a clean UI. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * feat: skip lower versioned sdl tasks (#17261) * chore: tweak description section styles (#17262) * chore: tweak description section styles * chore: update * fix: several fix (#17265) * chore: support clear environment in instance and database (#17266) * fix: several fix * chore: support clear environment * feat: add markdown editor to plan description section (#17267) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: i18n (#17268) * fix: improve plan spec validation reactivity and auto-enable editing (#17269) - Fix reactivity issue in useSpecsValidation hook by accepting reactive refs - Actions now properly disable when empty specs are added to draft plans - Auto-enable statement editing when new specs are created - Update all consumers of useSpecsValidation to use computed refs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: enhance expression comparer (#17263) * chore: enhance expression comparer 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: fix test * chore: update comments --------- Co-authored-by: Claude <[email protected]> * chore: unify sparkles icon (#17270) * chore: replace all sparkles icon (#17271) * chore(action): wake up cloud (#17272) * fix: query principal (#17273) * fix: several fix * chore: support clear environment * chore: update * fix: query principal * fix: improve plan check validation (#17274) * fix: improve plan check validation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * refactor: consolidate plan check trigger logic (#17275) * refactor: consolidate plan check trigger logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update * chore: update * chore: update --------- Co-authored-by: Claude <[email protected]> * feat: implement expression comparison interface and clean up PostgreSQL codebase (#17276) * feat: implement expression comparison interface and clean up PostgreSQL code - Add new CompareExpressionsSemantically interface for engine-agnostic expression comparison - Clean up PostgreSQL AST expression comparison implementation - Remove debug logging from differ.go - Update PostgreSQL expression comparison tests 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: remove MySQL dependencies from interface layer - Remove MySQL AST import and references from expression_comparer.go - Remove MySQL-specific function normalization from differ.go - Clean up unused parameters and formatting issues - Ensure code builds without MySQL AST implementation This ensures the interface layer only depends on PostgreSQL implementation while MySQL functionality is properly separated in stash. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * fix: resolve race condition in plan creation causing empty statement editor (#17277) The statement editor was appearing empty during plan creation due to a race condition where sheet creation mutations triggered reactive updates in StatementSection before the process completed. Changes: - Simplify createSheets() to update configs immediately after sheet creation - Add editorViewKey in StatementSection to force re-render when sheet changes - Remove batching logic that was causing timing issues 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: support columns in database resource for masking exception (#17278) * fix: revert claude change (#17279) * fix: creating sheet for new spec (#17280) * fix: creating sheet for new spec * chore: update * feat: implement collapsed view for plan description section (#17283) - Add collapsed/expanded state management to DescriptionSection - Show compact one-line view by default with clickable description text - Include expand/collapse functionality with NButton component - Remove separate "Add" button, make description text itself clickable - Update localization files to include "collapse" translation - Rename DescriptionInput to DescriptionSection for clarity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: sql editor initial (#17284) * fix mongodb collection name contains special characters (#17282) Signed-off-by: dongjiang <[email protected]> * chore: check sheets for plan check run creates (#17281) * feat: add autofocus prop to MarkdownEditor component (#17286) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: update tag policy for reivew config (#17287) * chore: tweak stage width (#17288) * chore: add cassandra data masking (#17250) * chore: add cassandra data masking * chore: update * chore: update * chore: update * Update backend/plugin/parser/cassandra/query_span_extractor.go * Update backend/plugin/parser/cassandra/query_span_extractor.go --------- Co-authored-by: h3n4l <[email protected]> * fix: revert some changes in #16940 (#17290) * chore: err msg (#17291) * chore: go parser dep upgrade (#17292) * refactor: use NTabs for markdown editor tabs (#17293) Replace custom tab implementation with naive-ui's NTabs component for better consistency and maintainability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve plan description field UX (#17294) - Add expand icon (plus) next to placeholder text when field is empty - Show Markdown preview in collapsed state with proper formatting - Add collapse button with chevron icon for better visibility - Implement click-outside-to-collapse behavior - Update placeholder text from "Add your description here..." to "Add a description" - Apply compact styling to Markdown preview with fade effect for long content - Update all i18n translations (en-US, zh-CN, ja-JP, es-ES, vi-VN) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve plan detail page description UX (#17295) - Move description section to top of Overview tab, closer to title (similar to GitHub PR layout) - Sync description UX with plan creation: collapsed preview state with expand/collapse functionality - Add auto-save with 1-second debouncing for seamless editing - Show full markdown content without truncation in preview mode - Add "Add description" placeholder button when empty 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: file type in release view (#17296) * chore: support gemini & claude (#17298) * chore: switch back to [email protected] (#17299) * docs: add vs DataGrip * docs: add fish to readme. * chore: switch back to [email protected] * chore: fix array type for pg (#17300) * chore: fix array type for pg * chore: fix linter errors * feat: add issue created comment with editable description (#17301) * feat: add issue created comment with editable description - Create IssueCreatedCommentV1 component showing plan/issue description as activity comment - Add edit functionality with save/cancel buttons for description updates - Move DescriptionSection to HeaderSection folder for better organization - Refactor plan description editing to use save/cancel pattern - Update comment styling to match approval activity layout - Remove obsolete IssueCreatedComment and consolidate functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * chore: show environment color (#17302) * chore: fix topo order for pg and oracle and use stable order for differ (#17297) * chore: fix topo order for pg and oracle * chore: fix tests * chore: spinner for rollout stages view (#17303) * chore: optimize masking exception layout (#17304) * chore: remove strictProject field from SQL editor store (#17306) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove ComposedTaskRun type and use dedicated taskRunLog store (#17307) Remove the ComposedTaskRun interface that mixed TaskRun data with TaskRunLog. Replace with a dedicated useTaskRunLogStore for better separation of concerns: - Create new taskRunLog store with reactive caching - Update all components to use TaskRun + taskRunLog store pattern - Remove ComposedTaskRun from rollout types - Simplify experimental-issue store to use plain TaskRun arrays 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: fix demo version (#17308) * chore: use create or replace to update function body (#17305) * chore: use create or replace to update function body * chore: fix tests * chore: fix linter error * fix: improve migration detail format when version is empty (#17310) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: gemini (#17311) * chore: support gemini & claude * fix: gemini * feat: add automatic rollout policy display and force run functionality (#17312) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: using reflect.TypeFor (#17313) * refactor: consolidate create database prep form components (#17315) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat(pg): sync opclass related info (#17316) * chore: release table width and resizable (#17317) * chore(action): default release title (#17318) * refactor: creating database issue page (#17319) * feat: add issue resolve action to plan component Add ISSUE_STATUS_RESOLVE action to Plan HeaderSection Actions, matching the legacy IssueV1 resolve functionality: - Add ISSUE_STATUS_RESOLVE to unified action types - Update IssueStatusActionPanel to handle resolve action (transitions issue to DONE status) - Add resolve action availability logic (shows when all tasks finished and review done) - Set resolve action as success button type (green color) - Add reopen action for resolved issues - Restrict rollout actions until approval finding is done - Fix module import issue in IssueReviewView 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * chore: always use new layout for database creation issues (#17322) Update routing logic to ensure database creation issues always use the Plan-based IssueDetailV1View: - IssueDetailPage: redirect all createDatabaseConfig issues to new layout regardless of enabledNewLayout flag - IssueDetailV1View: prevent redirect to legacy layout for database creation plans - Maintain existing conditional redirect behavior for database change issues This ensures database creation issues consistently use the modern Plan interface while preserving backward compatibility for other issue types. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> Co-authored-by: Danny <[email protected]> * chore: update cassandra query span (#17309) * chore: update cassandra query span * chore: update * chore: update * chore: update * refactor: superfluous advisor type (#17320) * refactor: superfluous advisor type * clean * fix: schema rule type (#17324) * chore: upgrade Go from 1.24.5 to 1.25.0 (#17325) * chore: upgrade Go from 1.24.5 to 1.25.0 Updated Go version to 1.25.0 across all configuration files: - go.mod - Dockerfiles (scripts/Dockerfile*) - GitHub Actions workflows 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update golangci-lint to v2.4.0 for Go 1.25.0 support --------- Co-authored-by: Claude <[email protected]> * fix: resolve Vue warnings for missing template and invalid watch source (#17326) - Add empty template to PlanSpecsView component to fix missing template warning - Fix invalid watch source in PlanCheckSection by using getter function for selectedSpec.value.id - Include other staged UI improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * test: add sdl test framework and type test cases (#17321) * chore: add sdl test framework * chore: add alter and drop test cases * chore: finish all type test cases * fix: export task timeout error handling (#17327) Export tasks were completing with empty downloads when queries timed out after 10 minutes. The bug was in DoExport() returning the wrong error variable - it returned 'err' (connection error, usually nil) instead of 'queryErr' (the actual timeout error), causing tasks to appear successful with empty export archives. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: update ExportRequest name field comment (#17328) Update ExportRequest.name field comment to accurately reflect all supported export formats from the RPC Export method options: - instances/{instance}/databases/{database} - instances/{instance} - projects/{project}/rollouts/{rollout} - projects/{project}/rollouts/{rollout}/stages/{stage} 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: update release description in all translations (#17329) * chore: update release description in all translations Updated the "usage-description" text across all language files to better reflect that a release is a versioned application artifact deployed via GitOps workflows. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update frontend/src/locales/zh-CN.json --------- Co-authored-by: Claude <[email protected]> Co-authored-by: p0ny <[email protected]> * feat: display release file type (#17330) * refactor: polish CreateDatabasePrepPanel.vue code structure (#17331) - Simplify template structure by removing unnecessary nested divs - Use strict equality (===) instead of loose equality (==) - Simplify computed properties with concise arrow functions - Use object destructuring for cleaner variable extraction - Improve code consistency with Vue 3 composition API patterns - Maintain all existing functionality and logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: update documentation links to match new URL structure (#17332) Co-authored-by: Claude <[email protected]> * chore(action): readme declarative mode usage (#17335) * refactor: simplify loop (#17336) * chore: disable ai setting in the saas mode (#17334) * chore: disable ai setting in the saas mode * Update frontend/src/components/GeneralSetting/AIAugmentationSetting.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: fix environment setting doc link (#17337) * refactor: replace DataExportIssueDataTable with standard IssueTableV1 (#17333) - Remove custom DataExportIssueDataTable component - Use standard IssueTableV1 component in ExportCenter for consistency - Add rollout validation in RolloutView context - Minor styling adjustments to DatabaseInfo and DescriptionSection 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * test: add column tests for PostgreSQL SDL (#17340) * feat: batch create task runs (#17339) * feat: batch create task runs * fix: lint * feat: improve mobile responsiveness for CICD layout (#17341) - Add responsive stage cards with mobile-first design - Implement mobile hamburger menu and sidebar drawer - Create shared StageActions component to reduce duplication - Optimize padding and spacing for mobile screens - Support both mobile and desktop layouts seamlessly 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove ComposedDatabaseGroup type and simplify data flow (#17343) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: fallback to the webhook message if send im direct message fails (#17344) * chore: fallback to the webhook message if send im direct message fails * chore: update * refactor: remove ComposedProject type (#17345) * refactor: remove ComposedProject type and use Project from proto - Remove ComposedProject interface that extended Project with iamPolicy - Replace all ComposedProject usage with Project from proto definitions - Update components to use projectIamPolicyStore for IAM policy access - Fix all TypeScript errors by adding missing imports - Separate concerns: projects and IAM policies now in distinct stores 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * fix: fallback to instance resource name for users without instance permissions (#17346) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: description in legacy issue page (#17347) * chore: update credential for spanner/bigquery (#17349) * fix: credential for spanner/bigquery * fix: lint * chore: update * chore: update (#17351) * chore: update GitHub Actions runners and remove CodeQL workflow (#17353) Co-authored-by: Claude <[email protected]> * chore: upgrade Go from 1.25.0 to 1.25.1 (#17352) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor(action): structured output map (#17355) * chore: upgrade lucide icons and improve SQL review check display (#17356) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix(tsql): resolve view parsing and cross-database reference issues (#17354) * chore: set query type if meet error later * fix: view definition is create view * fix: switch to the cross database context in parse view definition if needed * fix: correlated subquery in select list * feat: metadata array in test * fix: test * fix: respect role expiration time (#17357) * fix: engine in instance filter (#17359) * fix: column key (#17360) props.database is of ComposedDatabase type. * refactor: use NewColumnNotExistsError (#17362) * fix: improve advanced search filter tag layout structure (#17361) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: unify data access policies (#17363) * feat(action): job summary (#17364) * feat(action): write github step summary * feat(action): output stage summary * refactor * handle zero stage case * test empty * fix: remove command count limit for MSSQL to fix task run log display (#17365) * refactor: action pkgs (#17366) * refactor: action pkgs * chore: wrap errors * refactor: drop deprecated data_source table (#17367) Remove the deprecated data_source table that is no longer in use: - Add migration to drop the table and sequence in 3.10 - Remove table definition from LATEST.sql - Remove data_source deletion code from instance.go 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: mitigate flaky test TestSyncSpatialIndexWithTestcontainer (#17368) * fix: resolve flaky test TestSyncSpatialIndexWithTestcontainer - Add retry logic with exponential backoff for schema sync operations - Implement delays for metadata propagation in all test cases - Enhance error handling for transient connection issues - Improve database cleanup with retry mechanism - Add SQL statement execution retry for transient errors Fixes BYT-8008 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * refactor: remove unused parameter in syncDBSchemaWithRetry Fix golangci-lint unparam error by removing maxRetries parameter that always receives the same value (3). Made maxRetries a const inside the function instead. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * fix: handle PostgreSQL partition table syntax in tokenizer (#17369) * fix: handle PostgreSQL partition table syntax in tokenizer * chore: update * chore: update * chore: update demo data from 3.7.0 to 3.10.0 (#17370) * fix: rollout should only be blocked by plan check errors, not warnings (#17371) * perf: use virtual list for large database (#17373) * chore: use list * chore: update * chore: hover panel * chore: update * chore: update * chore: update * chore(deps): update dependency vite to v6.3.6 [security] (#17377) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: should throw error if cannot found slack user (#17376) * chore: optimize result selection/copy (#17378) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: permission checks for editing description (#17380) * chore: not include the service account (#17381) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint * chore: not include the service account * fix: typo --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: add question mark icon to affected rows tag for better visibility (#17382) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: tab content is not cached correctly (#17383) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint * chore: not include the service account * fix: content is not cached correctly --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * feat: improve editor height and responsive layout (#17385) - Make SpecDetailView responsive with proper flex layout and height constraints - Expand editor to use available vertical space while maintaining minimum height - Add viewport-based height limits to prevent oversized components - Improve responsive padding for small screens 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve mobile UI responsiveness (#17386) - Hide SQL Editor and My Issues button text on mobile screens to reduce header crowding - Make TaskView layout responsive with flex-wrap for better content overflow handling - Improve ProjectSwitchPopover max width on mobile devices - Use conditional rendering based on window width for better mobile UX 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: remove unused maxStacksize constant (#17387) * fix: remove unnecessary check for database instance activation (#17388) * chore: add more debug message (#17389) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint * chore: not include the service account * fix: content is not cached correctly * fix: not throw error when create history fails * chore: add more debug message --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: add InsecureVerify toggle (#17323) * chore: add InsecureVerify toggle * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * feat(action): service account via env var (#17392) * chore: data source form ui (#17391) * chore: optimize form * chore: unify component * chore: refresh subscription (#17395) * chore: add ElasticSearch logs (#17394) * chore: improve migration error logs (#17396) * chore: improve migration error logs * chore: update * chore: suppress embedded PG checkpoing log (#17397) * fix: auto-focus first available tab in signin form (#17399) * chore: allow to redirect to workspace (#17398) * refactor: use shared STATEMENT_SKIP_CHECK_THRESHOLD constant (#17400) * chore: relax cors in dev only (#17401) Close BYT-8080 * chore: update comment (#17403) * feat: introduce new sdl diff framework and support CREATE/DROP table (#17402) * feat: introduce new sdl diff framework and support CREATE/DROP table * chore: linter errors * fix MONGODB readonly user roles (#17404) Signed-off-by: dongjiang <[email protected]> * chore: update (#17405) * fix: check result item title consistency (#17406) Remove debug console.log statements and simplify title localization logic to match the implementation in PlanCheckRunDetail.vue for consistency. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support pg column in sdl workflow (#17407) * feat: support pg column in sdl workflow * chore: linter errors * chore: fix linter errors * feat: unify ChecksView component with prop-driven architecture (#17408) - Make ChecksView component reusable by accepting planCheckRuns as props instead of using context - Fix builtin rule localization display in CheckResultItem (e.g., "builtin.prior-backup-check" → "Prior backup feasibility check") - Add data transformation in SQLCheckV1Section to convert Advice[] to PlanCheckRun[] format - Maintain drawer pattern with clickable status counts in SQLCheckV1Section header - Fix infinite API loop in ChecksDrawer by removing problematic watch and loading data once on mount - Remove unused PlanCheckRunsView.vue component - Add status count filtering capability in ChecksView header 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: sql editor is slow when data is large (#17409) * feat: support pg table constraints in SDL (#17410) * chore(action): no default account (#17411) * fix: get or fetch group (#17413) * feat: support pg index for SDL (#17412) * chore: move Transaction Mode toggle and Instance Role dropdown into plans (#17415) * chore: move Transaction Mode toggle and Instance Role dropdown into plans * chore: update * chore: update * chore: update * refactor: remove setting from sql editor (#17416) * refactor: remove setting from sql editor * chore: update * fix: eslint * chore: default width (#17417) * refactor: auth reduce getUser calls (#17418) * fix: transaction mode switch initialization and api calls (#17419) Co-authored-by: Claude <[email protected]> * fix: instance role section api calls and ui improvements (#17421) - Fix InstanceRoleSection to handle created vs uncreated plans properly - Add proper API calls using updateSpecSheetWithStatement utility - Improve UI with label-first layout and better help tooltips - Move translations from instance to plan.spec for better organization - Add clearable selector and prevent circular updates - Reorder configuration sections to show role selection first 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: optimize database group (#17420) * chore: optimize database group * chore: update * Update frontend/src/store/modules/dbGroup.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update * fix: lint --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix(action): remove ext (#17422) * chore: calculate the unmatched databases (#17423) * chore: optimize database group * chore: update * Update frontend/src/store/modules/dbGroup.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update * fix: lint * chore: calculate the unmatched databases * chore: update * chore: update * fix: test --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: show matched database (#17425) * chore: optimize database group * chore: update * Update frontend/src/store/modules/dbGroup.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update * fix: lint * chore: calculate the unmatched databases * chore: update * chore: update * fix: test * chore: show matched database * chore: update --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: add statement size warning to plan check section (#17424) Co-authored-by: Claude <[email protected]> * chore: support instance_id in risk condition (#17427) * chore: remove format on save checkbox from plan editor (#17426) Removes the "Format on save" checkbox as the "on save" trigger is not obvious to users and it's frontend-only behavior. If formatting is needed, it should be implemented as an explicit editor format action instead. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support pg view in SDL differ (#17429) * feat: support pg function and procedure for SDL diff (#17430) * feat: support pg sequence for pg SDL diff (#17431) * fix: missing quotation marks in json (#17432) * chore: change ui for database change mode setting (#17435) * refactor: remove setting from sql editor * chore: update * fix: eslint * chore: update setting * feat: generate migration for AST only diff (#17436) * chore: remove deprecated VCS permissions in migration 3.10.3 (#17440) Remove deprecated VCS connector and provider permissions from existing roles. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: extract resource for export method (#17439) * fix: extract resource for export method * chore: change to database resource * fix: navigate to project page from SQL Editor logo (#17444) Update SQL Editor GutterBar to navigate to the current project's detail page when clicking the logo, instead of always going to workspace landing. When at /sql-editor/projects/new-project, clicking the logo will now open /projects/new-project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: generate func/procedure migration for pg sdl diff (#17438) * chore: remove instance-level additional bindings from SQL service (#17443) Remove the additional bindings for instance-level endpoints: - Remove /v1/{name=instances/*}:query from Query() method - Remove /v1/{name=instances/*}:export from Export() method These endpoints are being deprecated in favor of the database-specific endpoints. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support generate pg sequence migration for ast-only (#17445) * chore: audit log api enforcement (#17446) * chore: add transaction isolation level to MySQL (#17428) * chore: add transaction isolation level to MySQL * chore: update * chore: update * chore: update * feat: support generate PG table migration for ast-only (#17447) * chore: hide deprecated rollout policy options for new users (#17449) * fix: navigate to project page from SQL Editor logo Update SQL Editor GutterBar to navigate to the current project's detail page when clicking the logo, instead of always going to workspace landing. When at /sql-editor/projects/new-project, clicking the logo will now open /projects/new-project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: hide deprecated rollout policy options for new users Hide "Issue Creator" and "Last Issue Approver" options in environment rollout policy configuration for users who haven't previously configured these deprecated options. Existing users with these options configured will continue to see them for backwards compatibility. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * chore: add labels to proto (#17450) * chore: add labels to SQL/proto * chore: update * chore: update * feat: support generate pg column migration for ast-only (#17448) * feat: support generate pg table constraint migration for ast-only (#17455) * fix: lint (#17453) * feat: support genereate pg index migration for ast-only (#17456) * fix: lint (#17457) * refactor: database export issue (#17458) * refactor: database export issue * chore: update * chore: support allow-missing for all Update() resource APIs (#17452) * chore: support allow-missing for all Update() resource APIs * chore: update * chore: add labels to projects with simple CEL filtering (for now) (#17451) * chore: add labels to projects with simple CEL filtering (for now) * chore: update * chore: update * chore: update * chore: update * refactor: improve plan task rollout UI and code organization (#17459) - Remove rollout start action from dropdown menu in Actions component - Refactor task grouping logic in TaskRolloutActionPanel with proper type safety - Improve parent path handling for batch operations - Add quaternary styling to cancel button in TargetsSelectorDrawer - Update Chinese translations for better clarity (targets -> target databases) 🤖 Generated with [Claude Code](https://claude.ai/…
d-bytebase
added a commit
that referenced
this pull request
Sep 26, 2025
#17470) * fix: missing password rotation (#17190) * fix: password rotation checks (#17194) * chore: update release validation (#17191) * chore: move declarative to root (#17192) * fix: router navigation and security issues (#17195) Co-authored-by: Claude <[email protected]> * docs: add vs DataGrip (#17197) * chore: export with schema (#17196) * feat: allow delete spec when creating plan (#17198) * feat: allow delete spec when creating plan 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * feat: allow delete/add specs for created plans without rollout (#17199) * feat: allow delete/add specs for created plans without rollout 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * feat: add spec validation for ISSUE_CREATE action Prevent creating issues when plan specs are empty by: - Adding spec validation check using useSpecsValidation hook - Disabling ISSUE_CREATE action when specs are invalid - Showing helpful tooltip 'Missing statement' for disabled state 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: update disabled tooltip logic to use ActionConfig properties Properly combine global and individual action disabled states: - Primary action tooltip shows ActionConfig.description when individually disabled - Dropdown options respect both global and individual disabled states - Consistent tooltip priority: global disabledTooltip takes precedence over ActionConfig.description This ensures spec validation tooltips ('Missing statement') display correctly for ISSUE_CREATE action when specs are empty. 🚀 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * feat: check release handle multiple declarative files (#17201) * refactor: remove pg_query_go usage in cockroachdb sync (#17202) * feat(action): merge files for declarative rollout (#17203) * chore: add action tests (#17205) * chore: update change type to DML for export data specs (#17204) * chore: allow create instance and database without the environment (#17207) * chore: update ux for query result limit * chore: update * chore: mark environment as optional * fix: test * chore: update * fix: lint * fix: test * chore: allow delete environment * fix: lint * fix: lint * chore: update * chore: dev guard * fix: test * chore: allow create instance and database without the environment * refactor: migrate PostgreSQL parser from pg_query_go to ANTLR in data update executor (#17206) * refactor: migrate PostgreSQL parser from pg_query_go to ANTLR in data update executor * chore: fix linter * chore: update affectedRows to int64 (#17182) * perf: optimize member user checks with new MemberContainsUser helper (#17208) Add MemberContainsUser helper function in backend/utils/member.go that efficiently checks if a member contains a specific user without fetching all users. This replaces less efficient GetUsersByMember calls in predicate_columns_check.go and query_result_masker.go, improving performance for masking exception policy checks by enabling early returns on matches. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: update parser dependency (#17209) * fix: get latest taskrun (#17210) Close BYT-7910 * refactor: deprecate check column type (#17211) * refactor: remove pg_query_go usage in check.go * chore: deprecate * chore: update * fix: infinite redirect in navigation guard (#17213) * feat(UI): show revision type (#17215) Versioned or declarative * feat: hard-delete the instance (#17216) * feat: hard-delete the instance * chore: update * chore: update * chore(action): update readme (#17217) * refactor: simplify Oracle query handling code (#17218) - Move skipAddLimit() and subqueryListener from oracle.go to query.go for better organization - Extract convertTimestamp() function to reduce complexity in convertValue() - Break down skipAddLimit() into smaller, focused helper functions for better readability - Add section comments to group related functions (Type Conversion, Limit Handling, etc.) - Improve type safety with proper type assertions - Remove unused imports from oracle.go 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support hard-delete the project (#17219) * feat: support hard-delete the project * chore: update * fix: changelog filter by type (#17220) * fix: unify rollout button permission checks (#17221) Co-authored-by: Claude <[email protected]> * fix: handle null environments in rollout UI (#17223) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: run format check (#17225) * feat: prettierignore (#17227) * refactor: remove pg_query_go usage in sync (#17224) * refactor: remove pg_query_go usage in sync * chore: update * chore: update * chore: update * feat: support null environments in rollouts with placeholder handling (#17229) Add support for stages with null/empty environments by introducing a "-" placeholder: - Add formatStageIDFromEnvironment/formatEnvironmentFromStageID helper functions - Update proto documentation to clarify "-" usage for null environments - Add nullEnvironment() helper in frontend types - Handle null environment display across rollout UI components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove `ComposedInstance` type (#17231) * refactor: remove ComposedInstance type and related code 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * fix: error (#17230) * fix: error * Update backend/runner/taskrun/schema_update_sdl_executor.go Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * Update backend/runner/taskrun/schema_update_sdl_executor.go --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * refactor: remove `ComposedRollout` and `ComposedIssueComment` types (#17232) Replace composed types with base proto types (Rollout, IssueComment) and use helper function `getIssueCommentType()` instead of type property. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove `ComposedRelease` type (#17233) Replace ComposedRelease with base Release proto type and use helper functions for user/project information lookup. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: string single quote only for mysql comment in sync (#17234) * fix: unquote only * chore: table * docs: add fish to README.md (#17235) * docs: add vs DataGrip * docs: add fish to readme. * perf: sql editor (part1) (#17236) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: sql editor (part2) (#17238) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: MonacoEditor MonacoEditor Components 1. useContent.ts - Added 50ms debounce on content changes to reduce update frequency - Prevents excessive re-renders when typing rapidly 2. useSelection.ts - REMOVED redundant listener: Eliminated onDidChangeModelContent that was causing unnecessary selection updates on every keystroke - Selection only updates when cursor actually moves, not when typing 3. useActiveRangeByCursor.ts - Replaced localStorage with in-memory cache using Map for statement ranges - Added 50ms debounce for cursor position updates - Optimized WebSocket processing with early string check before JSON parsing - Removed redundant statementRangeCache (kept only the ref-based storage) 4. MonacoTextModelEditor.vue - Combined multiple watchers into a single watcher for selection and activeRangeByCursor - Added 100ms throttle for selection update handling - Reduces reactive overhead from multiple separate watchers 5. useAutoComplete.ts - Added 500ms debounce for setMetadata LSP requests - Prevents flooding the LSP server with metadata updates while typing sqlEditor/tab.ts Major Optimization: Watch Only Active Tab - Before: Watched ALL tabs continuously, causing performance issues with many tabs - After: Only watches the currently active tab - Implementation: - Tracks current watcher with currentWatchedTabStop variable - Cleans up old watcher when switching tabs - Creates new watcher only for the active tab - Increased localStorage throttle from 100ms to 500ms Key Benefits: - Reduced watchers: From N watchers (one per tab) to just 1 watcher - Less localStorage I/O: Throttled to 500ms instead of 100ms - Better memory usage: No longer tracking changes in background tabs - Cleaner tab switching: Proper cleanup prevents memory leaks Overall Impact These changes significantly reduce: - Unnecessary re-renders during typing - LSP server load - LocalStorage I/O operations - Memory usage from excessive watchers - CPU usage from redundant reactive tracking The optimizations maintain all functionality while dramatically improving performance, especially noticeable when: - Typing rapidly in the editor - Working with multiple tabs - Handling large SQL files - Using autocomplete features * chore: move plan description from sidebar for main view (#17239) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: UpdatePolicy update mask (#17240) * fix: strip quote (#17237) * chore: add workaround for MySQL 0 time (#17241) * perf: sql editor (part3) (#17242) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: MonacoEditor MonacoEditor Components 1. useContent.ts - Added 50ms debounce on content changes to reduce update frequency - Prevents excessive re-renders when typing rapidly 2. useSelection.ts - REMOVED redundant listener: Eliminated onDidChangeModelContent that was causing unnecessary selection updates on every keystroke - Selection only updates when cursor actually moves, not when typing 3. useActiveRangeByCursor.ts - Replaced localStorage with in-memory cache using Map for statement ranges - Added 50ms debounce for cursor position updates - Optimized WebSocket processing with early string check before JSON parsing - Removed redundant statementRangeCache (kept only the ref-based storage) 4. MonacoTextModelEditor.vue - Combined multiple watchers into a single watcher for selection and activeRangeByCursor - Added 100ms throttle for selection update handling - Reduces reactive overhead from multiple separate watchers 5. useAutoComplete.ts - Added 500ms debounce for setMetadata LSP requests - Prevents flooding the LSP server with metadata updates while typing sqlEditor/tab.ts Major Optimization: Watch Only Active Tab - Before: Watched ALL tabs continuously, causing performance issues with many tabs - After: Only watches the currently active tab - Implementation: - Tracks current watcher with currentWatchedTabStop variable - Cleans up old watcher when switching tabs - Creates new watcher only for the active tab - Increased localStorage throttle from 100ms to 500ms Key Benefits: - Reduced watchers: From N watchers (one per tab) to just 1 watcher - Less localStorage I/O: Throttled to 500ms instead of 100ms - Better memory usage: No longer tracking changes in background tabs - Cleaner tab switching: Proper cleanup prevents memory leaks Overall Impact These changes significantly reduce: - Unnecessary re-renders during typing - LSP server load - LocalStorage I/O operations - Memory usage from excessive watchers - CPU usage from redundant reactive tracking The optimizations maintain all functionality while dramatically improving performance, especially noticeable when: - Typing rapidly in the editor - Working with multiple tabs - Handling large SQL files - Using autocomplete features * perf: result rendering * Update frontend/src/views/sql-editor/EditorCommon/ResultView/DataTable/VirtualDataTable.vue Co-authored-by: boojack <[email protected]> --------- Co-authored-by: boojack <[email protected]> * feat: implement direct issue creation from plan without drawer (#17244) * feat: implement direct issue creation from plan without drawer - Replace IssueCreationActionPanel drawer with direct handleIssueCreate action - Add comprehensive validation for issue creation including plan check status - Prevent creation when plan checks are running or failed with policy restrictions - Remove confirmation dialog for streamlined user experience - Maintain same validation logic as original panel (permissions, labels, etc.) - Navigate directly to issue detail page after creation * chore: update * feat: introduce AST-based comparer for PostgreSQL expression and view (#17243) * chore: enhance comparer * chore: fix tests * fix: lint error * chore: fix linter errors * chore: fix test and linter errors * chore: fix linter error * feat: support triggers * refactor: get database definition use metadata instead of definition (#17245) Previously, PostgreSQL GetDatabaseDefinition parse the index definition to get the metadata. Now, it will use the definition synced from sync.go. * feat: redirect to rollout page after final node approved (#17246) * feat: redirect to rollout page after final issue approval - Add logic to redirect to rollout page when issue receives final approval - Show success notification when issue is fully approved - Import required utilities for rollout navigation - Check approval flow to determine if current approval is final - Only redirect to rollout when both rollout exists and it's the last approval 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * perf: sql editor (part4) (#17247) * perf: optimize the lsp request Problem Solved: Browser UI lag and high CPU usage when typing in SQL editor due to excessive LSP requests and synchronous operations. Frontend Changes (5 files) 1. SQLEditor.vue - 150ms debounced store updates via createOptimizedContentHandler - Immediate UI feedback with delayed heavy operations 2. useContent.ts - 50ms debounce on content changes to reduce reactive updates 3. useAutoComplete.ts - 500ms debounce for LSP setMetadata requests 4. tab.ts - localStorage throttle increased: 100ms → 300ms 5. performance.ts (NEW) - Utility functions for optimized content handling Backend Changes (3 files) 1. performance_optimizer.go (NEW) - DiagnosticsDebouncer: 500ms delay for diagnostics with cancellation support - ContentCache: LRU cache with statement range caching - PerformanceMonitor: Request metrics tracking - Context cancellation checks to abort early - Cache hit optimization for statement ranges - Efficient LRU implementation with Invalidate method 2. handler.go - Integrated debouncer (500ms), cache (100 docs), and monitor - Clears pending diagnostics on reset 3. fs_handler.go - Replaced synchronous diagnostics with debounced execution - Removed inline expensive operations from textDocument/didChange Key Performance Wins - 500ms debounce: Diagnostics only run after typing stops - Statement range caching: Avoids redundant parsing for unchanged content - Context cancellation: Aborts operations when requests are cancelled - Single engine lookup: Reduces database queries - Optimized LRU: More efficient cache updates - Multi-layer debouncing: Frontend (50-150ms) + Backend (500ms) Result - Immediate: Smooth, responsive typing experience - Reduced: 90%+ reduction in LSP server load - Cached: Statement ranges reused when content unchanged - Maintained: Full LSP protocol compliance and accuracy The solution addresses the root cause by deferring expensive operations while maintaining immediate UI responsiveness. * fix: lint * fix: lint * perf: MonacoEditor MonacoEditor Components 1. useContent.ts - Added 50ms debounce on content changes to reduce update frequency - Prevents excessive re-renders when typing rapidly 2. useSelection.ts - REMOVED redundant listener: Eliminated onDidChangeModelContent that was causing unnecessary selection updates on every keystroke - Selection only updates when cursor actually moves, not when typing 3. useActiveRangeByCursor.ts - Replaced localStorage with in-memory cache using Map for statement ranges - Added 50ms debounce for cursor position updates - Optimized WebSocket processing with early string check before JSON parsing - Removed redundant statementRangeCache (kept only the ref-based storage) 4. MonacoTextModelEditor.vue - Combined multiple watchers into a single watcher for selection and activeRangeByCursor - Added 100ms throttle for selection update handling - Reduces reactive overhead from multiple separate watchers 5. useAutoComplete.ts - Added 500ms debounce for setMetadata LSP requests - Prevents flooding the LSP server with metadata updates while typing sqlEditor/tab.ts Major Optimization: Watch Only Active Tab - Before: Watched ALL tabs continuously, causing performance issues with many tabs - After: Only watches the currently active tab - Implementation: - Tracks current watcher with currentWatchedTabStop variable - Cleans up old watcher when switching tabs - Creates new watcher only for the active tab - Increased localStorage throttle from 100ms to 500ms Key Benefits: - Reduced watchers: From N watchers (one per tab) to just 1 watcher - Less localStorage I/O: Throttled to 500ms instead of 100ms - Better memory usage: No longer tracking changes in background tabs - Cleaner tab switching: Proper cleanup prevents memory leaks Overall Impact These changes significantly reduce: - Unnecessary re-renders during typing - LSP server load - LocalStorage I/O operations - Memory usage from excessive watchers - CPU usage from redundant reactive tracking The optimizations maintain all functionality while dramatically improving performance, especially noticeable when: - Typing rapidly in the editor - Working with multiple tabs - Handling large SQL files - Using autocomplete features * perf: result rendering * perf: hover panel * chore: simplify the code * chore: update * chore: update * chore: update * fix: revert changes * feat: add CREATE RULE support for PostgreSQL and fix cycle detection (#17248) Fixes cycle errors in schema dumps when using PostgreSQL routing rules pattern (view with INSERT/UPDATE/DELETE rules redirecting to tables). Changes: - Add RuleMetadata proto definition with fields for rule properties - Add rules field to TableMetadata and ViewMetadata - Implement getRules() to sync rules from pg_rewrite catalog (PostgreSQL only) - Add writeRules() to output CREATE RULE statements in dumps - Fix dependency cycle by filtering to only SELECT rules in getViewDependencies for both PostgreSQL and CockroachDB - Add comprehensive integration test for routing rules pattern - Update all generated proto files The implementation now correctly handles view-to-table routing patterns without causing "graph has cycle" errors and properly exports CREATE RULE statements in PostgreSQL schema dumps. CockroachDB gets the cycle fix but doesn't support CREATE RULE. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: make declarative flag as experimental (#17252) * fix: refactor plan components and fix section visibility (#17253) - Use usePlanContext instead of usePlanContextWithIssue - Fix FailedTaskRunsSection logic to use && instead of || - Extract shouldShowSpecList computed property for clarity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: introduce sdl test and fix bugs (#17251) * chore: introduce sdl test and fix bugs * chore: fix linter errors * chore: fix linter errors * chore: remove release creators in UI (#17255) * perf: batch fetch release creators to reduce API calls 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: remove creator --------- Co-authored-by: Claude <[email protected]> * chore(action-image): latest or versioned (#17254) * feat: improve task activity grouping by removing restrictive task ID check (#17257) ## Problem Task activities like "completed Task d1", "completed Task d2", "completed Task d3" were not being grouped together even though they represent the same type of action (task completion). This resulted in cluttered activity feeds with many similar entries. ## Solution Removed the restrictive `isEqual(fromTaskUpdate.tasks, toTaskUpdate.tasks)` check that prevented grouping of task updates with different task IDs. Now task activities are grouped when: - They're from the same creator - They have the same status transition (e.g., all "completed" transitions) - OR they have the same sheet transition ## Impact This change will significantly reduce visual clutter in the activity timeline by collapsing similar task activities (like multiple task completions) into a single entry with a count like "3 similar activities". ## Technical Details - Removed the lodash `isEqual` check for task arrays - Removed unused lodash import - Added clarifying comment about the grouping logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve issue detail page UI for better readability (#17256) * feat: improve issue detail page UI for better readability and modern aesthetics - Modernized Description section with clean borders and consistent typography - Redesigned comment cards with GitHub-style layout and subtle headers - Improved visual hierarchy with consistent font sizes and weights - Enhanced spacing and padding throughout for better readability - Simplified color scheme using unified gray scale - Updated markdown editor with tab-style write/preview toggle - Streamlined edit controls with better visibility - Applied consistent design system across all components 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: restore edited timestamp and similar activities display - Restored "edited" timestamp display for comments - Restored similar activities count display - Fixed linting errors for unused i18n keys - Maintained clean design while preserving functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> Co-authored-by: steven <[email protected]> * fix: fk on update/delete options (#17260) * chore: add description input for plans without issue (#17259) * feat: add description input for plans without issues Add a compact description input field under the title in HeaderSection for plans that don't have associated issues. The input auto-saves on blur and only shows border when focused for a clean UI. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * feat: skip lower versioned sdl tasks (#17261) * chore: tweak description section styles (#17262) * chore: tweak description section styles * chore: update * fix: several fix (#17265) * chore: support clear environment in instance and database (#17266) * fix: several fix * chore: support clear environment * feat: add markdown editor to plan description section (#17267) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: i18n (#17268) * fix: improve plan spec validation reactivity and auto-enable editing (#17269) - Fix reactivity issue in useSpecsValidation hook by accepting reactive refs - Actions now properly disable when empty specs are added to draft plans - Auto-enable statement editing when new specs are created - Update all consumers of useSpecsValidation to use computed refs 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: enhance expression comparer (#17263) * chore: enhance expression comparer 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: fix test * chore: update comments --------- Co-authored-by: Claude <[email protected]> * chore: unify sparkles icon (#17270) * chore: replace all sparkles icon (#17271) * chore(action): wake up cloud (#17272) * fix: query principal (#17273) * fix: several fix * chore: support clear environment * chore: update * fix: query principal * fix: improve plan check validation (#17274) * fix: improve plan check validation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * refactor: consolidate plan check trigger logic (#17275) * refactor: consolidate plan check trigger logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update * chore: update * chore: update --------- Co-authored-by: Claude <[email protected]> * feat: implement expression comparison interface and clean up PostgreSQL codebase (#17276) * feat: implement expression comparison interface and clean up PostgreSQL code - Add new CompareExpressionsSemantically interface for engine-agnostic expression comparison - Clean up PostgreSQL AST expression comparison implementation - Remove debug logging from differ.go - Update PostgreSQL expression comparison tests 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * fix: remove MySQL dependencies from interface layer - Remove MySQL AST import and references from expression_comparer.go - Remove MySQL-specific function normalization from differ.go - Clean up unused parameters and formatting issues - Ensure code builds without MySQL AST implementation This ensures the interface layer only depends on PostgreSQL implementation while MySQL functionality is properly separated in stash. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * fix: resolve race condition in plan creation causing empty statement editor (#17277) The statement editor was appearing empty during plan creation due to a race condition where sheet creation mutations triggered reactive updates in StatementSection before the process completed. Changes: - Simplify createSheets() to update configs immediately after sheet creation - Add editorViewKey in StatementSection to force re-render when sheet changes - Remove batching logic that was causing timing issues 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: support columns in database resource for masking exception (#17278) * fix: revert claude change (#17279) * fix: creating sheet for new spec (#17280) * fix: creating sheet for new spec * chore: update * feat: implement collapsed view for plan description section (#17283) - Add collapsed/expanded state management to DescriptionSection - Show compact one-line view by default with clickable description text - Include expand/collapse functionality with NButton component - Remove separate "Add" button, make description text itself clickable - Update localization files to include "collapse" translation - Rename DescriptionInput to DescriptionSection for clarity 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: sql editor initial (#17284) * fix mongodb collection name contains special characters (#17282) Signed-off-by: dongjiang <[email protected]> * chore: check sheets for plan check run creates (#17281) * feat: add autofocus prop to MarkdownEditor component (#17286) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: update tag policy for reivew config (#17287) * chore: tweak stage width (#17288) * chore: add cassandra data masking (#17250) * chore: add cassandra data masking * chore: update * chore: update * chore: update * Update backend/plugin/parser/cassandra/query_span_extractor.go * Update backend/plugin/parser/cassandra/query_span_extractor.go --------- Co-authored-by: h3n4l <[email protected]> * fix: revert some changes in #16940 (#17290) * chore: err msg (#17291) * chore: go parser dep upgrade (#17292) * refactor: use NTabs for markdown editor tabs (#17293) Replace custom tab implementation with naive-ui's NTabs component for better consistency and maintainability. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve plan description field UX (#17294) - Add expand icon (plus) next to placeholder text when field is empty - Show Markdown preview in collapsed state with proper formatting - Add collapse button with chevron icon for better visibility - Implement click-outside-to-collapse behavior - Update placeholder text from "Add your description here..." to "Add a description" - Apply compact styling to Markdown preview with fade effect for long content - Update all i18n translations (en-US, zh-CN, ja-JP, es-ES, vi-VN) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve plan detail page description UX (#17295) - Move description section to top of Overview tab, closer to title (similar to GitHub PR layout) - Sync description UX with plan creation: collapsed preview state with expand/collapse functionality - Add auto-save with 1-second debouncing for seamless editing - Show full markdown content without truncation in preview mode - Add "Add description" placeholder button when empty 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: file type in release view (#17296) * chore: support gemini & claude (#17298) * chore: switch back to [email protected] (#17299) * docs: add vs DataGrip * docs: add fish to readme. * chore: switch back to [email protected] * chore: fix array type for pg (#17300) * chore: fix array type for pg * chore: fix linter errors * feat: add issue created comment with editable description (#17301) * feat: add issue created comment with editable description - Create IssueCreatedCommentV1 component showing plan/issue description as activity comment - Add edit functionality with save/cancel buttons for description updates - Move DescriptionSection to HeaderSection folder for better organization - Refactor plan description editing to use save/cancel pattern - Update comment styling to match approval activity layout - Remove obsolete IssueCreatedComment and consolidate functionality 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * chore: show environment color (#17302) * chore: fix topo order for pg and oracle and use stable order for differ (#17297) * chore: fix topo order for pg and oracle * chore: fix tests * chore: spinner for rollout stages view (#17303) * chore: optimize masking exception layout (#17304) * chore: remove strictProject field from SQL editor store (#17306) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove ComposedTaskRun type and use dedicated taskRunLog store (#17307) Remove the ComposedTaskRun interface that mixed TaskRun data with TaskRunLog. Replace with a dedicated useTaskRunLogStore for better separation of concerns: - Create new taskRunLog store with reactive caching - Update all components to use TaskRun + taskRunLog store pattern - Remove ComposedTaskRun from rollout types - Simplify experimental-issue store to use plain TaskRun arrays 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: fix demo version (#17308) * chore: use create or replace to update function body (#17305) * chore: use create or replace to update function body * chore: fix tests * chore: fix linter error * fix: improve migration detail format when version is empty (#17310) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: gemini (#17311) * chore: support gemini & claude * fix: gemini * feat: add automatic rollout policy display and force run functionality (#17312) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: using reflect.TypeFor (#17313) * refactor: consolidate create database prep form components (#17315) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat(pg): sync opclass related info (#17316) * chore: release table width and resizable (#17317) * chore(action): default release title (#17318) * refactor: creating database issue page (#17319) * feat: add issue resolve action to plan component Add ISSUE_STATUS_RESOLVE action to Plan HeaderSection Actions, matching the legacy IssueV1 resolve functionality: - Add ISSUE_STATUS_RESOLVE to unified action types - Update IssueStatusActionPanel to handle resolve action (transitions issue to DONE status) - Add resolve action availability logic (shows when all tasks finished and review done) - Set resolve action as success button type (green color) - Add reopen action for resolved issues - Restrict rollout actions until approval finding is done - Fix module import issue in IssueReviewView 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * chore: always use new layout for database creation issues (#17322) Update routing logic to ensure database creation issues always use the Plan-based IssueDetailV1View: - IssueDetailPage: redirect all createDatabaseConfig issues to new layout regardless of enabledNewLayout flag - IssueDetailV1View: prevent redirect to legacy layout for database creation plans - Maintain existing conditional redirect behavior for database change issues This ensures database creation issues consistently use the modern Plan interface while preserving backward compatibility for other issue types. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> Co-authored-by: Danny <[email protected]> * chore: update cassandra query span (#17309) * chore: update cassandra query span * chore: update * chore: update * chore: update * refactor: superfluous advisor type (#17320) * refactor: superfluous advisor type * clean * fix: schema rule type (#17324) * chore: upgrade Go from 1.24.5 to 1.25.0 (#17325) * chore: upgrade Go from 1.24.5 to 1.25.0 Updated Go version to 1.25.0 across all configuration files: - go.mod - Dockerfiles (scripts/Dockerfile*) - GitHub Actions workflows 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update golangci-lint to v2.4.0 for Go 1.25.0 support --------- Co-authored-by: Claude <[email protected]> * fix: resolve Vue warnings for missing template and invalid watch source (#17326) - Add empty template to PlanSpecsView component to fix missing template warning - Fix invalid watch source in PlanCheckSection by using getter function for selectedSpec.value.id - Include other staged UI improvements 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * test: add sdl test framework and type test cases (#17321) * chore: add sdl test framework * chore: add alter and drop test cases * chore: finish all type test cases * fix: export task timeout error handling (#17327) Export tasks were completing with empty downloads when queries timed out after 10 minutes. The bug was in DoExport() returning the wrong error variable - it returned 'err' (connection error, usually nil) instead of 'queryErr' (the actual timeout error), causing tasks to appear successful with empty export archives. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: update ExportRequest name field comment (#17328) Update ExportRequest.name field comment to accurately reflect all supported export formats from the RPC Export method options: - instances/{instance}/databases/{database} - instances/{instance} - projects/{project}/rollouts/{rollout} - projects/{project}/rollouts/{rollout}/stages/{stage} 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: update release description in all translations (#17329) * chore: update release description in all translations Updated the "usage-description" text across all language files to better reflect that a release is a versioned application artifact deployed via GitOps workflows. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update frontend/src/locales/zh-CN.json --------- Co-authored-by: Claude <[email protected]> Co-authored-by: p0ny <[email protected]> * feat: display release file type (#17330) * refactor: polish CreateDatabasePrepPanel.vue code structure (#17331) - Simplify template structure by removing unnecessary nested divs - Use strict equality (===) instead of loose equality (==) - Simplify computed properties with concise arrow functions - Use object destructuring for cleaner variable extraction - Improve code consistency with Vue 3 composition API patterns - Maintain all existing functionality and logic 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: update documentation links to match new URL structure (#17332) Co-authored-by: Claude <[email protected]> * chore(action): readme declarative mode usage (#17335) * refactor: simplify loop (#17336) * chore: disable ai setting in the saas mode (#17334) * chore: disable ai setting in the saas mode * Update frontend/src/components/GeneralSetting/AIAugmentationSetting.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: fix environment setting doc link (#17337) * refactor: replace DataExportIssueDataTable with standard IssueTableV1 (#17333) - Remove custom DataExportIssueDataTable component - Use standard IssueTableV1 component in ExportCenter for consistency - Add rollout validation in RolloutView context - Minor styling adjustments to DatabaseInfo and DescriptionSection 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * test: add column tests for PostgreSQL SDL (#17340) * feat: batch create task runs (#17339) * feat: batch create task runs * fix: lint * feat: improve mobile responsiveness for CICD layout (#17341) - Add responsive stage cards with mobile-first design - Implement mobile hamburger menu and sidebar drawer - Create shared StageActions component to reduce duplication - Optimize padding and spacing for mobile screens - Support both mobile and desktop layouts seamlessly 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: remove ComposedDatabaseGroup type and simplify data flow (#17343) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: fallback to the webhook message if send im direct message fails (#17344) * chore: fallback to the webhook message if send im direct message fails * chore: update * refactor: remove ComposedProject type (#17345) * refactor: remove ComposedProject type and use Project from proto - Remove ComposedProject interface that extended Project with iamPolicy - Replace all ComposedProject usage with Project from proto definitions - Update components to use projectIamPolicyStore for IAM policy access - Fix all TypeScript errors by adding missing imports - Separate concerns: projects and IAM policies now in distinct stores 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: update --------- Co-authored-by: Claude <[email protected]> * fix: fallback to instance resource name for users without instance permissions (#17346) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: description in legacy issue page (#17347) * chore: update credential for spanner/bigquery (#17349) * fix: credential for spanner/bigquery * fix: lint * chore: update * chore: update (#17351) * chore: update GitHub Actions runners and remove CodeQL workflow (#17353) Co-authored-by: Claude <[email protected]> * chore: upgrade Go from 1.25.0 to 1.25.1 (#17352) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor(action): structured output map (#17355) * chore: upgrade lucide icons and improve SQL review check display (#17356) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix(tsql): resolve view parsing and cross-database reference issues (#17354) * chore: set query type if meet error later * fix: view definition is create view * fix: switch to the cross database context in parse view definition if needed * fix: correlated subquery in select list * feat: metadata array in test * fix: test * fix: respect role expiration time (#17357) * fix: engine in instance filter (#17359) * fix: column key (#17360) props.database is of ComposedDatabase type. * refactor: use NewColumnNotExistsError (#17362) * fix: improve advanced search filter tag layout structure (#17361) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * refactor: unify data access policies (#17363) * feat(action): job summary (#17364) * feat(action): write github step summary * feat(action): output stage summary * refactor * handle zero stage case * test empty * fix: remove command count limit for MSSQL to fix task run log display (#17365) * refactor: action pkgs (#17366) * refactor: action pkgs * chore: wrap errors * refactor: drop deprecated data_source table (#17367) Remove the deprecated data_source table that is no longer in use: - Add migration to drop the table and sequence in 3.10 - Remove table definition from LATEST.sql - Remove data_source deletion code from instance.go 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: mitigate flaky test TestSyncSpatialIndexWithTestcontainer (#17368) * fix: resolve flaky test TestSyncSpatialIndexWithTestcontainer - Add retry logic with exponential backoff for schema sync operations - Implement delays for metadata propagation in all test cases - Enhance error handling for transient connection issues - Improve database cleanup with retry mechanism - Add SQL statement execution retry for transient errors Fixes BYT-8008 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * refactor: remove unused parameter in syncDBSchemaWithRetry Fix golangci-lint unparam error by removing maxRetries parameter that always receives the same value (3). Made maxRetries a const inside the function instead. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * fix: handle PostgreSQL partition table syntax in tokenizer (#17369) * fix: handle PostgreSQL partition table syntax in tokenizer * chore: update * chore: update * chore: update demo data from 3.7.0 to 3.10.0 (#17370) * fix: rollout should only be blocked by plan check errors, not warnings (#17371) * perf: use virtual list for large database (#17373) * chore: use list * chore: update * chore: hover panel * chore: update * chore: update * chore: update * chore(deps): update dependency vite to v6.3.6 [security] (#17377) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * fix: should throw error if cannot found slack user (#17376) * chore: optimize result selection/copy (#17378) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: permission checks for editing description (#17380) * chore: not include the service account (#17381) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint * chore: not include the service account * fix: typo --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: add question mark icon to affected rows tag for better visibility (#17382) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: tab content is not cached correctly (#17383) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint * chore: not include the service account * fix: content is not cached correctly --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * feat: improve editor height and responsive layout (#17385) - Make SpecDetailView responsive with proper flex layout and height constraints - Expand editor to use available vertical space while maintaining minimum height - Add viewport-based height limits to prevent oversized components - Improve responsive padding for small screens 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: improve mobile UI responsiveness (#17386) - Hide SQL Editor and My Issues button text on mobile screens to reduce header crowding - Make TaskView layout responsive with flex-wrap for better content overflow handling - Improve ProjectSwitchPopover max width on mobile devices - Use conditional rendering based on window width for better mobile UX 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: remove unused maxStacksize constant (#17387) * fix: remove unnecessary check for database instance activation (#17388) * chore: add more debug message (#17389) * chore: optimize result selection * Update frontend/src/views/sql-editor/EditorCommon/ResultView/VirtualDataBlock.vue Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix: lint * chore: not include the service account * fix: content is not cached correctly * fix: not throw error when create history fails * chore: add more debug message --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: add InsecureVerify toggle (#17323) * chore: add InsecureVerify toggle * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * chore: update * feat(action): service account via env var (#17392) * chore: data source form ui (#17391) * chore: optimize form * chore: unify component * chore: refresh subscription (#17395) * chore: add ElasticSearch logs (#17394) * chore: improve migration error logs (#17396) * chore: improve migration error logs * chore: update * chore: suppress embedded PG checkpoing log (#17397) * fix: auto-focus first available tab in signin form (#17399) * chore: allow to redirect to workspace (#17398) * refactor: use shared STATEMENT_SKIP_CHECK_THRESHOLD constant (#17400) * chore: relax cors in dev only (#17401) Close BYT-8080 * chore: update comment (#17403) * feat: introduce new sdl diff framework and support CREATE/DROP table (#17402) * feat: introduce new sdl diff framework and support CREATE/DROP table * chore: linter errors * fix MONGODB readonly user roles (#17404) Signed-off-by: dongjiang <[email protected]> * chore: update (#17405) * fix: check result item title consistency (#17406) Remove debug console.log statements and simplify title localization logic to match the implementation in PlanCheckRunDetail.vue for consistency. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support pg column in sdl workflow (#17407) * feat: support pg column in sdl workflow * chore: linter errors * chore: fix linter errors * feat: unify ChecksView component with prop-driven architecture (#17408) - Make ChecksView component reusable by accepting planCheckRuns as props instead of using context - Fix builtin rule localization display in CheckResultItem (e.g., "builtin.prior-backup-check" → "Prior backup feasibility check") - Add data transformation in SQLCheckV1Section to convert Advice[] to PlanCheckRun[] format - Maintain drawer pattern with clickable status counts in SQLCheckV1Section header - Fix infinite API loop in ChecksDrawer by removing problematic watch and loading data once on mount - Remove unused PlanCheckRunsView.vue component - Add status count filtering capability in ChecksView header 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: sql editor is slow when data is large (#17409) * feat: support pg table constraints in SDL (#17410) * chore(action): no default account (#17411) * fix: get or fetch group (#17413) * feat: support pg index for SDL (#17412) * chore: move Transaction Mode toggle and Instance Role dropdown into plans (#17415) * chore: move Transaction Mode toggle and Instance Role dropdown into plans * chore: update * chore: update * chore: update * refactor: remove setting from sql editor (#17416) * refactor: remove setting from sql editor * chore: update * fix: eslint * chore: default width (#17417) * refactor: auth reduce getUser calls (#17418) * fix: transaction mode switch initialization and api calls (#17419) Co-authored-by: Claude <[email protected]> * fix: instance role section api calls and ui improvements (#17421) - Fix InstanceRoleSection to handle created vs uncreated plans properly - Add proper API calls using updateSpecSheetWithStatement utility - Improve UI with label-first layout and better help tooltips - Move translations from instance to plan.spec for better organization - Add clearable selector and prevent circular updates - Reorder configuration sections to show role selection first 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: optimize database group (#17420) * chore: optimize database group * chore: update * Update frontend/src/store/modules/dbGroup.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update * fix: lint --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * fix(action): remove ext (#17422) * chore: calculate the unmatched databases (#17423) * chore: optimize database group * chore: update * Update frontend/src/store/modules/dbGroup.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update * fix: lint * chore: calculate the unmatched databases * chore: update * chore: update * fix: test --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: show matched database (#17425) * chore: optimize database group * chore: update * Update frontend/src/store/modules/dbGroup.ts Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: update * fix: lint * chore: calculate the unmatched databases * chore: update * chore: update * fix: test * chore: show matched database * chore: update --------- Co-authored-by: graphite-app[bot] <96075541+graphite-app[bot]@users.noreply.github.com> * chore: add statement size warning to plan check section (#17424) Co-authored-by: Claude <[email protected]> * chore: support instance_id in risk condition (#17427) * chore: remove format on save checkbox from plan editor (#17426) Removes the "Format on save" checkbox as the "on save" trigger is not obvious to users and it's frontend-only behavior. If formatting is needed, it should be implemented as an explicit editor format action instead. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support pg view in SDL differ (#17429) * feat: support pg function and procedure for SDL diff (#17430) * feat: support pg sequence for pg SDL diff (#17431) * fix: missing quotation marks in json (#17432) * chore: change ui for database change mode setting (#17435) * refactor: remove setting from sql editor * chore: update * fix: eslint * chore: update setting * feat: generate migration for AST only diff (#17436) * chore: remove deprecated VCS permissions in migration 3.10.3 (#17440) Remove deprecated VCS connector and provider permissions from existing roles. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * fix: extract resource for export method (#17439) * fix: extract resource for export method * chore: change to database resource * fix: navigate to project page from SQL Editor logo (#17444) Update SQL Editor GutterBar to navigate to the current project's detail page when clicking the logo, instead of always going to workspace landing. When at /sql-editor/projects/new-project, clicking the logo will now open /projects/new-project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: generate func/procedure migration for pg sdl diff (#17438) * chore: remove instance-level additional bindings from SQL service (#17443) Remove the additional bindings for instance-level endpoints: - Remove /v1/{name=instances/*}:query from Query() method - Remove /v1/{name=instances/*}:export from Export() method These endpoints are being deprecated in favor of the database-specific endpoints. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * feat: support generate pg sequence migration for ast-only (#17445) * chore: audit log api enforcement (#17446) * chore: add transaction isolation level to MySQL (#17428) * chore: add transaction isolation level to MySQL * chore: update * chore: update * chore: update * feat: support generate PG table migration for ast-only (#17447) * chore: hide deprecated rollout policy options for new users (#17449) * fix: navigate to project page from SQL Editor logo Update SQL Editor GutterBar to navigate to the current project's detail page when clicking the logo, instead of always going to workspace landing. When at /sql-editor/projects/new-project, clicking the logo will now open /projects/new-project. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * chore: hide deprecated rollout policy options for new users Hide "Issue Creator" and "Last Issue Approver" options in environment rollout policy configuration for users who haven't previously configured these deprecated options. Existing users with these options configured will continue to see them for backwards compatibility. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> --------- Co-authored-by: Claude <[email protected]> * chore: add labels to proto (#17450) * chore: add labels to SQL/proto * chore: update * chore: update * feat: support generate pg column migration for ast-only (#17448) * feat: support generate pg table constraint migration for ast-only (#17455) * fix: lint (#17453) * feat: support genereate pg index migration for ast-only (#17456) * fix: lint (#17457) * refactor: database export issue (#17458) * refactor: database export issue * chore: update * chore: support allow-missing for all Update() resource APIs (#17452) * chore: support allow-missing for all Update() resource APIs * chore: update * chore: add labels to projects with simple CEL filtering (for now) (#17451) * chore: add labels to projects with simple CEL filtering (for now) * chore: update * chore: update * chore: update * chore: update * refactor: improve plan task rollout UI and code organization (#17459) - Remove rollout start action from dropdown menu in Actions component - Refactor task grouping logic in TaskRolloutActionPanel with proper type safety - Improve parent path handling for batch operations - Add quaternary styling to cancel button in TargetsSelectorDrawer - Update Chinese translations for better clarity (targets -> target databases) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-authored-by: Claude <[email protected]> * chore: grpc gateway routing error (#17460) more verbose * fix: improve export archive task run handling and request parsing (#17461) - Fix SQL service to handle both rollout and stage name formats in doExportFromIssue - Improve task run filteri…
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.
BREAKING
Per AIP, update mask should be
https://protobuf.dev/reference/java/api-docs/com/google/protobuf/FieldMask.html#:~:text=%23%20Field%20Masks%20and,used%20in%0A%20paths.