Files
OrcaSlicer/src/libslic3r
SoftFever 1482fb81fd filament_id: deterministic mint rule, sanctioned-state ledger, validator hardening
Phase 0 of the filament_id cleanup (filament_id_plan.md):

- scripts/assign_filament_ids.py: mint OF-prefixed 8-char ids as
  uuid5(FILAMENT_ID_NAMESPACE, filament_family/<vendor>/<family>) in the
  base62 derivation of the setting_id precedent; loader-faithful effective-id
  resolver (vendor inherits chain + OrcaFilamentLibrary fallback); CLI:
  default assign run (idempotent no-op on a fully-idded tree),
  --mint Vendor/Family, --update-snapshot, --check.
- scripts/filament_id_snapshot.json: the sanctioned-state ledger (1092 ids,
  1965 family claims over the current tree). The tree must equal it exactly,
  both directions, so every id/claim change lands as a reviewable diff; a PR
  snapshot diff is the maintainer gate. scripts/retired_filament_ids.json is
  the append-only retirement ledger; --update-snapshot refuses to resurrect
  retired ids and to sanction new reserved-namespace claims (GF*/QD_*/P-hex/
  null) for non-owner vendors without --allow-shared-catalog.
- orca_extra_profile_check.py: runs check_filament_ids() tree-wide (format,
  snapshot equality, mint conformance, retired reuse, alias hygiene for tuned
  OFL generics, reserved namespaces, structure ratchet). The pre-existing
  check_filament_id() 8-char rule stays BBL/OFL-scoped: grandfathered longer
  ids exist elsewhere (e.g. Prusa's 36-char name ids) and are frozen via the
  snapshot instead.
- PresetBundle::check_duplicate_filament_subtypes now includes
  OrcaFilamentLibrary presets in every vendor's per-printer duplicate check;
  alias-shadowed library presets are excluded via the existing
  m_excluded_from population (verified live in the validator load path), so
  only genuinely visible duplicates are flagged. AMS tray-id resolution logs
  a warning when a filament_id matches 2+ compatible presets (pick unchanged).
- doc/developer-reference/filament_id.md: the authoring rule; PR template
  gains a no-hand-written-ids checkbox.
- scripts/tests/test_filament_id.py: 46 stdlib-unittest tests (mint vectors,
  resolver semantics, every check firing/silent, ledger round-trips, byte
  preservation, real-tree smoke).

Verified: python -m unittest discover -s scripts/tests (46 OK);
python scripts/orca_extra_profile_check.py exit 0 on the unmigrated tree;
assign run is a no-op; rebuilt OrcaSlicer_profile_validator -l 2 exit 0;
extended -f is strictly additive vs baseline (every baseline group preserved,
all new groups involve library presets, alias exclusion proven by BBL-mirror
absence on BBL printers).
2026-07-02 23:17:15 +08:00
..
2026-06-03 10:19:04 -03:00
2024-10-05 21:53:16 +03:00
2026-06-18 09:13:51 -03:00
2026-03-24 09:18:38 -07:00
2026-06-19 09:42:12 +08:00
2026-06-19 09:42:12 +08:00
2026-03-13 02:12:10 -07:00
2026-03-13 02:12:10 -07:00
2023-12-01 10:42:45 +00:00
2025-06-14 21:05:25 +08:00
2026-04-23 00:21:19 +08:00
2025-10-28 15:29:47 +08:00
2026-03-24 09:18:38 -07:00
2026-03-24 09:18:38 -07:00
2024-01-26 20:18:10 +08:00
2026-06-18 09:13:51 -03:00
2026-06-25 11:14:11 +08:00
…
2023-12-01 10:42:45 +00:00
2026-05-21 09:04:27 +08:00
2024-05-12 23:35:41 +08:00
2025-10-28 15:29:55 +08:00
2026-03-24 09:18:38 -07:00
2025-09-18 17:08:18 +08:00
2025-09-18 17:08:18 +08:00
2025-12-08 22:42:11 +08:00
2026-03-13 01:56:51 -07:00
2026-03-13 01:56:51 -07:00
2024-01-26 20:18:10 +08:00
2026-03-13 01:56:51 -07:00
2026-03-24 09:18:38 -07:00
2026-05-04 15:52:34 +08:00
2026-03-13 01:56:51 -07:00
2026-03-13 01:56:51 -07:00
2026-07-01 15:25:54 +08:00
2026-07-01 21:55:19 +08:00
2026-06-18 09:13:51 -03:00
2025-12-08 22:42:11 +08:00
2026-05-10 02:21:13 +08:00
2023-11-04 11:41:03 +08:00
…
2026-01-29 19:19:37 +08:00
2026-01-23 17:05:56 +08:00
2025-12-08 22:42:11 +08:00
2025-12-08 22:42:11 +08:00
2026-05-04 20:33:13 +08:00