Merge branch 'main' into feature/filament_id

Brings in 560 commits (merge base 2026-07-04 .. origin/main af9fd10d7a).
19 conflicts resolved; the other 138 touched files auto-merged.

Conflict resolutions
- Snapmaker/Polymaker (7): main normalised JSON key order in #15039 while this
  branch inserted filament_id/filament_vendor. Took main's key order and kept
  this branch's values, inserting a single filament_id key rather than letting
  git's line merge leave duplicate "from"/"instantiation" keys.
- re3D rPETG @0.8/@1.75 nozzle (2): main renamed these from "re3D Greengate
  rPETG @*" and re-vendored GreenGate3D -> re3D (#15169). Git's rename-aware
  merge produced a file with two filament_vendor keys; took main's version
  wholesale instead. The id is reconciled by the tooling, not by hand.
- re3D rPP (1): kept main's inherits change (fdm_filament_pet -> fdm_filament_pp,
  local filament_type override dropped) and its widened compatible_printers.
  The flattened type is still PP, so the product triple and id OFfHGM1D are
  unchanged.
- re3D Greengate rPETG.json, Afinia {ABS+,ABS,PLA,TPU,Value ABS,Value PLA}.json
  (7 modify/delete): accepted main's deletions. The Afinia ids are not orphaned
  - the surviving @HS presets resolve the same triple and already carry the
  same ids, so nothing is retired.
- .github/workflows/check_profiles.yml: kept both main's new "validate slice"
  step and this branch's tree-wide filament-subtype check.
- tests/libslic3r/CMakeLists.txt: kept both test_filament_id_succession.cpp and
  main's test_preset_diff.cpp.

Verified
- No conflict markers; all 12795 profile JSONs parse with no duplicate keys.
- All branch artifacts (tooling, snapshot, ledger, doc, tests) intact and
  unmodified by the merge.
- The succession-ledger C++ call sites survived main's refactors; audited
  Preset.{cpp,hpp}, PresetBundle.cpp, DeviceManager.cpp, PresetComboBoxes.cpp,
  CaliHistoryDialog.cpp, MoonrakerPrinterAgent.cpp against base/ours/theirs.
- scripts/tests: 115/116 pass.

Known follow-up: assign_filament_ids.py --check reports 243 errors, all from
filament data main added in the last month (BBL/addnorth, Qidi X5/Plus 5,
Snapmaker U1, re3D). The single failing unit test is the live-tree conformance
test asserting that count is zero. Reconciliation lands separately.
This commit is contained in:
SoftFever
2026-08-08 02:05:37 +08:00
2224 changed files with 2621810 additions and 1287330 deletions
@@ -11,7 +11,6 @@
"filament_minimal_purge_on_wipe_tower": [
"15"
],
"pressure_advance": [
"0.05"
]
@@ -17,7 +17,6 @@
"filament_z_hop": [
"0.0"
],
"enable_pressure_advance": [
"1"
],
@@ -17,7 +17,6 @@
"filament_z_hop": [
"0.0"
],
"enable_pressure_advance": [
"1"
],
@@ -17,7 +17,6 @@
"supertack_plate_temp_initial_layer": [
"70"
],
"pressure_advance": [
"0.04"
]
@@ -1,11 +1,11 @@
{
"type": "filament",
"from": "system",
"filament_id": "OFYGbPHX",
"instantiation": "true",
"name": "PolyLite Dual PLA @0.2 nozzle",
"setting_id": "jhmy4YHi9MuL0DWu",
"inherits": "PolyLite PLA @0.2 nozzle",
"filament_id": "OFYGbPHX",
"from": "system",
"setting_id": "jhmy4YHi9MuL0DWu",
"instantiation": "true",
"compatible_printers": [
"Snapmaker A250 Dual (0.2 nozzle)",
"Snapmaker A250 Dual BKit (0.2 nozzle)",
@@ -1,11 +1,11 @@
{
"type": "filament",
"from": "system",
"filament_id": "OF7SliVn",
"instantiation": "true",
"name": "PolyLite J1 PLA @0.2 nozzle",
"setting_id": "jFlRSxx0KvN3BOUu",
"inherits": "PolyLite PLA @0.2 nozzle",
"filament_id": "OF7SliVn",
"from": "system",
"setting_id": "jFlRSxx0KvN3BOUu",
"instantiation": "true",
"compatible_printers": [
"Snapmaker J1 (0.2 nozzle)"
]
@@ -1,11 +1,11 @@
{
"type": "filament",
"from": "system",
"filament_id": "OF7SliVn",
"instantiation": "true",
"name": "PolyLite J1 PLA",
"setting_id": "wcpOTTMyZNPFKyXr",
"inherits": "PolyLite PLA @base",
"filament_id": "OF7SliVn",
"from": "system",
"setting_id": "wcpOTTMyZNPFKyXr",
"instantiation": "true",
"compatible_printers": [
"Snapmaker J1 (0.4 nozzle)",
"Snapmaker J1 (0.6 nozzle)",
@@ -1,4 +1,9 @@
{
"type": "filament",
"name": "PolyLite PETG @Base",
"inherits": "fdm_filament_petg",
"from": "system",
"instantiation": "false",
"filament_density": [
"1.25"
],
@@ -18,11 +23,6 @@
"0"
],
"description": "",
"inherits": "fdm_filament_petg",
"name": "PolyLite PETG @Base",
"type": "filament",
"instantiation": "false",
"from": "system",
"filament_vendor": [
"Polymaker"
]
@@ -17,7 +17,6 @@
"supertack_plate_temp_initial_layer": [
"70"
],
"pressure_advance": [
"0.05"
]
@@ -17,7 +17,6 @@
"supertack_plate_temp_initial_layer": [
"70"
],
"pressure_advance": [
"0.05"
]
@@ -1,10 +1,10 @@
{
"type": "filament",
"from": "system",
"instantiation": "true",
"name": "PolyLite PLA @0.2 nozzle",
"setting_id": "s9mdMaFca8SHfji9",
"inherits": "PolyLite PLA @base",
"from": "system",
"setting_id": "s9mdMaFca8SHfji9",
"instantiation": "true",
"compatible_printers": [
"Snapmaker A250 (0.2 nozzle)",
"Snapmaker A250 BKit (0.2 nozzle)",
@@ -1,10 +1,10 @@
{
"type": "filament",
"from": "system",
"instantiation": "false",
"name": "PolyLite PLA @base",
"filament_id": "OF5CgdDq",
"inherits": "fdm_filament_pla",
"from": "system",
"filament_id": "OF5CgdDq",
"instantiation": "false",
"filament_vendor": [
"Polymaker"
],
@@ -1,11 +1,11 @@
{
"type": "filament",
"from": "system",
"filament_id": "OFCccVrQ",
"instantiation": "true",
"name": "PolyTerra Dual PLA @0.2 nozzle",
"setting_id": "UQYgjH1uVxf3d2Nv",
"inherits": "PolyTerra PLA @0.2 nozzle",
"filament_id": "OFCccVrQ",
"from": "system",
"setting_id": "UQYgjH1uVxf3d2Nv",
"instantiation": "true",
"compatible_printers": [
"Snapmaker A250 Dual (0.2 nozzle)",
"Snapmaker A250 Dual BKit (0.2 nozzle)",
@@ -1,11 +1,11 @@
{
"type": "filament",
"from": "system",
"filament_id": "OF43Raws",
"instantiation": "true",
"name": "PolyTerra J1 PLA @0.2 nozzle",
"setting_id": "mxKHxGmBZzPLS82O",
"inherits": "PolyTerra PLA @0.2 nozzle",
"filament_id": "OF43Raws",
"from": "system",
"setting_id": "mxKHxGmBZzPLS82O",
"instantiation": "true",
"compatible_printers": [
"Snapmaker J1 (0.2 nozzle)"
]
@@ -1,11 +1,11 @@
{
"type": "filament",
"from": "system",
"filament_id": "OF43Raws",
"instantiation": "true",
"name": "PolyTerra J1 PLA",
"setting_id": "4MZWZX7QPBzxdEGj",
"inherits": "PolyTerra PLA @base",
"filament_id": "OF43Raws",
"from": "system",
"setting_id": "4MZWZX7QPBzxdEGj",
"instantiation": "true",
"compatible_printers": [
"Snapmaker J1 (0.4 nozzle)",
"Snapmaker J1 (0.6 nozzle)",
@@ -1,10 +1,10 @@
{
"type": "filament",
"from": "system",
"instantiation": "true",
"name": "PolyTerra PLA @0.2 nozzle",
"setting_id": "6W1ygT08NordBdIW",
"inherits": "PolyTerra PLA @base",
"from": "system",
"setting_id": "6W1ygT08NordBdIW",
"instantiation": "true",
"compatible_printers": [
"Snapmaker A250 (0.2 nozzle)",
"Snapmaker A250 BKit (0.2 nozzle)",
@@ -1,4 +1,9 @@
{
"type": "filament",
"name": "Polymaker HT-PLA @Base",
"inherits": "fdm_filament_pla",
"from": "system",
"instantiation": "false",
"filament_density": [
"1.28"
],
@@ -18,11 +23,6 @@
"0"
],
"description": "",
"inherits": "fdm_filament_pla",
"name": "Polymaker HT-PLA @Base",
"type": "filament",
"instantiation": "false",
"from": "system",
"filament_vendor": [
"Polymaker"
]
@@ -1,4 +1,9 @@
{
"type": "filament",
"name": "Polymaker HT-PLA-GF @Base",
"inherits": "fdm_filament_pla",
"from": "system",
"instantiation": "false",
"filament_density": [
"1.34"
],
@@ -18,11 +23,6 @@
"0"
],
"description": "",
"inherits": "fdm_filament_pla",
"name": "Polymaker HT-PLA-GF @Base",
"type": "filament",
"instantiation": "false",
"from": "system",
"filament_vendor": [
"Polymaker"
]
@@ -1,4 +1,9 @@
{
"type": "filament",
"name": "Polymaker PETG @Base",
"inherits": "fdm_filament_petg",
"from": "system",
"instantiation": "false",
"filament_density": [
"1.3"
],
@@ -18,11 +23,6 @@
"0"
],
"description": "",
"inherits": "fdm_filament_petg",
"name": "Polymaker PETG @Base",
"type": "filament",
"instantiation": "false",
"from": "system",
"filament_vendor": [
"Polymaker"
]
@@ -1,4 +1,9 @@
{
"type": "filament",
"name": "Polymaker PLA Pro @Base",
"inherits": "fdm_filament_pla",
"from": "system",
"instantiation": "false",
"filament_density": [
"1.23"
],
@@ -18,11 +23,6 @@
"0"
],
"description": "",
"inherits": "fdm_filament_pla",
"name": "Polymaker PLA Pro @Base",
"type": "filament",
"instantiation": "false",
"from": "system",
"filament_vendor": [
"Polymaker"
]