Skip to content

[FEATURE] Pinned context: permanent and session-scoped note pinning #16

@ScottKirvan

Description

@ScottKirvan

Is your feature request related to a problem?

There is no way to tell Cortex to always include a specific note (style guide, project brief, taxonomy) in every session without manually pasting its contents into the context file.

Describe the solution you'd like

Two tiers of pinned context:

Permanent pins — injected into every session automatically.

  • Set via Settings → Cortex → Always-pinned notes (a list of vault-relative paths)
  • Or via note frontmatter: claude: { context: always } (requires FrontmatterGuard)

Session pins — added for the current conversation only, cleared on new session.

  • Added via a context panel/drawer in the chat UI
  • Or via right-click in the Obsidian file explorer → "Pin to Cortex context"
  • Or via an inline command from within a note

The chat panel should show a visible indicator of currently active pinned notes.

Describe alternatives you've considered

Copying note contents into the context file manually — works but loses the live connection to the actual note and creates duplication.

Use Case

  • A writing style guide always present when working on blog posts
  • A project brief pinned for the duration of a planning session
  • A taxonomy reference pinned permanently so Claude always knows the tagging conventions

Additional Context

Described in the design doc as Context Layer 3c. Permanent pins are injected at session start alongside the vault tree and context file. Session pins are cleared when the user starts a new session.

Implementation Suggestions

  • Add pinnedNotes: string[] to CortexSettings for permanent pins
  • Extend ContextManager.buildSessionContext() to read and inject pinned note content
  • Add a session-scoped pins array to ClaudeView state
  • Add a small context drawer UI element to the chat panel showing active pins with remove buttons
  • Register a file explorer context menu item via app.workspace.on('file-menu', ...)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    Status

    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions