Added
* Seeds now require a `+dbt-osmosis: <path>` in `dbt_project.yml`, or dbt-osmosis raises an exception.
* Added a pluggy-based plugin system for custom fuzzy matching of column names (prefix, case transforms, etc.).
* Configuration can now be set at multiple levels (folder-level, node-level, column-level), merging with global defaults.
* Added `--synthesize` to `refactor`/`document` commands for auto-generating missing docs via OpenAI.
* Added `--skip-add-source-columns` to skip adding columns to source YAMLs specifically (helpful for wide or rapidly changing source schemas).
* A Python API for **Transform Operations** and **Transform Pipelines** that make them nice to use in custom automations built on top of dbt-osmosis.
* Enhanced API for chaining manifest and node transformers, enabling more modular and flexible operations.
* Added logging improvements and auto-apply parameters for better usability and traceability.
* Introduced support for environment variables in discovery functions, improving dynamic configuration options.
* Resolved sorting issues in YAML column ordering, allowing directory/node-level configurations for alphabetical sorting.
Changed
* Migrated `vars.dbt-osmosis` structure to nest sources under `sources:` key (e.g., `vars: dbt-osmosis: sources:`).
* Renamed flags:
* `--char-length` → `--string-length`
* `--numeric-precision` → `--numeric-precision-and-scale`
* `--catalog-file` → `--catalog-path`
* Organized and refactored prompts for file moves unless `--auto-apply` is passed.
* Child docs no longer overwrite existing downstream descriptions unless `--force-inherit-descriptions` is used. The old `osmosis_keep_description` is deprecated.
* Child meta merges with upstream meta instead of overwriting it, giving precedence to the node being merged into for conflicting keys.
* Refactored the entire package to follow a more hybrid functional programming (FP) and Go-style approach, emphasizing simplicity and functions operating on pure data structures.
* Improved LLM context handling with additional test coverage and enhanced input structure.
* Topological sorting now ensures consistent operation order during `_iter` traversal.
Removed
* The `diff` code and command are removed.
* The dbt bottle server was removed.
* The vendored dbt core interface was removed, folding into the core library, reducing unnecessary complexity and dependencies.
* Deprecated less-maintained SQLite adapter in favor of DuckDB, which provides significantly better performance and support.