Skip to main content

ChangeX core: canonical document model, append-only provenance journal, and the docx native-revisions adapter (M0 spine).

Project description

changex-core

Core of ChangeX — the provenance-first edit-tracking spine (roadmap M0).

This package contains, with no network access and no MCP dependency:

  • changex_core.model — a canonical, addressable document-node tree whose node_id is an opaque, edit-invariant identifier (NOT a content hash). For docx paragraphs it reuses Word's native w14:paraId; for nodes lacking a native id it mints a monotonic per-session counter. A content+position fingerprint is demoted to a fallback rebind anchor used only for fuzzy re-resolution.
  • changex_core.ops — the frozen v0.1 op vocabulary (docx-only): text.insert, text.delete, text.replace, node.insert, node.delete, style.change. Offsets are node-relative and seq-ordered; before substrings are validated against current node content.
  • changex_core.journal — the append-only JSONL .changex journal with an RFC 8785 (JCS) canonicalized sha256 hash chain, plus append, read, replay, verify, and revert.
  • changex_core.adapters — the DocumentAdapter contract and the docx adapter that loads a .docx, applies the v0.1 ops, and renders native Word revisions (<w:ins> / <w:del> / <w:delText> / <w:pPrChange>) with centrally-allocated unique w:id, w:author = <model name>, and w:date.
  • changex_core.render — an HTML/markdown redline projection of the journal.
  • changex_core.baseline — a baseline snapshot + out-of-band mismatch warning.
  • changex_core.cli — a thin CLI (changex track / review / verify) that exercises the spine for the M0 script-based acceptance test.

Threat model (hash chain)

The hash chain gives tamper-evidence for accidental corruption and naive tampering only. An attacker who controls the .changex can recompute the whole chain. Adversarial integrity requires out-of-band storage or signing (deferred to M6).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

changex_core-0.1.22.tar.gz (97.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

changex_core-0.1.22-py3-none-any.whl (124.9 kB view details)

Uploaded Python 3

File details

Details for the file changex_core-0.1.22.tar.gz.

File metadata

  • Download URL: changex_core-0.1.22.tar.gz
  • Upload date:
  • Size: 97.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for changex_core-0.1.22.tar.gz
Algorithm Hash digest
SHA256 04b6d7c3e4f1cf07350253d70d9cd915d5b03ad0c9860fe02817cf4775d59cb0
MD5 122f4c407a9292a7d50b8892a059b3e6
BLAKE2b-256 29a4226f1df6de3eccd46550a8d8e48bf14a7269050257b0d2474f375f1522e4

See more details on using hashes here.

File details

Details for the file changex_core-0.1.22-py3-none-any.whl.

File metadata

  • Download URL: changex_core-0.1.22-py3-none-any.whl
  • Upload date:
  • Size: 124.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for changex_core-0.1.22-py3-none-any.whl
Algorithm Hash digest
SHA256 3974e18e80851324c6ee5002aa2f7ea47847d0e1ab85c7b2fc62a8409d58f151
MD5 70d9c459a6bdadeaff5b9bb0a55c36da
BLAKE2b-256 cd2cad047f53e27e897c9f2b982e9f8f4b156adec0fc79328dcea0afa7b00c11

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page