Skip to content

MCP: issues from live testing (missing files, dead-end indices, all errors, protocol version) - #22

Merged
sajonaro merged 1 commit into
mainfrom
mcp-live-issues
Oct 3, 2026
Merged

sajonaro merged 1 commit into
mainfrom
mcp-live-issues

Conversation

@sajonaro

@sajonaro sajonaro commented Oct 3, 2026

Copy link
Copy Markdown
Contributor

Addresses the five issues in mcp_advanced.md (second round, from a Claude chat client using inline sources).

# Issue Fix
1 A missing model file gave a misleading E_LOAD hint about stdlib.writ Now E_FILE_NOT_FOUND in arguments, naming the argument and the path it resolved to, for model, claims, rules, old_model and new_model. E_LOAD stays for a (load …) form, with a hint about loads.
2 Dead ends carried no situation index Each line is now #N reached by: … (cells), in the CLI too. The JSON already had state.
3 writ_validate reported only the first error It now blanks the failing top-level form, keeping line numbers, and reads the file again, up to 20 times, one error per form. A syntax error, or an error in the schema or instance, still stops it. Claims that read cleanly after blanking still get the n/a name check. Errors are listed in file order.
4 instructions didn't reach the client They were set (676 characters), but initialize always answered protocol 2024-11-05, and instructions only appeared in 2025-03-26. The version is now negotiated, and the writ_guide description carries the workflow for clients that drop instructions anyway.
5 Empty equations: line It now reads equations: none.

Behaviour change: the dead-end line format changed. reached by: is still in every line, so the downstream greps still match. docs/tour.md and the guide examples are updated.

Testing

  • make test passes, with 250 checks in test_mcp_authoring, up from 234. make lint passes.
  • Against an installed build, the downstream suites pass: writ-problems 306, writ-arch 74, scheduling 12.

🤖 Generated with Claude Code

1. A missing model, claims or rules path was an E_LOAD with a hint about
   stdlib.writ. It is now E_FILE_NOT_FOUND in the arguments, naming the
   argument and the path it resolved to. E_LOAD stays for a (load …) form,
   with a hint about loads.
2. Dead ends lead with their situation index and end with their cells, so
   writ_show can follow them and a worker stuck half-way no longer looks like
   an intended ending. CLI too; tour.md and the guide examples regenerated.
3. writ_validate reports every error it can find: after a name or type error
   it blanks that top-level form (lines kept) and reads the file again, up to
   20, one per form. A syntax error, or one in the schema or instance, stops
   it. Claims that read after blanking still get the n/a check, and errors
   come in file order.
4. instructions were set (676 chars), but initialize always answered
   protocol 2024-11-05, and the instructions field only arrived in 2025-03-26.
   The version is now negotiated: the client's own if this server speaks it,
   else the newest. writ_guide's description also carries the workflow, for
   clients that drop instructions anyway.
5. compare prints `equations:   none` rather than an empty label.

writ-problems (306), writ-arch (74) and scheduling (12) pass against an
installed build.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sajonaro
sajonaro merged commit 7f2cc87 into main Oct 3, 2026
7 checks passed
@github-actions github-actions Bot locked and limited conversation to collaborators Oct 3, 2026
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant