mirror of
https://github.com/morluto/rea.git
synced 2026-10-26 17:35:11 +00:00
fix(environment): own JSON fields across capture, state and replay
This commit is contained in:
1 parent
cc5a96933a
commit
e54bf1006e
57 files changed
+1019
-389
No files matched your search
@@ -871,8 +871,9 @@ names a `document` view once, at its initial document's `path`. The `version`,
|
||||
and the `state_evidence_id` and `types` that `data/get` reports, must match
|
||||
the served state, so a `data/get` result loads back unchanged. A number without
|
||||
an exact native value, or whose serialized spelling would not be read as exact
|
||||
(an integer from 2^53 below 1e21, such as `1e20`, in any spelling), or a
|
||||
`__proto__` member is refused rather than altered.
|
||||
(an integer from 2^53 below 1e21, such as `1e20`, in any spelling), is refused
|
||||
rather than altered. Caller data preserves all own JSON members, including
|
||||
`__proto__`; unknown members of the state document's structure are refused.
|
||||
An invalid document is `-32602` naming the first problem by JSON pointer, as in
|
||||
`/rea_state/entities/3/collection` (also in `error.data.path`); a problem
|
||||
inside caller data (`fields`, `value`, `types`) is located at that member, so
|
||||
|
||||
@@ -110,7 +110,9 @@ this increment: write tools are not served from the state.
|
||||
differs from the entity's id (refused at that view's `fields`),
|
||||
documents naming document views once at the initial path, and the optional
|
||||
`state_evidence_id` and `types` that `data/get` reports equal to the served
|
||||
ones. Refuse numbers without an exact native value and `__proto__` members.
|
||||
ones. Refuse numbers without an exact native value. Preserve all own JSON
|
||||
members in caller data, including `__proto__`, and reject unknown structural
|
||||
members before projecting the document's declared fields.
|
||||
Name the first problem by JSON pointer, never deeper than a caller-data
|
||||
member (`fields`, `value`, `types`), and leave the state unchanged.
|
||||
- Keep record citations Evidence provenance: refuse `record_ordinals` or a
|
||||
|
||||
@@ -133,8 +133,8 @@ later increments.
|
||||
- Keep an item or list plan only when it reproduces each request line's latest
|
||||
initial recording from the state, comparing JSON values without regard to
|
||||
member order; otherwise record the tool with a reason. Parse bodies only when
|
||||
JSON-like, UTF-8, at most 256 KiB, exactly representable and free of
|
||||
`__proto__` members.
|
||||
JSON-like, UTF-8, at most 256 KiB and exactly representable. Preserve all own
|
||||
JSON members, including `__proto__`, through extraction and normalization.
|
||||
- Mark the Evidence inferred; state unknowns for authorization, response
|
||||
semantics and write effects.
|
||||
- Charge the manifest's admission and grouping, every record line, every body
|
||||
|
||||
@@ -150,7 +150,7 @@ the exemplar.
|
||||
|
||||
- **Request body.** The exemplar's request body must be a JSON object that
|
||||
could enter the state: a JSON-like media type, complete UTF-8 text within
|
||||
256 KiB, exact numbers, no `__proto__` member. Otherwise the reason is
|
||||
256 KiB and exact numbers. All own JSON member names are retained. Otherwise the reason is
|
||||
`body-unusable`. A `DELETE` takes no body. A create's or update's body
|
||||
whose only member wraps one object in a one-element array (Ghost's
|
||||
`{"posts":[{...}]}`) is that object, and the plan records the member as
|
||||
@@ -587,7 +587,7 @@ changes it atomically, so every MCP session and `data/get` see one state.
|
||||
- a create in another collection when the plan is tied to its own;
|
||||
- a document write at a path other than the one the state holds it at;
|
||||
- a body member or a resulting value `data/add` would refuse (a number not
|
||||
exact as `data/get` writes it, a `__proto__` member, nesting past the
|
||||
exact as `data/get` writes it or nesting past the
|
||||
limit), increments included, so `data/get` always loads back;
|
||||
- a create, update or document write that would take what `data/get` reports
|
||||
past the 32 MiB `data/add` intake limit, as a `resource_constraint` error;
|
||||
|
||||
@@ -696,8 +696,9 @@ more than one query) and `rendered-oversize` (a document value whose JSON
|
||||
renders to more than 256 KiB). A document holds the value of its one `path`, so for such
|
||||
a template it says nothing about the template's other paths. A body is usable
|
||||
when its content type is
|
||||
JSON-like, it is UTF-8 text of at most 256 KiB, every number survives native
|
||||
conversion exactly, and no member is named `__proto__`.
|
||||
JSON-like, it is UTF-8 text of at most 256 KiB, and every number survives native
|
||||
conversion exactly. JSON member names, including `__proto__`, remain ordinary
|
||||
own data members through extraction and serving.
|
||||
|
||||
A list view also learns, from its checked lines that do not list the whole
|
||||
collection, what each query parameter does, and names the result in `query`.
|
||||
|
||||
Reference in new issue
Block a user