fiberpath 0.7.1__tar.gz → 0.7.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/actions/setup-node/action.yml +1 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/actions/setup-python/action.yml +2 -2
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/actions/setup-rust/action.yml +1 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/backend-ci.yml +3 -3
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/ci-check.yml +3 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/dependency-audit.yml +3 -3
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/docs-ci.yml +1 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/docs-deploy.yml +1 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/gui-ci.yml +3 -3
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/gui-e2e-smoke.yml +1 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/gui-packaging.yml +2 -2
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/workflows/release.yml +4 -4
- {fiberpath-0.7.1 → fiberpath-0.7.2}/CHANGELOG.md +44 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/PKG-INFO +8 -6
- {fiberpath-0.7.1 → fiberpath-0.7.2}/README.md +6 -5
- {fiberpath-0.7.1 → fiberpath-0.7.2}/TODO.md +2 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/architecture/overview.md +1 -2
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/guides/wind-format.md +2 -2
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/index.md +8 -8
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/execution/marlin.py +30 -65
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/layer_strategies.py +1 -12
- fiberpath-0.7.2/fiberpath_api/main.py +34 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/path_policy.py +30 -10
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/routes/stream.py +5 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/interactive.py +21 -42
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/package-lock.json +406 -369
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/package.json +18 -18
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/Cargo.lock +208 -84
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/Cargo.toml +2 -2
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/src/main.rs +94 -23
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/tauri.conf.json +1 -1
- {fiberpath-0.7.1 → fiberpath-0.7.2}/pyproject.toml +2 -2
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/freeze_cli.py +0 -4
- fiberpath-0.7.2/tests/api/test_path_policy.py +247 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/api/test_plan_route.py +49 -8
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/api/test_simulate_route.py +27 -9
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/api/test_stream_route_errors.py +11 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/execution/test_marlin_streamer.py +69 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/uv.lock +15 -13
- fiberpath-0.7.1/examples/complex_surface/README.md +0 -3
- fiberpath-0.7.1/fiberpath/geometry/__init__.py +0 -13
- fiberpath-0.7.1/fiberpath/geometry/curves.py +0 -16
- fiberpath-0.7.1/fiberpath/geometry/intersections.py +0 -23
- fiberpath-0.7.1/fiberpath/geometry/surfaces.py +0 -17
- fiberpath-0.7.1/fiberpath_api/main.py +0 -21
- fiberpath-0.7.1/tests/geometry/test_surfaces.py +0 -6
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.gitattributes +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.github/dependabot.yml +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.gitignore +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.pre-commit-config.yaml +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.vscode/extensions.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.vscode/launch.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/.vscode/settings.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/LICENSE +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/architecture/axis-system.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/development/ci-cd.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/development/contributing.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/development/dependency-policy.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/development/packaging.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/development/release-process.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/development/tooling.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/feature-backlog.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/getting-started.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/guides/axis-mapping.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/guides/marlin-streaming.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/guides/visualization.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/reference/api.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/reference/concepts.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/reference/planner-math.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/troubleshooting.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/docs/vm-testing.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/README.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/multi_layer/README.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/multi_layer/input.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/AvBay(470mm)single.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/AvBay(470mm)triple.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/AvBay(470mm)triple.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/CarbonMotorTube(1295mm).gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/CarbonMotorTube(1295mm).wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/MainChute(585mm).gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/rocketry/MainChute(585mm).wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/simple_cylinder/README.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/simple_cylinder/input.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/sized_simple_cylinder/README.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/examples/sized_simple_cylinder/input.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/config/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/config/schemas.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/config/validator.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/execution/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/gcode/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/gcode/dialects.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/gcode/generator.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/math_utils.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/calculations.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/exceptions.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/helpers.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/machine.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/planner.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/planning/validators.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/simulation/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/simulation/simulator.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/visualization/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/visualization/export_json.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath/visualization/plotter.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/package-lock.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/routes/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/routes/plan.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/routes/simulate.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/routes/validate.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_api/schemas.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/__main__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/main.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/output.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/plan.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/plot.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/simulate.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/stream.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_cli/validate.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/.gitignore +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/.nvmrc +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/.stylelintrc.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/README.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/bundled-cli/.gitkeep +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/architecture/cli-integration.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/architecture/state-management.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/architecture/streaming-state.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/architecture/tech-stack.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/development.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/guides/performance.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/guides/schemas.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/guides/styling.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/overview.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/reference/type-safety.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/docs/testing.md +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/generate-types.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/index.html +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/perf/bundle-baseline.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/schemas/wind-schema.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/scripts/check-bundle-budget.mjs +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/scripts/check-css-vars.mjs +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/App.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/CliHealthWarning.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/ErrorBoundary.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/ErrorBoundary.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/ErrorNotificationToast.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/MenuBar.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StatusBar.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StatusBar.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/ConnectionSection.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/ConnectionSection.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/ConnectionSection.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/FileStreamingSection.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/KeyboardShortcuts.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/ManualControlSection.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/ManualControlSection.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/ManualControlSection.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamControls.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamControls.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamLog.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamLog.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamLog.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamTab.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/StreamTab/StreamTab.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/TabBar.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/TabBar.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/Toast/ToastContainer.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/Toast/ToastContainer.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/Toast/ToastContainer.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/canvas/CanvasControls.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/canvas/CanvasControls.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/canvas/CenterCanvas.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/canvas/LayerScrubber.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/canvas/LayerScrubber.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/canvas/VisualizationCanvas.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/AboutDialog.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/BaseDialog.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/BaseDialog.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/CliUnavailableDialog.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/DiagnosticsDialog.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/dialogs/ExportConfirmationDialog.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/HelicalLayerEditor.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/HelicalLayerEditor.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/HoopLayerEditor.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/HoopLayerEditor.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/LayerNumericField.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/SkipLayerEditor.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/editors/SkipLayerEditor.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/forms/MachineSettingsForm.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/forms/MachineSettingsForm.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/forms/MandrelForm.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/forms/MandrelForm.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/forms/TowForm.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/forms/TowForm.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/layers/LayerRow.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/layers/LayerRow.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/layers/LayerStack.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/layers/LayerStack.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/panels/BottomPanel.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/panels/LeftPanel.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/panels/RightPanel.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/panels/panels.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/tabs/MainTab.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/components/tabs/MainTab.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/contexts/CliHealthContext.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/contexts/CliHealthContext.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/contexts/ErrorNotificationContext.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/canvas/usePreviewGeneration.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/canvas/usePreviewGeneration.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/stream/useConnectionActions.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/stream/useConnectionActions.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/stream/useManualCommandActions.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/stream/useManualCommandActions.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/stream/useStreamingActions.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/stream/useStreamingActions.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useCliHealth.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useCliHealth.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useDebouncedValue.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useDebouncedValue.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useFileOperations.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useFileOperations.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useKeyboardShortcuts.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useKeyboardShortcuts.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useMenubarInteractions.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useMenubarInteractions.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useStreamEvents.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useTheme.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/hooks/useTheme.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/layouts/MainLayout.test.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/layouts/MainLayout.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/commands.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/commands.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/constants.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/fileOperations.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/fileOperations.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/helicalValidation.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/helicalValidation.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/marlin-api.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/marlin-api.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/menuConfig.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/menuConfig.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/numericFields.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/numericFields.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/recentFiles.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/recentFiles.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/retry.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/retry.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/schemas.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/schemas.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/streamFeedback.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/streamFeedback.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/tauri-types.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/toastMessages.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/validation.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/validation.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/validationErrors.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/lib/validationErrors.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/main.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/stores/projectStore.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/stores/projectStore.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/stores/streamStore.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/stores/toastStore.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/stores/toastStore.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/buttons.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/canvas.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/dialogs.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/forms.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/index.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/layout.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/notifications.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/panels.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/reset.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/tabs.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/tokens.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/styles/typography.css +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/tests/integration/streamLifecycle.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/tests/integration/workflows.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/tests/renderWithProviders.tsx +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/tests/setup.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/tests/storeUtils.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/tests/tauriMocks.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/types/components.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/types/converters.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/types/converters.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/types/project.test.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/types/project.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src/types/wind-schema.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/build.rs +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/capabilities/default.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/icons/128x128.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/icons/256x256.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/icons/32x32.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/icons/512x512.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/icons/icon.ico +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/src/cli_path.rs +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/src/cli_process.rs +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/src-tauri/src/marlin.rs +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/tsconfig.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/tsconfig.node.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/vite.config.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/fiberpath_gui/vitest.config.ts +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/mkdocs.yml +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/package-lock.json +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/e2e-check-artifacts.ps1 +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/e2e-check-artifacts.sh +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/e2e-cli-smoke.ps1 +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/e2e-cli-smoke.sh +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/extract-package-runtime.ps1 +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/extract-package-runtime.sh +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/find-bundled-cli.ps1 +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/ci/find-bundled-cli.sh +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/export_schema.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/generate_schema.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/scripts/sync_gui_docs.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/setup.cfg +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/api/test_stream_route.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cli/test_axis_format.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cli/test_cli_json.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cli/test_cli_smoke.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cli/test_stream_command.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/config/__init__.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/config/test_validator.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/inputs/helical-balanced.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/inputs/simple-hoop.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/inputs/skip-bias.wind +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/outputs/helical-balanced/output.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/outputs/helical-balanced/preview.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/outputs/simple-hoop/output.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/outputs/simple-hoop/preview.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/outputs/skip-bias/output.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/cyclone_reference_runs/outputs/skip-bias/preview.png +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/gcode/test_dialects.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/gcode/test_generator.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/_generate_fixtures.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/fixtures/helical_layer.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/fixtures/hoop_layer.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/fixtures/hoop_only_program.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/fixtures/skip_layer.gcode +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/test_axis_mapping.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/test_helpers_machine.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/test_layer_strategies.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/test_planner_smoke.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/planning/test_validators.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/simulation/test_simulator.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/simulation/test_simulator_axis_detection.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/tauri/test_marlin_integration.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/tauri/test_port_discovery.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/visualization/test_export_json.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/visualization/test_plotter.py +0 -0
- {fiberpath-0.7.1 → fiberpath-0.7.2}/tests/visualization/test_plotter_axis_detection.py +0 -0
|
@@ -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@
|
|
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@
|
|
33
|
+
uses: actions/cache@v5
|
|
34
34
|
with:
|
|
35
35
|
path: .venv
|
|
36
36
|
key: venv-${{ runner.os }}-${{ inputs.python-version }}-${{ hashFiles('pyproject.toml') }}-${{ inputs.cache-key-suffix }}
|
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
runs-on: ubuntu-latest
|
|
14
14
|
steps:
|
|
15
15
|
- name: Checkout repository
|
|
16
|
-
uses: actions/checkout@
|
|
16
|
+
uses: actions/checkout@v7
|
|
17
17
|
|
|
18
18
|
- name: Setup Python environment
|
|
19
19
|
uses: ./.github/actions/setup-python
|
|
@@ -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@
|
|
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@
|
|
55
|
+
uses: codecov/codecov-action@v7
|
|
56
56
|
with:
|
|
57
57
|
files: ./coverage.xml
|
|
58
58
|
flags: backend
|
|
@@ -15,6 +15,7 @@ on:
|
|
|
15
15
|
- "setup.cfg"
|
|
16
16
|
- "mkdocs.yml"
|
|
17
17
|
- "README.md"
|
|
18
|
+
- "CHANGELOG.md"
|
|
18
19
|
- "scripts/**"
|
|
19
20
|
- ".github/workflows/**"
|
|
20
21
|
- ".github/actions/**"
|
|
@@ -32,6 +33,7 @@ on:
|
|
|
32
33
|
- "setup.cfg"
|
|
33
34
|
- "mkdocs.yml"
|
|
34
35
|
- "README.md"
|
|
36
|
+
- "CHANGELOG.md"
|
|
35
37
|
- "scripts/**"
|
|
36
38
|
- ".github/workflows/**"
|
|
37
39
|
- ".github/actions/**"
|
|
@@ -50,7 +52,7 @@ jobs:
|
|
|
50
52
|
docs: ${{ steps.filter.outputs.docs }}
|
|
51
53
|
steps:
|
|
52
54
|
- name: Checkout repository
|
|
53
|
-
uses: actions/checkout@
|
|
55
|
+
uses: actions/checkout@v7
|
|
54
56
|
|
|
55
57
|
- name: Detect changed areas
|
|
56
58
|
id: filter
|
|
@@ -18,7 +18,7 @@ jobs:
|
|
|
18
18
|
runs-on: ubuntu-latest
|
|
19
19
|
steps:
|
|
20
20
|
- name: Checkout repository
|
|
21
|
-
uses: actions/checkout@
|
|
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@
|
|
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@
|
|
72
|
+
uses: actions/checkout@v7
|
|
73
73
|
|
|
74
74
|
- name: Setup Rust environment
|
|
75
75
|
uses: ./.github/actions/setup-rust
|
|
@@ -16,7 +16,7 @@ jobs:
|
|
|
16
16
|
working-directory: fiberpath_gui
|
|
17
17
|
steps:
|
|
18
18
|
- name: Checkout repository
|
|
19
|
-
uses: actions/checkout@
|
|
19
|
+
uses: actions/checkout@v7
|
|
20
20
|
|
|
21
21
|
- name: Setup Node.js environment
|
|
22
22
|
uses: ./.github/actions/setup-node
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
working-directory: fiberpath_gui
|
|
45
45
|
steps:
|
|
46
46
|
- name: Checkout repository
|
|
47
|
-
uses: actions/checkout@
|
|
47
|
+
uses: actions/checkout@v7
|
|
48
48
|
|
|
49
49
|
- name: Setup Node.js environment
|
|
50
50
|
uses: ./.github/actions/setup-node
|
|
@@ -56,7 +56,7 @@ jobs:
|
|
|
56
56
|
run: npm run test:coverage
|
|
57
57
|
|
|
58
58
|
- name: Upload coverage
|
|
59
|
-
uses: codecov/codecov-action@
|
|
59
|
+
uses: codecov/codecov-action@v7
|
|
60
60
|
with:
|
|
61
61
|
files: ./fiberpath_gui/coverage/lcov.info
|
|
62
62
|
flags: gui
|
|
@@ -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@
|
|
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@
|
|
133
|
+
uses: actions/checkout@v7
|
|
134
134
|
|
|
135
135
|
- name: Download frozen CLI artifact
|
|
136
136
|
uses: actions/download-artifact@v8
|
|
@@ -25,7 +25,7 @@ jobs:
|
|
|
25
25
|
tag: ${{ steps.check.outputs.tag }}
|
|
26
26
|
steps:
|
|
27
27
|
- name: Checkout repository
|
|
28
|
-
uses: actions/checkout@
|
|
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@
|
|
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@
|
|
112
|
+
uses: actions/checkout@v7
|
|
113
113
|
|
|
114
114
|
- name: Download SBOM artifacts
|
|
115
115
|
uses: actions/download-artifact@v8
|
|
@@ -249,7 +249,7 @@ jobs:
|
|
|
249
249
|
url: https://pypi.org/project/fiberpath/
|
|
250
250
|
steps:
|
|
251
251
|
- name: Checkout repository
|
|
252
|
-
uses: actions/checkout@
|
|
252
|
+
uses: actions/checkout@v7
|
|
253
253
|
|
|
254
254
|
- name: Setup Python environment
|
|
255
255
|
uses: ./.github/actions/setup-python
|
|
@@ -8,6 +8,50 @@ The format is based on Keep a Changelog, and this project follows semantic versi
|
|
|
8
8
|
|
|
9
9
|
## [Unreleased]
|
|
10
10
|
|
|
11
|
+
## [0.7.2] - 2026-06-24
|
|
12
|
+
|
|
13
|
+
### Security
|
|
14
|
+
|
|
15
|
+
- 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").
|
|
16
|
+
- Patched `starlette` CVE-2026-48710 (BadHost) by upgrading to a fixed release.
|
|
17
|
+
- 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.
|
|
18
|
+
- 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`.
|
|
19
|
+
|
|
20
|
+
### Changed
|
|
21
|
+
|
|
22
|
+
- API file endpoints now require relative paths; the configured `FIBERPATH_API_ALLOWED_ROOTS` controls which directories they resolve against.
|
|
23
|
+
- Rebuilt user-supplied paths from validated components (`Path(*parts)`) instead of passing raw input to `Path()`, breaking the taint chain for static analysis.
|
|
24
|
+
- 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.
|
|
25
|
+
- 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.
|
|
26
|
+
- Upgraded Tauri to 2.11 (Cargo + npm aligned) and refreshed CI actions.
|
|
27
|
+
|
|
28
|
+
### Fixed
|
|
29
|
+
|
|
30
|
+
- `MarlinStreamer` transport guards now raise `StreamError` instead of `assert`, so they behave identically under `python -O` rather than degrading to a `None` dereference.
|
|
31
|
+
- 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.
|
|
32
|
+
|
|
33
|
+
### Removed
|
|
34
|
+
|
|
35
|
+
- Removed the unused `fiberpath/geometry/` stub module (dead code advertising non-cylindrical capability that does not exist; the roadmap is documented instead).
|
|
36
|
+
- 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).
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
|
|
40
|
+
- `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).
|
|
41
|
+
- Integration-level rejection tests in `test_plan_route.py` and `test_simulate_route.py` for absolute-path and traversal inputs.
|
|
42
|
+
- 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.
|
|
43
|
+
|
|
44
|
+
### Documentation
|
|
45
|
+
|
|
46
|
+
- 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.
|
|
47
|
+
|
|
48
|
+
### Dependencies
|
|
49
|
+
|
|
50
|
+
- Tooling/CI: `astral-sh/setup-uv` v8.2.0 (Node 24), `codecov/codecov-action` v7, `actions/checkout` v7.
|
|
51
|
+
- Python (uv): `starlette` 1.3.1, `urllib3` 2.7.0, `idna` 3.15, `pymdown-extensions` 10.21.3.
|
|
52
|
+
- npm: `@types/node` 26, `lucide-react`, `fast-uri` 3.1.2, plus the npm prod and dev minor-patch dependency groups.
|
|
53
|
+
- Cargo: the cargo minor-patch dependency groups.
|
|
54
|
+
|
|
11
55
|
## [0.7.1] - 2026-04-16
|
|
12
56
|
|
|
13
57
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fiberpath
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.2
|
|
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'
|
|
@@ -708,7 +709,7 @@ Description-Content-Type: text/markdown
|
|
|
708
709
|
|
|
709
710
|
**Plan, simulate, and manufacture composite parts with precision fiber winding.**
|
|
710
711
|
|
|
711
|
-
[](https://github.com/CameronBrooks11/fiberpath/releases)
|
|
712
713
|
[](LICENSE)
|
|
713
714
|
[](https://github.com/CameronBrooks11/fiberpath/actions/workflows/backend-ci.yml)
|
|
714
715
|
[](https://github.com/CameronBrooks11/fiberpath/actions/workflows/gui-ci.yml)
|
|
@@ -729,12 +730,12 @@ Description-Content-Type: text/markdown
|
|
|
729
730
|
|
|
730
731
|
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
732
|
|
|
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
|
|
733
|
+
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
734
|
|
|
734
735
|
### Features
|
|
735
736
|
|
|
736
737
|
- **Visual Layer Editor** – Design winding patterns with live preview
|
|
737
|
-
- **
|
|
738
|
+
- **Winding Path Planning** – Automatic hoop, helical, and skip pattern generation for cylindrical mandrels
|
|
738
739
|
- **Hardware Simulation** – Validate motion before manufacturing
|
|
739
740
|
- **Direct Machine Control** – Stream G-code to Marlin controllers with pause/resume
|
|
740
741
|
- **XAB-Native Axis Output** – Standardized rotational-axis output with clear logical axis mapping
|
|
@@ -742,6 +743,8 @@ Design multi-layer winding patterns in a visual interface, simulate the full man
|
|
|
742
743
|
- **Command-Line Tools** – Scriptable workflows for automation and CI/CD
|
|
743
744
|
- **Comprehensive Documentation** – Architecture guides, examples, and API reference
|
|
744
745
|
|
|
746
|
+
> **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.
|
|
747
|
+
|
|
745
748
|
## Quick Start
|
|
746
749
|
|
|
747
750
|
### Option 1: Desktop GUI (Recommended)
|
|
@@ -902,10 +905,9 @@ FiberPath consists of four coordinated components:
|
|
|
902
905
|
▼
|
|
903
906
|
┌─────────────────────────────────────────────────┐
|
|
904
907
|
│ Core Engine (Python) │
|
|
905
|
-
│ •
|
|
908
|
+
│ • Winding path planning (hoop/helical/skip) │
|
|
906
909
|
│ • Layer strategies │
|
|
907
910
|
│ • G-code generation │
|
|
908
|
-
│ • Geometry utilities │
|
|
909
911
|
└─────────────────────────────────────────────────┘
|
|
910
912
|
▲
|
|
911
913
|
│ imports
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
**Plan, simulate, and manufacture composite parts with precision fiber winding.**
|
|
6
6
|
|
|
7
|
-
[](https://github.com/CameronBrooks11/fiberpath/releases)
|
|
8
8
|
[](LICENSE)
|
|
9
9
|
[](https://github.com/CameronBrooks11/fiberpath/actions/workflows/backend-ci.yml)
|
|
10
10
|
[](https://github.com/CameronBrooks11/fiberpath/actions/workflows/gui-ci.yml)
|
|
@@ -25,12 +25,12 @@
|
|
|
25
25
|
|
|
26
26
|
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.
|
|
27
27
|
|
|
28
|
-
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
|
|
28
|
+
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.
|
|
29
29
|
|
|
30
30
|
### Features
|
|
31
31
|
|
|
32
32
|
- **Visual Layer Editor** – Design winding patterns with live preview
|
|
33
|
-
- **
|
|
33
|
+
- **Winding Path Planning** – Automatic hoop, helical, and skip pattern generation for cylindrical mandrels
|
|
34
34
|
- **Hardware Simulation** – Validate motion before manufacturing
|
|
35
35
|
- **Direct Machine Control** – Stream G-code to Marlin controllers with pause/resume
|
|
36
36
|
- **XAB-Native Axis Output** – Standardized rotational-axis output with clear logical axis mapping
|
|
@@ -38,6 +38,8 @@ Design multi-layer winding patterns in a visual interface, simulate the full man
|
|
|
38
38
|
- **Command-Line Tools** – Scriptable workflows for automation and CI/CD
|
|
39
39
|
- **Comprehensive Documentation** – Architecture guides, examples, and API reference
|
|
40
40
|
|
|
41
|
+
> **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.
|
|
42
|
+
|
|
41
43
|
## Quick Start
|
|
42
44
|
|
|
43
45
|
### Option 1: Desktop GUI (Recommended)
|
|
@@ -198,10 +200,9 @@ FiberPath consists of four coordinated components:
|
|
|
198
200
|
▼
|
|
199
201
|
┌─────────────────────────────────────────────────┐
|
|
200
202
|
│ Core Engine (Python) │
|
|
201
|
-
│ •
|
|
203
|
+
│ • Winding path planning (hoop/helical/skip) │
|
|
202
204
|
│ • Layer strategies │
|
|
203
205
|
│ • G-code generation │
|
|
204
|
-
│ • Geometry utilities │
|
|
205
206
|
└─────────────────────────────────────────────────┘
|
|
206
207
|
▲
|
|
207
208
|
│ imports
|
|
@@ -18,4 +18,6 @@
|
|
|
18
18
|
|
|
19
19
|
- [ ] Track Dependabot moderate alert #3 (GHSA-wrw7-89jp-8q8g / glib). Current Tauri GTK stack pins `glib` 0.18.x (`^0.18` via `gtk`), so patched `glib` 0.20.0 cannot be adopted yet. Do not block a release solely for this; re-check after upstream Tauri/GTK dependency line moves to non-vulnerable glib.
|
|
20
20
|
|
|
21
|
+
- [ ] Track Dependabot low alert (GHSA-cq8v-f236-94qc / `rand`). The `rand 0.8.x` instance was patched to 0.8.6; a residual `rand 0.7.3` remains, pinned via `phf_generator 0.8.0` (`^0.7`) in Tauri's `tauri-build` → `kuchikiki` → `selectors`/`cssparser` chain. It is a **build-time-only** dependency (CSS-parser codegen), not in the shipped runtime, and the advisory (runtime `rand::rng()` soundness) does not apply to it — effectively zero risk. No 0.7.x fix exists; re-check after the Tauri `tauri-utils`/`kuchikiki` dependency line moves off `phf 0.8`. Do not block a release for this.
|
|
22
|
+
|
|
21
23
|
- [ ] Manual cross-platform validation (waived for v0.6.0, required before v1.0 or first public release): Linux `.deb`/`.AppImage` (Ubuntu 22.04, Debian 12, Fedora 39) and macOS `.dmg` (Intel + Apple Silicon) install, bundled CLI discovery, full workflow (validate → plan → simulate → visualize), serial port, file ops, upgrade, and uninstall. See `planning/roadmap-v6.md` Phases 1 & 2 for the full checklist.
|
|
@@ -24,7 +24,7 @@ together and where to extend them.
|
|
|
24
24
|
└──────────────────────┘
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
- **Core Engine (`fiberpath/`)** – Immutable planners,
|
|
27
|
+
- **Core Engine (`fiberpath/`)** – Immutable planners, machine abstractions, and
|
|
28
28
|
G-code emitters. The modules are designed to run without side effects so they can be imported from both CLI and API layers.
|
|
29
29
|
- **Interface Layer** – `fiberpath_cli` hosts the Typer commands, while `fiberpath_api` turns the
|
|
30
30
|
same operations into REST endpoints. The desktop GUI wraps the CLI and communicates via Tauri IPC
|
|
@@ -35,7 +35,6 @@ together and where to extend them.
|
|
|
35
35
|
| Module | Responsibility | Notes |
|
|
36
36
|
| ---------------------- | -------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------ |
|
|
37
37
|
| `fiberpath.planning` | Parses `.wind` files, validates machine/layer constraints, produces command sequences. | `PlanOptions` governs verbosity and optional advanced dialect override. |
|
|
38
|
-
| `fiberpath.geometry` | Curve/surface math shared between planner and simulator. | Pure functions make it safe for reuse. |
|
|
39
38
|
| `fiberpath.gcode` | Dialects and writers for Marlin-style controllers. | Extend here when adding custom headers or commands. Axis mapping configured via `MarlinDialect`. |
|
|
40
39
|
| `fiberpath.simulation` | Time/distance estimations based on planned feed rates. | Feeds CLI `simulate` summaries. Axis-aware for proper rotational calculations. |
|
|
41
40
|
| `fiberpath.execution` | PySerial streaming, pause/resume, and progress tracking. | Used by CLI streaming and API `/stream`. |
|
|
@@ -178,7 +178,7 @@ A helical layer winds at a specified angle, creating a spiral pattern around the
|
|
|
178
178
|
|
|
179
179
|
- Pressure vessel cylindrical sections
|
|
180
180
|
- Angled reinforcement (±45° for shear resistance)
|
|
181
|
-
-
|
|
181
|
+
- Angled helical reinforcement patterns
|
|
182
182
|
|
|
183
183
|
### Skip Layer
|
|
184
184
|
|
|
@@ -202,7 +202,7 @@ A skip layer rotates the mandrel without winding, allowing for pattern repositio
|
|
|
202
202
|
|
|
203
203
|
- Pattern alignment between layers
|
|
204
204
|
- Creating intentional gaps
|
|
205
|
-
- Repositioning
|
|
205
|
+
- Repositioning between layers
|
|
206
206
|
|
|
207
207
|
## Validation Rules
|
|
208
208
|
|
|
@@ -36,7 +36,7 @@ hide:
|
|
|
36
36
|
|
|
37
37
|
---
|
|
38
38
|
|
|
39
|
-
**Latest Release:** [v0.7.
|
|
39
|
+
**Latest Release:** [v0.7.2](https://github.com/CameronBrooks11/fiberpath/releases/latest){ target=_blank }
|
|
40
40
|
|
|
41
41
|
- **Desktop GUI** – Windows, macOS, Linux installers (no Python required)
|
|
42
42
|
- **Python Package** – `pip install fiberpath`
|
|
@@ -44,18 +44,18 @@ hide:
|
|
|
44
44
|
|
|
45
45
|
[:octicons-arrow-right-24: Installation Guide](getting-started.md)
|
|
46
46
|
|
|
47
|
-
- :material-new-box:{ .lg .middle } **What's New in v0.7.
|
|
47
|
+
- :material-new-box:{ .lg .middle } **What's New in v0.7.2**
|
|
48
48
|
|
|
49
49
|
---
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
Code-quality, hardening, and dependency-refresh pass:
|
|
52
52
|
|
|
53
|
-
-
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
53
|
+
- API plan/simulate errors now return clear 4xx responses instead of 500s, and streaming diagnostics moved to the `logging` module
|
|
54
|
+
- Hardened Marlin streaming guards (`StreamError` instead of `assert`) and fixed temporary-file cleanup in the desktop backend
|
|
55
|
+
- Removed dead code (unused geometry module, redundant planner branches) and aligned docs with the cylindrical planning scope
|
|
56
|
+
- Security & dependency refresh: starlette BadHost CVE, js-yaml/undici/rand advisories, and Tauri 2.11
|
|
57
57
|
|
|
58
|
-
Builds on the v0.
|
|
58
|
+
Builds on the v0.7 baseline with reliability and maintainability fixes.
|
|
59
59
|
|
|
60
60
|
[:octicons-arrow-right-24: Marlin Streaming Guide](guides/marlin-streaming.md)
|
|
61
61
|
|