Commit Graph
3 Commits
Author SHA1 Message Date
Edgar ArakelyanandClaude Opus 5.5 ef49dca6d7 fix(environment): keep changed documents out of the state; mark OPTIONS and TRACE safe
Every non-entity GET read became a document from its latest initial
recording, bounded only by writes under related roots, so GET /api/me
read before and after POST /api/orders published the post-write value
as initial state (entities already leave such a type recorded). A
document whose value changed between two of its line's reads across
any recorded write is now recorded as fields-differ; an unchanged
value is still a document.

MCP hints treated OPTIONS and TRACE as non-idempotent writes, so a CORS
preflight tool fell to the destructive default. The RFC 9110 safe
methods (GET, HEAD, OPTIONS, TRACE) are read-only and idempotent.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 08:37:47 -07:00
Edgar ArakelyanandClaude Opus 5.5 9dfc05f4d4 docs(environment): record verification after merging the state view's review fixes
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 21:03:25 -07:00
Edgar ArakelyanandClaude Opus 5.5 35aee7c051 feat(environment): render more read tools from the state and describe responses
The environment-state view now holds every non-entity GET read with one
initial request line as a read-only document, infers identity from an
`...Id`/`..._id` field every listed item carries distinctly when no fixed
identity name does, and locates single entities wrapped in a one-element
array (`{"posts":[{...}]}`). Served tool descriptions say what each tool
returns, from its own recorded exchanges, and tools carry MCP annotations
(read-only, destructive, idempotent, closed world). On 44 recorded captures
the state renders 1,016 of 1,258 read tools, up from 710.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-19 20:54:52 -07:00