fiberpath 0.5.4__tar.gz → 0.6.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. fiberpath-0.6.2/.github/dependabot.yml +122 -0
  2. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/backend-ci.yml +6 -23
  3. fiberpath-0.6.2/.github/workflows/ci-check.yml +152 -0
  4. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/dependency-audit.yml +0 -2
  5. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/docs-ci.yml +5 -19
  6. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/docs-deploy.yml +2 -2
  7. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/gui-ci.yml +6 -16
  8. fiberpath-0.6.2/.github/workflows/gui-e2e-smoke.yml +199 -0
  9. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/gui-packaging.yml +6 -1
  10. {fiberpath-0.5.4 → fiberpath-0.6.2}/.gitignore +8 -1
  11. fiberpath-0.6.2/CHANGELOG.md +164 -0
  12. {fiberpath-0.5.4 → fiberpath-0.6.2}/PKG-INFO +4 -4
  13. {fiberpath-0.5.4 → fiberpath-0.6.2}/README.md +3 -3
  14. {fiberpath-0.5.4/planning → fiberpath-0.6.2}/TODO.md +8 -0
  15. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/architecture/axis-system.md +4 -9
  16. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/development/ci-cd.md +2 -2
  17. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/development/contributing.md +3 -3
  18. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/development/dependency-policy.md +4 -4
  19. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/development/packaging.md +2 -2
  20. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/development/release-process.md +1 -1
  21. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/development/tooling.md +12 -16
  22. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/getting-started.md +0 -4
  23. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/guides/axis-mapping.md +2 -5
  24. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/guides/visualization.md +1 -4
  25. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/guides/wind-format.md +20 -10
  26. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/index.md +8 -8
  27. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/reference/concepts.md +13 -4
  28. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/troubleshooting.md +5 -10
  29. fiberpath-0.6.2/examples/rocketry/AvBay(470mm)single.wind +24 -0
  30. fiberpath-0.5.4/examples/rocketry/AvBay(470mm).wind → fiberpath-0.6.2/examples/rocketry/AvBay(470mm)triple.wind +4 -4
  31. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/config/schemas.py +1 -1
  32. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/layer_strategies.py +1 -1
  33. fiberpath-0.6.2/fiberpath/planning/validators.py +149 -0
  34. fiberpath-0.6.2/fiberpath_api/path_policy.py +100 -0
  35. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/README.md +9 -7
  36. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/architecture/cli-integration.md +0 -29
  37. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/architecture/state-management.md +1 -34
  38. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/architecture/streaming-state.md +0 -15
  39. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/architecture/tech-stack.md +30 -56
  40. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/development.md +31 -52
  41. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/guides/performance.md +0 -33
  42. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/guides/schemas.md +0 -35
  43. fiberpath-0.6.2/fiberpath_gui/docs/guides/styling.md +192 -0
  44. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/overview.md +6 -6
  45. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/reference/type-safety.md +0 -48
  46. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/docs/testing.md +2 -32
  47. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/package-lock.json +319 -1072
  48. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/package.json +9 -12
  49. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/schemas/wind-schema.json +5 -19
  50. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/App.tsx +7 -54
  51. fiberpath-0.6.2/fiberpath_gui/src/components/ErrorBoundary.tsx +64 -0
  52. fiberpath-0.6.2/fiberpath_gui/src/components/MenuBar.tsx +230 -0
  53. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StatusBar.tsx +9 -12
  54. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +71 -0
  55. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/ConnectionSection.tsx +152 -0
  56. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +133 -0
  57. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/FileStreamingSection.tsx +165 -0
  58. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +99 -0
  59. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.tsx +28 -21
  60. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +40 -0
  61. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/ManualControlSection.tsx +105 -0
  62. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/StreamControls.css +8 -0
  63. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/StreamLog.css +111 -0
  64. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StreamTab/StreamLog.tsx +8 -6
  65. fiberpath-0.6.2/fiberpath_gui/src/components/StreamTab/StreamTab.css +74 -0
  66. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StreamTab/StreamTab.tsx +4 -3
  67. fiberpath-0.6.2/fiberpath_gui/src/components/Toast/ToastContainer.css +73 -0
  68. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/Toast/ToastContainer.tsx +1 -1
  69. fiberpath-0.6.2/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +211 -0
  70. fiberpath-0.6.2/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +81 -0
  71. fiberpath-0.6.2/fiberpath_gui/src/components/dialogs/BaseDialog.tsx +52 -0
  72. fiberpath-0.6.2/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +227 -0
  73. fiberpath-0.6.2/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +162 -0
  74. fiberpath-0.6.2/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +154 -0
  75. fiberpath-0.6.2/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +164 -0
  76. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/editors/HoopLayerEditor.tsx +1 -1
  77. fiberpath-0.6.2/fiberpath_gui/src/components/editors/LayerNumericField.tsx +61 -0
  78. fiberpath-0.6.2/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +66 -0
  79. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/forms/MachineSettingsForm.tsx +25 -22
  80. fiberpath-0.6.2/fiberpath_gui/src/components/forms/MandrelForm.tsx +79 -0
  81. fiberpath-0.6.2/fiberpath_gui/src/components/forms/TowForm.tsx +77 -0
  82. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/layers/LayerRow.tsx +1 -1
  83. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/layers/LayerStack.tsx +6 -5
  84. fiberpath-0.6.2/fiberpath_gui/src/hooks/canvas/usePreviewGeneration.ts +111 -0
  85. fiberpath-0.6.2/fiberpath_gui/src/hooks/stream/useConnectionActions.ts +87 -0
  86. fiberpath-0.6.2/fiberpath_gui/src/hooks/stream/useManualCommandActions.ts +68 -0
  87. fiberpath-0.6.2/fiberpath_gui/src/hooks/stream/useStreamingActions.ts +170 -0
  88. fiberpath-0.6.2/fiberpath_gui/src/hooks/useFileOperations.ts +65 -0
  89. fiberpath-0.6.2/fiberpath_gui/src/hooks/useMenubarInteractions.ts +64 -0
  90. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/hooks/useStreamEvents.ts +23 -41
  91. fiberpath-0.6.2/fiberpath_gui/src/hooks/useTheme.test.ts +115 -0
  92. fiberpath-0.6.2/fiberpath_gui/src/hooks/useTheme.ts +103 -0
  93. fiberpath-0.6.2/fiberpath_gui/src/lib/helicalValidation.ts +61 -0
  94. fiberpath-0.6.2/fiberpath_gui/src/lib/menuConfig.ts +187 -0
  95. fiberpath-0.6.2/fiberpath_gui/src/lib/numericFields.ts +18 -0
  96. fiberpath-0.6.2/fiberpath_gui/src/lib/streamFeedback.ts +285 -0
  97. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/validation.test.ts +1 -1
  98. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/stores/streamStore.ts +26 -0
  99. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/buttons.css +102 -97
  100. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/canvas.css +20 -33
  101. fiberpath-0.6.2/fiberpath_gui/src/styles/dialogs.css +559 -0
  102. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/forms.css +100 -133
  103. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/layout.css +153 -78
  104. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/notifications.css +29 -32
  105. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/panels.css +57 -26
  106. fiberpath-0.6.2/fiberpath_gui/src/styles/reset.css +29 -0
  107. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/tokens.css +166 -111
  108. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/typography.css +1 -2
  109. fiberpath-0.6.2/fiberpath_gui/src/tests/integration/streamLifecycle.test.ts +248 -0
  110. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/tests/integration/workflows.test.ts +1 -1
  111. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/types/converters.test.ts +2 -2
  112. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/types/converters.ts +1 -1
  113. fiberpath-0.6.2/fiberpath_gui/src/types/wind-schema.ts +0 -0
  114. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/Cargo.lock +12 -9
  115. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/Cargo.toml +3 -3
  116. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/tauri.conf.json +1 -1
  117. {fiberpath-0.5.4 → fiberpath-0.6.2}/mkdocs.yml +2 -0
  118. fiberpath-0.6.2/planning/gui-framework-migration-evaluation-plan.md +247 -0
  119. {fiberpath-0.5.4 → fiberpath-0.6.2}/planning/roadmap-backlog.md +0 -11
  120. fiberpath-0.6.2/planning/roadmap-v0.6.2-react-hotspot-cleanup.md +253 -0
  121. {fiberpath-0.5.4 → fiberpath-0.6.2}/planning/roadmap-v7.md +13 -14
  122. {fiberpath-0.5.4 → fiberpath-0.6.2}/pyproject.toml +1 -1
  123. fiberpath-0.6.2/scripts/ci/e2e-check-artifacts.ps1 +55 -0
  124. fiberpath-0.6.2/scripts/ci/e2e-check-artifacts.sh +36 -0
  125. fiberpath-0.6.2/scripts/ci/e2e-cli-smoke.ps1 +52 -0
  126. fiberpath-0.6.2/scripts/ci/e2e-cli-smoke.sh +24 -0
  127. fiberpath-0.6.2/scripts/ci/extract-package-runtime.ps1 +61 -0
  128. fiberpath-0.6.2/scripts/ci/extract-package-runtime.sh +34 -0
  129. fiberpath-0.6.2/scripts/ci/find-bundled-cli.ps1 +60 -0
  130. fiberpath-0.6.2/scripts/ci/find-bundled-cli.sh +30 -0
  131. fiberpath-0.6.2/tests/planning/fixtures/helical_layer.gcode +4525 -0
  132. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/test_layer_strategies.py +1 -1
  133. fiberpath-0.6.2/tests/planning/test_validators.py +98 -0
  134. {fiberpath-0.5.4 → fiberpath-0.6.2}/uv.lock +7 -7
  135. fiberpath-0.5.4/.github/dependabot.yml +0 -40
  136. fiberpath-0.5.4/CHANGELOG.md +0 -87
  137. fiberpath-0.5.4/fiberpath/planning/validators.py +0 -66
  138. fiberpath-0.5.4/fiberpath_api/path_policy.py +0 -74
  139. fiberpath-0.5.4/fiberpath_gui/docs/guides/styling.md +0 -606
  140. fiberpath-0.5.4/fiberpath_gui/src/components/ErrorBoundary.tsx +0 -100
  141. fiberpath-0.5.4/fiberpath_gui/src/components/MenuBar.tsx +0 -319
  142. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +0 -138
  143. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/ConnectionSection.tsx +0 -263
  144. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +0 -271
  145. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/FileStreamingSection.tsx +0 -391
  146. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +0 -156
  147. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +0 -128
  148. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/ManualControlSection.tsx +0 -174
  149. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/StreamControls.css +0 -19
  150. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/StreamLog.css +0 -184
  151. fiberpath-0.5.4/fiberpath_gui/src/components/StreamTab/StreamTab.css +0 -76
  152. fiberpath-0.5.4/fiberpath_gui/src/components/Toast/ToastContainer.css +0 -99
  153. fiberpath-0.5.4/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +0 -234
  154. fiberpath-0.5.4/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +0 -129
  155. fiberpath-0.5.4/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +0 -233
  156. fiberpath-0.5.4/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +0 -231
  157. fiberpath-0.5.4/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +0 -215
  158. fiberpath-0.5.4/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +0 -342
  159. fiberpath-0.5.4/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +0 -97
  160. fiberpath-0.5.4/fiberpath_gui/src/components/forms/MandrelForm.tsx +0 -111
  161. fiberpath-0.5.4/fiberpath_gui/src/components/forms/TowForm.tsx +0 -110
  162. fiberpath-0.5.4/fiberpath_gui/src/components/tabs/StreamTab.tsx +0 -6
  163. fiberpath-0.5.4/fiberpath_gui/src/styles/dialogs.css +0 -551
  164. fiberpath-0.5.4/fiberpath_gui/src/styles/reset.css +0 -55
  165. fiberpath-0.5.4/fiberpath_gui/src/types/wind-schema.ts +0 -72
  166. fiberpath-0.5.4/planning/OUTSTANDING_VALIDATION.md +0 -83
  167. fiberpath-0.5.4/planning/RELEASE_HISTORY.md +0 -39
  168. fiberpath-0.5.4/planning/ROADMAP_STATUS.md +0 -53
  169. fiberpath-0.5.4/planning/roadmap-v5.1.md +0 -187
  170. fiberpath-0.5.4/planning/roadmap-v5.2.md +0 -32
  171. fiberpath-0.5.4/planning/roadmap-v5.3.md +0 -180
  172. fiberpath-0.5.4/planning/roadmap-v5.4.md +0 -277
  173. fiberpath-0.5.4/planning/roadmap-v6.md +0 -109
  174. fiberpath-0.5.4/tests/planning/fixtures/helical_layer.gcode +0 -4525
  175. fiberpath-0.5.4/tests/planning/test_validators.py +0 -47
  176. {fiberpath-0.5.4 → fiberpath-0.6.2}/.gitattributes +0 -0
  177. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/actions/setup-node/action.yml +0 -0
  178. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/actions/setup-python/action.yml +0 -0
  179. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/actions/setup-rust/action.yml +0 -0
  180. {fiberpath-0.5.4 → fiberpath-0.6.2}/.github/workflows/release.yml +0 -0
  181. {fiberpath-0.5.4 → fiberpath-0.6.2}/.vscode/extensions.json +0 -0
  182. {fiberpath-0.5.4 → fiberpath-0.6.2}/.vscode/settings.json +0 -0
  183. {fiberpath-0.5.4 → fiberpath-0.6.2}/LICENSE +0 -0
  184. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/architecture/overview.md +0 -0
  185. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/guides/marlin-streaming.md +0 -0
  186. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/reference/api.md +0 -0
  187. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/reference/planner-math.md +0 -0
  188. {fiberpath-0.5.4 → fiberpath-0.6.2}/docs/vm-testing.md +0 -0
  189. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/README.md +0 -0
  190. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/complex_surface/README.md +0 -0
  191. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/multi_layer/README.md +0 -0
  192. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/multi_layer/input.wind +0 -0
  193. /fiberpath-0.5.4/examples/rocketry/AvBay(470mm).gcode → /fiberpath-0.6.2/examples/rocketry/AvBay(470mm)triple.gcode +0 -0
  194. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/rocketry/CarbonMotorTube(1295mm).gcode +0 -0
  195. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/rocketry/CarbonMotorTube(1295mm).wind +0 -0
  196. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/rocketry/MainChute(585mm).gcode +0 -0
  197. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/rocketry/MainChute(585mm).wind +0 -0
  198. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/simple_cylinder/README.md +0 -0
  199. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/simple_cylinder/input.wind +0 -0
  200. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/sized_simple_cylinder/README.md +0 -0
  201. {fiberpath-0.5.4 → fiberpath-0.6.2}/examples/sized_simple_cylinder/input.wind +0 -0
  202. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/__init__.py +0 -0
  203. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/config/__init__.py +0 -0
  204. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/config/validator.py +0 -0
  205. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/execution/__init__.py +0 -0
  206. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/execution/marlin.py +0 -0
  207. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/gcode/__init__.py +0 -0
  208. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/gcode/dialects.py +0 -0
  209. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/gcode/generator.py +0 -0
  210. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/geometry/__init__.py +0 -0
  211. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/geometry/curves.py +0 -0
  212. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/geometry/intersections.py +0 -0
  213. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/geometry/surfaces.py +0 -0
  214. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/math_utils.py +0 -0
  215. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/__init__.py +0 -0
  216. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/calculations.py +0 -0
  217. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/exceptions.py +0 -0
  218. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/helpers.py +0 -0
  219. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/machine.py +0 -0
  220. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/planning/planner.py +0 -0
  221. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/simulation/__init__.py +0 -0
  222. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/simulation/simulator.py +0 -0
  223. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/visualization/__init__.py +0 -0
  224. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/visualization/export_json.py +0 -0
  225. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath/visualization/plotter.py +0 -0
  226. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/__init__.py +0 -0
  227. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/main.py +0 -0
  228. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/package-lock.json +0 -0
  229. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/routes/__init__.py +0 -0
  230. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/routes/plan.py +0 -0
  231. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/routes/simulate.py +0 -0
  232. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/routes/stream.py +0 -0
  233. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/routes/validate.py +0 -0
  234. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_api/schemas.py +0 -0
  235. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/__init__.py +0 -0
  236. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/__main__.py +0 -0
  237. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/interactive.py +0 -0
  238. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/main.py +0 -0
  239. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/output.py +0 -0
  240. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/plan.py +0 -0
  241. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/plot.py +0 -0
  242. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/simulate.py +0 -0
  243. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/stream.py +0 -0
  244. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_cli/validate.py +0 -0
  245. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/.gitignore +0 -0
  246. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/.nvmrc +0 -0
  247. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/.stylelintrc.json +0 -0
  248. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/bundled-cli/.gitkeep +0 -0
  249. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/generate-types.json +0 -0
  250. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/index.html +0 -0
  251. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/scripts/check-css-vars.mjs +0 -0
  252. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/CliHealthWarning.tsx +0 -0
  253. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/ErrorNotificationToast.tsx +0 -0
  254. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/FileField.tsx +0 -0
  255. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/ResultCard.tsx +0 -0
  256. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StatusText.tsx +0 -0
  257. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StreamTab/StreamControls.tsx +0 -0
  258. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/StreamTab/index.ts +0 -0
  259. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/TabBar.tsx +0 -0
  260. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/canvas/CanvasControls.tsx +0 -0
  261. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/canvas/CenterCanvas.tsx +0 -0
  262. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/canvas/LayerScrubber.tsx +0 -0
  263. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/panels/BottomPanel.tsx +0 -0
  264. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/panels/LeftPanel.tsx +0 -0
  265. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/panels/RightPanel.tsx +0 -0
  266. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/components/tabs/MainTab.tsx +0 -0
  267. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/contexts/CliHealthContext.tsx +0 -0
  268. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/contexts/ErrorNotificationContext.tsx +0 -0
  269. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/hooks/useCliHealth.ts +0 -0
  270. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/hooks/useKeyboardShortcuts.ts +0 -0
  271. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/layouts/MainLayout.tsx +0 -0
  272. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/commands.ts +0 -0
  273. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/constants.ts +0 -0
  274. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/fileOperations.ts +0 -0
  275. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/marlin-api.ts +0 -0
  276. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/recentFiles.ts +0 -0
  277. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/retry.ts +0 -0
  278. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/schemas.test.ts +0 -0
  279. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/schemas.ts +0 -0
  280. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/tauri-types.ts +0 -0
  281. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/toastMessages.ts +0 -0
  282. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/lib/validation.ts +0 -0
  283. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/main.tsx +0 -0
  284. {fiberpath-0.5.4/fiberpath_gui/src/state → fiberpath-0.6.2/fiberpath_gui/src/stores}/projectStore.test.ts +0 -0
  285. {fiberpath-0.5.4/fiberpath_gui/src/state → fiberpath-0.6.2/fiberpath_gui/src/stores}/projectStore.ts +0 -0
  286. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/stores/toastStore.ts +0 -0
  287. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/index.css +0 -0
  288. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/styles/tabs.css +0 -0
  289. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/tests/setup.ts +0 -0
  290. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/types/components.ts +0 -0
  291. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src/types/project.ts +0 -0
  292. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/build.rs +0 -0
  293. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/capabilities/default.json +0 -0
  294. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/icons/128x128.png +0 -0
  295. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/icons/256x256.png +0 -0
  296. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/icons/32x32.png +0 -0
  297. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/icons/512x512.png +0 -0
  298. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/icons/icon.ico +0 -0
  299. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/src/cli_path.rs +0 -0
  300. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/src/cli_process.rs +0 -0
  301. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/src/main.rs +0 -0
  302. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/src-tauri/src/marlin.rs +0 -0
  303. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/tsconfig.json +0 -0
  304. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/tsconfig.node.json +0 -0
  305. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/vite.config.ts +0 -0
  306. {fiberpath-0.5.4 → fiberpath-0.6.2}/fiberpath_gui/vitest.config.ts +0 -0
  307. {fiberpath-0.5.4 → fiberpath-0.6.2}/package-lock.json +0 -0
  308. {fiberpath-0.5.4 → fiberpath-0.6.2}/scripts/export_schema.py +0 -0
  309. {fiberpath-0.5.4 → fiberpath-0.6.2}/scripts/freeze_cli.py +0 -0
  310. {fiberpath-0.5.4 → fiberpath-0.6.2}/scripts/generate_schema.py +0 -0
  311. {fiberpath-0.5.4 → fiberpath-0.6.2}/scripts/sync_gui_docs.py +0 -0
  312. {fiberpath-0.5.4 → fiberpath-0.6.2}/setup.cfg +0 -0
  313. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/api/test_plan_route.py +0 -0
  314. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/api/test_simulate_route.py +0 -0
  315. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/api/test_stream_route.py +0 -0
  316. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/api/test_stream_route_errors.py +0 -0
  317. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cli/test_axis_format.py +0 -0
  318. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cli/test_cli_json.py +0 -0
  319. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cli/test_cli_smoke.py +0 -0
  320. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cli/test_stream_command.py +0 -0
  321. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/config/__init__.py +0 -0
  322. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/config/test_validator.py +0 -0
  323. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/inputs/helical-balanced.wind +0 -0
  324. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/inputs/simple-hoop.wind +0 -0
  325. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/inputs/skip-bias.wind +0 -0
  326. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/outputs/helical-balanced/output.gcode +0 -0
  327. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/outputs/helical-balanced/preview.png +0 -0
  328. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/outputs/simple-hoop/output.gcode +0 -0
  329. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/outputs/simple-hoop/preview.png +0 -0
  330. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/outputs/skip-bias/output.gcode +0 -0
  331. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/cyclone_reference_runs/outputs/skip-bias/preview.png +0 -0
  332. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/execution/test_marlin_streamer.py +0 -0
  333. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/gcode/test_dialects.py +0 -0
  334. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/gcode/test_generator.py +0 -0
  335. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/geometry/test_surfaces.py +0 -0
  336. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/_generate_fixtures.py +0 -0
  337. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/fixtures/hoop_layer.gcode +0 -0
  338. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/fixtures/hoop_only_program.gcode +0 -0
  339. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/fixtures/skip_layer.gcode +0 -0
  340. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/test_axis_mapping.py +0 -0
  341. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/test_helpers_machine.py +0 -0
  342. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/planning/test_planner_smoke.py +0 -0
  343. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/simulation/test_simulator.py +0 -0
  344. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/simulation/test_simulator_axis_detection.py +0 -0
  345. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/tauri/test_marlin_integration.py +0 -0
  346. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/tauri/test_port_discovery.py +0 -0
  347. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/visualization/test_export_json.py +0 -0
  348. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/visualization/test_plotter.py +0 -0
  349. {fiberpath-0.5.4 → fiberpath-0.6.2}/tests/visualization/test_plotter_axis_detection.py +0 -0
@@ -0,0 +1,122 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "pip"
4
+ directory: "/"
5
+ target-branch: "main"
6
+ schedule:
7
+ interval: "weekly"
8
+ day: "monday"
9
+ time: "06:00"
10
+ timezone: "UTC"
11
+ open-pull-requests-limit: 8
12
+ labels:
13
+ - "dependencies"
14
+ - "python"
15
+ commit-message:
16
+ prefix: "chore(deps)"
17
+ groups:
18
+ python-minor-patch:
19
+ patterns:
20
+ - "*"
21
+ update-types:
22
+ - "minor"
23
+ - "patch"
24
+ python-major:
25
+ patterns:
26
+ - "*"
27
+ update-types:
28
+ - "major"
29
+
30
+ - package-ecosystem: "npm"
31
+ directory: "/fiberpath_gui"
32
+ target-branch: "main"
33
+ schedule:
34
+ interval: "weekly"
35
+ day: "monday"
36
+ time: "06:15"
37
+ timezone: "UTC"
38
+ open-pull-requests-limit: 8
39
+ labels:
40
+ - "dependencies"
41
+ - "gui"
42
+ - "node"
43
+ commit-message:
44
+ prefix: "chore(deps)"
45
+ groups:
46
+ npm-dev-minor-patch:
47
+ dependency-type: "development"
48
+ patterns:
49
+ - "*"
50
+ update-types:
51
+ - "minor"
52
+ - "patch"
53
+ npm-prod-minor-patch:
54
+ dependency-type: "production"
55
+ patterns:
56
+ - "*"
57
+ update-types:
58
+ - "minor"
59
+ - "patch"
60
+ npm-major:
61
+ patterns:
62
+ - "*"
63
+ update-types:
64
+ - "major"
65
+ ignore:
66
+ - dependency-name: "@types/node"
67
+ versions: ["25.x"]
68
+
69
+ - package-ecosystem: "cargo"
70
+ directory: "/fiberpath_gui/src-tauri"
71
+ target-branch: "main"
72
+ schedule:
73
+ interval: "weekly"
74
+ day: "monday"
75
+ time: "06:30"
76
+ timezone: "UTC"
77
+ open-pull-requests-limit: 8
78
+ labels:
79
+ - "dependencies"
80
+ - "rust"
81
+ - "tauri"
82
+ commit-message:
83
+ prefix: "chore(deps)"
84
+ groups:
85
+ cargo-minor-patch:
86
+ patterns:
87
+ - "*"
88
+ update-types:
89
+ - "minor"
90
+ - "patch"
91
+ cargo-major:
92
+ patterns:
93
+ - "*"
94
+ update-types:
95
+ - "major"
96
+
97
+ - package-ecosystem: "github-actions"
98
+ directory: "/"
99
+ target-branch: "main"
100
+ schedule:
101
+ interval: "weekly"
102
+ day: "monday"
103
+ time: "06:45"
104
+ timezone: "UTC"
105
+ open-pull-requests-limit: 8
106
+ labels:
107
+ - "dependencies"
108
+ - "ci"
109
+ commit-message:
110
+ prefix: "chore(deps)"
111
+ groups:
112
+ github-actions-minor-patch:
113
+ patterns:
114
+ - "*"
115
+ update-types:
116
+ - "minor"
117
+ - "patch"
118
+ github-actions-major:
119
+ patterns:
120
+ - "*"
121
+ update-types:
122
+ - "major"
@@ -1,28 +1,11 @@
1
1
  name: Backend CI
2
2
 
3
3
  on:
4
- push:
5
- branches: [main, v0.5.1-dev]
6
- paths:
7
- - "fiberpath/**"
8
- - "fiberpath_api/**"
9
- - "fiberpath_cli/**"
10
- - "tests/**"
11
- - "pyproject.toml"
12
- - "uv.lock"
13
- - "setup.cfg"
14
- - ".github/workflows/backend-ci.yml"
15
- - ".github/actions/setup-python/**"
16
- pull_request:
17
- paths:
18
- - "fiberpath/**"
19
- - "fiberpath_api/**"
20
- - "fiberpath_cli/**"
21
- - "tests/**"
22
- - "pyproject.toml"
23
- - "setup.cfg"
24
- - ".github/workflows/backend-ci.yml"
25
- - ".github/actions/setup-python/**"
4
+ workflow_call:
5
+ workflow_dispatch:
6
+
7
+ permissions:
8
+ contents: read
26
9
 
27
10
  jobs:
28
11
  lint-and-type-check:
@@ -69,7 +52,7 @@ jobs:
69
52
 
70
53
  - name: Upload coverage
71
54
  if: matrix.os == 'ubuntu-latest'
72
- uses: codecov/codecov-action@v5
55
+ uses: codecov/codecov-action@v6
73
56
  with:
74
57
  files: ./coverage.xml
75
58
  flags: backend
@@ -0,0 +1,152 @@
1
+ name: CI Check
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ paths:
7
+ - "fiberpath/**"
8
+ - "fiberpath_api/**"
9
+ - "fiberpath_cli/**"
10
+ - "fiberpath_gui/**"
11
+ - "docs/**"
12
+ - "tests/**"
13
+ - "pyproject.toml"
14
+ - "uv.lock"
15
+ - "setup.cfg"
16
+ - "mkdocs.yml"
17
+ - "README.md"
18
+ - "scripts/sync_gui_docs.py"
19
+ - ".github/workflows/ci-check.yml"
20
+ - ".github/workflows/backend-ci.yml"
21
+ - ".github/workflows/gui-ci.yml"
22
+ - ".github/workflows/docs-ci.yml"
23
+ - ".github/actions/setup-python/**"
24
+ - ".github/actions/setup-node/**"
25
+ - ".github/actions/setup-rust/**"
26
+ pull_request:
27
+ branches: [main]
28
+ paths:
29
+ - "fiberpath/**"
30
+ - "fiberpath_api/**"
31
+ - "fiberpath_cli/**"
32
+ - "fiberpath_gui/**"
33
+ - "docs/**"
34
+ - "tests/**"
35
+ - "pyproject.toml"
36
+ - "uv.lock"
37
+ - "setup.cfg"
38
+ - "mkdocs.yml"
39
+ - "README.md"
40
+ - "scripts/sync_gui_docs.py"
41
+ - ".github/workflows/ci-check.yml"
42
+ - ".github/workflows/backend-ci.yml"
43
+ - ".github/workflows/gui-ci.yml"
44
+ - ".github/workflows/docs-ci.yml"
45
+ - ".github/actions/setup-python/**"
46
+ - ".github/actions/setup-node/**"
47
+ - ".github/actions/setup-rust/**"
48
+ workflow_dispatch:
49
+
50
+ permissions:
51
+ contents: read
52
+
53
+ jobs:
54
+ changes:
55
+ name: Detect Changes
56
+ runs-on: ubuntu-latest
57
+ outputs:
58
+ backend: ${{ steps.filter.outputs.backend }}
59
+ gui: ${{ steps.filter.outputs.gui }}
60
+ docs: ${{ steps.filter.outputs.docs }}
61
+ steps:
62
+ - name: Checkout repository
63
+ uses: actions/checkout@v6
64
+
65
+ - name: Detect changed areas
66
+ id: filter
67
+ uses: dorny/paths-filter@v3
68
+ with:
69
+ filters: |
70
+ backend:
71
+ - "fiberpath/**"
72
+ - "fiberpath_api/**"
73
+ - "fiberpath_cli/**"
74
+ - "tests/**"
75
+ - "pyproject.toml"
76
+ - "uv.lock"
77
+ - "setup.cfg"
78
+ - ".github/workflows/backend-ci.yml"
79
+ - ".github/actions/setup-python/**"
80
+ gui:
81
+ - "fiberpath_gui/**"
82
+ - "!fiberpath_gui/docs/**"
83
+ - ".github/workflows/gui-ci.yml"
84
+ - ".github/actions/setup-node/**"
85
+ - ".github/actions/setup-rust/**"
86
+ docs:
87
+ - "docs/**"
88
+ - "fiberpath_gui/docs/**"
89
+ - "mkdocs.yml"
90
+ - "scripts/sync_gui_docs.py"
91
+ - "README.md"
92
+ - ".github/workflows/docs-ci.yml"
93
+ - ".github/actions/setup-python/**"
94
+
95
+ backend:
96
+ name: Backend
97
+ needs: changes
98
+ if: needs.changes.outputs.backend == 'true'
99
+ uses: ./.github/workflows/backend-ci.yml
100
+
101
+ gui:
102
+ name: GUI
103
+ needs: changes
104
+ if: needs.changes.outputs.gui == 'true'
105
+ uses: ./.github/workflows/gui-ci.yml
106
+
107
+ docs:
108
+ name: Docs
109
+ needs: changes
110
+ if: needs.changes.outputs.docs == 'true'
111
+ uses: ./.github/workflows/docs-ci.yml
112
+
113
+ ci-check:
114
+ name: CI Check
115
+ runs-on: ubuntu-latest
116
+ needs: [changes, backend, gui, docs]
117
+ if: always()
118
+ steps:
119
+ - name: Verify called workflow results
120
+ run: |
121
+ echo "changes=${{ needs.changes.result }}"
122
+ echo "backend=${{ needs.backend.result }}"
123
+ echo "gui=${{ needs.gui.result }}"
124
+ echo "docs=${{ needs.docs.result }}"
125
+
126
+ FAIL=0
127
+
128
+ if [[ "${{ needs.changes.result }}" != "success" ]]; then
129
+ echo "Change detection did not succeed"
130
+ FAIL=1
131
+ fi
132
+
133
+ if [[ "${{ needs.backend.result }}" == "failure" || "${{ needs.backend.result }}" == "cancelled" ]]; then
134
+ echo "Backend workflow failed"
135
+ FAIL=1
136
+ fi
137
+
138
+ if [[ "${{ needs.gui.result }}" == "failure" || "${{ needs.gui.result }}" == "cancelled" ]]; then
139
+ echo "GUI workflow failed"
140
+ FAIL=1
141
+ fi
142
+
143
+ if [[ "${{ needs.docs.result }}" == "failure" || "${{ needs.docs.result }}" == "cancelled" ]]; then
144
+ echo "Docs workflow failed"
145
+ FAIL=1
146
+ fi
147
+
148
+ if [[ "$FAIL" -ne 0 ]]; then
149
+ exit 1
150
+ fi
151
+
152
+ echo "CI Check passed"
@@ -3,8 +3,6 @@ name: Dependency Audit
3
3
  on:
4
4
  push:
5
5
  branches: [main]
6
- pull_request:
7
- branches: [main]
8
6
  schedule:
9
7
  - cron: "0 7 * * 1"
10
8
  workflow_dispatch:
@@ -1,25 +1,11 @@
1
1
  name: Docs CI
2
2
 
3
3
  on:
4
- push:
5
- branches: [main, v0.5.1-dev]
6
- paths:
7
- - "docs/**"
8
- - "fiberpath_gui/docs/**"
9
- - "mkdocs.yml"
10
- - "scripts/sync_gui_docs.py"
11
- - "README.md"
12
- - ".github/workflows/docs-ci.yml"
13
- - ".github/actions/setup-python/**"
14
- pull_request:
15
- paths:
16
- - "docs/**"
17
- - "fiberpath_gui/docs/**"
18
- - "mkdocs.yml"
19
- - "scripts/sync_gui_docs.py"
20
- - "README.md"
21
- - ".github/workflows/docs-ci.yml"
22
- - ".github/actions/setup-python/**"
4
+ workflow_call:
5
+ workflow_dispatch:
6
+
7
+ permissions:
8
+ contents: read
23
9
 
24
10
  jobs:
25
11
  validate:
@@ -33,7 +33,7 @@ jobs:
33
33
 
34
34
  - name: Configure GitHub Pages
35
35
  id: pages
36
- uses: actions/configure-pages@v5
36
+ uses: actions/configure-pages@v6
37
37
 
38
38
  - name: Setup Python environment
39
39
  uses: ./.github/actions/setup-python
@@ -61,4 +61,4 @@ jobs:
61
61
  steps:
62
62
  - name: Deploy to GitHub Pages
63
63
  id: deployment
64
- uses: actions/deploy-pages@v4
64
+ uses: actions/deploy-pages@v5
@@ -1,21 +1,11 @@
1
1
  name: GUI CI
2
2
 
3
3
  on:
4
- push:
5
- branches: [main, v0.5.1-dev]
6
- paths:
7
- - "fiberpath_gui/**"
8
- - "!fiberpath_gui/docs/**"
9
- - ".github/workflows/gui-ci.yml"
10
- - ".github/actions/setup-node/**"
11
- - ".github/actions/setup-rust/**"
12
- pull_request:
13
- paths:
14
- - "fiberpath_gui/**"
15
- - "!fiberpath_gui/docs/**"
16
- - ".github/workflows/gui-ci.yml"
17
- - ".github/actions/setup-node/**"
18
- - ".github/actions/setup-rust/**"
4
+ workflow_call:
5
+ workflow_dispatch:
6
+
7
+ permissions:
8
+ contents: read
19
9
 
20
10
  jobs:
21
11
  lint-and-type-check:
@@ -69,7 +59,7 @@ jobs:
69
59
  run: npm run test:coverage
70
60
 
71
61
  - name: Upload coverage
72
- uses: codecov/codecov-action@v5
62
+ uses: codecov/codecov-action@v6
73
63
  with:
74
64
  files: ./fiberpath_gui/coverage/lcov.info
75
65
  flags: gui
@@ -0,0 +1,199 @@
1
+ name: GUI E2E Smoke
2
+
3
+ on:
4
+ workflow_run:
5
+ workflows: ["GUI Packaging"]
6
+ types: [completed]
7
+ workflow_dispatch:
8
+ inputs:
9
+ packaging_run_id:
10
+ description: "Run ID of GUI Packaging workflow to validate"
11
+ required: true
12
+ type: string
13
+
14
+ permissions:
15
+ contents: read
16
+ actions: read
17
+
18
+ jobs:
19
+ smoke:
20
+ if: ${{ github.event_name == 'workflow_dispatch' || (github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success') }}
21
+ name: Smoke (${{ matrix.os }})
22
+ runs-on: ${{ matrix.os }}
23
+ strategy:
24
+ fail-fast: false
25
+ matrix:
26
+ include:
27
+ - os: windows-latest
28
+ artifact_os: windows-latest
29
+ - os: ubuntu-latest
30
+ artifact_os: ubuntu-latest
31
+ - os: macos-latest
32
+ artifact_os: macos-latest
33
+
34
+ env:
35
+ PACKAGING_RUN_ID: ${{ github.event_name == 'workflow_run' && github.event.workflow_run.id || github.event.inputs.packaging_run_id }}
36
+ WIND_INPUT: examples/simple_cylinder/input.wind
37
+
38
+ steps:
39
+ - name: Checkout repository
40
+ uses: actions/checkout@v6
41
+
42
+ - name: Download packaged GUI artifact
43
+ uses: actions/download-artifact@v8
44
+ with:
45
+ run-id: ${{ env.PACKAGING_RUN_ID }}
46
+ name: fiberpath-gui-${{ matrix.artifact_os }}
47
+ github-token: ${{ secrets.GITHUB_TOKEN }}
48
+ path: e2e-artifacts/bundle
49
+
50
+ - name: Download frozen CLI artifact
51
+ uses: actions/download-artifact@v8
52
+ with:
53
+ run-id: ${{ env.PACKAGING_RUN_ID }}
54
+ name: fiberpath-cli-${{ matrix.artifact_os }}
55
+ github-token: ${{ secrets.GITHUB_TOKEN }}
56
+ path: e2e-artifacts/cli
57
+
58
+ - name: Set executable bits (Unix)
59
+ if: runner.os != 'Windows'
60
+ shell: bash
61
+ run: |
62
+ chmod +x scripts/ci/e2e-check-artifacts.sh
63
+ chmod +x scripts/ci/e2e-cli-smoke.sh
64
+ chmod +x scripts/ci/extract-package-runtime.sh
65
+ chmod +x scripts/ci/find-bundled-cli.sh
66
+ chmod +x e2e-artifacts/cli/fiberpath
67
+
68
+ - name: Check packaged artifacts (Windows)
69
+ if: runner.os == 'Windows'
70
+ shell: pwsh
71
+ run: |
72
+ ./scripts/ci/e2e-check-artifacts.ps1 -BundleRoot "e2e-artifacts/bundle" -RunnerOs "$env:RUNNER_OS"
73
+
74
+ - name: Check packaged artifacts (Unix)
75
+ if: runner.os != 'Windows'
76
+ shell: bash
77
+ run: |
78
+ ./scripts/ci/e2e-check-artifacts.sh "e2e-artifacts/bundle" "$RUNNER_OS"
79
+
80
+ - name: Extract package runtime payload (Windows)
81
+ if: runner.os == 'Windows'
82
+ shell: pwsh
83
+ run: |
84
+ $runtimeRoot = ./scripts/ci/extract-package-runtime.ps1 `
85
+ -BundleRoot "e2e-artifacts/bundle" `
86
+ -OutputRoot "e2e-artifacts/runtime/windows"
87
+ $resolvedRuntimeRoot = ($runtimeRoot | Select-Object -Last 1)
88
+ New-Item -ItemType Directory -Force -Path "e2e-artifacts/diagnostics" | Out-Null
89
+ @(
90
+ "runner_os=$env:RUNNER_OS",
91
+ "runtime_root=$resolvedRuntimeRoot"
92
+ ) | Set-Content -Path "e2e-artifacts/diagnostics/runtime-selection.txt"
93
+ "PACKAGE_RUNTIME_ROOT=$resolvedRuntimeRoot" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
94
+
95
+ - name: Extract package runtime payload (Unix)
96
+ if: runner.os != 'Windows'
97
+ shell: bash
98
+ run: |
99
+ runtime_root="$(./scripts/ci/extract-package-runtime.sh "e2e-artifacts/bundle" "$RUNNER_OS" "e2e-artifacts/runtime/$RUNNER_OS")"
100
+ mkdir -p e2e-artifacts/diagnostics
101
+ {
102
+ printf 'runner_os=%s\n' "$RUNNER_OS"
103
+ printf 'runtime_root=%s\n' "$runtime_root"
104
+ } > e2e-artifacts/diagnostics/runtime-selection.txt
105
+ printf 'PACKAGE_RUNTIME_ROOT=%s\n' "$runtime_root" >> "$GITHUB_ENV"
106
+
107
+ - name: Resolve bundled CLI from package output (Windows)
108
+ if: runner.os == 'Windows'
109
+ shell: pwsh
110
+ run: |
111
+ $resolved = ./scripts/ci/find-bundled-cli.ps1 `
112
+ -BundleRoot "$env:PACKAGE_RUNTIME_ROOT" `
113
+ -RunnerOs "$env:RUNNER_OS" `
114
+ -ReferenceCliPath "e2e-artifacts/cli/fiberpath.exe"
115
+ $resolvedPath = ""
116
+ if ($resolved) {
117
+ $resolvedPath = ($resolved | Select-Object -Last 1)
118
+ }
119
+ "BUNDLED_CLI_PATH=$resolvedPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
120
+
121
+ - name: Resolve bundled CLI from package output (Unix)
122
+ if: runner.os != 'Windows'
123
+ shell: bash
124
+ run: |
125
+ resolved="$(./scripts/ci/find-bundled-cli.sh "$PACKAGE_RUNTIME_ROOT" "$RUNNER_OS")"
126
+ printf 'BUNDLED_CLI_PATH=%s\n' "$resolved" >> "$GITHUB_ENV"
127
+
128
+ - name: Select CLI source (Windows)
129
+ if: runner.os == 'Windows'
130
+ shell: pwsh
131
+ run: |
132
+ if (-not $env:BUNDLED_CLI_PATH) {
133
+ throw "Bundled CLI was not resolved from packaged Windows output; refusing standalone fallback."
134
+ }
135
+
136
+ $effectiveCliPath = $env:BUNDLED_CLI_PATH
137
+ $cliSource = "packaged-output"
138
+ New-Item -ItemType Directory -Force -Path "e2e-artifacts/diagnostics" | Out-Null
139
+ @(
140
+ "runner_os=$env:RUNNER_OS",
141
+ "cli_source=$cliSource",
142
+ "effective_cli_path=$effectiveCliPath",
143
+ "bundled_cli_path=$env:BUNDLED_CLI_PATH"
144
+ ) | Set-Content -Path "e2e-artifacts/diagnostics/cli-selection.txt"
145
+ "EFFECTIVE_CLI_PATH=$effectiveCliPath" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
146
+ "CLI_SOURCE=$cliSource" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
147
+
148
+ - name: Select CLI source (Unix)
149
+ if: runner.os != 'Windows'
150
+ shell: bash
151
+ run: |
152
+ effective_cli_path="e2e-artifacts/cli/fiberpath"
153
+ cli_source="standalone-artifact"
154
+ if [[ -n "$BUNDLED_CLI_PATH" ]]; then
155
+ effective_cli_path="$BUNDLED_CLI_PATH"
156
+ cli_source="packaged-output"
157
+ else
158
+ echo "Warning: falling back to standalone CLI artifact because bundled CLI is not directly discoverable in packaged output." >&2
159
+ fi
160
+ mkdir -p e2e-artifacts/diagnostics
161
+ {
162
+ printf 'runner_os=%s\n' "$RUNNER_OS"
163
+ printf 'cli_source=%s\n' "$cli_source"
164
+ printf 'effective_cli_path=%s\n' "$effective_cli_path"
165
+ printf 'bundled_cli_path=%s\n' "$BUNDLED_CLI_PATH"
166
+ } > e2e-artifacts/diagnostics/cli-selection.txt
167
+ # Ensure the resolved binary is executable (artifact download may strip exec bit)
168
+ [[ -f "$effective_cli_path" ]] && chmod +x "$effective_cli_path"
169
+ printf 'EFFECTIVE_CLI_PATH=%s\n' "$effective_cli_path" >> "$GITHUB_ENV"
170
+ printf 'CLI_SOURCE=%s\n' "$cli_source" >> "$GITHUB_ENV"
171
+
172
+ - name: CLI smoke test (Windows)
173
+ if: runner.os == 'Windows'
174
+ shell: pwsh
175
+ run: |
176
+ ./scripts/ci/e2e-cli-smoke.ps1 `
177
+ -CliPath "$env:EFFECTIVE_CLI_PATH" `
178
+ -WindPath "$env:WIND_INPUT" `
179
+ -OutputPath "e2e-artifacts/output/smoke-output.gcode"
180
+
181
+ - name: CLI smoke test (Unix)
182
+ if: runner.os != 'Windows'
183
+ shell: bash
184
+ run: |
185
+ ./scripts/ci/e2e-cli-smoke.sh \
186
+ "$EFFECTIVE_CLI_PATH" \
187
+ "$WIND_INPUT" \
188
+ "e2e-artifacts/output/smoke-output.gcode"
189
+
190
+ - name: Upload smoke output and diagnostics
191
+ uses: actions/upload-artifact@v7
192
+ with:
193
+ name: gui-e2e-smoke-${{ matrix.artifact_os }}
194
+ path: |
195
+ e2e-artifacts/output/smoke-output.gcode
196
+ e2e-artifacts/diagnostics/cli-selection.txt
197
+ e2e-artifacts/diagnostics/runtime-selection.txt
198
+ if-no-files-found: error
199
+ retention-days: 14
@@ -2,7 +2,7 @@ name: GUI Packaging
2
2
 
3
3
  on:
4
4
  push:
5
- branches: [main, v0.5.1-dev]
5
+ branches: [main]
6
6
  paths:
7
7
  - "fiberpath/**"
8
8
  - "fiberpath_cli/**"
@@ -23,6 +23,9 @@ on:
23
23
  release:
24
24
  types: [published]
25
25
 
26
+ permissions:
27
+ contents: read
28
+
26
29
  jobs:
27
30
  freeze-cli:
28
31
  name: Freeze CLI (${{ matrix.os }})
@@ -102,6 +105,8 @@ jobs:
102
105
  needs: freeze-cli
103
106
  runs-on: ${{ matrix.os }}
104
107
  timeout-minutes: 45
108
+ permissions:
109
+ contents: write
105
110
  strategy:
106
111
  fail-fast: false
107
112
  matrix:
@@ -36,6 +36,8 @@ _freeze_entry.py
36
36
  # Installer logs
37
37
  pip-log.txt
38
38
  pip-delete-this-directory.txt
39
+ requirements-audit.txt
40
+ pip-audit.json
39
41
 
40
42
  # Unit test / coverage reports
41
43
  htmlcov/
@@ -211,4 +213,9 @@ marimo/_lsp/
211
213
  __marimo__/
212
214
 
213
215
  # negations
214
- !fiberpath_gui/src/lib/
216
+ !fiberpath_gui/src/lib/
217
+
218
+ # temporary files
219
+ temp/
220
+ tmp/
221
+ .codex