Skip to content

edit_note doesn't parse workspace-qualified permalinks #810

@phernandez

Description

@phernandez

Summary

edit_note does not parse workspace-qualified permalinks when passed as the identifier parameter. Instead of routing to the correct workspace, it treats the full qualified permalink as a literal file path in the default (personal) workspace and creates a new note there.

Reproduction

  1. Create a note in an org workspace — returns permalink like basic-memory-xxx/project/path/note-name
  2. Call edit_note with that full permalink as the identifier:
    edit_note(
      identifier="basic-memory-xxx/project/path/note-name",
      operation="append",
      content="new content"
    )
    
  3. Expected: Edits the existing note in the org workspace
  4. Actual: Creates a new note in the personal/default workspace at path basic-memory-xxx/project/path/note-name.md

Workaround

Using project_id + a short (unqualified) identifier works correctly:

edit_note(
  identifier="path/note-name",
  project_id="<uuid>",
  operation="append",
  content="new content"
)

Context

This is the same class of bug as #799 (build_context workspace routing). read_note and delete_note correctly parse workspace-qualified permalinks, but edit_note does not.

Environment

  • Production (verified 2025-05-08)
  • Also likely affects development

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions