lix 0.15.1

Embeddable version control for apps and AI agents.
Documentation
{
  "$schema": "https://lix.dev/schema-v1.json",
  "key": "lix_change",
  "description": "A change records one edit to a Lix row, including what changed, when it changed, and which row was affected.",
  "columns": [
    {
      "name": "account_id",
      "type": "uuid",
      "nullable": false,
      "description": "Account whose active session authored this change."
    },
    {
      "name": "created_at",
      "type": "text",
      "nullable": false,
      "description": "ISO-8601 timestamp at which the change was recorded (set via `CURRENT_TIMESTAMP` at write time).",
      "examples": [
        "2026-05-08T17:42:31.123Z"
      ]
    },
    {
      "name": "row_pk",
      "type": "jsonb",
      "nullable": false,
      "description": "Canonical primary-key tuple of the changed schema record, in schema primary-key order and scoped by schema_key and file_id. Matches the record represented by snapshot_content."
    },
    {
      "name": "file_id",
      "type": "text",
      "nullable": true,
      "description": "Filesystem-scoped file identifier when the change belongs to a file; NULL for engine-internal rows (commits, branches, settings)."
    },
    {
      "name": "id",
      "type": "uuid",
      "nullable": false,
      "default_expression": "uuidv7()",
      "description": "Stable identifier for this change."
    },
    {
      "name": "metadata",
      "type": "jsonb",
      "nullable": true,
      "description": "Optional user-provided JSON metadata attached to the change; NULL when nothing was supplied."
    },
    {
      "name": "origin_key",
      "type": "text",
      "nullable": true,
      "description": "Optional caller-provided origin key for the write that produced this change; NULL when the writer did not provide one."
    },
    {
      "name": "schema_key",
      "type": "text",
      "nullable": false,
      "description": "Schema identifier of the row (e.g. `lix_file_descriptor`, `lix_commit`, or a user-registered key)."
    },
    {
      "name": "snapshot_content",
      "type": "jsonb",
      "nullable": true,
      "description": "Row JSON body at this change; NULL represents a tombstone (deletion)."
    }
  ],
  "primary_key": [
    "id"
  ],
  "foreign_keys": [
    {
      "columns": [
        "account_id"
      ],
      "references": {
        "schema_key": "lix_account",
        "columns": [
          "id"
        ]
      }
    }
  ]
}