fiberpath 0.7.1__tar.gz → 0.7.3__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 (369) hide show
  1. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/actions/setup-node/action.yml +1 -1
  2. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/actions/setup-python/action.yml +3 -3
  3. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/actions/setup-rust/action.yml +1 -1
  4. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/backend-ci.yml +4 -4
  5. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/ci-check.yml +16 -22
  6. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/dependency-audit.yml +3 -3
  7. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/gui-ci.yml +3 -8
  8. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/gui-e2e-smoke.yml +1 -1
  9. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/gui-packaging.yml +11 -2
  10. {fiberpath-0.7.1 → fiberpath-0.7.3}/.github/workflows/release.yml +9 -61
  11. {fiberpath-0.7.1 → fiberpath-0.7.3}/.gitignore +0 -6
  12. {fiberpath-0.7.1 → fiberpath-0.7.3}/CHANGELOG.md +71 -0
  13. {fiberpath-0.7.1 → fiberpath-0.7.3}/PKG-INFO +29 -31
  14. {fiberpath-0.7.1 → fiberpath-0.7.3}/README.md +27 -26
  15. fiberpath-0.7.3/docs/.pages +13 -0
  16. fiberpath-0.7.3/docs/architecture/.pages +3 -0
  17. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/architecture/overview.md +1 -2
  18. fiberpath-0.7.3/docs/development/.pages +8 -0
  19. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/development/ci-cd.md +14 -19
  20. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/development/contributing.md +8 -5
  21. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/development/dependency-policy.md +20 -3
  22. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/development/release-process.md +2 -2
  23. fiberpath-0.7.3/docs/development/roadmap.md +154 -0
  24. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/getting-started.md +2 -2
  25. fiberpath-0.7.3/docs/guides/.pages +5 -0
  26. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/guides/wind-format.md +2 -2
  27. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/index.md +9 -9
  28. fiberpath-0.7.3/docs/reference/.pages +4 -0
  29. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/troubleshooting.md +3 -3
  30. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/execution/marlin.py +30 -65
  31. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/gcode/generator.py +1 -6
  32. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/exceptions.py +0 -5
  33. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/helpers.py +0 -6
  34. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/layer_strategies.py +1 -12
  35. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/simulation/simulator.py +2 -2
  36. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/visualization/plotter.py +4 -8
  37. fiberpath-0.7.3/fiberpath_api/main.py +34 -0
  38. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/path_policy.py +30 -10
  39. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/routes/stream.py +5 -1
  40. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/interactive.py +21 -42
  41. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/README.md +1 -1
  42. fiberpath-0.7.3/fiberpath_gui/docs/.pages +7 -0
  43. fiberpath-0.7.3/fiberpath_gui/docs/architecture/.pages +5 -0
  44. fiberpath-0.7.3/fiberpath_gui/docs/guides/.pages +4 -0
  45. fiberpath-0.7.3/fiberpath_gui/docs/reference/.pages +2 -0
  46. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/package-lock.json +414 -377
  47. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/package.json +18 -18
  48. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/MenuBar.tsx +1 -1
  49. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +3 -3
  50. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +2 -2
  51. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +8 -5
  52. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +4 -4
  53. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useFileOperations.test.tsx +1 -2
  54. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useFileOperations.ts +5 -6
  55. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/main.tsx +3 -8
  56. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/tests/renderWithProviders.tsx +3 -6
  57. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/types/converters.test.ts +17 -4
  58. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/types/converters.ts +20 -17
  59. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/types/project.ts +15 -9
  60. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/Cargo.lock +208 -84
  61. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/Cargo.toml +2 -2
  62. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/src/main.rs +94 -23
  63. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/src/marlin.rs +26 -51
  64. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/tauri.conf.json +1 -1
  65. {fiberpath-0.7.1 → fiberpath-0.7.3}/pyproject.toml +2 -7
  66. fiberpath-0.7.3/renovate.json +4 -0
  67. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/freeze_cli.py +0 -4
  68. fiberpath-0.7.3/tests/api/test_path_policy.py +247 -0
  69. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/api/test_plan_route.py +49 -8
  70. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/api/test_simulate_route.py +27 -9
  71. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/api/test_stream_route_errors.py +11 -0
  72. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/execution/test_marlin_streamer.py +69 -0
  73. {fiberpath-0.7.1 → fiberpath-0.7.3}/uv.lock +10 -382
  74. fiberpath-0.7.1/.github/dependabot.yml +0 -122
  75. fiberpath-0.7.1/.github/workflows/docs-ci.yml +0 -35
  76. fiberpath-0.7.1/.github/workflows/docs-deploy.yml +0 -64
  77. fiberpath-0.7.1/TODO.md +0 -21
  78. fiberpath-0.7.1/examples/complex_surface/README.md +0 -3
  79. fiberpath-0.7.1/fiberpath/geometry/__init__.py +0 -13
  80. fiberpath-0.7.1/fiberpath/geometry/curves.py +0 -16
  81. fiberpath-0.7.1/fiberpath/geometry/intersections.py +0 -23
  82. fiberpath-0.7.1/fiberpath/geometry/surfaces.py +0 -17
  83. fiberpath-0.7.1/fiberpath_api/main.py +0 -21
  84. fiberpath-0.7.1/fiberpath_gui/src/components/ErrorNotificationToast.tsx +0 -39
  85. fiberpath-0.7.1/fiberpath_gui/src/contexts/ErrorNotificationContext.tsx +0 -102
  86. fiberpath-0.7.1/mkdocs.yml +0 -80
  87. fiberpath-0.7.1/scripts/sync_gui_docs.py +0 -91
  88. fiberpath-0.7.1/tests/geometry/test_surfaces.py +0 -6
  89. {fiberpath-0.7.1 → fiberpath-0.7.3}/.gitattributes +0 -0
  90. {fiberpath-0.7.1 → fiberpath-0.7.3}/.pre-commit-config.yaml +0 -0
  91. {fiberpath-0.7.1 → fiberpath-0.7.3}/.vscode/extensions.json +0 -0
  92. {fiberpath-0.7.1 → fiberpath-0.7.3}/.vscode/launch.json +0 -0
  93. {fiberpath-0.7.1 → fiberpath-0.7.3}/.vscode/settings.json +0 -0
  94. {fiberpath-0.7.1 → fiberpath-0.7.3}/LICENSE +0 -0
  95. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/architecture/axis-system.md +0 -0
  96. {fiberpath-0.7.1/docs → fiberpath-0.7.3/docs/development}/feature-backlog.md +0 -0
  97. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/development/packaging.md +0 -0
  98. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/development/tooling.md +0 -0
  99. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/guides/axis-mapping.md +0 -0
  100. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/guides/marlin-streaming.md +0 -0
  101. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/guides/visualization.md +0 -0
  102. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/reference/api.md +0 -0
  103. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/reference/concepts.md +0 -0
  104. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/reference/planner-math.md +0 -0
  105. {fiberpath-0.7.1 → fiberpath-0.7.3}/docs/vm-testing.md +0 -0
  106. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/README.md +0 -0
  107. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/multi_layer/README.md +0 -0
  108. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/multi_layer/input.wind +0 -0
  109. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/AvBay(470mm)single.wind +0 -0
  110. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/AvBay(470mm)triple.gcode +0 -0
  111. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/AvBay(470mm)triple.wind +0 -0
  112. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/CarbonMotorTube(1295mm).gcode +0 -0
  113. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/CarbonMotorTube(1295mm).wind +0 -0
  114. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/MainChute(585mm).gcode +0 -0
  115. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/rocketry/MainChute(585mm).wind +0 -0
  116. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/simple_cylinder/README.md +0 -0
  117. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/simple_cylinder/input.wind +0 -0
  118. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/sized_simple_cylinder/README.md +0 -0
  119. {fiberpath-0.7.1 → fiberpath-0.7.3}/examples/sized_simple_cylinder/input.wind +0 -0
  120. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/__init__.py +0 -0
  121. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/config/__init__.py +0 -0
  122. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/config/schemas.py +0 -0
  123. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/config/validator.py +0 -0
  124. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/execution/__init__.py +0 -0
  125. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/gcode/__init__.py +0 -0
  126. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/gcode/dialects.py +0 -0
  127. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/math_utils.py +0 -0
  128. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/__init__.py +0 -0
  129. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/calculations.py +0 -0
  130. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/machine.py +0 -0
  131. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/planner.py +0 -0
  132. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/planning/validators.py +0 -0
  133. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/simulation/__init__.py +0 -0
  134. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/visualization/__init__.py +0 -0
  135. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath/visualization/export_json.py +0 -0
  136. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/__init__.py +0 -0
  137. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/package-lock.json +0 -0
  138. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/routes/__init__.py +0 -0
  139. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/routes/plan.py +0 -0
  140. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/routes/simulate.py +0 -0
  141. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/routes/validate.py +0 -0
  142. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_api/schemas.py +0 -0
  143. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/__init__.py +0 -0
  144. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/__main__.py +0 -0
  145. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/main.py +0 -0
  146. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/output.py +0 -0
  147. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/plan.py +0 -0
  148. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/plot.py +0 -0
  149. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/simulate.py +0 -0
  150. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/stream.py +0 -0
  151. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_cli/validate.py +0 -0
  152. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/.gitignore +0 -0
  153. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/.nvmrc +0 -0
  154. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/.stylelintrc.json +0 -0
  155. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/bundled-cli/.gitkeep +0 -0
  156. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/architecture/cli-integration.md +0 -0
  157. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/architecture/state-management.md +0 -0
  158. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/architecture/streaming-state.md +0 -0
  159. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/architecture/tech-stack.md +0 -0
  160. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/development.md +0 -0
  161. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/guides/performance.md +0 -0
  162. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/guides/schemas.md +0 -0
  163. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/guides/styling.md +0 -0
  164. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/overview.md +0 -0
  165. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/reference/type-safety.md +0 -0
  166. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/docs/testing.md +0 -0
  167. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/generate-types.json +0 -0
  168. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/index.html +0 -0
  169. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/perf/bundle-baseline.json +0 -0
  170. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/schemas/wind-schema.json +0 -0
  171. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/scripts/check-bundle-budget.mjs +0 -0
  172. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/scripts/check-css-vars.mjs +0 -0
  173. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/App.tsx +0 -0
  174. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/CliHealthWarning.tsx +0 -0
  175. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/ErrorBoundary.test.tsx +0 -0
  176. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/ErrorBoundary.tsx +0 -0
  177. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StatusBar.test.tsx +0 -0
  178. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StatusBar.tsx +0 -0
  179. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +0 -0
  180. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/ConnectionSection.test.tsx +0 -0
  181. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/ConnectionSection.tsx +0 -0
  182. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +0 -0
  183. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.test.tsx +0 -0
  184. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.tsx +0 -0
  185. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +0 -0
  186. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.test.tsx +0 -0
  187. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.tsx +0 -0
  188. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +0 -0
  189. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/ManualControlSection.test.tsx +0 -0
  190. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/ManualControlSection.tsx +0 -0
  191. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamControls.css +0 -0
  192. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamControls.tsx +0 -0
  193. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamLog.css +0 -0
  194. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamLog.test.tsx +0 -0
  195. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamLog.tsx +0 -0
  196. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamTab.css +0 -0
  197. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/StreamTab/StreamTab.tsx +0 -0
  198. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/TabBar.test.tsx +0 -0
  199. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/TabBar.tsx +0 -0
  200. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/Toast/ToastContainer.css +0 -0
  201. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/Toast/ToastContainer.test.tsx +0 -0
  202. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/Toast/ToastContainer.tsx +0 -0
  203. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/canvas/CanvasControls.test.tsx +0 -0
  204. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/canvas/CanvasControls.tsx +0 -0
  205. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/canvas/CenterCanvas.tsx +0 -0
  206. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/canvas/LayerScrubber.test.tsx +0 -0
  207. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/canvas/LayerScrubber.tsx +0 -0
  208. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/BaseDialog.test.tsx +0 -0
  209. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/BaseDialog.tsx +0 -0
  210. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.test.tsx +0 -0
  211. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +0 -0
  212. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/HelicalLayerEditor.test.tsx +0 -0
  213. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +0 -0
  214. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/HoopLayerEditor.test.tsx +0 -0
  215. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/HoopLayerEditor.tsx +0 -0
  216. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/LayerNumericField.tsx +0 -0
  217. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/SkipLayerEditor.test.tsx +0 -0
  218. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +0 -0
  219. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/forms/MachineSettingsForm.test.tsx +0 -0
  220. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/forms/MachineSettingsForm.tsx +0 -0
  221. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/forms/MandrelForm.test.tsx +0 -0
  222. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/forms/MandrelForm.tsx +0 -0
  223. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/forms/TowForm.test.tsx +0 -0
  224. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/forms/TowForm.tsx +0 -0
  225. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/layers/LayerRow.test.tsx +0 -0
  226. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/layers/LayerRow.tsx +0 -0
  227. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/layers/LayerStack.test.tsx +0 -0
  228. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/layers/LayerStack.tsx +0 -0
  229. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/panels/BottomPanel.tsx +0 -0
  230. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/panels/LeftPanel.tsx +0 -0
  231. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/panels/RightPanel.tsx +0 -0
  232. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/panels/panels.test.tsx +0 -0
  233. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/tabs/MainTab.test.tsx +0 -0
  234. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/components/tabs/MainTab.tsx +0 -0
  235. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/contexts/CliHealthContext.test.tsx +0 -0
  236. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/contexts/CliHealthContext.tsx +0 -0
  237. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/canvas/usePreviewGeneration.test.ts +0 -0
  238. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/canvas/usePreviewGeneration.ts +0 -0
  239. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/stream/useConnectionActions.test.ts +0 -0
  240. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/stream/useConnectionActions.ts +0 -0
  241. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/stream/useManualCommandActions.test.ts +0 -0
  242. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/stream/useManualCommandActions.ts +0 -0
  243. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/stream/useStreamingActions.test.ts +0 -0
  244. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/stream/useStreamingActions.ts +0 -0
  245. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useCliHealth.test.ts +0 -0
  246. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useCliHealth.ts +0 -0
  247. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useDebouncedValue.test.ts +0 -0
  248. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useDebouncedValue.ts +0 -0
  249. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useKeyboardShortcuts.test.ts +0 -0
  250. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useKeyboardShortcuts.ts +0 -0
  251. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useMenubarInteractions.test.tsx +0 -0
  252. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useMenubarInteractions.ts +0 -0
  253. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useStreamEvents.ts +0 -0
  254. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useTheme.test.ts +0 -0
  255. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/hooks/useTheme.ts +0 -0
  256. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/layouts/MainLayout.test.tsx +0 -0
  257. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/layouts/MainLayout.tsx +0 -0
  258. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/commands.test.ts +0 -0
  259. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/commands.ts +0 -0
  260. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/constants.ts +0 -0
  261. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/fileOperations.test.ts +0 -0
  262. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/fileOperations.ts +0 -0
  263. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/helicalValidation.test.ts +0 -0
  264. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/helicalValidation.ts +0 -0
  265. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/marlin-api.test.ts +0 -0
  266. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/marlin-api.ts +0 -0
  267. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/menuConfig.test.ts +0 -0
  268. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/menuConfig.ts +0 -0
  269. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/numericFields.test.ts +0 -0
  270. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/numericFields.ts +0 -0
  271. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/recentFiles.test.ts +0 -0
  272. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/recentFiles.ts +0 -0
  273. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/retry.test.ts +0 -0
  274. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/retry.ts +0 -0
  275. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/schemas.test.ts +0 -0
  276. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/schemas.ts +0 -0
  277. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/streamFeedback.test.ts +0 -0
  278. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/streamFeedback.ts +0 -0
  279. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/tauri-types.ts +0 -0
  280. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/toastMessages.ts +0 -0
  281. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/validation.test.ts +0 -0
  282. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/validation.ts +0 -0
  283. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/validationErrors.test.ts +0 -0
  284. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/lib/validationErrors.ts +0 -0
  285. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/stores/projectStore.test.ts +0 -0
  286. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/stores/projectStore.ts +0 -0
  287. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/stores/streamStore.ts +0 -0
  288. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/stores/toastStore.test.ts +0 -0
  289. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/stores/toastStore.ts +0 -0
  290. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/buttons.css +0 -0
  291. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/canvas.css +0 -0
  292. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/dialogs.css +0 -0
  293. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/forms.css +0 -0
  294. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/index.css +0 -0
  295. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/layout.css +0 -0
  296. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/notifications.css +0 -0
  297. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/panels.css +0 -0
  298. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/reset.css +0 -0
  299. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/tabs.css +0 -0
  300. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/tokens.css +0 -0
  301. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/styles/typography.css +0 -0
  302. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/tests/integration/streamLifecycle.test.ts +0 -0
  303. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/tests/integration/workflows.test.ts +0 -0
  304. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/tests/setup.ts +0 -0
  305. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/tests/storeUtils.ts +0 -0
  306. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/tests/tauriMocks.ts +0 -0
  307. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/types/components.ts +0 -0
  308. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/types/project.test.ts +0 -0
  309. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src/types/wind-schema.ts +0 -0
  310. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/build.rs +0 -0
  311. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/capabilities/default.json +0 -0
  312. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/icons/128x128.png +0 -0
  313. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/icons/256x256.png +0 -0
  314. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/icons/32x32.png +0 -0
  315. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/icons/512x512.png +0 -0
  316. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/icons/icon.ico +0 -0
  317. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/src/cli_path.rs +0 -0
  318. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/src-tauri/src/cli_process.rs +0 -0
  319. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/tsconfig.json +0 -0
  320. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/tsconfig.node.json +0 -0
  321. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/vite.config.ts +0 -0
  322. {fiberpath-0.7.1 → fiberpath-0.7.3}/fiberpath_gui/vitest.config.ts +0 -0
  323. {fiberpath-0.7.1 → fiberpath-0.7.3}/package-lock.json +0 -0
  324. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/e2e-check-artifacts.ps1 +0 -0
  325. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/e2e-check-artifacts.sh +0 -0
  326. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/e2e-cli-smoke.ps1 +0 -0
  327. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/e2e-cli-smoke.sh +0 -0
  328. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/extract-package-runtime.ps1 +0 -0
  329. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/extract-package-runtime.sh +0 -0
  330. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/find-bundled-cli.ps1 +0 -0
  331. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/ci/find-bundled-cli.sh +0 -0
  332. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/export_schema.py +0 -0
  333. {fiberpath-0.7.1 → fiberpath-0.7.3}/scripts/generate_schema.py +0 -0
  334. {fiberpath-0.7.1 → fiberpath-0.7.3}/setup.cfg +0 -0
  335. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/api/test_stream_route.py +0 -0
  336. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cli/test_axis_format.py +0 -0
  337. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cli/test_cli_json.py +0 -0
  338. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cli/test_cli_smoke.py +0 -0
  339. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cli/test_stream_command.py +0 -0
  340. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/config/__init__.py +0 -0
  341. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/config/test_validator.py +0 -0
  342. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/inputs/helical-balanced.wind +0 -0
  343. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/inputs/simple-hoop.wind +0 -0
  344. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/inputs/skip-bias.wind +0 -0
  345. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/outputs/helical-balanced/output.gcode +0 -0
  346. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/outputs/helical-balanced/preview.png +0 -0
  347. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/outputs/simple-hoop/output.gcode +0 -0
  348. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/outputs/simple-hoop/preview.png +0 -0
  349. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/outputs/skip-bias/output.gcode +0 -0
  350. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/cyclone_reference_runs/outputs/skip-bias/preview.png +0 -0
  351. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/gcode/test_dialects.py +0 -0
  352. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/gcode/test_generator.py +0 -0
  353. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/_generate_fixtures.py +0 -0
  354. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/fixtures/helical_layer.gcode +0 -0
  355. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/fixtures/hoop_layer.gcode +0 -0
  356. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/fixtures/hoop_only_program.gcode +0 -0
  357. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/fixtures/skip_layer.gcode +0 -0
  358. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/test_axis_mapping.py +0 -0
  359. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/test_helpers_machine.py +0 -0
  360. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/test_layer_strategies.py +0 -0
  361. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/test_planner_smoke.py +0 -0
  362. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/planning/test_validators.py +0 -0
  363. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/simulation/test_simulator.py +0 -0
  364. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/simulation/test_simulator_axis_detection.py +0 -0
  365. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/tauri/test_marlin_integration.py +0 -0
  366. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/tauri/test_port_discovery.py +0 -0
  367. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/visualization/test_export_json.py +0 -0
  368. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/visualization/test_plotter.py +0 -0
  369. {fiberpath-0.7.1 → fiberpath-0.7.3}/tests/visualization/test_plotter_axis_detection.py +0 -0
@@ -15,7 +15,7 @@ runs:
15
15
  using: composite
16
16
  steps:
17
17
  - name: Set up Node.js
18
- uses: actions/setup-node@v4
18
+ uses: actions/setup-node@v6
19
19
  with:
20
20
  node-version: ${{ inputs.node-version }}
21
21
  cache: npm
@@ -9,7 +9,7 @@ inputs:
9
9
  dependencies:
10
10
  description: Dependency groups to install (e.g., ".[dev,api]")
11
11
  required: false
12
- default: ".[dev,api,docs]"
12
+ default: ".[dev,api]"
13
13
  cache-key-suffix:
14
14
  description: Additional suffix for cache key
15
15
  required: false
@@ -24,13 +24,13 @@ runs:
24
24
  python-version: ${{ inputs.python-version }}
25
25
 
26
26
  - name: Set up uv
27
- uses: astral-sh/setup-uv@v3
27
+ uses: astral-sh/setup-uv@v8.2.0
28
28
  with:
29
29
  enable-cache: true
30
30
  cache-dependency-glob: "pyproject.toml"
31
31
 
32
32
  - name: Cache Python virtual environment
33
- uses: actions/cache@v4
33
+ uses: actions/cache@v6
34
34
  with:
35
35
  path: .venv
36
36
  key: venv-${{ runner.os }}-${{ inputs.python-version }}-${{ hashFiles('pyproject.toml') }}-${{ inputs.cache-key-suffix }}
@@ -18,7 +18,7 @@ runs:
18
18
  uses: dtolnay/rust-toolchain@stable
19
19
 
20
20
  - name: Cache cargo artifacts
21
- uses: actions/cache@v4
21
+ uses: actions/cache@v6
22
22
  with:
23
23
  path: |
24
24
  ~/.cargo/bin
@@ -13,12 +13,12 @@ jobs:
13
13
  runs-on: ubuntu-latest
14
14
  steps:
15
15
  - name: Checkout repository
16
- uses: actions/checkout@v6
16
+ uses: actions/checkout@v7
17
17
 
18
18
  - name: Setup Python environment
19
19
  uses: ./.github/actions/setup-python
20
20
  with:
21
- dependencies: ".[dev,api,docs]"
21
+ dependencies: ".[dev,api]"
22
22
 
23
23
  - name: Run Ruff linter
24
24
  run: uv run ruff check
@@ -39,7 +39,7 @@ jobs:
39
39
  os: [ubuntu-latest, macos-latest, windows-latest]
40
40
  steps:
41
41
  - name: Checkout repository
42
- uses: actions/checkout@v6
42
+ uses: actions/checkout@v7
43
43
 
44
44
  - name: Setup Python environment
45
45
  uses: ./.github/actions/setup-python
@@ -52,7 +52,7 @@ jobs:
52
52
 
53
53
  - name: Upload coverage
54
54
  if: matrix.os == 'ubuntu-latest'
55
- uses: codecov/codecov-action@v6
55
+ uses: codecov/codecov-action@v7
56
56
  with:
57
57
  files: ./coverage.xml
58
58
  flags: backend
@@ -13,28 +13,22 @@ on:
13
13
  - "pyproject.toml"
14
14
  - "uv.lock"
15
15
  - "setup.cfg"
16
- - "mkdocs.yml"
16
+ - "renovate.json"
17
17
  - "README.md"
18
+ - "CHANGELOG.md"
18
19
  - "scripts/**"
19
20
  - ".github/workflows/**"
20
21
  - ".github/actions/**"
21
22
  pull_request:
23
+ # No paths filter on purpose. "CI Check" is a required status check, so it
24
+ # must run on EVERY PR to main and always report a result. With a paths
25
+ # filter, a PR touching only unfiltered files (e.g. a Renovate-managed
26
+ # .pre-commit-config.yaml or renovate.json) would never trigger the
27
+ # workflow, leaving the required check stuck "Expected" and blocking merge.
28
+ # The `changes` job below still gates the heavy jobs by path, and the
29
+ # `ci-check` aggregator always posts — so cost stays low while every PR is
30
+ # mergeable.
22
31
  branches: [main]
23
- paths:
24
- - "fiberpath/**"
25
- - "fiberpath_api/**"
26
- - "fiberpath_cli/**"
27
- - "fiberpath_gui/**"
28
- - "docs/**"
29
- - "tests/**"
30
- - "pyproject.toml"
31
- - "uv.lock"
32
- - "setup.cfg"
33
- - "mkdocs.yml"
34
- - "README.md"
35
- - "scripts/**"
36
- - ".github/workflows/**"
37
- - ".github/actions/**"
38
32
  workflow_dispatch:
39
33
 
40
34
  permissions:
@@ -50,7 +44,7 @@ jobs:
50
44
  docs: ${{ steps.filter.outputs.docs }}
51
45
  steps:
52
46
  - name: Checkout repository
53
- uses: actions/checkout@v6
47
+ uses: actions/checkout@v7
54
48
 
55
49
  - name: Detect changed areas
56
50
  id: filter
@@ -76,11 +70,8 @@ jobs:
76
70
  docs:
77
71
  - "docs/**"
78
72
  - "fiberpath_gui/docs/**"
79
- - "mkdocs.yml"
80
- - "scripts/sync_gui_docs.py"
81
73
  - "README.md"
82
- - ".github/workflows/docs-ci.yml"
83
- - ".github/actions/setup-python/**"
74
+ - ".github/workflows/ci-check.yml"
84
75
 
85
76
  backend:
86
77
  name: Backend
@@ -98,7 +89,10 @@ jobs:
98
89
  name: Docs
99
90
  needs: changes
100
91
  if: needs.changes.outputs.docs == 'true'
101
- uses: ./.github/workflows/docs-ci.yml
92
+ uses: fiberpath/.github/.github/workflows/docs-validate.yml@main
93
+ with:
94
+ section: fiberpath
95
+ gui_docs_path: fiberpath_gui/docs
102
96
 
103
97
  ci-check:
104
98
  name: CI Check
@@ -18,7 +18,7 @@ jobs:
18
18
  runs-on: ubuntu-latest
19
19
  steps:
20
20
  - name: Checkout repository
21
- uses: actions/checkout@v6
21
+ uses: actions/checkout@v7
22
22
 
23
23
  - name: Setup Python environment
24
24
  uses: ./.github/actions/setup-python
@@ -46,7 +46,7 @@ jobs:
46
46
  working-directory: fiberpath_gui
47
47
  steps:
48
48
  - name: Checkout repository
49
- uses: actions/checkout@v6
49
+ uses: actions/checkout@v7
50
50
 
51
51
  - name: Setup Node.js environment
52
52
  uses: ./.github/actions/setup-node
@@ -69,7 +69,7 @@ jobs:
69
69
  working-directory: fiberpath_gui/src-tauri
70
70
  steps:
71
71
  - name: Checkout repository
72
- uses: actions/checkout@v6
72
+ uses: actions/checkout@v7
73
73
 
74
74
  - name: Setup Rust environment
75
75
  uses: ./.github/actions/setup-rust
@@ -16,16 +16,11 @@ jobs:
16
16
  working-directory: fiberpath_gui
17
17
  steps:
18
18
  - name: Checkout repository
19
- uses: actions/checkout@v6
19
+ uses: actions/checkout@v7
20
20
 
21
21
  - name: Setup Node.js environment
22
22
  uses: ./.github/actions/setup-node
23
23
 
24
- - name: Setup Rust environment
25
- uses: ./.github/actions/setup-rust
26
- with:
27
- install-linux-deps: "true"
28
-
29
24
  - name: Run TypeScript type check
30
25
  run: npm run lint
31
26
 
@@ -44,7 +39,7 @@ jobs:
44
39
  working-directory: fiberpath_gui
45
40
  steps:
46
41
  - name: Checkout repository
47
- uses: actions/checkout@v6
42
+ uses: actions/checkout@v7
48
43
 
49
44
  - name: Setup Node.js environment
50
45
  uses: ./.github/actions/setup-node
@@ -56,7 +51,7 @@ jobs:
56
51
  run: npm run test:coverage
57
52
 
58
53
  - name: Upload coverage
59
- uses: codecov/codecov-action@v6
54
+ uses: codecov/codecov-action@v7
60
55
  with:
61
56
  files: ./fiberpath_gui/coverage/lcov.info
62
57
  flags: gui
@@ -37,7 +37,7 @@ jobs:
37
37
 
38
38
  steps:
39
39
  - name: Checkout repository
40
- uses: actions/checkout@v6
40
+ uses: actions/checkout@v7
41
41
 
42
42
  - name: Download packaged GUI artifact
43
43
  uses: actions/download-artifact@v8
@@ -51,7 +51,7 @@ jobs:
51
51
  os: [windows-latest, macos-latest, ubuntu-latest]
52
52
  steps:
53
53
  - name: Checkout repository
54
- uses: actions/checkout@v6
54
+ uses: actions/checkout@v7
55
55
 
56
56
  - name: Set up Python (no cache for freeze)
57
57
  uses: actions/setup-python@v6
@@ -130,7 +130,7 @@ jobs:
130
130
  working-directory: fiberpath_gui
131
131
  steps:
132
132
  - name: Checkout repository
133
- uses: actions/checkout@v6
133
+ uses: actions/checkout@v7
134
134
 
135
135
  - name: Download frozen CLI artifact
136
136
  uses: actions/download-artifact@v8
@@ -163,6 +163,15 @@ jobs:
163
163
  with:
164
164
  install-linux-deps: "true"
165
165
 
166
+ - name: Clean stale bundle output
167
+ shell: bash
168
+ run: |
169
+ # The setup-rust cache restores target/, which includes previously
170
+ # built, version-stamped installers under release/bundle/. Remove them
171
+ # before building so the version-agnostic upload globs only ever pick
172
+ # up the current build's artifacts (see #120).
173
+ rm -rf src-tauri/target/release/bundle
174
+
166
175
  - name: Build Tauri bundles
167
176
  run: npm run package
168
177
 
@@ -25,7 +25,7 @@ jobs:
25
25
  tag: ${{ steps.check.outputs.tag }}
26
26
  steps:
27
27
  - name: Checkout repository
28
- uses: actions/checkout@v6
28
+ uses: actions/checkout@v7
29
29
  with:
30
30
  fetch-depth: 0
31
31
 
@@ -69,7 +69,7 @@ jobs:
69
69
  runs-on: ubuntu-latest
70
70
  steps:
71
71
  - name: Checkout repository
72
- uses: actions/checkout@v6
72
+ uses: actions/checkout@v7
73
73
 
74
74
  - name: Create SBOM output directory
75
75
  run: mkdir -p sbom
@@ -109,7 +109,7 @@ jobs:
109
109
  runs-on: ubuntu-latest
110
110
  steps:
111
111
  - name: Checkout repository
112
- uses: actions/checkout@v6
112
+ uses: actions/checkout@v7
113
113
 
114
114
  - name: Download SBOM artifacts
115
115
  uses: actions/download-artifact@v8
@@ -117,14 +117,6 @@ jobs:
117
117
  name: sbom-artifacts
118
118
  path: sbom
119
119
 
120
- - name: Get previous tag
121
- id: previous-tag
122
- run: |
123
- # Get previous tag BEFORE creating new one
124
- PREV_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
125
- echo "previous=$PREV_TAG" >> $GITHUB_OUTPUT
126
- echo "Previous tag: ${PREV_TAG:-none}"
127
-
128
120
  - name: Create release tag
129
121
  run: |
130
122
  git config user.name "github-actions[bot]"
@@ -137,7 +129,6 @@ jobs:
137
129
  uses: actions/github-script@v9
138
130
  with:
139
131
  script: |
140
- const prevTag = '${{ steps.previous-tag.outputs.previous }}';
141
132
  const newTag = '${{ needs.validate.outputs.tag }}';
142
133
  const version = '${{ inputs.version }}';
143
134
  const repo = context.repo;
@@ -154,8 +145,8 @@ jobs:
154
145
  notes += `**Linux:**\n`;
155
146
  notes += `- \`fiberpath_${version}_amd64.deb\`\n`;
156
147
  notes += `- \`fiberpath_${version}_amd64.AppImage\`\n\n`;
157
- notes += `📚 [Installation Guide](https://cameronbrooks11.github.io/fiberpath/getting-started/) | `;
158
- notes += `🆘 [Troubleshooting](https://cameronbrooks11.github.io/fiberpath/troubleshooting/)\n\n`;
148
+ notes += `📚 [Installation Guide](https://fiberpath.org/fiberpath/getting-started/) | `;
149
+ notes += `🆘 [Troubleshooting](https://fiberpath.org/fiberpath/troubleshooting/)\n\n`;
159
150
 
160
151
  // Python package section
161
152
  notes += `## Python Package\n\n`;
@@ -165,52 +156,8 @@ jobs:
165
156
  notes += `[PyPI Package](https://pypi.org/project/fiberpath/${version}/) | `;
166
157
  notes += `[Source Code](https://github.com/${repo.owner}/${repo.repo}/tree/${newTag})\n\n`;
167
158
 
168
- // Changelog section
169
- notes += `## Changelog\n\n`;
170
-
171
- if (prevTag) {
172
- const { data: comparison } = await github.rest.repos.compareCommits({
173
- owner: repo.owner,
174
- repo: repo.repo,
175
- base: prevTag,
176
- head: newTag
177
- });
178
-
179
- // Categorize commits
180
- const added = [];
181
- const fixed = [];
182
- const changed = [];
183
-
184
- comparison.commits.forEach(commit => {
185
- const msg = commit.commit.message.split('\n')[0];
186
- const sha = commit.sha.substring(0, 7);
187
- const entry = `- ${msg} (\`${sha}\`)`;
188
-
189
- const lower = msg.toLowerCase();
190
- if (lower.startsWith('add') || lower.startsWith('feat')) {
191
- added.push(entry);
192
- } else if (lower.startsWith('fix')) {
193
- fixed.push(entry);
194
- } else {
195
- changed.push(entry);
196
- }
197
- });
198
-
199
- if (added.length > 0) {
200
- notes += `### Added\n${added.join('\n')}\n\n`;
201
- }
202
- if (fixed.length > 0) {
203
- notes += `### Fixed\n${fixed.join('\n')}\n\n`;
204
- }
205
- if (changed.length > 0) {
206
- notes += `### Changed\n${changed.join('\n')}\n\n`;
207
- }
208
-
209
- notes += `**Full Changelog:** https://github.com/${repo.owner}/${repo.repo}/compare/${prevTag}...${newTag}\n`;
210
- } else {
211
- notes += `Initial release.\n`;
212
- }
213
-
159
+ // The changelog (## What's Changed + Full Changelog compare link) is
160
+ // appended automatically by generate_release_notes on the release step.
214
161
  return notes;
215
162
  result-encoding: string
216
163
 
@@ -231,6 +178,7 @@ jobs:
231
178
  tag_name: ${{ needs.validate.outputs.tag }}
232
179
  name: Release ${{ inputs.version }}
233
180
  body: ${{ steps.notes.outputs.result }}
181
+ generate_release_notes: true
234
182
  draft: false
235
183
  prerelease: ${{ inputs.prerelease }}
236
184
  files: |
@@ -249,7 +197,7 @@ jobs:
249
197
  url: https://pypi.org/project/fiberpath/
250
198
  steps:
251
199
  - name: Checkout repository
252
- uses: actions/checkout@v6
200
+ uses: actions/checkout@v7
253
201
 
254
202
  - name: Setup Python environment
255
203
  uses: ./.github/actions/setup-python
@@ -154,12 +154,6 @@ venv.bak/
154
154
  # Rope project settings
155
155
  .ropeproject
156
156
 
157
- # mkdocs documentation
158
- /site
159
-
160
- # Generated GUI documentation (synced from fiberpath_gui/docs/)
161
- docs/gui/
162
-
163
157
  # mypy
164
158
  .mypy_cache/
165
159
  .dmypy.json
@@ -8,6 +8,77 @@ The format is based on Keep a Changelog, and this project follows semantic versi
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.7.3] - 2026-06-25
12
+
13
+ ### Changed
14
+
15
+ - **Project moved to the [`fiberpath` GitHub organization](https://github.com/fiberpath).** The repository, issue tracker, and PyPI trusted publisher now live under `fiberpath/fiberpath`. `pip install fiberpath` is unchanged.
16
+ - Documentation now lives at **[fiberpath.org](https://fiberpath.org)** (FiberPath docs at `fiberpath.org/fiberpath`), built and published from the `fiberpath/fiberpath.github.io` hub. This repository now contains only docs content under `docs/`; the MkDocs configuration, site assembly, and publishing moved to the hub, and docs are validated on every PR via the org's shared `docs-validate` reusable workflow.
17
+ - The required `CI Check` status now runs on every pull request (no path filter) so it always reports and never leaves a PR stuck pending; an inner change-detection job still gates the heavy backend/GUI/docs jobs by path.
18
+ - Release notes are now produced by GitHub-native release-note generation instead of `git describe`, fixing the "Initial release." text that appeared on prior releases.
19
+
20
+ ### Fixed
21
+
22
+ - Unified helical-layer defaults via a shared `HELICAL_DEFAULTS` constant so the CLI, API, and GUI agree on the same values.
23
+
24
+ ### Removed
25
+
26
+ - Retired `TODO.md` in favor of tracked GitHub issues.
27
+
28
+ ### Documentation
29
+
30
+ - Added a development roadmap and relocated the feature backlog under `docs/development/`.
31
+
32
+ ### Dependencies
33
+
34
+ - Migrated dependency automation from Dependabot to org-shared **Renovate** (preset `github>fiberpath/renovate-config`); Dependabot security alerts/updates remain enabled.
35
+ - GitHub Actions: `actions/setup-node` v6, `actions/cache` v6.
36
+ - npm: `@types/node` 26.0.1, `stylelint` 17.14.0.
37
+
38
+ ## [0.7.2] - 2026-06-24
39
+
40
+ ### Security
41
+
42
+ - Hardened API path policy (`enforce_input_path_policy`) to reject absolute paths (POSIX `/`, Windows drive `C:\`, UNC `\\`), NUL bytes, `..` traversal segments, and empty/whitespace inputs with 400 before any filesystem access. Resolved CodeQL alert #9 ("Uncontrolled data used in path expression").
43
+ - Patched `starlette` CVE-2026-48710 (BadHost) by upgrading to a fixed release.
44
+ - Cleared the GUI dev-tree advisories `js-yaml` (GHSA-h67p-54hq-rp68, merge-key DoS → 4.2.0) and `undici` (GHSA-vmh5-mc38-953g and related → 7.28.0). Both are dev-only; the shipped application is unaffected.
45
+ - Bumped `rand` to 0.8.6 (GHSA-cq8v-f236-94qc). A residual, build-time-only `rand` 0.7.3 is pinned upstream in the Tauri toolchain with no available fix and is tracked in `TODO.md`.
46
+
47
+ ### Changed
48
+
49
+ - API file endpoints now require relative paths; the configured `FIBERPATH_API_ALLOWED_ROOTS` controls which directories they resolve against.
50
+ - Rebuilt user-supplied paths from validated components (`Path(*parts)`) instead of passing raw input to `Path()`, breaking the taint chain for static analysis.
51
+ - API plan/simulate routes map core-engine input errors (`PlanningError`, `SimulationError`) to HTTP 400 via centralized exception handlers instead of surfacing them as 500s, and `/stream` caps the G-code payload at 10 MB.
52
+ - Routed streaming `[DEBUG]`/`[ERROR]` output through the `logging` module instead of `print(..., file=sys.stderr)`, so a normal run is quiet by default while the stdout JSON protocol is unchanged.
53
+ - Upgraded Tauri to 2.11 (Cargo + npm aligned) and refreshed CI actions.
54
+
55
+ ### Fixed
56
+
57
+ - `MarlinStreamer` transport guards now raise `StreamError` instead of `assert`, so they behave identically under `python -O` rather than degrading to a `None` dereference.
58
+ - Tauri `plot_definition`, `plot_preview`, and `validate_wind_definition` no longer leak temporary `.wind`/`.gcode`/`.png` files on error paths; an RAII guard removes them on every exit.
59
+
60
+ ### Removed
61
+
62
+ - Removed the unused `fiberpath/geometry/` stub module (dead code advertising non-cylindrical capability that does not exist; the roadmap is documented instead).
63
+ - Removed dead branches in `planning/layer_strategies.py` (a no-op `build_layer_summary` conditional and an unreachable circuit-divisibility guard superseded by upstream validation).
64
+
65
+ ### Added
66
+
67
+ - `tests/api/test_path_policy.py` — 18 dedicated tests covering all rejected input classes (NUL bytes, POSIX absolute, Windows drive/UNC, `..` traversal with forward and backslash separators, empty/whitespace, absolute-inside-root) and accepted cases (bare filename, nested relative, multiple roots, single-dot normalisation).
68
+ - Integration-level rejection tests in `test_plan_route.py` and `test_simulate_route.py` for absolute-path and traversal inputs.
69
+ - Tests for API error-to-4xx mapping, `MarlinStreamer` transport guards (including a `python -O` subprocess check), streaming logging staying quiet by default, and the Tauri temp-file cleanup guard.
70
+
71
+ ### Documentation
72
+
73
+ - Aligned the README and architecture docs with the implemented scope (cylindrical mandrels; hoop/helical/skip layers), framed geodesic/curved-surface support as roadmap, and removed the stale `examples/complex_surface/` placeholder.
74
+
75
+ ### Dependencies
76
+
77
+ - Tooling/CI: `astral-sh/setup-uv` v8.2.0 (Node 24), `codecov/codecov-action` v7, `actions/checkout` v7.
78
+ - Python (uv): `starlette` 1.3.1, `urllib3` 2.7.0, `idna` 3.15, `pymdown-extensions` 10.21.3.
79
+ - npm: `@types/node` 26, `lucide-react`, `fast-uri` 3.1.2, plus the npm prod and dev minor-patch dependency groups.
80
+ - Cargo: the cargo minor-patch dependency groups.
81
+
11
82
  ## [0.7.1] - 2026-04-16
12
83
 
13
84
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fiberpath
3
- Version: 0.7.1
3
+ Version: 0.7.3
4
4
  Summary: Modern filament winding planner, simulator, and G-code toolkit.
5
5
  Author: Cameron K. Brooks
6
6
  License: GNU AFFERO GENERAL PUBLIC LICENSE
@@ -680,6 +680,7 @@ Requires-Dist: rich>=13.7
680
680
  Requires-Dist: typer>=0.12
681
681
  Provides-Extra: api
682
682
  Requires-Dist: fastapi>=0.110; extra == 'api'
683
+ Requires-Dist: starlette>=1.0.1; extra == 'api'
683
684
  Requires-Dist: uvicorn[standard]>=0.24; extra == 'api'
684
685
  Provides-Extra: cli
685
686
  Requires-Dist: rich>=13.7; extra == 'cli'
@@ -693,10 +694,6 @@ Requires-Dist: pytest-cov>=4.1; extra == 'dev'
693
694
  Requires-Dist: pytest>=8.2; extra == 'dev'
694
695
  Requires-Dist: ruff>=0.7; extra == 'dev'
695
696
  Requires-Dist: types-pyserial>=3.5; extra == 'dev'
696
- Provides-Extra: docs
697
- Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
698
- Requires-Dist: mkdocs>=1.5; extra == 'docs'
699
- Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
700
697
  Provides-Extra: plot
701
698
  Requires-Dist: matplotlib>=3.8; extra == 'plot'
702
699
  Requires-Dist: plotly>=5.22; extra == 'plot'
@@ -708,18 +705,18 @@ Description-Content-Type: text/markdown
708
705
 
709
706
  **Plan, simulate, and manufacture composite parts with precision fiber winding.**
710
707
 
711
- [![Version](https://img.shields.io/badge/version-0.7.0-4c7284)](https://github.com/CameronBrooks11/fiberpath/releases)
708
+ [![Version](https://img.shields.io/badge/version-0.7.3-4c7284)](https://github.com/fiberpath/fiberpath/releases)
712
709
  [![License: AGPL-3.0](https://img.shields.io/badge/License-AGPL--3.0-00695C.svg)](LICENSE)
713
- [![Backend CI](https://img.shields.io/github/actions/workflow/status/CameronBrooks11/fiberpath/backend-ci.yml?branch=main&label=Backend%20CI&logo=python&logoColor=white)](https://github.com/CameronBrooks11/fiberpath/actions/workflows/backend-ci.yml)
714
- [![GUI CI](https://img.shields.io/github/actions/workflow/status/CameronBrooks11/fiberpath/gui-ci.yml?branch=main&label=GUI%20CI&logo=react&logoColor=white)](https://github.com/CameronBrooks11/fiberpath/actions/workflows/gui-ci.yml)
715
- [![Docs](https://img.shields.io/github/actions/workflow/status/CameronBrooks11/fiberpath/docs-deploy.yml?branch=main&label=Docs&logo=githubpages&logoColor=white)](https://cameronbrooks11.github.io/fiberpath)
710
+ [![Backend CI](https://img.shields.io/github/actions/workflow/status/fiberpath/fiberpath/backend-ci.yml?branch=main&label=Backend%20CI&logo=python&logoColor=white)](https://github.com/fiberpath/fiberpath/actions/workflows/backend-ci.yml)
711
+ [![GUI CI](https://img.shields.io/github/actions/workflow/status/fiberpath/fiberpath/gui-ci.yml?branch=main&label=GUI%20CI&logo=react&logoColor=white)](https://github.com/fiberpath/fiberpath/actions/workflows/gui-ci.yml)
712
+ [![Docs](https://img.shields.io/github/actions/workflow/status/fiberpath/fiberpath.github.io/deploy.yml?branch=main&label=Docs&logo=githubpages&logoColor=white)](https://fiberpath.org/fiberpath)
716
713
 
717
714
  ![Python](https://img.shields.io/badge/Python-3.11+-3776AB?logo=python&logoColor=white)
718
715
  ![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-3178C6?logo=typescript&logoColor=white)
719
716
  ![React](https://img.shields.io/badge/React-19+-61DAFB?logo=react&logoColor=black)
720
717
  ![Tauri](https://img.shields.io/badge/Tauri-2.0-FFC131?logo=tauri&logoColor=white)
721
718
 
722
- [Download](https://github.com/CameronBrooks11/fiberpath/releases/latest) · [Documentation](https://cameronbrooks11.github.io/fiberpath) · [Examples](examples/)
719
+ [Download](https://github.com/fiberpath/fiberpath/releases/latest) · [Documentation](https://fiberpath.org/fiberpath) · [Examples](examples/)
723
720
 
724
721
  </div>
725
722
 
@@ -729,12 +726,12 @@ Description-Content-Type: text/markdown
729
726
 
730
727
  FiberPath automates the complex process of **filament winding**—wrapping fiber-reinforced composites around mandrels to create lightweight, high-strength cylindrical parts like pressure vessels, pipes, and aerospace structures.
731
728
 
732
- Design multi-layer winding patterns in a visual interface, simulate the full manufacturing process, and stream G-code directly to Marlin-based hardware. FiberPath handles the mathematics of geodesic paths, fiber tension calculations, and machine kinematics so you can focus on part design.
729
+ Design multi-layer winding patterns in a visual interface, simulate the full manufacturing process, and stream G-code directly to Marlin-based hardware. FiberPath handles the winding mathematics hoop and helical path generation, tow coverage, and machine kinematics for cylindrical mandrels — so you can focus on part design.
733
730
 
734
731
  ### Features
735
732
 
736
733
  - **Visual Layer Editor** – Design winding patterns with live preview
737
- - **Geodesic Path Planning** – Automatic computation of stable fiber trajectories
734
+ - **Winding Path Planning** – Automatic hoop, helical, and skip pattern generation for cylindrical mandrels
738
735
  - **Hardware Simulation** – Validate motion before manufacturing
739
736
  - **Direct Machine Control** – Stream G-code to Marlin controllers with pause/resume
740
737
  - **XAB-Native Axis Output** – Standardized rotational-axis output with clear logical axis mapping
@@ -742,11 +739,13 @@ Design multi-layer winding patterns in a visual interface, simulate the full man
742
739
  - **Command-Line Tools** – Scriptable workflows for automation and CI/CD
743
740
  - **Comprehensive Documentation** – Architecture guides, examples, and API reference
744
741
 
742
+ > **Scope & roadmap:** FiberPath currently plans **cylindrical mandrels** with hoop, helical, and skip layers. Non-cylindrical (geodesic) surface support — including tapered and custom mandrels — is planned but not yet implemented.
743
+
745
744
  ## Quick Start
746
745
 
747
746
  ### Option 1: Desktop GUI (Recommended)
748
747
 
749
- Download the installer for your platform from the [latest release](https://github.com/CameronBrooks11/fiberpath/releases/latest):
748
+ Download the installer for your platform from the [latest release](https://github.com/fiberpath/fiberpath/releases/latest):
750
749
 
751
750
  - **Windows**: `.msi` or `.exe` installer
752
751
  - **macOS**: `.dmg` disk image
@@ -777,7 +776,7 @@ The `plot` command creates a 2D unwrapped visualization of the toolpath for quic
777
776
 
778
777
  ### Desktop Application (Recommended)
779
778
 
780
- 📦 **Download:** [github.com/CameronBrooks11/fiberpath/releases/latest](https://github.com/CameronBrooks11/fiberpath/releases/latest)
779
+ 📦 **Download:** [github.com/fiberpath/fiberpath/releases/latest](https://github.com/fiberpath/fiberpath/releases/latest)
781
780
 
782
781
  **No Python installation required**—the GUI is a fully self-contained native application with the FiberPath backend bundled inside. Just download, install, and run.
783
782
 
@@ -804,7 +803,7 @@ pip install fiberpath[dev] # Development tools
804
803
  **Development Install:**
805
804
 
806
805
  ```sh
807
- git clone https://github.com/CameronBrooks11/fiberpath.git
806
+ git clone https://github.com/fiberpath/fiberpath.git
808
807
  cd fiberpath
809
808
  uv pip install -e .[dev,cli,api]
810
809
  pytest
@@ -902,10 +901,9 @@ FiberPath consists of four coordinated components:
902
901
 
903
902
  ┌─────────────────────────────────────────────────┐
904
903
  │ Core Engine (Python) │
905
- │ • Geodesic path planning
904
+ │ • Winding path planning (hoop/helical/skip)
906
905
  │ • Layer strategies │
907
906
  │ • G-code generation │
908
- │ • Geometry utilities │
909
907
  └─────────────────────────────────────────────────┘
910
908
 
911
909
  │ imports
@@ -924,7 +922,7 @@ FiberPath consists of four coordinated components:
924
922
  - **Core is deterministic** and thoroughly tested
925
923
  - **Modular architecture** allows using components independently
926
924
 
927
- See [Architecture Documentation](https://cameronbrooks11.github.io/fiberpath/architecture/overview/) for detailed design rationale.
925
+ See [Architecture Documentation](https://fiberpath.org/fiberpath/architecture/overview/) for detailed design rationale.
928
926
 
929
927
  ## Axis Configuration
930
928
 
@@ -938,14 +936,14 @@ Legacy XYZ programs should be re-generated under current versions. Simulation an
938
936
 
939
937
  ## Documentation
940
938
 
941
- Comprehensive documentation is available at [cameronbrooks11.github.io/fiberpath](https://cameronbrooks11.github.io/fiberpath):
939
+ Comprehensive documentation is available at [fiberpath.org/fiberpath](https://fiberpath.org/fiberpath):
942
940
 
943
- - **[Getting Started Guide](https://cameronbrooks11.github.io/fiberpath/getting-started/)** – Installation and first steps
944
- - **[Architecture Overview](https://cameronbrooks11.github.io/fiberpath/architecture/overview/)** – System design and components
945
- - **[Usage Guides](https://cameronbrooks11.github.io/fiberpath/guides/visualization/)** – Visualization, streaming, WIND format
946
- - **[API Reference](https://cameronbrooks11.github.io/fiberpath/reference/api/)** – Core functions and CLI commands
947
- - **[GUI Documentation](https://cameronbrooks11.github.io/fiberpath/gui/overview/)** – Desktop application architecture
948
- - **[Development Guide](https://cameronbrooks11.github.io/fiberpath/development/contributing/)** – Contributing, tooling, release process
941
+ - **[Getting Started Guide](https://fiberpath.org/fiberpath/getting-started/)** – Installation and first steps
942
+ - **[Architecture Overview](https://fiberpath.org/fiberpath/architecture/overview/)** – System design and components
943
+ - **[Usage Guides](https://fiberpath.org/fiberpath/guides/visualization/)** – Visualization, streaming, WIND format
944
+ - **[API Reference](https://fiberpath.org/fiberpath/reference/api/)** – Core functions and CLI commands
945
+ - **[GUI Documentation](https://fiberpath.org/fiberpath/gui/overview/)** – Desktop application architecture
946
+ - **[Development Guide](https://fiberpath.org/fiberpath/development/contributing/)** – Contributing, tooling, release process
949
947
 
950
948
  ## Contributing
951
949
 
@@ -953,14 +951,14 @@ Contributions are welcome! FiberPath is actively developed and maintained.
953
951
 
954
952
  **Before contributing:**
955
953
 
956
- 1. Read the [Contributing Guide](https://cameronbrooks11.github.io/fiberpath/development/contributing/)
957
- 2. Check existing [issues](https://github.com/CameronBrooks11/fiberpath/issues) and [pull requests](https://github.com/CameronBrooks11/fiberpath/pulls)
954
+ 1. Read the [Contributing Guide](https://fiberpath.org/fiberpath/development/contributing/)
955
+ 2. Check existing [issues](https://github.com/fiberpath/fiberpath/issues) and [pull requests](https://github.com/fiberpath/fiberpath/pulls)
958
956
  3. Open an issue to discuss major changes before implementing
959
957
 
960
958
  **Development setup:**
961
959
 
962
960
  ```sh
963
- git clone https://github.com/CameronBrooks11/fiberpath.git
961
+ git clone https://github.com/fiberpath/fiberpath.git
964
962
  cd fiberpath
965
963
  uv pip install -e .[dev,cli,api]
966
964
  pytest
@@ -977,7 +975,7 @@ npm test
977
975
  - All new features require tests and documentation
978
976
  - Commit messages use conventional commits format
979
977
 
980
- See [Development Documentation](https://cameronbrooks11.github.io/fiberpath/development/) for tooling, CI/CD, and release process details.
978
+ See [Development Documentation](https://fiberpath.org/fiberpath/development/) for tooling, CI/CD, and release process details.
981
979
 
982
980
  ## License
983
981
 
@@ -993,6 +991,6 @@ See [LICENSE](LICENSE) for full terms.
993
991
 
994
992
  ---
995
993
 
996
- **Questions?** Open an [issue](https://github.com/CameronBrooks11/fiberpath/issues) or check the [documentation](https://cameronbrooks11.github.io/fiberpath).
994
+ **Questions?** Open an [issue](https://github.com/fiberpath/fiberpath/issues) or check the [documentation](https://fiberpath.org/fiberpath).
997
995
 
998
- **Found a bug?** Report it on [GitHub Issues](https://github.com/CameronBrooks11/fiberpath/issues/new) with steps to reproduce.
996
+ **Found a bug?** Report it on [GitHub Issues](https://github.com/fiberpath/fiberpath/issues/new) with steps to reproduce.