feat: add missing DAG endpoints (forward-cone, dirty subgraph, mark-dirty) #10

Open
opened 2026-02-16 15:55:47 +00:00 by forbes · 0 comments
Owner

Summary

The client implements push_dag and get_dag but is missing 3 DAG query/mutation endpoints needed for interference detection and incremental validation.

Missing Methods

Server Endpoint Proposed Method
GET /api/items/{pn}/dag/forward-cone/{nodeKey} get_dag_forward_cone(part_number, node_key)
GET /api/items/{pn}/dag/dirty get_dag_dirty(part_number)
POST /api/items/{pn}/dag/mark-dirty/{nodeKey} mark_dag_dirty(part_number, node_key)

Context

  • Forward cone: Returns all downstream nodes affected if a source node changes. Used for interference detection in multi-user editing -- if two users' forward cones overlap, there is potential conflict.
  • Dirty subgraph: Returns all nodes where validation_state != 'clean'. Input to incremental validation jobs run by runners.
  • Mark dirty: Manually marks a node and its forward cone as dirty, triggering revalidation.

References

  • DAG.md Section 5 (Graph Queries)
  • DAG.md Section 8 (REST API)
## Summary The client implements `push_dag` and `get_dag` but is missing 3 DAG query/mutation endpoints needed for interference detection and incremental validation. ## Missing Methods | Server Endpoint | Proposed Method | |---|---| | `GET /api/items/{pn}/dag/forward-cone/{nodeKey}` | `get_dag_forward_cone(part_number, node_key)` | | `GET /api/items/{pn}/dag/dirty` | `get_dag_dirty(part_number)` | | `POST /api/items/{pn}/dag/mark-dirty/{nodeKey}` | `mark_dag_dirty(part_number, node_key)` | ## Context - **Forward cone**: Returns all downstream nodes affected if a source node changes. Used for interference detection in multi-user editing -- if two users' forward cones overlap, there is potential conflict. - **Dirty subgraph**: Returns all nodes where `validation_state != 'clean'`. Input to incremental validation jobs run by runners. - **Mark dirty**: Manually marks a node and its forward cone as dirty, triggering revalidation. ## References - DAG.md Section 5 (Graph Queries) - DAG.md Section 8 (REST API)
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: kindred/silo-client#10