Deterministic artifact graph - bring back the clockwork universe (#7483)

* Change to use deterministic artifact graph

* Update output to use the new order

* Fix to clear everything when scene is cleared

* Fix lots

* Update artifact graph output for the last time

* Delete unused sorting code

* Remove unneeded cfg

* Fix to preserve top-level artifacts when there's an error

* Update output after error fix

* Add better doc comments

* Remove duplicate global operations

* Update comments

* Update ignored tests that were flaky

* Update graph for new samples after rebase

* Fix test assertion message
This commit is contained in:
Jonathan Tran
2025-06-16 13:55:24 -04:00
committed by GitHub
parent d6278cf075
commit aae34cf1e5
197 changed files with 79222 additions and 69896 deletions

View File

@ -1,297 +1,297 @@
```mermaid
flowchart LR
subgraph path5 [Path]
5["Path<br>[35, 60, 0]"]
subgraph path2 [Path]
2["Path<br>[35, 60, 0]"]
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
9["Segment<br>[66, 84, 0]"]
3["Segment<br>[66, 84, 0]"]
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
10["Segment<br>[90, 123, 0]"]
4["Segment<br>[90, 123, 0]"]
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
11["Segment<br>[129, 185, 0]"]
5["Segment<br>[129, 185, 0]"]
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
12["Segment<br>[191, 198, 0]"]
6["Segment<br>[191, 198, 0]"]
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
7[Solid2d]
end
subgraph path20 [Path]
20["Path<br>[300, 330, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
21["Segment<br>[336, 354, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
22["Segment<br>[360, 379, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
23["Segment<br>[385, 441, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
24["Segment<br>[447, 454, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
25[Solid2d]
end
subgraph path6 [Path]
6["Path<br>[300, 330, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
13["Segment<br>[336, 354, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
14["Segment<br>[360, 379, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
15["Segment<br>[385, 441, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
16["Segment<br>[447, 454, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
26[Solid2d]
end
subgraph path7 [Path]
7["Path<br>[556, 583, 0]"]
subgraph path37 [Path]
37["Path<br>[556, 583, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
17["Segment<br>[589, 623, 0]"]
38["Segment<br>[589, 623, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
18["Segment<br>[629, 648, 0]"]
39["Segment<br>[629, 648, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
19["Segment<br>[654, 710, 0]"]
40["Segment<br>[654, 710, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
20["Segment<br>[716, 723, 0]"]
41["Segment<br>[716, 723, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
28[Solid2d]
42[Solid2d]
end
subgraph path8 [Path]
8["Path<br>[825, 852, 0]"]
subgraph path54 [Path]
54["Path<br>[825, 852, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 1 }]
21["Segment<br>[858, 878, 0]"]
55["Segment<br>[858, 878, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 2 }]
22["Segment<br>[884, 905, 0]"]
56["Segment<br>[884, 905, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 3 }]
23["Segment<br>[911, 967, 0]"]
57["Segment<br>[911, 967, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 4 }]
24["Segment<br>[973, 980, 0]"]
58["Segment<br>[973, 980, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 5 }]
27[Solid2d]
59[Solid2d]
end
1["Plane<br>[12, 29, 0]"]
%% [ProgramBodyItem { index: 0 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
2["StartSketchOnFace<br>[255, 294, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
3["StartSketchOnFace<br>[511, 550, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
4["StartSketchOnFace<br>[780, 819, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
29["Sweep Extrusion<br>[212, 242, 0]"]
8["Sweep Extrusion<br>[212, 242, 0]"]
%% [ProgramBodyItem { index: 1 }, VariableDeclarationDeclaration, VariableDeclarationInit]
30["Sweep Extrusion<br>[468, 498, 0]"]
%% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit]
31["Sweep Extrusion<br>[737, 767, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit]
32["Sweep Extrusion<br>[994, 1024, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit]
33[Wall]
9[Wall]
%% face_code_ref=Missing NodePath
34[Wall]
%% face_code_ref=Missing NodePath
35[Wall]
10[Wall]
%% face_code_ref=[ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
36[Wall]
11[Wall]
%% face_code_ref=Missing NodePath
37[Wall]
12["Cap Start"]
%% face_code_ref=Missing NodePath
38[Wall]
13["Cap End"]
%% face_code_ref=Missing NodePath
39[Wall]
14["SweepEdge Opposite"]
15["SweepEdge Adjacent"]
16["SweepEdge Opposite"]
17["SweepEdge Adjacent"]
18["SweepEdge Opposite"]
19["SweepEdge Adjacent"]
26["Sweep Extrusion<br>[468, 498, 0]"]
%% [ProgramBodyItem { index: 3 }, VariableDeclarationDeclaration, VariableDeclarationInit]
27[Wall]
%% face_code_ref=Missing NodePath
40[Wall]
28[Wall]
%% face_code_ref=Missing NodePath
41[Wall]
29[Wall]
%% face_code_ref=Missing NodePath
42[Wall]
%% face_code_ref=Missing NodePath
43[Wall]
%% face_code_ref=Missing NodePath
44[Wall]
%% face_code_ref=[ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
45["Cap Start"]
%% face_code_ref=Missing NodePath
46["Cap End"]
30["Cap End"]
%% face_code_ref=[ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
31["SweepEdge Opposite"]
32["SweepEdge Adjacent"]
33["SweepEdge Opposite"]
34["SweepEdge Adjacent"]
35["SweepEdge Opposite"]
36["SweepEdge Adjacent"]
43["Sweep Extrusion<br>[737, 767, 0]"]
%% [ProgramBodyItem { index: 5 }, VariableDeclarationDeclaration, VariableDeclarationInit]
44[Wall]
%% face_code_ref=Missing NodePath
45[Wall]
%% face_code_ref=Missing NodePath
46[Wall]
%% face_code_ref=[ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
47["Cap End"]
%% face_code_ref=Missing NodePath
48["Cap End"]
%% face_code_ref=Missing NodePath
49["Cap End"]
%% face_code_ref=Missing NodePath
48["SweepEdge Opposite"]
49["SweepEdge Adjacent"]
50["SweepEdge Opposite"]
51["SweepEdge Opposite"]
51["SweepEdge Adjacent"]
52["SweepEdge Opposite"]
53["SweepEdge Opposite"]
54["SweepEdge Opposite"]
55["SweepEdge Opposite"]
56["SweepEdge Opposite"]
57["SweepEdge Opposite"]
58["SweepEdge Opposite"]
59["SweepEdge Opposite"]
60["SweepEdge Opposite"]
61["SweepEdge Opposite"]
62["SweepEdge Adjacent"]
63["SweepEdge Adjacent"]
64["SweepEdge Adjacent"]
65["SweepEdge Adjacent"]
53["SweepEdge Adjacent"]
60["Sweep Extrusion<br>[994, 1024, 0]"]
%% [ProgramBodyItem { index: 7 }, VariableDeclarationDeclaration, VariableDeclarationInit]
61[Wall]
%% face_code_ref=Missing NodePath
62[Wall]
%% face_code_ref=Missing NodePath
63[Wall]
%% face_code_ref=Missing NodePath
64["Cap End"]
%% face_code_ref=Missing NodePath
65["SweepEdge Opposite"]
66["SweepEdge Adjacent"]
67["SweepEdge Adjacent"]
67["SweepEdge Opposite"]
68["SweepEdge Adjacent"]
69["SweepEdge Adjacent"]
69["SweepEdge Opposite"]
70["SweepEdge Adjacent"]
71["SweepEdge Adjacent"]
72["SweepEdge Adjacent"]
73["SweepEdge Adjacent"]
1 --- 5
35 x--> 2
46 x--> 3
44 x--> 4
71["StartSketchOnFace<br>[255, 294, 0]"]
%% [ProgramBodyItem { index: 2 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
72["StartSketchOnFace<br>[511, 550, 0]"]
%% [ProgramBodyItem { index: 4 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
73["StartSketchOnFace<br>[780, 819, 0]"]
%% [ProgramBodyItem { index: 6 }, VariableDeclarationDeclaration, VariableDeclarationInit, PipeBodyItem { index: 0 }]
1 --- 2
2 --- 3
2 --- 4
2 --- 5
2 --- 6
2 --- 7
2 ---- 8
3 --- 11
3 x--> 12
3 --- 18
3 --- 19
4 --- 10
4 x--> 12
4 --- 16
4 --- 17
5 --- 9
5 --- 10
5 --- 11
5 --- 12
5 --- 25
5 ---- 29
6 --- 13
6 --- 14
6 --- 15
6 --- 16
6 --- 26
6 ---- 30
35 --- 6
7 --- 17
7 --- 18
7 --- 19
7 --- 20
7 --- 28
7 ---- 31
46 --- 7
8 --- 21
8 --- 22
8 --- 23
8 --- 24
8 --- 27
8 ---- 32
44 --- 8
9 --- 34
9 x--> 45
9 --- 52
9 --- 64
10 --- 35
10 x--> 45
10 --- 51
10 --- 63
11 --- 33
11 x--> 45
11 --- 50
11 --- 62
13 x--> 35
13 --- 37
13 --- 55
13 --- 67
14 x--> 35
14 --- 36
14 --- 54
14 --- 66
15 x--> 35
15 --- 38
15 --- 53
15 --- 65
17 --- 44
17 x--> 46
17 --- 61
17 --- 73
18 --- 42
18 x--> 46
18 --- 60
18 --- 72
19 --- 43
19 x--> 46
19 --- 59
19 --- 71
21 --- 41
21 x--> 44
21 --- 58
21 --- 70
22 --- 40
22 x--> 44
22 --- 57
22 --- 69
23 --- 39
23 x--> 44
23 --- 56
23 --- 68
29 --- 33
29 --- 34
5 x--> 12
5 --- 14
5 --- 15
8 --- 9
8 --- 10
8 --- 11
8 --- 12
8 --- 13
8 --- 14
8 --- 15
8 --- 16
8 --- 17
8 --- 18
8 --- 19
9 --- 14
9 --- 15
17 <--x 9
10 --- 16
10 --- 17
19 <--x 10
10 --- 20
21 <--x 10
22 <--x 10
23 <--x 10
10 <--x 71
15 <--x 11
11 --- 18
11 --- 19
14 <--x 13
16 <--x 13
18 <--x 13
20 --- 21
20 --- 22
20 --- 23
20 --- 24
20 --- 25
20 ---- 26
21 --- 29
21 --- 35
21 --- 36
22 --- 28
22 --- 33
22 --- 34
23 --- 27
23 --- 31
23 --- 32
26 --- 27
26 --- 28
26 --- 29
26 --- 30
26 --- 31
26 --- 32
26 --- 33
26 --- 34
26 --- 35
26 --- 36
27 --- 31
27 --- 32
34 <--x 27
28 --- 33
28 --- 34
36 <--x 28
32 <--x 29
29 --- 35
29 --- 45
29 --- 49
29 --- 50
29 --- 51
29 --- 52
29 --- 62
29 --- 63
29 --- 64
30 --- 36
29 --- 36
31 <--x 30
33 <--x 30
35 <--x 30
30 --- 37
30 --- 38
30 --- 46
30 --- 53
30 --- 54
30 --- 55
30 --- 65
30 --- 66
30 --- 67
31 --- 42
31 --- 43
31 --- 44
31 --- 47
31 --- 59
31 --- 60
31 --- 61
31 --- 71
31 --- 72
31 --- 73
32 --- 39
32 --- 40
32 --- 41
32 --- 48
32 --- 56
32 --- 57
32 --- 58
32 --- 68
32 --- 69
32 --- 70
33 --- 50
33 --- 62
63 <--x 33
34 --- 52
62 <--x 34
34 --- 64
35 --- 51
35 --- 63
64 <--x 35
36 --- 54
36 --- 66
67 <--x 36
37 --- 55
65 <--x 37
37 --- 67
38 <--x 30
39 <--x 30
40 <--x 30
30 <--x 72
37 --- 38
37 --- 39
37 --- 40
37 --- 41
37 --- 42
37 ---- 43
38 --- 46
38 --- 52
38 --- 53
38 --- 65
66 <--x 38
39 --- 56
39 --- 68
69 <--x 39
40 --- 57
40 --- 69
70 <--x 40
41 --- 58
68 <--x 41
41 --- 70
42 --- 60
42 --- 72
73 <--x 42
43 --- 59
43 --- 71
72 <--x 43
44 --- 61
71 <--x 44
44 --- 73
53 <--x 46
54 <--x 46
39 --- 45
39 --- 50
39 --- 51
40 --- 44
40 --- 48
40 --- 49
43 --- 44
43 --- 45
43 --- 46
43 --- 47
43 --- 48
43 --- 49
43 --- 50
43 --- 51
43 --- 52
43 --- 53
44 --- 48
44 --- 49
51 <--x 44
45 --- 50
45 --- 51
53 <--x 45
49 <--x 46
46 --- 52
46 --- 53
46 --- 54
55 <--x 46
59 <--x 47
60 <--x 47
61 <--x 47
56 <--x 48
57 <--x 48
58 <--x 48
50 <--x 49
51 <--x 49
52 <--x 49
56 <--x 46
57 <--x 46
46 <--x 73
48 <--x 47
50 <--x 47
52 <--x 47
54 --- 55
54 --- 56
54 --- 57
54 --- 58
54 --- 59
54 ---- 60
55 --- 63
55 --- 69
55 --- 70
56 --- 62
56 --- 67
56 --- 68
57 --- 61
57 --- 65
57 --- 66
60 --- 61
60 --- 62
60 --- 63
60 --- 64
60 --- 65
60 --- 66
60 --- 67
60 --- 68
60 --- 69
60 --- 70
61 --- 65
61 --- 66
68 <--x 61
62 --- 67
62 --- 68
70 <--x 62
66 <--x 63
63 --- 69
63 --- 70
65 <--x 64
67 <--x 64
69 <--x 64
```