Skip to content

docs: backlog #292 and #294 — edit-note ## corruption, and mcp 2.1.1 reddening CI - #293

Open
CryptoJones wants to merge 2 commits into
mainfrom
docs/backlog-292-edit-note-h2
Open

docs: backlog #292 and #294 — edit-note ## corruption, and mcp 2.1.1 reddening CI#293
CryptoJones wants to merge 2 commits into
mainfrom
docs/backlog-292-edit-note-h2

Conversation

@CryptoJones

@CryptoJones CryptoJones commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Mirrors two new issues into BACKLOG.md, per the standing rule that the file and
the Issues tab are two views of one list. Docs-only — no code touched.

Both go under a new Bugs subsection: every other entry under ## Open is
grouped by the review that produced it, and these came from hitting them in
normal use.


#292edit-note silently guts a note when details contains a ## heading

Content after the first ## is reclassified as an "extra" section and re-emitted
after ## References, leaving ## Details empty — and a second edit leaves
the stale copy in the file alongside the new one.

I hit this editing a project note through the MCP tool on 2026-08-31: it ended up
carrying two contradictory bodies, including guidance I had just corrected still
reading as current. Both writes returned success and a fresh version token.

Reproduced without MCP, straight against store.py:

md = edit(md, "v1 intro\n\n## Status\n\nv1 status text")
md = edit(md, "v2 intro\n\n## Status\n\nv2 status text")
md.count("\n## Status")        # 2      <- duplicate section
"v1 status text" in md         # True   <- stale copy survives
parse_note(md).details         # 'v2 intro'  <- rest of the payload is gone

### is unaffected: _H2_RE (store.py:134) requires whitespace after ##.

#294 — mcp 2.1.1 masks ToolError messages, so CI is red on every PR

Found while waiting on CI for this very PR: all 5 test matrix jobs fail on a
markdown-only change.
mcp>=2.0.0,<3.0 resolves to 2.1.1 in CI (confirmed
in the job log), which replaces the underlying exception text with a generic
Error executing tool <name>. The five test_server.py assertions that check
why a call failed stop matching. 5 failed, 1013 passed, on every OS and Python
version.

It passes locally because the venv is still on mcp 2.0.0 — that skew is why
only CI sees it. Neither backlog change caused it; it will hit any PR opened
today.
Pinning <2.1 unblocks, but #294 argues the prior question is whether
that detail is still reachable by callers at all — the version-conflict message
in particular is what tells an agent to re-read before writing.


CI status on this PR: everything except the test matrix is green (CodeQL,
gitleaks, MCP conformance, wheel build + install smoke on macOS and Ubuntu). The
test failures are #294 and are unrelated to this change.

Ran the equivalent pre-commit hygiene checks by hand (no .pre-commit-config.yaml
in this repo): no trailing whitespace, single final newline, no CRLF, no conflict
markers, Nebraska footer intact.

Proudly Made in Nebraska. Go Big Red! 🌽 https://xkcd.com/2347/

Mirrors the new issue into BACKLOG.md per the two-views rule, under a new
"Bugs" subsection since every other Open entry is grouped by the review that
produced it and this one came from hitting it in normal use.

Found on 2026-08-31 while editing a project note through the MCP tool: content
after the first `## ` in the details payload is reclassified as an extra section
and re-emitted after `## References`, so `## Details` empties out, and a second
edit leaves the stale copy alongside the new one. The note ended up asserting
both a piece of guidance and its correction, with nothing failing at write time.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0112ufce112zoeTEsrEJENbt
@coderabbitai

coderabbitai Bot commented Sep 1, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Team

Run ID: 7f7e8c97-2bb4-45f9-ab72-4df5e06dc799


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

…ery PR

Found while waiting on CI for the #292 backlog PR: all 5 test matrix jobs fail
on a markdown-only change. `mcp>=2.0.0,<3.0` resolves to 2.1.1 in CI, which
replaces the underlying exception text with a generic "Error executing tool
<name>", so the five test_server.py assertions that check WHY a call failed
stop matching. Local venv is still on mcp 2.0.0, which is why it passes here
and only CI sees it.

Not caused by either backlog change — it will hit any PR opened today.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0112ufce112zoeTEsrEJENbt
@CryptoJones CryptoJones changed the title docs: backlog #292 — edit-note guts a note on a ## heading in details docs: backlog #292 and #294 — edit-note ## corruption, and mcp 2.1.1 reddening CI Sep 1, 2026
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