Repository navigation
docs(api): say superseded_by is the older memory this one replaced - #1813
Merged
Merged
Conversation
Contributor
|
Claude Code Review — skipped: draft PR |
eldad-caura-ai
force-pushed
the
fix/contradictions-superseded-by-doc
branch
from
October 4, 2026 05:38
8755ffb to
e1db3ae
Compare
GET /memories/{id}/contradictions fills superseded_by from the memory's supersedes_id, which is the older row this memory replaced. The route's own comment says so, and MCP caura_manage op=lineage returns the key the same way. The OpenAPI description said the opposite, "the newer memory that superseded this one" (M-101). public-api-stability.md makes response shapes part of the contract, so a client built from the published schema walked the chain backwards: it read the live winner as stale and the retired row as its correction. The description now matches what the route returns, and points to superseded_memories for the newer rows, which now carries a description of its own.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: eldad-caura <eldad@caura.ai>
eldad-caura-ai
force-pushed
the
fix/contradictions-superseded-by-doc
branch
from
October 4, 2026 05:53
e1db3ae to
92c6562
Compare
eldad-caura-ai
marked this pull request as ready for review
October 4, 2026 05:54
Contributor
Claude Code Review ✅ No issues found. Reviewed by |
Member
Author
|
@erni-a plear aprpove |
erni-a
approved these changes
Oct 4, 2026
Merged
eldad-caura-ai
pushed a commit
that referenced
this pull request
Oct 4, 2026
🤖 I have created a release *beep* *boop* --- <details><summary>backend: 3.21.8</summary> ## [3.21.8](backend-v3.21.7...backend-v3.21.8) (2026-10-04) ### Bug Fixes * **contradiction:** keep Path C's judge fallback and leave RDF verdicts to the RDF pass ([#1812](#1812)) ([2b3770c](2b3770c)) * **contradiction:** record every loser no chain edge points at ([#1815](#1815)) ([e7b779a](e7b779a)) * **plugin:** accept no server-pushed code or instructions over plain HTTP ([#1808](#1808)) ([6c4bc6b](6c4bc6b)) ### Dependencies * **actions:** bump the actions group across 1 directory with 2 updates ([#1754](#1754)) ([d66b27d](d66b27d)) * update google-cloud-aiplatform requirement from <3,>=2.1.3 to >=2.2.0,<3 ([#1753](#1753)) ([360ee02](360ee02)) ### Documentation * **api:** say superseded_by is the older memory this one replaced ([#1813](#1813)) ([ae56d23](ae56d23)) </details> <details><summary>plugin: 2.23.5</summary> ## [2.23.5](plugin-v2.23.4...plugin-v2.23.5) (2026-10-04) ### Bug Fixes * **plugin:** accept no server-pushed code or instructions over plain HTTP ([#1808](#1808)) ([6c4bc6b](6c4bc6b)) </details> --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Signed-off-by: release-please[bot] <release-please[bot]@users.noreply.github.com> Co-authored-by: caura-deploy-bot[bot] <265395343+caura-deploy-bot[bot]@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Audit finding
M-101, from batch B20 (contradiction verdict correctness). The OpenAPI description of
MemoryContradictionsResponse.superseded_bypoints the wrong way.GET /memories/{id}/contradictionsbuilds the field from this memory'ssupersedes_id, the older row this memory replaced. The route's comment says so: "Despite the field name, memory.supersedes_id points at the OLDER memory". MCPcaura_manage op=lineagereturns the key the same way.superseded_memories, and incontradictions[direction=superseded_by].docs/public-api-stability.mdmakes OpenAPI response shapes part of the contract. A client built from the published schema walks the chain backwards: whensuperseded_byis set it marks this memory, the live winner, as stale, and treats the retired predecessor as its correction. This is the same class of bug as caura PR fix(api): align ConflictOut OpenAPI response with runtime schema fields #1536, on a different field.Change
superseded_by: "The older memory this one superseded (via supersedes_id); null when there is none or it was deleted. The field name is kept for back-compat; newer memories that superseded this one are in superseded_memories and in contradictions with direction superseded_by."superseded_memories: gains its own description: "Newer memories that superseded this one, each with supersedes_id pointing here."The served MCP
caura_managedescription is unchanged. Rewording it would mean regeneratingtests/fixtures/tools_list_baseline_v1.jsonandplugin/tools.json, and spending part of the token budget, which has 22 tokens of headroom. The MCP handler docstring already states the meaning.Verification
tests/test_contradictions_superseded_by_contract.pyreads both descriptions fromapp.openapi().tests/test_api_contradictions.pyalready pins that the route returns the older row undersuperseded_by.8755ffbe(run 37179852102) failed both new tests againstmain, with 8678 passing. The schema served the old "newer memory" text, and no description forsuperseded_memories. The fix is now amended into the same single commit.One signed-off commit. Do not merge or enable auto-merge; Eldad merges after review.
🤖 Generated with Claude Code