-
Notifications
You must be signed in to change notification settings - Fork 0
[compat] First state:new selector from prior manifest #211
Copy link
Copy link
Closed
Labels
area:artifactsManifest, results, catalog, sourcesManifest, results, catalog, sourcesarea:selectorSelector semanticsSelector semanticsartifact:manifestmanifest.jsonmanifest.jsoncommand:lsls commandls commandgate:dbt-oracleNeeds dbt oracle comparisonNeeds dbt oracle comparisongate:focused-pytestNeeds focused pytestNeeds focused pytestgate:zig-testNeeds native Zig test gateNeeds native Zig test gatepriority:p1High priorityHigh priorityready-for-agentReady for agent delegationReady for agent delegationrisk:artifact-contractdbt artifact schema riskdbt artifact schema riskrisk:upstream-ambiguitydbt/Fusion behavior ambiguitydbt/Fusion behavior ambiguityrole:workerReady for implementation workerReady for implementation workerstatus:claimedClaimed by an agent/branchClaimed by an agent/branchstatus:readyReady for worktree claimReady for worktree claimtype:compatSource-grounded dbt compatibility sliceSource-grounded dbt compatibility slice
Description
Metadata
Metadata
Assignees
Labels
area:artifactsManifest, results, catalog, sourcesManifest, results, catalog, sourcesarea:selectorSelector semanticsSelector semanticsartifact:manifestmanifest.jsonmanifest.jsoncommand:lsls commandls commandgate:dbt-oracleNeeds dbt oracle comparisonNeeds dbt oracle comparisongate:focused-pytestNeeds focused pytestNeeds focused pytestgate:zig-testNeeds native Zig test gateNeeds native Zig test gatepriority:p1High priorityHigh priorityready-for-agentReady for agent delegationReady for agent delegationrisk:artifact-contractdbt artifact schema riskdbt artifact schema riskrisk:upstream-ambiguitydbt/Fusion behavior ambiguitydbt/Fusion behavior ambiguityrole:workerReady for implementation workerReady for implementation workerstatus:claimedClaimed by an agent/branchClaimed by an agent/branchstatus:readyReady for worktree claimReady for worktree claimtype:compatSource-grounded dbt compatibility sliceSource-grounded dbt compatibility slice
Objective
Implement the first
state:selector slice:state:newshould select current supported resources whoseunique_idis absent from a prior dbt Manifest state directory.Current Reality
dxt lsalready supports the shared selector engine, YAML selector aliases/composition for the supported subset,source_status:*from priorsources.json, andresult:*from priorrun_results.json. The compatibility matrix still lists broader state/defer selectors as planned. A smallstate:newslice moves workflow compatibility forward without taking on manifest diffing, deferral, or run-result semantics.Role and Labels
role:workertype:compat,area:selector,area:artifacts,artifact:manifest,command:lsstatus:ready,ready-for-agentPriority
priority:p1: state selectors are a core dbt CI workflow surface, andstate:newis the smallest useful manifest-state selector beforestate:modifiedor defer.Readiness
Ready for one selector/artifact worker. Reuse the existing state-artifact reader patterns where possible and keep the first slice limited to current-vs-prior
unique_idmembership.Risk
risk:artifact-contract: the prior artifact must be dbt Manifest shaped and parsed without inventing dxt-only fields.risk:upstream-ambiguity: dbt Core selector behavior should be pinned forstate:new, including graph expansion interactions.Dependencies / Sequencing
Build on the closed YAML selector/state roadmap and the implemented
source_status:*/result:*selector inputs. Keep this separate fromstate:modified,state:old,state:unmodified,--defer, and--favor-state.Acceptance Criteria
dxt ls --state <state-dir> --select state:newreads<state-dir>/manifest.jsonand selects supported current resources whoseunique_idis missing from the prior manifest.state:new+,+state:new, and existing--excludebehavior compose through the shared graph selector engine in the supported graph subset.source_status:*,result:*, YAML selector, and basic selector tests keep passing.Validation
python scripts/check_runtime_boundary.pypython scripts/check_public_safety.pyStop Condition
Stop and split if the implementation requires
state:modifiedchecksum comparison, deferral relation resolution, package install state, partial parsing, or Python product-runtime behavior.