Repository navigation
refactor: host planner assembly, freshness, cost and Phase 1 remainder in Rust - #1111
Merged
Merged
Conversation
Port plan-entry cursor bound helpers, per-model plan entry construction, relation context assembly and the planner resolution facades to native code, deleting the Python plan_entry module and resolve/cursor-window wrappers.
Port PlanOutput assembly, SQL test selection and planning, function entries, static audit/test/seed/relation command plans and direct seed fingerprint reads to native code, deleting the Python plan_output, command_planning and main/commands modules.
Port clone planning, deferred-clone graph traversal and SQL test model chain grouping to native code, and route the remaining planner facade modules (scenarios, selection, SQL test artifacts, fixture helpers) directly to sqlbuild._native.
Port build_execution_plan and background SQL test planning to native code, deleting the Python execution entry point and BackgroundSqlTestPlanning class.
Port the display-only plan, pre-build work text, query diff colouring, KnownInputColumns and the fixture-null autofix entry point to native code, removing the Python planner main package.
Source freshness observation, planning comparison, downstream propagation, latest-state reads, appends and state-table SQL now run in Rust. Adapter queries and metadata lookups stay adapter callbacks, so custom adapter overrides keep applying. The Python package keeps only its models, types, constants and errors.
Run-cost allocation now uses an exact Rust implementation of Python's default decimal context, and Snowflake query-history collection, query-tag parsing, metadata-only statement classification, the statement ledger and the cost context run in Rust. Connection queries, clocks and the telemetry health tracker stay Python callbacks. The cost package keeps its models, types, constants, errors and health tracker.
…glue natively Build the contract and YAML entry class tables, native config error exceptions, SQL-test CTE call locations, typed macro argument references, the compiler cache directory, YAML entry lines and project-relative paths in the native bindings. Delete the Python wrappers they replace, the dead path-default selection, SQL-test CTE extractor and syntax check wrappers, and the test-only analysis normalization entry.
Move the compile diagnostic collector, the process-wide template input read registry, the SQL-test scan cache and the UTF-8 checked environment view into the native bindings, and delete the Python classes they replace.
… natively Compute the analysis cache context digests and record the analysis cache metrics in the native compile driver, and collect the task, asset, check, loader and hook functions the explicit-reference checks read in the native report entry. Delete the Python helpers they replace.
Move the pipeline planning orchestration, hooked connection opening and contract adoption repository writes into the native compile driver and contract command, calling the planner, materialization loader and Python node selection at their existing Python boundaries. Delete the Python modules they replace.
…ackers natively Render setting and snippet help in sqlbuild-config, read expected-error codes, messages and help, scope the speculative lint stop signal, and track build phase timings and process resource deltas in the native bindings. Delete the Python helpers they replace and the help renderers only tests used.
…rdinator natively Expose the core CLI style, the shared transient line coordinator and the terminal width read from the native bindings, delete the Python presentation classes and helpers, the dead theme models and status constants, and the lint rule that guarded the removed terminal capability module.
kvlonge
enabled auto-merge (squash)
October 15, 2026 06:34
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.
Why
Finish hosting compiler, planner and CLI implementation in Rust while preserving plan output, persisted formats, adapter overrides, diagnostics and exit codes.
Changes
Verification