fiberpath 0.5.3__tar.gz → 0.6.1__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 (322) hide show
  1. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/actions/setup-node/action.yml +1 -1
  2. fiberpath-0.6.1/.github/dependabot.yml +122 -0
  3. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/backend-ci.yml +8 -25
  4. fiberpath-0.6.1/.github/workflows/ci-check.yml +152 -0
  5. fiberpath-0.6.1/.github/workflows/dependency-audit.yml +119 -0
  6. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/docs-ci.yml +6 -20
  7. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/docs-deploy.yml +4 -4
  8. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/gui-ci.yml +8 -18
  9. fiberpath-0.6.1/.github/workflows/gui-e2e-smoke.yml +199 -0
  10. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/gui-packaging.yml +12 -7
  11. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/workflows/release.yml +55 -5
  12. {fiberpath-0.5.3 → fiberpath-0.6.1}/.gitignore +8 -1
  13. fiberpath-0.6.1/CHANGELOG.md +145 -0
  14. {fiberpath-0.5.3 → fiberpath-0.6.1}/PKG-INFO +4 -4
  15. {fiberpath-0.5.3 → fiberpath-0.6.1}/README.md +3 -3
  16. {fiberpath-0.5.3/planning → fiberpath-0.6.1}/TODO.md +8 -0
  17. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/architecture/axis-system.md +4 -9
  18. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/ci-cd.md +25 -16
  19. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/contributing.md +6 -4
  20. fiberpath-0.6.1/docs/development/dependency-policy.md +67 -0
  21. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/packaging.md +2 -2
  22. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/release-process.md +1 -1
  23. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/development/tooling.md +12 -16
  24. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/getting-started.md +0 -4
  25. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/axis-mapping.md +2 -5
  26. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/visualization.md +1 -4
  27. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/wind-format.md +20 -10
  28. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/index.md +8 -8
  29. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/reference/concepts.md +13 -4
  30. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/troubleshooting.md +5 -10
  31. fiberpath-0.6.1/examples/rocketry/AvBay(470mm)single.wind +24 -0
  32. fiberpath-0.5.3/examples/rocketry/AvBay(470mm).wind → fiberpath-0.6.1/examples/rocketry/AvBay(470mm)triple.wind +4 -4
  33. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/config/schemas.py +1 -1
  34. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/layer_strategies.py +1 -1
  35. fiberpath-0.6.1/fiberpath/planning/validators.py +149 -0
  36. fiberpath-0.6.1/fiberpath_api/path_policy.py +100 -0
  37. fiberpath-0.6.1/fiberpath_gui/.nvmrc +1 -0
  38. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/README.md +9 -7
  39. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/cli-integration.md +0 -29
  40. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/state-management.md +0 -33
  41. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/streaming-state.md +0 -15
  42. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/architecture/tech-stack.md +30 -56
  43. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/development.md +31 -52
  44. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/guides/performance.md +0 -33
  45. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/guides/schemas.md +0 -35
  46. fiberpath-0.6.1/fiberpath_gui/docs/guides/styling.md +192 -0
  47. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/overview.md +6 -6
  48. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/reference/type-safety.md +0 -48
  49. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/docs/testing.md +0 -30
  50. fiberpath-0.6.1/fiberpath_gui/package-lock.json +4338 -0
  51. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/package.json +19 -22
  52. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/schemas/wind-schema.json +5 -19
  53. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/App.tsx +2 -2
  54. fiberpath-0.6.1/fiberpath_gui/src/components/ErrorBoundary.tsx +64 -0
  55. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/MenuBar.tsx +58 -5
  56. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StatusBar.tsx +8 -11
  57. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +71 -0
  58. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/ConnectionSection.tsx +32 -20
  59. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +124 -0
  60. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.tsx +31 -27
  61. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +99 -0
  62. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.tsx +28 -21
  63. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +40 -0
  64. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/ManualControlSection.tsx +13 -18
  65. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/StreamControls.css +8 -0
  66. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/StreamLog.css +111 -0
  67. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamLog.tsx +8 -6
  68. fiberpath-0.6.1/fiberpath_gui/src/components/StreamTab/StreamTab.css +74 -0
  69. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamTab.tsx +4 -3
  70. fiberpath-0.6.1/fiberpath_gui/src/components/Toast/ToastContainer.css +73 -0
  71. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/Toast/ToastContainer.tsx +1 -1
  72. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +5 -5
  73. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +1 -2
  74. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/layers/LayerStack.tsx +5 -4
  75. fiberpath-0.6.1/fiberpath_gui/src/hooks/useTheme.test.ts +115 -0
  76. fiberpath-0.6.1/fiberpath_gui/src/hooks/useTheme.ts +103 -0
  77. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/schemas.ts +5 -5
  78. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/validation.test.ts +1 -1
  79. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/buttons.css +102 -97
  80. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/canvas.css +20 -33
  81. fiberpath-0.6.1/fiberpath_gui/src/styles/dialogs.css +559 -0
  82. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/forms.css +100 -133
  83. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/layout.css +153 -78
  84. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/notifications.css +29 -32
  85. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/panels.css +57 -26
  86. fiberpath-0.6.1/fiberpath_gui/src/styles/reset.css +29 -0
  87. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/tokens.css +166 -111
  88. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/typography.css +1 -2
  89. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/converters.test.ts +2 -2
  90. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/converters.ts +1 -1
  91. fiberpath-0.6.1/fiberpath_gui/src/types/wind-schema.ts +0 -0
  92. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/Cargo.lock +16 -53
  93. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/Cargo.toml +5 -5
  94. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/tauri.conf.json +1 -1
  95. {fiberpath-0.5.3 → fiberpath-0.6.1}/mkdocs.yml +2 -0
  96. fiberpath-0.6.1/planning/gui-framework-migration-evaluation-plan.md +159 -0
  97. {fiberpath-0.5.3 → fiberpath-0.6.1}/planning/roadmap-backlog.md +0 -11
  98. {fiberpath-0.5.3 → fiberpath-0.6.1}/planning/roadmap-v7.md +13 -14
  99. {fiberpath-0.5.3 → fiberpath-0.6.1}/pyproject.toml +1 -1
  100. fiberpath-0.6.1/scripts/ci/e2e-check-artifacts.ps1 +55 -0
  101. fiberpath-0.6.1/scripts/ci/e2e-check-artifacts.sh +36 -0
  102. fiberpath-0.6.1/scripts/ci/e2e-cli-smoke.ps1 +52 -0
  103. fiberpath-0.6.1/scripts/ci/e2e-cli-smoke.sh +24 -0
  104. fiberpath-0.6.1/scripts/ci/extract-package-runtime.ps1 +61 -0
  105. fiberpath-0.6.1/scripts/ci/extract-package-runtime.sh +34 -0
  106. fiberpath-0.6.1/scripts/ci/find-bundled-cli.ps1 +60 -0
  107. fiberpath-0.6.1/scripts/ci/find-bundled-cli.sh +30 -0
  108. fiberpath-0.6.1/tests/planning/fixtures/helical_layer.gcode +4525 -0
  109. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_layer_strategies.py +1 -1
  110. fiberpath-0.6.1/tests/planning/test_validators.py +98 -0
  111. {fiberpath-0.5.3 → fiberpath-0.6.1}/uv.lock +121 -103
  112. fiberpath-0.5.3/CHANGELOG.md +0 -66
  113. fiberpath-0.5.3/fiberpath/planning/validators.py +0 -66
  114. fiberpath-0.5.3/fiberpath_api/path_policy.py +0 -74
  115. fiberpath-0.5.3/fiberpath_gui/docs/guides/styling.md +0 -606
  116. fiberpath-0.5.3/fiberpath_gui/package-lock.json +0 -6298
  117. fiberpath-0.5.3/fiberpath_gui/src/components/ErrorBoundary.tsx +0 -100
  118. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +0 -138
  119. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +0 -271
  120. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +0 -156
  121. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +0 -128
  122. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/StreamControls.css +0 -19
  123. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/StreamLog.css +0 -184
  124. fiberpath-0.5.3/fiberpath_gui/src/components/StreamTab/StreamTab.css +0 -76
  125. fiberpath-0.5.3/fiberpath_gui/src/components/Toast/ToastContainer.css +0 -99
  126. fiberpath-0.5.3/fiberpath_gui/src/styles/dialogs.css +0 -551
  127. fiberpath-0.5.3/fiberpath_gui/src/styles/reset.css +0 -55
  128. fiberpath-0.5.3/fiberpath_gui/src/types/wind-schema.ts +0 -72
  129. fiberpath-0.5.3/planning/OUTSTANDING_VALIDATION.md +0 -83
  130. fiberpath-0.5.3/planning/RELEASE_HISTORY.md +0 -38
  131. fiberpath-0.5.3/planning/ROADMAP_STATUS.md +0 -51
  132. fiberpath-0.5.3/planning/roadmap-v5.1.md +0 -187
  133. fiberpath-0.5.3/planning/roadmap-v5.2.md +0 -32
  134. fiberpath-0.5.3/planning/roadmap-v5.3.md +0 -180
  135. fiberpath-0.5.3/planning/roadmap-v5.4.md +0 -58
  136. fiberpath-0.5.3/planning/roadmap-v6.md +0 -109
  137. fiberpath-0.5.3/tests/planning/fixtures/helical_layer.gcode +0 -4525
  138. fiberpath-0.5.3/tests/planning/test_validators.py +0 -47
  139. {fiberpath-0.5.3 → fiberpath-0.6.1}/.gitattributes +0 -0
  140. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/actions/setup-python/action.yml +0 -0
  141. {fiberpath-0.5.3 → fiberpath-0.6.1}/.github/actions/setup-rust/action.yml +0 -0
  142. {fiberpath-0.5.3 → fiberpath-0.6.1}/.vscode/extensions.json +0 -0
  143. {fiberpath-0.5.3 → fiberpath-0.6.1}/.vscode/settings.json +0 -0
  144. {fiberpath-0.5.3 → fiberpath-0.6.1}/LICENSE +0 -0
  145. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/architecture/overview.md +0 -0
  146. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/guides/marlin-streaming.md +0 -0
  147. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/reference/api.md +0 -0
  148. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/reference/planner-math.md +0 -0
  149. {fiberpath-0.5.3 → fiberpath-0.6.1}/docs/vm-testing.md +0 -0
  150. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/README.md +0 -0
  151. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/complex_surface/README.md +0 -0
  152. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/multi_layer/README.md +0 -0
  153. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/multi_layer/input.wind +0 -0
  154. /fiberpath-0.5.3/examples/rocketry/AvBay(470mm).gcode → /fiberpath-0.6.1/examples/rocketry/AvBay(470mm)triple.gcode +0 -0
  155. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/CarbonMotorTube(1295mm).gcode +0 -0
  156. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/CarbonMotorTube(1295mm).wind +0 -0
  157. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/MainChute(585mm).gcode +0 -0
  158. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/rocketry/MainChute(585mm).wind +0 -0
  159. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/simple_cylinder/README.md +0 -0
  160. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/simple_cylinder/input.wind +0 -0
  161. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/sized_simple_cylinder/README.md +0 -0
  162. {fiberpath-0.5.3 → fiberpath-0.6.1}/examples/sized_simple_cylinder/input.wind +0 -0
  163. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/__init__.py +0 -0
  164. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/config/__init__.py +0 -0
  165. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/config/validator.py +0 -0
  166. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/execution/__init__.py +0 -0
  167. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/execution/marlin.py +0 -0
  168. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/gcode/__init__.py +0 -0
  169. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/gcode/dialects.py +0 -0
  170. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/gcode/generator.py +0 -0
  171. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/__init__.py +0 -0
  172. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/curves.py +0 -0
  173. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/intersections.py +0 -0
  174. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/geometry/surfaces.py +0 -0
  175. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/math_utils.py +0 -0
  176. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/__init__.py +0 -0
  177. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/calculations.py +0 -0
  178. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/exceptions.py +0 -0
  179. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/helpers.py +0 -0
  180. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/machine.py +0 -0
  181. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/planning/planner.py +0 -0
  182. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/simulation/__init__.py +0 -0
  183. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/simulation/simulator.py +0 -0
  184. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/visualization/__init__.py +0 -0
  185. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/visualization/export_json.py +0 -0
  186. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath/visualization/plotter.py +0 -0
  187. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/__init__.py +0 -0
  188. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/main.py +0 -0
  189. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/package-lock.json +0 -0
  190. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/__init__.py +0 -0
  191. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/plan.py +0 -0
  192. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/simulate.py +0 -0
  193. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/stream.py +0 -0
  194. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/routes/validate.py +0 -0
  195. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_api/schemas.py +0 -0
  196. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/__init__.py +0 -0
  197. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/__main__.py +0 -0
  198. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/interactive.py +0 -0
  199. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/main.py +0 -0
  200. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/output.py +0 -0
  201. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/plan.py +0 -0
  202. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/plot.py +0 -0
  203. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/simulate.py +0 -0
  204. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/stream.py +0 -0
  205. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_cli/validate.py +0 -0
  206. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/.gitignore +0 -0
  207. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/.stylelintrc.json +0 -0
  208. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/bundled-cli/.gitkeep +0 -0
  209. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/generate-types.json +0 -0
  210. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/index.html +0 -0
  211. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/scripts/check-css-vars.mjs +0 -0
  212. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/CliHealthWarning.tsx +0 -0
  213. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/ErrorNotificationToast.tsx +0 -0
  214. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/FileField.tsx +0 -0
  215. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/ResultCard.tsx +0 -0
  216. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StatusText.tsx +0 -0
  217. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/StreamControls.tsx +0 -0
  218. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/StreamTab/index.ts +0 -0
  219. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/TabBar.tsx +0 -0
  220. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/CanvasControls.tsx +0 -0
  221. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/CenterCanvas.tsx +0 -0
  222. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/LayerScrubber.tsx +0 -0
  223. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +0 -0
  224. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +0 -0
  225. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +0 -0
  226. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +0 -0
  227. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/HoopLayerEditor.tsx +0 -0
  228. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +0 -0
  229. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/MachineSettingsForm.tsx +0 -0
  230. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/MandrelForm.tsx +0 -0
  231. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/forms/TowForm.tsx +0 -0
  232. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/layers/LayerRow.tsx +0 -0
  233. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/BottomPanel.tsx +0 -0
  234. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/LeftPanel.tsx +0 -0
  235. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/panels/RightPanel.tsx +0 -0
  236. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/tabs/MainTab.tsx +0 -0
  237. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/components/tabs/StreamTab.tsx +0 -0
  238. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/contexts/CliHealthContext.tsx +0 -0
  239. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/contexts/ErrorNotificationContext.tsx +0 -0
  240. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useCliHealth.ts +0 -0
  241. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useKeyboardShortcuts.ts +0 -0
  242. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/hooks/useStreamEvents.ts +0 -0
  243. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/layouts/MainLayout.tsx +0 -0
  244. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/commands.ts +0 -0
  245. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/constants.ts +0 -0
  246. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/fileOperations.ts +0 -0
  247. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/marlin-api.ts +0 -0
  248. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/recentFiles.ts +0 -0
  249. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/retry.ts +0 -0
  250. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/schemas.test.ts +0 -0
  251. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/tauri-types.ts +0 -0
  252. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/toastMessages.ts +0 -0
  253. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/lib/validation.ts +0 -0
  254. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/main.tsx +0 -0
  255. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/state/projectStore.test.ts +0 -0
  256. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/state/projectStore.ts +0 -0
  257. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/stores/streamStore.ts +0 -0
  258. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/stores/toastStore.ts +0 -0
  259. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/index.css +0 -0
  260. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/styles/tabs.css +0 -0
  261. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/tests/integration/workflows.test.ts +0 -0
  262. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/tests/setup.ts +0 -0
  263. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/components.ts +0 -0
  264. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src/types/project.ts +0 -0
  265. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/build.rs +0 -0
  266. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/capabilities/default.json +0 -0
  267. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/128x128.png +0 -0
  268. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/256x256.png +0 -0
  269. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/32x32.png +0 -0
  270. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/512x512.png +0 -0
  271. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/icons/icon.ico +0 -0
  272. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/cli_path.rs +0 -0
  273. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/cli_process.rs +0 -0
  274. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/main.rs +0 -0
  275. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/src-tauri/src/marlin.rs +0 -0
  276. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/tsconfig.json +0 -0
  277. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/tsconfig.node.json +0 -0
  278. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/vite.config.ts +0 -0
  279. {fiberpath-0.5.3 → fiberpath-0.6.1}/fiberpath_gui/vitest.config.ts +0 -0
  280. {fiberpath-0.5.3 → fiberpath-0.6.1}/package-lock.json +0 -0
  281. {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/export_schema.py +0 -0
  282. {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/freeze_cli.py +0 -0
  283. {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/generate_schema.py +0 -0
  284. {fiberpath-0.5.3 → fiberpath-0.6.1}/scripts/sync_gui_docs.py +0 -0
  285. {fiberpath-0.5.3 → fiberpath-0.6.1}/setup.cfg +0 -0
  286. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_plan_route.py +0 -0
  287. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_simulate_route.py +0 -0
  288. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_stream_route.py +0 -0
  289. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/api/test_stream_route_errors.py +0 -0
  290. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_axis_format.py +0 -0
  291. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_cli_json.py +0 -0
  292. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_cli_smoke.py +0 -0
  293. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cli/test_stream_command.py +0 -0
  294. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/config/__init__.py +0 -0
  295. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/config/test_validator.py +0 -0
  296. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/helical-balanced.wind +0 -0
  297. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/simple-hoop.wind +0 -0
  298. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/inputs/skip-bias.wind +0 -0
  299. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/helical-balanced/output.gcode +0 -0
  300. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/helical-balanced/preview.png +0 -0
  301. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/simple-hoop/output.gcode +0 -0
  302. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/simple-hoop/preview.png +0 -0
  303. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/skip-bias/output.gcode +0 -0
  304. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/cyclone_reference_runs/outputs/skip-bias/preview.png +0 -0
  305. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/execution/test_marlin_streamer.py +0 -0
  306. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/gcode/test_dialects.py +0 -0
  307. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/gcode/test_generator.py +0 -0
  308. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/geometry/test_surfaces.py +0 -0
  309. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/_generate_fixtures.py +0 -0
  310. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/fixtures/hoop_layer.gcode +0 -0
  311. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/fixtures/hoop_only_program.gcode +0 -0
  312. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/fixtures/skip_layer.gcode +0 -0
  313. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_axis_mapping.py +0 -0
  314. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_helpers_machine.py +0 -0
  315. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/planning/test_planner_smoke.py +0 -0
  316. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/simulation/test_simulator.py +0 -0
  317. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/simulation/test_simulator_axis_detection.py +0 -0
  318. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/tauri/test_marlin_integration.py +0 -0
  319. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/tauri/test_port_discovery.py +0 -0
  320. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/visualization/test_export_json.py +0 -0
  321. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/visualization/test_plotter.py +0 -0
  322. {fiberpath-0.5.3 → fiberpath-0.6.1}/tests/visualization/test_plotter_axis_detection.py +0 -0
@@ -5,7 +5,7 @@ inputs:
5
5
  node-version:
6
6
  description: Node.js version to use
7
7
  required: false
8
- default: "20"
8
+ default: "24"
9
9
  working-directory:
10
10
  description: Working directory for npm install
11
11
  required: false
@@ -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:
@@ -30,7 +13,7 @@ jobs:
30
13
  runs-on: ubuntu-latest
31
14
  steps:
32
15
  - name: Checkout repository
33
- uses: actions/checkout@v4
16
+ uses: actions/checkout@v6
34
17
 
35
18
  - name: Setup Python environment
36
19
  uses: ./.github/actions/setup-python
@@ -56,7 +39,7 @@ jobs:
56
39
  os: [ubuntu-latest, macos-latest, windows-latest]
57
40
  steps:
58
41
  - name: Checkout repository
59
- uses: actions/checkout@v4
42
+ uses: actions/checkout@v6
60
43
 
61
44
  - name: Setup Python environment
62
45
  uses: ./.github/actions/setup-python
@@ -69,7 +52,7 @@ jobs:
69
52
 
70
53
  - name: Upload coverage
71
54
  if: matrix.os == 'ubuntu-latest'
72
- uses: codecov/codecov-action@v4
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"
@@ -0,0 +1,119 @@
1
+ name: Dependency Audit
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ schedule:
7
+ - cron: "0 7 * * 1"
8
+ workflow_dispatch:
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ python-audit:
15
+ name: Python Audit
16
+ runs-on: ubuntu-latest
17
+ steps:
18
+ - name: Checkout repository
19
+ uses: actions/checkout@v6
20
+
21
+ - name: Setup Python environment
22
+ uses: ./.github/actions/setup-python
23
+ with:
24
+ dependencies: ".[dev,api,cli,plot]"
25
+
26
+ - name: Export requirements for audit
27
+ run: uv export --all-extras --no-hashes --format requirements-txt -o requirements-audit.txt
28
+
29
+ - name: Run pip-audit (JSON report)
30
+ run: uvx --with pip-audit pip-audit -r requirements-audit.txt --format json --output pip-audit.json
31
+
32
+ - name: Upload pip-audit report
33
+ uses: actions/upload-artifact@v7
34
+ with:
35
+ name: pip-audit-report
36
+ path: pip-audit.json
37
+ retention-days: 30
38
+
39
+ npm-audit:
40
+ name: npm Audit
41
+ runs-on: ubuntu-latest
42
+ defaults:
43
+ run:
44
+ working-directory: fiberpath_gui
45
+ steps:
46
+ - name: Checkout repository
47
+ uses: actions/checkout@v6
48
+
49
+ - name: Setup Node.js environment
50
+ uses: ./.github/actions/setup-node
51
+
52
+ - name: Run npm audit (high/critical gate)
53
+ run: npm audit --audit-level=high --json > npm-audit.json
54
+
55
+ - name: Upload npm audit report
56
+ uses: actions/upload-artifact@v7
57
+ with:
58
+ name: npm-audit-report
59
+ path: fiberpath_gui/npm-audit.json
60
+ retention-days: 30
61
+
62
+ cargo-audit:
63
+ name: Cargo Audit
64
+ runs-on: ubuntu-latest
65
+ defaults:
66
+ run:
67
+ working-directory: fiberpath_gui/src-tauri
68
+ steps:
69
+ - name: Checkout repository
70
+ uses: actions/checkout@v6
71
+
72
+ - name: Setup Rust environment
73
+ uses: ./.github/actions/setup-rust
74
+ with:
75
+ install-linux-deps: "false"
76
+
77
+ - name: Install cargo-audit
78
+ run: cargo install cargo-audit --locked
79
+
80
+ - name: Run cargo audit (JSON report)
81
+ run: cargo audit --json > cargo-audit.json
82
+
83
+ - name: Enforce CVSS >= 7.0 gate
84
+ run: |
85
+ python - <<'PY'
86
+ import json
87
+ from pathlib import Path
88
+
89
+ report = json.loads(Path("cargo-audit.json").read_text(encoding="utf-8"))
90
+ vulns = report.get("vulnerabilities", {}).get("list", [])
91
+
92
+ blocking = []
93
+ for item in vulns:
94
+ advisory = item.get("advisory", {})
95
+ cvss = advisory.get("cvss")
96
+ if cvss is None:
97
+ continue
98
+ try:
99
+ score = float(cvss)
100
+ except (TypeError, ValueError):
101
+ continue
102
+ if score >= 7.0:
103
+ blocking.append((advisory.get("id", "unknown"), score, advisory.get("title", "")))
104
+
105
+ if blocking:
106
+ print("High/Critical Cargo advisories detected:")
107
+ for advisory_id, score, title in blocking:
108
+ print(f"- {advisory_id} (CVSS {score}): {title}")
109
+ raise SystemExit(1)
110
+
111
+ print("No Cargo advisories with CVSS >= 7.0 detected.")
112
+ PY
113
+
114
+ - name: Upload cargo audit report
115
+ uses: actions/upload-artifact@v7
116
+ with:
117
+ name: cargo-audit-report
118
+ path: fiberpath_gui/src-tauri/cargo-audit.json
119
+ retention-days: 30
@@ -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:
@@ -27,7 +13,7 @@ jobs:
27
13
  runs-on: ubuntu-latest
28
14
  steps:
29
15
  - name: Checkout repository
30
- uses: actions/checkout@v4
16
+ uses: actions/checkout@v6
31
17
 
32
18
  - name: Setup Python environment
33
19
  uses: ./.github/actions/setup-python
@@ -29,11 +29,11 @@ jobs:
29
29
  runs-on: ubuntu-latest
30
30
  steps:
31
31
  - name: Checkout repository
32
- uses: actions/checkout@v4
32
+ uses: actions/checkout@v6
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
@@ -47,7 +47,7 @@ jobs:
47
47
  run: uv run mkdocs build --strict --site-dir site
48
48
 
49
49
  - name: Upload Pages artifact
50
- uses: actions/upload-pages-artifact@v3
50
+ uses: actions/upload-pages-artifact@v4
51
51
  with:
52
52
  path: site
53
53
 
@@ -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:
@@ -26,7 +16,7 @@ jobs:
26
16
  working-directory: fiberpath_gui
27
17
  steps:
28
18
  - name: Checkout repository
29
- uses: actions/checkout@v4
19
+ uses: actions/checkout@v6
30
20
 
31
21
  - name: Setup Node.js environment
32
22
  uses: ./.github/actions/setup-node
@@ -57,7 +47,7 @@ jobs:
57
47
  working-directory: fiberpath_gui
58
48
  steps:
59
49
  - name: Checkout repository
60
- uses: actions/checkout@v4
50
+ uses: actions/checkout@v6
61
51
 
62
52
  - name: Setup Node.js environment
63
53
  uses: ./.github/actions/setup-node
@@ -69,7 +59,7 @@ jobs:
69
59
  run: npm run test:coverage
70
60
 
71
61
  - name: Upload coverage
72
- uses: codecov/codecov-action@v4
62
+ uses: codecov/codecov-action@v6
73
63
  with:
74
64
  files: ./fiberpath_gui/coverage/lcov.info
75
65
  flags: gui