Repository navigation
feat(windows): rebuild the Windows app on the shared Rust core - #3867
Merged
Merged
Conversation
A Windows sibling of the macOS and Linux apps under windows/: .NET 10, WinUI 3 on Windows App SDK 2.6 with acrylic and Fluent Design, and one project per layer. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…cessible names Also folds the SSH askpass helper into TablePro.exe, adds edit buffer, completion, formatter and CSV tests, and uppercases known functions in the formatter. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Adds the windows suite to the change detector, build-windows.yml on windows-2025, the parity roadmap, the architecture notes and the folder's agent guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…r non-SQL languages Adds the remaining engines from tablepro.app/databases with their families and data models, dialect hooks for splitting, classifying and keywords, dialects for Redis, mongosh, etcd, KafkaQL, the Query DSL and Typesense consoles, GraphQL, SurrealQL, CQL, PartiQL and the analytical SQL engines, and opens CockroachDB, Redshift, PGlite, TiDB, OceanBase and Databend through the PostgreSQL and MySQL drivers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…hile typing The editor asks for values of ?, :name and $1 placeholders and writes them as literals, results export to Excel workbooks, table import reads JSON and NDJSON beside CSV, the assistant suggests text when typing pauses at a line end, and the workspace, editor and connection form follow each engine's language: keywords, comment prefix, server-side key search, starter queries and field labels. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… suggestions built Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…es and server info Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Oracle scripts split at a lone slash for PL/SQL blocks. ClickHouse binds @pn so change previews show values, and defaults to 8443 under TLS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ent editing Saves on engines that do not write SQL show their own commands for review. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Browse notices travel on the result and show under the grid; CQL batches split as one statement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GoogleSQL and SurrealQL names escape a backtick with a backslash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…DB drivers Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and Turso drivers KafkaQL SELECT and DESC classify as reads for Safe Mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…sends Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… Kafka and etcd Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Dameng and HANA connect through the vendor ODBC drivers; Beancount projects a ledger into SQLite through beancount or rledger, as on macOS. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ly engines The grid treated every non-table as read-only, so MongoDB collections and Redis keys could not be edited. Beancount and R2 SQL are now read-only whatever the Safe Mode level. Previews fill positional ? parameters in order. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Modes, counts, operators, motions, text objects, registers, marks, macros, search and dot repeat run in a UI-free engine in Core over a buffer interface; the editor routes keys to it and draws a block caret. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…rison PostgreSQL, MySQL, SQL Server, SQLite, DuckDB, ClickHouse and Oracle plans parse into one model with cost shares and severity; Explain Analyze runs under Safe Mode like the statement. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ap :q and gt to tabs Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…erver Principals, memberships and grants at every scope are staged with undo, reviewed with passwords hidden, and applied in a transaction where the engine allows. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ncount Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…roadmap Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
datlechin
marked this pull request as draft
October 28, 2026 18:20
# Conflicts: # core/crates/drivers/clickhouse/src/endpoint.rs
…how a drop's group
…, off screen and unselectable
…never shows it empty
…tests' keys and drags
… window has closed
datlechin
marked this pull request as ready for review
November 3, 2026 07:04
datlechin
enabled auto-merge (squash)
November 3, 2026 07:04
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
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.
Summary
core/crates/ffi(tablepro-ffi): one UniFFI API over the core's sessions, drivers, catalog and connection library, with the 9 engines of the first release linked in.tablepro_cursor_fetch, one packed window per visible range.DatabaseSession::table_queryoverbuild_page,sorted_queryoversql_syntax::with_order_byandsort_reference, and counts a table's rows.value::ordermoves from the Linux app into the core, andResultSet::sortedsorts the rows a result holds (core ADR 0007).windows/: .NET 10 and WinUI 3, Windows 10 1809+ and 11, x64 and Arm64 (ADR 0001).TablePro.Interop: committed, internal UniFFI and csbindgen bindings under a hand-written public API. Calls start on the thread pool; aCancellationTokenfires the core's cancel token.TablePro.Editor: our own SQL editor. A rope with its own undo, multiple carets and find in a plain .NET model; Direct2D and DirectWrite in a SwapChainPanel; TSF for input methods; a UIA text provider; colors from the core's lexer (ADR 0002).TablePro.DataGrid: our own read-only grid. ItemsRepeater rows draw their visible cells with DirectWrite into composition surfaces; frozen columns, Excel keys and copy, UIA peers, header sort and resize, columns sized to content (ADR 0003).TablePro.App: one window with the TitleBar, a MenuBar and a NavigationView rail of open connections, each item with its engine's icon in the connection's color (ADR 0004).windowssuite in the change detector andwindows.yml. Core and .NET tests onwindows-2025,windows-11-armandmacos-15; the app's UI tests with screenshots on both Windows runners; a stale bindings check on macOS. The grid's timing gate runs by dispatch (windows-grid-gate.yml).test_unknown_suite_exits_2usedwindowsas its unknown suite and now usesandroid.Test plan
cargo test -p tablepro-ffiand the core's ordering, sort reference, tag, paging and health tests. Linux CI runs the workspace: 871 core tests and the app suite.dotnet test --solution TablePro.slnxon x64, Arm64 and macOS: 217 tests over the interop library against real SQLite files, the editor model, the grid model with the real core and the app model.TablePro.App.UITests(FlaUI), light and dark, on both Windows runners: first run, Settings, the form, connecting, password prompt, a table, its sort and paging, a width set through UIA kept across sorts, a query and its sort, a script's rows sorted where they are, transactions, reopened tabs, pane resize, window placement, tags, rename, drag and drop, selection, a failed connect, session restore.Screenshots
From the UI tests on
windows-2025(WARP), run 41588147784. Arm64 matches. The two reconnect bars come from run 41577633514, with an uncommitted patch that forces the session's health; a runner cannot drop a session.