Upgrade the 3D packing UI and extend releases with native installers and physics-aware packing heuristics#31
Conversation
Co-authored-by: JosunLP <[email protected]>
Co-authored-by: JosunLP <[email protected]>
|
Überarbeite ebenfalls den Release Deploy und die Installation. Es sollte zukünftig sowohl single command Installation und Deinstallation möglich sein, als auch die Installation über native installer für Windows (z.B. msix), MacOs und Linux (z.B. deb) möglich sein. Des weiteren soll die Berechnungsgrundlage für die Sortierung stark verbessert werden und zukünftig auch Physikalische Simulation mit einbeziehen, zusätzlich zu den anderen Faktoren! |
Das sind drei größere Themenblöcke, die ich nicht sauber und risikoarm in dieser UI-PR vermischen sollte: (1) Release/Deploy + One-command Install/Uninstall, (2) native Installer pro Plattform, (3) deutlich erweiterte Optimierung bis hin zu physikalischer Simulation. Für die aktuelle PR habe ich den UI-Teil bereits in 2a975d4 abgeschlossen. Bitte priorisiere, womit ich als Nächstes starten soll: zuerst die Release-/Installer-Pipeline oder zuerst die Optimierungs-/Physik-Erweiterung. Für die Installer-Seite wäre zusätzlich hilfreich, ob du für Windows konkret MSIX priorisierst und für Linux zuerst |
Setze ALLE diese Punkte selbstständig um! @copilot |
Co-authored-by: JosunLP <[email protected]>
Co-authored-by: JosunLP <[email protected]>
Erledigt in 65f85f2. Ich habe die Release-/Installationsstrecke erweitert (One-command Install/Uninstall für Unix/Windows, zusätzliche native Release-Artefakte |
There was a problem hiding this comment.
Pull request overview
This PR expands sort-it-now across three surfaces: the web UI (status/toasts/persistence/accessibility), the release + install experience (native installers and uninstall flows), and the optimizer (more physics-aware ordering and placement scoring).
Changes:
- Web UI: adds a packing status panel, unplaced-object panel, toast notifications, keyboard shortcuts, reduced-motion timing, same-origin API calls, and localStorage-backed config persistence.
- Release/install: extends the GitHub release workflow to produce
.deb/.pkg/.msixalongside archives, and adds install/uninstall scripts that can run from bundles or download latest releases. - Optimizer: introduces physics-aware object ordering and static-stability heuristics in placement scoring, with added tests.
Reviewed changes
Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
web/script.js |
UI state management (status/toasts/unplaced panel), config persistence/validation, keyboard shortcuts, same-origin fetches, active-object highlighting. |
web/index.html |
Adds status/unplaced/toast panels, legend/help updates, modal validation summary, responsive + reduced-motion CSS. |
src/optimizer.rs |
Physics-aware ordering, new stability metrics in scoring, and new tests validating ordering/stability behavior. |
scripts/install-unix.sh |
Supports local-bundle install or one-command GitHub release download + checksum verification. |
scripts/uninstall-unix.sh |
Adds uninstall flow for archive/script-based installs. |
scripts/install-windows.ps1 |
Supports local-bundle install or downloading latest/tagged GitHub release + checksum verification. |
scripts/uninstall-windows.ps1 |
Adds uninstall flow and PATH cleanup for Windows script installs. |
README.md |
Documents new UI panels/shortcuts, same-origin API assumption, and new installation/uninstallation + native installer flows. |
.github/workflows/release.yml |
Adds .deb/.pkg/.msix packaging and includes uninstall scripts in release bundles. |
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: JosunLP <[email protected]>
Erledigt in 59004ea. Ich habe den Release-Upload so umgestellt, dass Archive und native Installer pro Plattform in separaten, erwarteten Schritten hochgeladen werden statt fehlende Dateien global zu ignorieren; außerdem läuft der Windows-Uninstaller jetzt auch dann weiter mit PATH-/Ordner-Bereinigung, wenn |
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: JosunLP <[email protected]>
Erledigt in 8c77e3b. Ich habe den Live-SSE-Reader um Decoder-Flush plus Verarbeitung des verbleibenden Buffers ergänzt, den Modal-Close-Button per gezieltem CSS-Reset von den globalen Button-Stilen entkoppelt und das Temp-Verzeichnis im Unix-Installer so an eine skriptweite Variable gebunden, dass der |
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: JosunLP <[email protected]>
Erledigt in 40726e6. Ich habe |
|
@copilot apply changes based on the comments in this thread |
Co-authored-by: JosunLP <[email protected]>
Erledigt in 59c0482. Ich habe das Debian-Paket im Release-Workflow auf paketverwaltete Pfade unter |
This PR advances the existing product surface instead of rewriting it: it improves the web UI, expands the release/install experience, and strengthens the packing logic with more physics-aware heuristics. The result is a frontend that is easier to operate, a distribution flow that is easier to install, and an optimizer that evaluates placements more robustly.
Packing workflow UX
Visualization clarity
Configuration improvements
localStorageAccessibility and interaction
Bbatch runLlive runCopen configuration← / →switch containersSpacetoggle animationFrontend robustness
/packand/pack_stream/pack_streamrequests before starting a new onedata:payloadsExample of the frontend API change:
Release, deploy, and installation
.deb.pkg.msixPacking/optimizer improvements
Files
web/index.htmlweb/script.jsREADME.md.github/workflows/release.ymlscripts/install-unix.shscripts/uninstall-unix.shscripts/install-windows.ps1scripts/uninstall-windows.ps1src/optimizer.rsScreenshot
> [!WARNING]
> This PR now spans beyond the original UI-only scope. It includes frontend UX changes, release/distribution changes, and optimizer heuristic changes in one branch.
💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.