Skip to content

chore: sync JSON schemas from dbt-fusion#13016

Merged
sriramr98 merged 1 commit into
mainfrom
sync-json-schemas-ffdcee86de7296255de6161ae57973bab0e3cae4
May 25, 2026
Merged

chore: sync JSON schemas from dbt-fusion#13016
sriramr98 merged 1 commit into
mainfrom
sync-json-schemas-ffdcee86de7296255de6161ae57973bab0e3cae4

Conversation

@fa-assistant

Copy link
Copy Markdown
Collaborator

Summary

This PR syncs the JSON schemas from the dbt-fusion repository.

Files Updated

  • core/dbt/jsonschemas/project/latest.json
  • core/dbt/jsonschemas/resources/latest.json

Source Information

@fa-assistant fa-assistant requested a review from a team as a code owner May 23, 2026 01:57
@cla-bot cla-bot Bot added the cla:yes label May 23, 2026
@github-actions github-actions Bot added the community This PR is from a community member label May 23, 2026
@codecov

codecov Bot commented May 23, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.50%. Comparing base (d9d985d) to head (e7f8c58).

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #13016      +/-   ##
==========================================
- Coverage   91.54%   91.50%   -0.05%     
==========================================
  Files         206      206              
  Lines       26763    26763              
==========================================
- Hits        24501    24490      -11     
- Misses       2262     2273      +11     
Flag Coverage Δ
integration 88.09% <ø> (-0.10%) ⬇️
unit 65.57% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Components Coverage Δ
Unit Tests 65.57% <ø> (ø)
Integration Tests 88.09% <ø> (-0.10%) ⬇️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@sriramr98 sriramr98 merged commit 6661970 into main May 25, 2026
145 of 146 checks passed
@sriramr98 sriramr98 deleted the sync-json-schemas-ffdcee86de7296255de6161ae57973bab0e3cae4 branch May 25, 2026 10:00
ash2shukla added a commit that referenced this pull request May 29, 2026
* Allow-list DBT_ENGINE_STATE_EMIT_REUSED_STATUS and DBT_ENGINE_STATE_OAUTH_CLIENT_ID (#13002)

* Allow-list DBT_ENGINE_STATE_EMIT_REUSED_STATUS and DBT_ENGINE_STATE_OAUTH_CLIENT_ID

Add both env vars to _ADDITIONAL_ENGINE_ENV_VARS so they pass the
engine env var allow-list validation and don't trigger the
environment-variable-namespace-deprecation warning.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Update issue reference in unreleased changes

* Allow-list DBT_ENGINE_STATE_AUTH_URL, TOKEN_URL, and API_URL

Add the three additional engine env vars to _ADDITIONAL_ENGINE_ENV_VARS
so they pass allow-list validation and don't trigger the
environment-variable-namespace-deprecation warning.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Update test_allow_list_is_correct to include new DBT_ENGINE_STATE_* vars

The hard-coded allow list in TestKnownEngineEnvVarsExplicit must match
_ALLOWED_ENV_VARS. Add the five new DBT_ENGINE_STATE_* vars introduced
in this branch.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
(cherry picked from commit d9d985d)

* Update test durations for pytest-split (#12974)

Update test durations for pytest-split

(cherry picked from commit 637a680)

* chore: sync JSON schemas from dbt-fusion (#13016)

(cherry picked from commit 6661970)

* Defensively cap recursion limit while resolving `selector:` references (#13024)

`SelectorSelectorMethod.search` relies on Python raising RecursionError so
it can re-raise the more helpful DbtRecursionError ("Circular dependency
detected in selector: ..."). This only works if Python's recursion-limit
check (default 1000) trips before the OS thread stack overflows.

On platforms with smaller default thread stacks -- notably Windows at
~1 MB vs ~8 MB on Linux/macOS -- the margin between the recursion limit
and the OS stack can disappear once instrumentation (e.g. coverage) or
stack-heavy plugins join the call chain. The OS overflows first, the
worker process dies, and the user sees no helpful error.

Lower the recursion limit locally (to 250, never raising the user's
existing limit) for the duration of `search`, and restore in `finally`.
This guarantees the catchable RecursionError fires first on every
platform regardless of what else is on the stack. `set(method.search(...))`
in `select_included` eagerly exhausts the generator, so the `finally`
always runs before the caller resumes.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
(cherry picked from commit 2bb27ff)

* ci: add workflow to fast-forward 1.latest from main (#13021)

* ci: add workflow to fast-forward 1.latest from main

Adds .github/workflows/sync-1-latest.yml which keeps the `1.latest`
branch in sync with `main` via a fast-forward push on every push to
`main` (and on manual dispatch). If `1.latest` has diverged and cannot
be fast-forwarded, the workflow fails loudly instead of force-pushing,
so the divergence can be resolved manually.

Uses the standard FISHTOWN_BOT_PAT and "Github Build Bot" identity
already used by other branch-pushing workflows in this repo (e.g.
cut-release-branch.yml, update-test-durations.yml) so the push is
allowed through branch protection on `1.latest` and triggers
downstream CI there.

Co-authored-by: Cursor <cursoragent@cursor.com>

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
(cherry picked from commit 1662d71)

* Bundle dbt-state as an install dependency of dbt-core (opt-in via --manage-state / DBT_ENGINE_MANAGE_STATE / manage_state) (#13014)

* Bundle dbt-state as an opt-in dependency of dbt-core

Add dbt-state to core/pyproject.toml so it is installed alongside dbt-core,
and teach PluginManager to skip discovery of bundled-but-opt-in plugins
unless their gate env var is set. The skip happens before
importlib.import_module, so a disabled opt-in plugin pays zero import cost
and runs zero side effects -- important because the plugin monkey-patches
core classes and registers signal handlers at initialize() time.

Why two module names: the package is mid-rename from `run-cache` (module
`dbt_run_cache`) to `dbt-state` (module `dbt_state`). Both names are listed
as first-class entries in OPT_IN_PLUGIN_MODULES gated by DBT_STATE_ENABLED
so behavior is consistent regardless of which version a user has installed.

Note: the `dbt-state` PyPI release must land before this dependency line
can resolve; this change and the upstream rename must ship together.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Address review feedback on opt-in plugin gating

- Rename DBT_STATE_ENABLED -> DBT_ENGINE_STATE_ENABLED to match the
  DBT_ENGINE_STATE_* convention established in #13002, and add it to
  _ADDITIONAL_ENGINE_ENV_VARS plus the hard-coded allow-list test.
- Emit a discovery-time notice when an opt-in module is on the import
  path but the gate is off: INFO for the legacy `dbt_run_cache` (closes
  the silent-behavior-change gap reviewers flagged) and DEBUG for the
  new `dbt_state`. De-duplicated per process so PluginManager
  reconstruction doesn't spam the log.
- Detect and resolve the dbt_state + dbt_run_cache conflict at gate-on
  time: prefer the canonical `dbt_state`, skip `dbt_run_cache`, emit a
  WARNING. Prevents non-deterministic double monkey-patching when both
  packages happen to be installed during the rename transition.
- Wrap OPT_IN_PLUGIN_MODULES in MappingProxyType so it can't be silently
  mutated to flip activation for the rest of the process.
- Tighten return-type annotation to set[str] and document the canonical
  truthy values explicitly.
- Document scope (auto-discovery only; explicit imports still fire),
  cache contract (gate read at discovery time; tests toggling the env
  var must clear _MODULES_CACHE), and recommend plugin self-gating as
  defense-in-depth.
- Delete the unused _get_dbt_modules helper.
- Add end-to-end from_modules tests (gate on/off, plugin instantiated/not),
  conflict-resolution test, one-time-emission test, and MappingProxyType
  tampering test.

Note for reviewers/maintainers: when patching dbt.plugins.manager attrs
in tests, patch `logger` / `_notify_*` BEFORE patching importlib.import_module
in the same with-block -- mock.patch's own target resolver calls
import_module internally, so a mocked import_module silently breaks
subsequent patches.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Update dbt-state dependency version range

* Flip dbt-state gating from opt-in to opt-out + add project-flag path

The plugin is now bundled (>=2.18) and loads by default. Users can opt
out via either:

  - DBT_ENGINE_STATE_DISABLED env var (truthy = disable). Works
    pre-project-load.
  - state_plugin_disabled in the flags block of dbt_project.yml
    (equivalently in the config block of profiles.yml -- the existing
    read_project_flags loader handles both surfaces).

PluginManager checks both signals at module-discovery time, before
importlib.import_module is called, so opting out costs zero imports
and runs zero side effects. The conflict-group dedup (dbt_state +
dbt_run_cache both installed) continues to apply on the default path.

Renames in this commit:
  - DBT_ENGINE_STATE_ENABLED -> DBT_ENGINE_STATE_DISABLED (env var)
  - OPT_IN_PLUGIN_MODULES    -> OPT_OUT_PLUGIN_MODULES (now maps to
                                an OptOutSignal namedtuple of
                                env_var + flag_attr)
  - OPT_IN_PLUGIN_CONFLICT_GROUPS -> OPT_OUT_PLUGIN_CONFLICT_GROUPS
  - _env_gate_is_on          -> _env_var_is_truthy
  - _notify_opt_in_*         -> _notify_opt_out_*

New ProjectFlags field state_plugin_disabled (default False) is
included in project_only_flags so cli/flags.py setattrs it on the
global Flags object as STATE_PLUGIN_DISABLED. _read_project_flag in
manager.py lazy-imports dbt.flags to avoid hard import-time
coupling.

Tests cover both opt-out paths (env-var and project-flag) at unit
level and end-to-end via from_modules. Adds
TestProjectFlagsExposeStatePluginDisabled to assert the field is
wired through project_only_flags -- if that mapping is removed,
get_flags() never gets the attribute and the project-flag opt-out
silently does nothing.

Updates the test_requires.py hard-coded engine env var allow-list and
adds a changelog entry.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Tidy docstring: empty string, not None, for env-var-only plugins

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Rename gate to manage_state, add --manage-state CLI flag

Three coordinated changes:

  - Env var:     DBT_ENGINE_STATE_DISABLED -> DBT_ENGINE_MANAGE_STATE
  - Project/profile flag: state_plugin_disabled -> manage_state
  - CLI flag (new): --manage-state / --no-manage-state

Semantics flip from "disabled" to "managed":

  - Old: truthy signal -> plugin OFF, default OFF means plugin ON
  - New: manage_state True -> plugin ON, default True means plugin ON;
         set to False (any surface) to skip the plugin

The CLI flag is registered via `_create_option_and_track_env_var` in
params.py with envvar=DBT_MANAGE_STATE; the EngineEnvVar machinery
auto-aliases that to DBT_ENGINE_MANAGE_STATE and Click reads either.
Because the flag now has a CLI option, env_vars._ADDITIONAL_ENGINE_ENV_VARS
no longer needs an explicit entry (params.KNOWN_ENV_VARS handles it).

ProjectFlags moves `manage_state: Optional[bool] = None` to the regular
section (out of project_only_flags) so cli/flags.py's params_assigned_from_default
override path handles it -- same pattern as partial_parse and other
CLI-backed flags.

PluginManager renames:
  - OPT_OUT_PLUGIN_MODULES        -> BUNDLED_PLUGIN_MODULES
  - OPT_OUT_PLUGIN_CONFLICT_GROUPS -> BUNDLED_PLUGIN_CONFLICT_GROUPS
  - OptOutSignal(env_var, flag_attr) -> ManageSignal(flag_attr, cli_flag)
  - _disabled_opt_out_modules     -> _disabled_bundled_modules
  - _resolve_opt_out_conflicts    -> _resolve_bundled_plugin_conflicts
  - _env_var_is_truthy            -> dropped (Click handles env var)
  - _read_project_flag            -> _plugin_is_managed (and inverted)
  - _opt_out_reason               -> dropped (single signal source now)
  - _notify_opt_out_*             -> _notify_bundled_plugin_*

Discovery still happens at module-discovery time, before
importlib.import_module is called, so a disabled bundled plugin pays
zero import cost.

Tests rewritten to cover the new semantics: _plugin_is_managed default
behavior, default-True on flag-init exception, registry contents,
read-only mapping, conflict resolution, end-to-end from_modules with
manage_state True/False. New test asserts manage_state is NOT in
project_only_flags (it's CLI-backed; if it were in both paths they
could disagree).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Flip manage_state back to opt-in (default false)

Just a default-value flip plus comment/help-text/log-level updates; the
wiring stays the same since manage_state still resolves through
`get_flags().MANAGE_STATE` from any of the three surfaces (CLI flag, env
var, project/profile config).

  - cli/params.py: --manage-state default changes from True to False.
    Help text reframed to "opt in".
  - plugins/manager.py: `_plugin_is_managed` defaults to False when the
    flag attribute is missing, and returns False on exception (was True
    in both cases). Comments/docstrings updated to reflect opt-in
    framing.
  - The discovery-skipped notice goes from logger.info to logger.debug,
    since with opt-in the not-loaded state is the default case and
    shouldn't log INFO-level noise on every default invocation.
  - contracts/project.py: docstring on `manage_state` field updated.
  - pyproject.toml: dependency comment updated.
  - Test names/assertions flipped to match: default_true ->
    default_false, returns_true_on_exception -> returns_false_on_exception,
    loads_by_default -> loads_when_opted_in, skips_when_unmanaged ->
    skips_by_default, logs_info_when_unmanaged -> logs_debug_when_not_opted_in,
    instantiates_by_default -> instantiates_when_opted_in,
    does_not_instantiate_when_unmanaged -> does_not_instantiate_by_default.
  - Changelog body rephrased ("opt-in: PluginManager skips unless...").

Conflict-resolution path is unchanged -- if both dbt_state and
dbt_run_cache are installed AND the user has opted in, the dedup still
fires.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Restore process-wide cache of the pkgutil walk + reset between tests

Two fixes from Copilot's review on PR 13014:

1. Re-introduce a process-wide cache for the pkgutil.iter_modules() walk.
   The previous code had `@functools.lru_cache(maxsize=None)` on the
   (admittedly unused) `_get_dbt_modules` helper; deleting it removed the
   cache benefit too. `pkgutil.iter_modules()` walks sys.path and is slow
   in environments with many site-packages; repeated PluginManager
   constructions (notably programmatic dbtRunner usage) shouldn't re-scan.

   Introduce `_walk_prefixed_module_names(prefix)` decorated with
   `functools.lru_cache(maxsize=4)`. Cached at module scope, called from
   `get_prefixed_modules`. Opt-in signals are still re-evaluated per call
   (so env-var/flag changes between calls take effect); only the slow
   filesystem walk is cached.

2. Reset module-level cache state between tests. The new from_modules
   tests didn't clear `_MODULES_CACHE`, so if `test_caching_enabled()`
   returns True, the first test populates it with its mocked module dict
   and subsequent tests short-circuit using the stale cache -- the gate
   never runs, and assertions pass for the wrong reason (or fail
   non-deterministically depending on order).

   Extend the existing autouse fixture (rename to
   `_reset_plugin_manager_process_state`) to clear three pieces of
   process-global state before AND after each test:
     - `_DISCOVERY_NOTICES_EMITTED`
     - `_MODULES_CACHE`
     - the new `_walk_prefixed_module_names` lru_cache

   New test `test_walk_prefixed_module_names_is_cached` pins the caching
   behavior directly: three calls hit `pkgutil.iter_modules` exactly once.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Register --manage-state with canonical DBT_ENGINE_ env var (no legacy alias)

tests/unit/test_env_vars.py::test_engine_env_vars_with_old_names_has_not_increased
counts engine env vars that were registered with the legacy DBT_ prefix
(EngineEnvVar then auto-aliases them with a DBT_ENGINE_ name and sets
old_name to the legacy form). The test is a guard against adding NEW
engine env vars in the legacy form.

I'd registered the new --manage-state option with envvar="DBT_MANAGE_STATE",
which auto-aliased to DBT_ENGINE_MANAGE_STATE but counted as a legacy
addition (incrementing the count from 65 to 66 and tripping the guard).

Fix: register with envvar="DBT_ENGINE_MANAGE_STATE" directly. EngineEnvVar
sees the canonical prefix and sets old_name=None, so the count stays at
65. The user-facing env var is unchanged (still DBT_ENGINE_MANAGE_STATE);
we just lose the implicit DBT_MANAGE_STATE alias, which has no users.

Also remove the stale "(or its non-engine-prefixed alias DBT_MANAGE_STATE)"
note from the ManageSignal docstring in plugins/manager.py.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
(cherry picked from commit b6aae8c)

* chore: sync JSON schemas from dbt-fusion (#13038)

(cherry picked from commit 174a4fa)

* Fix --manage-state being silently overridden by DBT_ENGINE_MANAGE_STATE=false in the plugin (#13039)

* Add end-to-end tests pinning manage_state opt-in surfaces + precedence

Follow-up to #13014. The manage_state flag has three opt-in surfaces
(--manage-state CLI, DBT_ENGINE_MANAGE_STATE env var, manage_state in
dbt_project.yml `flags:` or profiles.yml `config:`), but the existing
unit tests mocked `_plugin_is_managed` / `get_flags()` directly. That
left the actual Click parser, Flags constructor, and ProjectFlags merge
path uncovered, so a refactor of that pipeline could silently break any
of the three opt-in paths.

New TestManageStateClickIntegration class with 8 cases, no mocks of the
helper functions -- builds a minimal Click command with the real
@p.manage_state decorator, invokes via CliRunner, constructs the real
Flags(ctx, project_flags=...) object, then asserts on the actual
_plugin_is_managed result:

  - Nothing set                              -> skipped
  - --manage-state alone                     -> enabled
  - --no-manage-state alone                  -> skipped
  - DBT_ENGINE_MANAGE_STATE=true alone       -> enabled
  - ProjectFlags(manage_state=True) alone    -> enabled
  - ProjectFlags(manage_state=False) alone   -> skipped
  - --no-manage-state + project flag True    -> skipped (CLI wins)
  - --no-manage-state + env var true         -> skipped (CLI wins)

Pins both the "each source enables on its own" contract and the
precedence rule (explicit CLI beats env var beats project flag beats
default).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Cover the symmetric CLI > env precedence case

Missed in the previous round: --manage-state + DBT_ENGINE_MANAGE_STATE=false.
Same Click rule as the existing --no-manage-state + env=true test, but
in the other direction. Verified empirically that the CLI value sticks
(_plugin_is_managed True), and pinned it with a test.

Also renamed the existing test_cli_flag_overrides_env_var ->
test_cli_no_flag_overrides_env_var_true so the pair is unambiguous
when reading the test list.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Fix: propagate Click-resolved manage_state to the plugin's own env-var check

The bundled dbt-state plugin reads DBT_ENGINE_MANAGE_STATE directly in its
initialize() rather than going through `dbt.flags.get_flags()`. When a user
passes `--manage-state` while DBT_ENGINE_MANAGE_STATE=false is set in the
env, PluginManager correctly decides to load the plugin (Click resolves
CLI > env, so flags.MANAGE_STATE=True), but the plugin then self-disables
on import when its own env-var check reads "false".

Reported empirically:

  export DBT_ENGINE_MANAGE_STATE=false
  dbt build --manage-state
  # -> "State adapter: dbt-state v2.21.1 ... is disabled"

Fix: PluginManager normalizes os.environ[<env_var>] to "true" right before
importing each bundled plugin module. Bridges the Click-resolved value to
the plugin's own gating without requiring a dbt-state release. Restored
`env_var` field on ManageSignal (carries the env-var name per-plugin) and
populated for both dbt_state and dbt_run_cache.

Also exposes the gap in the earlier integration tests: they asserted on
_plugin_is_managed (PluginManager's view), which was always True for the
CLI-override case, so the bug slipped through. New test
test_cli_override_normalizes_env_var_for_plugin simulates a plugin that
reads DBT_ENGINE_MANAGE_STATE directly in its initialize() (exactly what
real dbt-state does) and asserts the plugin sees "true" after PluginManager
runs. Verified the test fails without the manager.py fix and passes with
it (stash + run + pop).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Reclassify changelog: Fixes (not Under the Hood) and update body

This is a user-visible bug fix, not internal cleanup. Rename the changelog
file accordingly and rewrite the body around the fix.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Address Copilot + CodeScene feedback

Three fixes:

1. (Copilot) `_probe_manage_state` now defaults `project_flags` to an
   empty `ProjectFlags()` when not supplied, instead of None. With None,
   `Flags.__init__` falls through to `read_project_flags()` which reads
   the developer's actual `~/.dbt/profiles.yml` / `dbt_project.yml`.
   A local `config.manage_state: true` would silently break the
   "nothing set" cases.

2. (Copilot) `_probe_manage_state` captures `dbt.flags.get_flags()`
   before the Click invocation and restores it in a `finally`. The
   helper has to call `set_flags(flags)` for `_plugin_is_managed` to see
   the new value, but without the restore it leaks process-global state
   into later tests that read `get_flags()` -- producing
   ordering-dependent failures.

3. (CodeScene "Bumpy Road Ahead") `get_prefixed_modules` had two
   nested-conditional blocks. Extracted them into named helpers:
     - `_not_opted_in_bundled_modules(names)` returns the skip set
     - `_sync_bundled_plugin_env_vars(to_import)` does the os.environ
       normalization
   Helpers use the `continue` early-return pattern to keep their own
   nesting shallow. `get_prefixed_modules` is now linear (zero nested
   conditionals); the gate-check + env-var-sync semantics are unchanged.

Verified all 35 tests still pass.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
(cherry picked from commit 733599f)

* Implement dbt Login Command (#13020)

* first pass for dbt login

* add run-cache flow and post oauth login steps with manage_state flag

* refactoring

* fix the configured but not enabled case

* cleaned up the flow

* remove slop tests

* add changelog

* add login flow test and move OAUTH_CLIENT_ID to resolvers.py

* fixed copilot comments

* address write protection and remove unnecesary flags

* fix naming for exceptions, move skip-browser-auth to flags

* addressed comments

* rename runcache to state

* fix failing tests

* align login logs

* add dbt login status sub command

* fix failing tests

* add functional tests and align with fs impl

(cherry picked from commit f0cbe97)

* Add --use-v2-parser to delegate parsing to the fusion parser (#13029)

* Add v2 parser & tests

* Make parse_with_fusion more similar to pre-existing parse_manifest

* Re-name v2-parser-command to v2-parser

* Sort params alphabetically

* Add changelog for v2 parser

* Improve docstring

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Clean up unused get_adapter call

* Fix tests in Windows

* Fix parser command parsing on Windows

* Update enrich_manifest_with_plugin_artifacts docstring

* Default v2 parser to bundled dbt-core-experimental-parser

Add dbt-core-experimental-parser as a dependency and resolve the engine
binary from this Python install's scripts directory when V2_PARSER is a
bare command name, so the wheel-pinned binary wins over whatever fs is
on PATH. Users can still override via --v2-parser to point at an
absolute path or alternate command.

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>

* Unhide --use-v2-parser

* Update core/dbt/cli/params.py

Co-authored-by: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com>

* Fix changelog

* Cleanup mentions of `fs`

* Fix parser unit tests

* Update issue reference in Features YAML file

---------

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Colin Rogers <111200756+colin-rogers-dbt@users.noreply.github.com>
(cherry picked from commit 317b050)

* chore: sync JSON schemas from dbt-fusion (#13051)

(cherry picked from commit ea99acf)

* add dbt login fixes for post login flow (#13056)

* add dbt login fixes for post login flow

* address copilot comments to add encoding tests

(cherry picked from commit 63b2893)

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: FishtownBuildBot <77737458+FishtownBuildBot@users.noreply.github.com>
Co-authored-by: fa-assistant <77991023+fa-assistant@users.noreply.github.com>
Co-authored-by: Tauhid Anjum <tauhidanjum@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Ashish Shukla <ashish.shukla@dbtlabs.com>
Co-authored-by: Diego Fernández Giraldo <aiguo.fernandez@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla:yes community This PR is from a community member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants