Skip to content

v0.8.0 - device identity, never anonymous

Choose a tag to compare

@francoios francoios released this 10 Jul 11:39

Identity: never anonymous (0.8.0)

  • Persistent device identity: at init the SDK acquires a stable dev_<16hex> provisional user id — derived from the machine id (Windows MachineGuid, Linux /etc/machine-id, macOS gethostuuid), hashed (FNV-1a-64) and salted per game; the raw machine id never leaves the device. Persisted in <data_dir>/identity (the file wins across launches and token rotation). Every payload now carries a user id — no more anonymous rows.
  • Same-session identity upgrade: tombstone_set_user("real-id") keeps the session id and carries priorUserId on heartbeats (and any crash/bug sent meanwhile) until a beat is acked — the server merges the session's pre-auth rows under the authenticated id, scoped per session (one device can host multiple accounts).
  • tombstone_set_user(NULL/"") reverts to the device id and cancels the pending merge marker.
  • Steady-state payloads are byte-identical to 0.7.1. New tombstone::device_identity core unit with its own ctest suite (18 suites total). Server-side merge requires Tombstack deployed 2026-07-10 or later (older servers ignore the extra field).