-
Notifications
You must be signed in to change notification settings - Fork 0
Disambiguate checkpoint basis evidence from current-buffer evidence #284
Copy link
Copy link
Open
Labels
causal-ropeCausal rope text authority roadmapCausal rope text authority roadmapenhancementNew feature or requestNew feature or requestsliceImplementable roadmap sliceImplementable roadmap slicetext-authorityText authority and storage invariantsText authority and storage invariantswork-in-progressCycle or PR is intentionally in progress and not ready to mergeCycle or PR is intentionally in progress and not ready to merge
Description
Activity
Metadata
Metadata
Assignees
Labels
causal-ropeCausal rope text authority roadmapCausal rope text authority roadmapenhancementNew feature or requestNew feature or requestsliceImplementable roadmap sliceImplementable roadmap slicetext-authorityText authority and storage invariantsText authority and storage invariantswork-in-progressCycle or PR is intentionally in progress and not ready to mergeCycle or PR is intentionally in progress and not ready to merge
Classification
Response-contract correctness and semantic clarity.
Problem
A checkpoint may lawfully name any retained rope head that belongs to the stated worldline, including a noncanonical historical head.
The native response currently combines two coordinate sets:
basisHeadIdandbasisByteLengthdescribe the retained checkpoint basis;BufferResponsedescribes the current canonical buffer snapshot, includingheadId,rootNodeId,byteLength,lineCount, andbufferVersion.The TypeScript adapter then constructs
textBasisfrom the retained basis but places the current canonicalbufferVersionbeside it inCreateTextBufferCheckpointResult. Nothing in the type names tells a consumer that those values may refer to different heads.Evidence
Why it matters
A caller can incorrectly interpret
bufferVersionas the version oftextBasis.headId, which would produce a false coordinate claim. The implementation is authoritative; the response vocabulary is underspecified.Constraints
Acceptance criteria
checkpointBasisandcurrentBuffer, or rename/omit fields that do not share a basis.Related