Skip to content

docs(paper): ids are opaque strings, not ULID-shaped - #11

Merged
mthamil107 merged 1 commit into
mainfrom
docs/paper-opaque-id
Aug 31, 2026
Merged

docs(paper): ids are opaque strings, not ULID-shaped#11
mthamil107 merged 1 commit into
mainfrom
docs/paper-opaque-id

Conversation

@mthamil107

Copy link
Copy Markdown
Owner

Section 1 described sqlite-vec as keyed by "a stable ULID-shaped string".

That is wrong. The reference implementation mints uuid.uuid4().hex — 32 lowercase
hex characters, not a 26-char Crockford base32 ULID:

  • src/memorywire/store/sqlite_vec.py:434memory_id = uuid.uuid4().hex
  • src/memorywire/transformer.py:65return uuid.uuid4().hex

And the schemas guarantee no format at all — every record and response types id
as {"type": "string", "minLength": 1}.

The claim has been in every arXiv version since v1 and is live in v4. It matters
because an implementer binding to the wire format could write a ULID validator on
the strength of it and reject every id the reference store produces. This was raised
by an external implementer building an adapter, and already corrected in
correspondence — this brings the paper in line.

Replaced with a description that is accurate and states the property implementers
actually need: the format is not part of the contract.

Fixed in all three copies: memorywire-paper.md, memorywire-paper.tex, and
arxiv-submission/memorywire-paper.tex. Goes out with the next arXiv revision.

The paper described sqlite-vec as keyed by "a stable ULID-shaped string" in
Section 1. The reference implementation mints uuid4 hex - 32 lowercase hex
chars, not a 26-char Crockford base32 ULID (sqlite_vec.py:434,
transformer.py:65) - and the schemas guarantee only {"type": "string",
"minLength": 1} with no format at all.

The claim has been present since v1 and is live in v4. An implementer binding
to the wire format could reasonably write a ULID validator on the strength of
it and reject every id the reference store produces.

Replaced with an accurate description that also states the format is not part
of the contract, which is the property implementers actually need.
@mthamil107
mthamil107 merged commit a85fc23 into main Aug 31, 2026
10 checks passed
@mthamil107
mthamil107 deleted the docs/paper-opaque-id branch August 31, 2026 09:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant