Compare commits
1 Commits
feat/dag-a
...
feat/dag-o
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3dd0da3964 |
@@ -717,6 +717,28 @@ class Silo_New:
|
||||
return _server_mode == "normal"
|
||||
|
||||
|
||||
def _push_dag_after_upload(doc, part_number, revision_number):
|
||||
"""Extract and push the feature DAG after a successful upload.
|
||||
|
||||
Failures are logged as warnings -- DAG sync must never block save.
|
||||
"""
|
||||
try:
|
||||
from dag import extract_dag
|
||||
|
||||
nodes, edges = extract_dag(doc)
|
||||
if not nodes:
|
||||
return
|
||||
|
||||
result = _client.push_dag(part_number, revision_number, nodes, edges)
|
||||
node_count = result.get("node_count", len(nodes))
|
||||
edge_count = result.get("edge_count", len(edges))
|
||||
FreeCAD.Console.PrintMessage(
|
||||
f"DAG synced: {node_count} nodes, {edge_count} edges\n"
|
||||
)
|
||||
except Exception as e:
|
||||
FreeCAD.Console.PrintWarning(f"DAG sync failed: {e}\n")
|
||||
|
||||
|
||||
class Silo_Save:
|
||||
"""Save locally and upload to MinIO."""
|
||||
|
||||
@@ -787,6 +809,8 @@ class Silo_Save:
|
||||
new_rev = result["revision_number"]
|
||||
FreeCAD.Console.PrintMessage(f"Uploaded as revision {new_rev}\n")
|
||||
|
||||
_push_dag_after_upload(doc, part_number, new_rev)
|
||||
|
||||
except Exception as e:
|
||||
FreeCAD.Console.PrintWarning(f"Upload failed: {e}\n")
|
||||
FreeCAD.Console.PrintMessage("File saved locally but not uploaded.\n")
|
||||
@@ -841,6 +865,8 @@ class Silo_Commit:
|
||||
new_rev = result["revision_number"]
|
||||
FreeCAD.Console.PrintMessage(f"Committed revision {new_rev}: {comment}\n")
|
||||
|
||||
_push_dag_after_upload(doc, part_number, new_rev)
|
||||
|
||||
except Exception as e:
|
||||
FreeCAD.Console.PrintError(f"Commit failed: {e}\n")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user