[DJ Semantic Fingerprint 4] Bulk endpoint for viewing fingerprints + testing fixtures - #2490
Open
philipfweiss wants to merge 2 commits into
Conversation
philipfweiss
marked this pull request as ready for review
September 2, 2026 00:34
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 2, 2026 01:53
1c628be to
d914195
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 2, 2026 01:53
b2407e9 to
113b682
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 2, 2026 19:50
d914195 to
63bf44c
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 2, 2026 19:54
113b682 to
2fde045
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 3, 2026 01:29
63bf44c to
638e8b5
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 3, 2026 01:30
2fde045 to
3f838b2
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 3, 2026 19:27
638e8b5 to
84419d8
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 3, 2026 19:27
3f838b2 to
765254e
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 3, 2026 21:34
84419d8 to
1d4520e
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 3, 2026 21:34
765254e to
43afda8
Compare
philipfweiss
force-pushed
the
semantic-fingerprints-deployment-impact-api
branch
from
September 4, 2026 20:21
1d4520e to
52d4f75
Compare
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 4, 2026 20:21
43afda8 to
da51e15
Compare
added 2 commits
September 4, 2026 14:19
Expose committed namespace-tree hashes so metadata files can bootstrap and reconcile outside deployment previews.
The namespace endpoint now evaluates one current graph and selects its requested rows from the memoized result.
philipfweiss
force-pushed
the
semantic-fingerprint-namespace-snapshots
branch
from
September 4, 2026 21:21
da51e15 to
72dff13
Compare
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.
Fingerprints currently surface only while previewing a deployment, so metadata-file consumers cannot bootstrap a complete file or reconcile committed state after a failed or out-of-band change. A namespace snapshot endpoint makes committed hashes available from the same server-owned evaluator.
Depends on #2483.
This PR:
GET /namespaces/{namespace}/semantic-fingerprintsfor a namespace and its descendantsunknownsentinelThe endpoint is additive and does not change existing namespace or deployment responses.
Lunch snapshot example
Changing the kitchen's grill table changes the burger and taco paths, including the taco-truck subnamespace. The independent milkshake path remains stable.
flowchart LR G["grill_orders<br/>source hash changes"] B["burger_orders"] BM["burger_count"] P["picnic_basket"] T["taco_truck.taco_orders"] TM["taco_truck.taco_count"] S["milkshake_orders<br/>unchanged"] SM["milkshake_count<br/>unchanged"] G --> B --> BM --> P G --> T --> TM S --> SM classDef changed fill:#fff1d6,stroke:#c2410c,color:#431407 classDef stable fill:#ecfdf5,stroke:#059669,color:#064e3b class G,B,BM,P,T,TM changed class S,SM stableA snapshot of
lunchreturns all eight sorted rows. The six changed fingerprints predicted by/deployments/impactmatch the committed snapshot after deployment, while both milkshake rows retain their prior hashes.Verification:
Observed:
[{"name":"database","status":"ok"}]dj, deployedfingerprint_food.kitchenandfingerprint_food.taco_truck, and configured the root and child namespaces as Git-backed. The kitchen contained the burger and milkshake paths shown above. The taco transform read fromfingerprint_food.kitchen.grill_orders.The response had
namespace=fingerprint_food,version=1, and eight name-sorted nodes with sorted owners. One generated metadata row was:grill_orders_v2, previewed impact, deployed it, and fetched the committed root snapshot again.Observed:
{ "changed": [ "fingerprint_food.kitchen.burger_count", "fingerprint_food.kitchen.burger_orders", "fingerprint_food.kitchen.grill_orders", "fingerprint_food.kitchen.picnic_basket", "fingerprint_food.taco_truck.taco_count", "fingerprint_food.taco_truck.taco_orders" ], "impact_matches_committed_snapshot": true, "stable": [ "fingerprint_food.kitchen.milkshake_orders", "fingerprint_food.kitchen.milkshake_count" ] }The version error body contained
Unsupported semantic fingerprint version: 2.fingerprint_food.mysterychain, then changed the persisted current SQL formystery_meattoSELECT (in Postgres to represent a legacy invalid node. The snapshot remained available and propagated the sentinel:{ "status": 200, "mystery_meat": "unknown", "customer": "unknown" }Semantic fingerprint stack
This is PR 4 of 4: