Library versus sources
The Library is the unified view. A source is a registered folder. A managed source is a folder you choose for normal ADHDNotes writing; a linked source connects existing material in place.
Mixed folders and lenses
Markdown, PDF, and Jupyter .ipynb files may sit beside each other in one source. The remembered All / Markdown / PDF / Notebook lenses change only what the tree shows; they do not move or duplicate files.
Add, reconnect, remove
Add several sources, choose one default write destination, and reconnect a moved folder to its stable source identity. Removing a source disconnects it from the registry and never deletes the folder or its contents.
Read-only means enforced
Source access mode is checked at every write path in the desktop process. Path resolution, real-path containment, missing ancestors, traversal, and symlinks are validated against registered roots rather than trusted from the renderer.
The PDF.js reader
Open an extractable PDF for page navigation, outline, zoom, Find with jump and highlight, paginated or continuous layout, and an open-in-system-viewer fallback. Page text also feeds page-aware Find My Thought results.
Annotate without touching the binary
Select text to add one of five semantic highlight meanings or a callout note. Overlays survive zoom and layout changes. The original PDF remains untouched; local records are protected by a content fingerprint.
Read notebooks without running them
Jupyter notebooks open in a read-only paper-like reader with Markdown, code, input, output, and raw-cell hierarchy; bounded images and outputs; an outline; and Find in notebook. Search results return to the anchored cell. Remote images stay blocked unless you opt in for that open notebook. There is no kernel, Run action, or write-back.
Mark the prose, preserve the file
Exactly mappable text in Markdown cells can take Claim, Action, Doubt, Settled, or Define highlights. ADHDNotes paints and catalogs those app-owned records without mutating the .ipynb file.