mmmexplorer

OBSERVED MMM COMMIT #657

Share Tiled data between node copies instead of cloning it

mmm-observation:sha256:b707f512527e3078bc7066f5da1b32b54259a392669074c198ca6b92a5d9b56d

Signed revision

Revision ID
mmm-revision:sha256:230e9b33884b9d8640f1c22bb7166b499845050f1a17def3f7fe87dc47242a4b
Backend
Git
Issued
2026-09-25 03:02:21 UTC
Manifest
mmm-manifest:sha256:2521543a5410453431f6d564dedeae862db505d31aa70fd724a1c2dd3b455a15

CANONICAL RECORD VIEW

Revision payload

{
  "backend": {
    "author": {
      "email": "drschwabe@fastmail.com",
      "name": "Derrick Schwabe",
      "time": 1790305341
    },
    "commit": "git:sha1:01a87fc384a95483e95b1fd290fa4f41730db30b",
    "committer": {
      "email": "drschwabe@fastmail.com",
      "name": "Derrick Schwabe",
      "time": 1790305341
    },
    "manifest": "mmm-manifest:sha256:2521543a5410453431f6d564dedeae862db505d31aa70fd724a1c2dd3b455a15",
    "message": "Share Tiled data between node copies instead of cloning it\n\nOne tileset in a large mesh held 1.18 million values in its `tiled` field,\n87% of the whole mesh's structure, and every render deep-copied it twice:\nonce in the history snapshot and once in the bake's merge. The fields in\nSHARED_NODE_FIELDS are now shared by reference in snapshots, undo restores\nand bake copies, which also lets isEqual pass an unchanged one by identity.\n\nSuch a field must only ever be replaced whole, never mutated in place; a\nTiled node's data already is.",
    "objectFormat": "sha1",
    "parents": [
      "git:sha1:5ec047691c493d22ebec2b9a53075204fe99d2b4"
    ],
    "ref": "refs/heads/master",
    "summary": "Share Tiled data between node copies instead of cloning it",
    "tree": "git:sha1:8c1bd6a426237ab200f072feb9ebae48387634f5",
    "type": "git"
  },
  "issuedAt": "2026-09-28T15:47:36.860Z",
  "previous": "mmm-revision:sha256:48d697354a0c93f009e1bd8eca1cd2867ba76079dac9ed2de4c5ca38d74d9f98",
  "project": "mmm1np06566gf6u8fpyj84u2emf25l98qad36700d2nlep6jzqdknp8qkyd3xu",
  "protocol": "mmm/0-alpha",
  "sequence": 254,
  "type": "mmm/revision"
}