Skip to content

Merge release_2.4.1 into main - #1084

Merged
LiuLikeQian merged 73 commits into
mainfrom
release_2.4.1
Oct 23, 2026
Merged

LiuLikeQian merged 73 commits into
mainfrom
release_2.4.1

Conversation

@LuckZAE

@LuckZAE LuckZAE commented Oct 23, 2026

Copy link
Copy Markdown

Description

  • Merges the completed release_2.4.1 line into main.
  • Includes the release gateway/connect integration, Snapmaker Connect CLI v1.8.3 bundle, release packaging updates, G-code preview GPU acceleration toggle, and release-line algorithm/UI fixes.
  • Brings the associated gateway, protocol, packaging, and slicer regression tests into main.

Screenshots/Recordings/Graphs

Not applicable; this is a release-line integration merge request.

Tests

  • This request integrates the already-reviewed release_2.4.1 branch into main.
  • Validation is delegated to the repository CI matrix for this large cross-branch integration.

LuckZAE and others added 30 commits October 13, 2026 17:17
- New Utils/GatewayDevice: device-facing queries per the snapmaker_connection API contract (WS machine.system_info), no SSWCP/PrintHost dependency; home for future interface migrations
- GatewayService: add request_sync() synchronous JSON-RPC whose callback completes on the websocket thread, safe from any thread including the UI thread
- GUI_App: m_gateway_service now shared_ptr, gateway_service() accessor
- Plater: nozzle-sync and filament-sync entry points query machine info via the gateway and accept a gateway-connected device in their guards
- SSWCP untouched: the legacy connect flow keeps SSWCP::query_machine_info
Consume gateway machine snapshots for active-device state, filament and nozzle info, including building snapshots from device print-task config objects, with protocol/service/snapshot tests.

Remove the legacy device paths this replaces: AppConfig DeviceInfo storage, the MQTT-agent, machine-manage and cache WCP bridges, the WebSocket debug server, Bonjour machine find, and the runtime Flutter web resource updater/import flow.
- Resolve the CLI executable name per platform and architecture
- Report the configured executable name in process manager errors
- Ignore locally placed CLI binaries under resources/
The token-keepalive core of 0ffba32 (#809) was already replaced by the gateway account subscription; this drops its two now-unused zh_CN strings and the login-confirmation dark-mode color mapping. The unrelated flutter-web URL refactor and websocket cleanup from that commit stay.
LuckZAE and others added 28 commits October 13, 2026 17:21
Co-authored-by: womendoushihaoyin <xyliu_leo@163.com>
- the uninstall finish page loaded win.bmp from
  "${NSISDIR}\Contrib\Graphics\Wizard\win.bmp", a compile-time path naming the
  build machine's NSIS folder, so the banner stayed blank on any other machine
- pack the bitmap into the uninstaller (File) and load it from $PLUGINSDIR at
  run time, the same way MUI's own Welcome/Finish pages do; the rendered
  banner is unchanged

Co-authored-by: zhongzhipan <zhongzhipan@snapmaker.com>
* Fix the issue where the nozzle flow rate is set to high after standard slicing, and the grouping pop-up window does not appear when quickly clicking on the slice.

* Remove the shielding of the test parameters to relieve the pressure
Sync release_2.4.1 with feature_dartCli (Connect CLI v1.7.5)
Sync release_2.4.1 with feature_dartCli (Connect CLI v1.7.6)
Merge main into release_2.4.1
Update Snapmaker Connect CLI to v1.7.9
Update Snapmaker Connect CLI to v1.8.0
Update Snapmaker Connect CLI to v1.8.1
Update Snapmaker Connect CLI to v1.8.3
Merge main into release_2.4.1 (bring in #1076 bugfixes_algo_v241)
* feat: add GPU acceleration toggle for G-code preview

Add a "GPU acceleration for G-code preview" preference (General page,
default on) so users on basic integrated graphics can fall back to the
legacy CPU vertex-buffer renderer when the shader-side geometry
expansion makes the preview slower.

- The preference is saved on click; the toolpath rebuild is deferred
  until the Preferences dialog closes (same pattern as
  seq_top_layer_only_changed), runs at most once, and only when the
  value actually changed. Both entry points apply it:
  GUI_App::open_preferences() and the Apple-menu handler in MainFrame.
- Plater::reload_gcode_preview() resets the viewer before reloading
  because GCodeViewer::load() early-returns on an unchanged result id,
  so a plain reload_print() would leave the other pipeline's buffers
  empty and show a blank preview.
- The pipeline gate reads the preference from a cache instead of
  calling AppConfig::get_bool() on every use: that read heap-allocates
  the key string (23 chars, exceeds SSO) and walks two nested map
  levels, and the gate runs once per move inside GCodeViewer::
  refresh()'s range loop (m_moves_count reaches the millions) plus
  several times per frame in render_toolpaths(). The cache is re-armed
  in GCodeViewer::reset() below the m_loading guard, so it always
  agrees with the loader branch that built the current data, and every
  toggle still takes effect without a restart.
- Hoist the loop-invariant Extrude/Travel visibility lookups out of
  refresh()'s per-move loop.
- Localization: pot template + zh_CN translation for the new strings.

* refactor(gcode-viewer): make GPU pipeline choice per-instance

Replace the process-global preference cache with a GCodeViewer member
set once per load(). Consumers (refresh, render, sliders, visibility
queries) now read the flag tied to the data that load() actually
built, so a reset() on another viewer instance or a preference write
outside the Preferences toggle can no longer flip the gate under the
loaded toolpaths. The live AppConfig read now runs once per load.

Addresses review feedback on #1058.

* fix: address review on #1080

- GUI_App/MainFrame: run the seq-view refresh only when the GPU toggle
  did not change (its full reload subsumes it; avoids a double rebuild
  when both preferences change in one dialog session)
- zh_CN: use "G-code" in the toggle label per repo-wide terminology
EN: "GPU acceleration for G-code preview" -> "GPU-accelerated G-code preview"
zh_CN: "GPU加速预览G-code"
EN: "GPU acceleration for G-code preview" -> "GPU-accelerated G-code preview"
zh_CN: "GPU加速预览G-code"
@LiuLikeQian
LiuLikeQian merged commit 229efa6 into main Oct 23, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants