Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

[Bug] Inbox: relative .md links in attachments navigate to the server root instead of opening the document

Open
#2,230 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
3/5
Estimated time
1-2 days
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
markdown, typescript
Domain
frontend, web-dev

Research direction

Trace how the Inbox Markdown attachment viewer handles links, then compare it with standalone Annotate’s sibling document handling. Reproduce with the provided guide.md and peer.md fixture; check that clicking “Open linked document” opens the sibling within the allowed document scope and shows its heading in the viewer.

Written by the indexing model from the issue text.

Description

What happened?

A relative link to an existing sibling Markdown file is resolved against the Inbox web origin, not the attached document's directory. It leaves the thread URL without displaying the linked document. Standalone Annotate opens the same sibling document inline.

Reproduction

In an empty directory, run this Python fixture generator (all content is synthetic):

from pathlib import Path
import base64

Path('assets').mkdir(exist_ok=True)
Path('assets/sample.png').write_bytes(base64.b64decode('iVBORw0KGgoAAAANSUhEUgAAAEAAAAAgCAIAAAAt/+nTAAAATklEQVR4nO3PUQkAIBTAwBfHYMY2jCH8OITBAtxm7fN1wwUNaEEDWtCAFjSgBQ1oQQNa0IAWNKAFDWhBA1rQgBY0oAUNaEEDWtCAFjx2AWvKQKaxk0G4AAAAAElFTkSuQmCC'))
Path('guide.md').write_text(
    '# Attachment preview repro\n\n'
    '[Jump to target](#target-section)\n\n'
    '[Open linked document](peer.md)\n\n'
    '![Sample image](assets/sample.png)\n\n'
    + ''.join(f'Public filler paragraph {i+1}. This is sample text to put the destination below the fold.\n\n' for i in range(65))
    + '## Target section\n\nTarget marker.\n'
)
Path('peer.md').write_text('# Linked document\n\nPublic sample destination.\n')
  1. Start plannotator inbox --no-open.

  2. Use the Inbox MCP send_message tool with project_path set to this directory and attachments containing the absolute path to guide.md.

  3. Open that thread and click the guide.md attachment.

  4. Click Open linked document ([Open linked document](peer.md)). Both files already exist in the same directory.

  5. Compare with plannotator annotate guide.md (dismiss first-run announcements if shown).

Actual vs expected
Surface Result after clicking peer.md Linked document heading visible
Standalone Annotate Opens the sibling document inline; URL path remains / Yes: “Linked document”
Inbox Markdown attachment Browser navigates to origin-root /peer.md No

Expected: resolve the sibling relative to guide.md, within the allowed document/project scope, and open it in the attachment/document viewer rather than treating it as a root-level web route. Merely rendering the browser's root-relative URL does not open the existing local document.

Environment
  • Plannotator: official 0.28.32, Darwin ARM64 binary.
  • OS: macOS 27.0.1, Apple silicon.
  • Browser: fresh Chromium 155.0.8059.12, headless, 1400×900 viewport.
  • Agent: standalone CLI/MCP reproduction; original workflow uses Pi.
  • Surface: Inbox web UI → Markdown attachment preview.
  • Isolated temporary HOME/data directory; no existing browser profile or private document needed.
Dominant language
TypeScript
Stars
8.7k
Forks
649
Avg merge
6h
Merged PRs (30d)
514

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from backnotprop/plannotator

All issues in backnotprop/plannotator

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.