Skip to content

Remove disable_permalinks and make note permalinks invariant #1395

Description

@phernandez

Problem

BasicMemoryConfig.disable_permalinks creates a second Markdown identity regime where canonical notes can lack permalinks. That now conflicts with the accepted-change journal in #1382, and it also forces every projector, linker, resolver, and replay consumer to support a nullable canonical identity.

Exact-head review surfaced the immediate failure: #1382 (comment)

Direction

Remove the disable_permalinks feature instead of spreading nullable-permalink compatibility through the journal and Wiki stack. Canonical Markdown notes should always receive a permalink.

Concrete follow-up

  • Remove the configuration flag and the conditional paths that intentionally leave Markdown entity permalinks unset.
  • Keep permalink assignment as an invariant at canonical note mutation boundaries.
  • Remove or rewrite tests and documentation for permalink-disabled projects.
  • Define the upgrade behavior for any persisted configuration that still sets the flag, failing clearly rather than silently producing identity-less notes.
  • Add regression coverage proving create, update, edit, move, delete, and accepted-change replay always carry canonical permalink identity.

Acceptance

There is one Markdown identity model: every accepted canonical note mutation has a non-null permalink, and the ordered accepted-change journal/projector contract requires no nullable fallback.

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