* Feat: Add PostgreSQL transfer ownership preview and resolution
- Add ownership policy support for data transfers: preserve, skip, and reassign missing owners
- Preview missing PostgreSQL roles before creating target schema objects
- Show ownership confirmation dialog when target roles are missing
- Allow users to skip ownership changes or reassign missing owners to the target connection user
- Add Tauri and HTTP API support for ownership preview
- Apply ownership statements according to selected policy during PostgreSQL transfers
- Add Chinese localization for ownership confirmation UI
* Feat: Add ownership confirmation localization
- Add ownership confirmation messages for supported desktop locales
- Include skip and confirm labels for ownership handling
- Update transfer test requests to use Preserve ownership policy
Add db.coll.stats() / dataSize() / storageSize(scale) / totalIndexSize()
so these MongoDB shell commands return a result grid instead of the
"Use MongoDB shell-style commands" error (issue #2529).
- backend: collStats via mongo_driver.collection_stats, wired through
mongo_ops, the dbx-web /mongo/collection-stats route, the tauri
mongo_collection_stats command, and the MCP data bridge
- node-core: parseMongoCollectionStatsCommand + result formatter and
executeQuery dispatch (web build + MCP path)
- desktop: mirror the parser/executor/autocomplete in mongoShellCommand.ts,
queryStore.ts, api/tauri/http facade, and mongoCompletion.ts
- tests for the parser, result formatter, and completion entries
Close#2529
* docs: add query result streaming export design
* feat(core): stream query result exports
* feat: expose query result streaming export APIs
* feat(desktop): stream query result exports from grid
* fix: route query result export cancellation through its command
* fix: reduce query export batch size and cancel latency
* opt: del local test files
- Use synchronous pool removal in desktop disconnect_db to prevent
race condition when user quickly disconnects and reconnects
- Rename recordMetadataLoadError to recordConnectionLostError and
export it for cross-store reuse
- Sync query execution errors back to connection state via
recordConnectionLostError in queryStore catch blocks
- Add backend check_connection_health method (dbx-core) with Tauri
command and web route for proactive pool verification
- Add frontend checkConnectionHealth API (tauri.ts/http.ts/api.ts)
- Enhance ensureConnected to verify backend pool health before
assuming connection is valid, auto-reconnect if stale
* feat(mq): implement Apache Pulsar message queue admin
- Add complete MQ admin adapter layer with version detection
* Pulsar adapter with multi-version API support
* OAuth2 token caching and authentication
* JWT token signing for Pulsar clients
* Transport layer (SSH/Proxy) integration
- Implement comprehensive admin operations
* Tenant, namespace, topic management
* Subscription and consumer/producer monitoring
* Rate limits, backlog quotas, retention policies
* Permissions and role-based access control
* Raw admin API for advanced operations
- Add desktop UI components
* MQ admin console with tabbed interface
* Tenant, namespace, topic panels
* Subscription management and cursor operations
* Monitoring panel with stats visualization
* Policy configuration UI
- Add web routes for MQ admin operations
- Add secret store support for MQ auth credentials
- Add comprehensive test coverage
* fix: del local test files
* fix(mq): mark message queue as unsupported mcpMode in driver manifest
MQ admin connections do not use the MCP query bridge - they use a
separate REST admin API. Mark mcpMode as 'unsupported' to align with
the test expectations and reflect the actual architecture.
Fixes CI test: driver-manifest.test.ts
* fix(mq): fix TypeScript errors in MQ components
- Fix typo in SubscriptionsPanel.vue: messagformatError(e)Id -> message.messageId
- Use formatError() helper in RawApiPanel.vue instead of accessing e?.message
- Fix undefined 'tab' reference in ConnectionTree.vue: use config.db_type instead
Fixes frontend CI TypeScript check errors.
* fix(mcp): add 'mq' to MCP server connection type description
The MCP server's connection type description must include all database
types from the driver manifest. Add 'mq' to the list to fix the test:
'add connection database type description includes every manifest database type'
Fixes: packages/mcp-server/tests/driver-manifest.test.ts
* fix(mq): add missing ConnectionConfig fields for Rust compilation
- Add gbase_server and keepalive_interval_secs fields to all ConnectionConfig
test constructors in mq/config.rs, mq/service.rs, and storage.rs
- Import uses_bare_mysql_pool in connection.rs tests module
Fixes compilation errors from upstream ConnectionConfig changes.
* chore(ui): simplify Pulsar icon to logo-only version
Remove text from Pulsar icon (127x30 -> 35x30), keeping only
the wave logo symbol for a cleaner, more consistent appearance
with other database icons.
* fix(mq): return removed pools from drain_connection_pools
---------
Co-authored-by: t8y2 <1156263951@qq.com>