Skip to content

Remove resource write endpoints after canvas tool removal; document the write invariant #1106

Description

@phernandez

From the 2026-07 architecture review (basic-memory-cloud docs/architecture-review-2026-07.md, diagram 3).

The system has two write directions. All markdown note writes converge on the DB-first accepted-write pipeline (knowledge_router -> NoteContentMutationService). The resource_router (api/v2/routers/resource_router.py:141,259) is the remaining file-first fork: it writes storage inline before the DB — on cloud that is a synchronous Tigris write inside the request, the pattern the DB-first redesign eliminated for notes.

Verified in review: the canvas MCP tool is the only writer of the resource POST/PUT endpoints (mcp/tools/canvas.py:132-155). Cloud consumers of resource endpoints (public shares, preview, review) are all GET reads. Editor image uploads already go file-first via PUT /webdav/... -> Tigris webhook -> index_file.

Tasks:

  • Remove the canvas MCP tool (already planned — prerequisite; it is already excluded from the hosted MCP server)
  • Delete resource POST/PUT write endpoints; keep GET reads
  • Remove the corresponding MCP client write methods
  • Document the invariant in basic-memory-cloud docs/ARCHITECTURE.md: markdown notes = DB-first accepted writes; everything else (binaries, uploads, imports, external edits) = file-first through the storage-event pipeline

Acceptance: no synchronous in-request object-storage writes remain on any content path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    arch-review2026-07 architecture review cleanup (cloud tracker basic-memory-cloud#1558)bugSomething isn't workingcloudBasic Memory ClouddocumentationImprovements or additions to documentationenhancementNew feature or requestquestionFurther information is requested

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions