Add source editing to ingest
All checks were successful
CI / build-and-deploy (push) Successful in 25s

This commit is contained in:
Krishna Kumar
2026-07-02 16:35:02 -05:00
parent f7735431a8
commit 8e1d94a4ea
4 changed files with 119 additions and 1 deletions

View File

@@ -107,18 +107,20 @@ The Sources tab stores non-web material in Marks. Users can:
- import typed/pasted text with an optional title and tags,
- import PDFs, plain text files, generic text/data files through the document picker,
- edit source title, tags, and stored body/extracted text,
- search across source title, body text, tags, and original filename,
- open imported originals through QuickLook,
- delete sources and copied files,
- create or play a podcast from extractable source text.
`IngestedSourceLibrary.load()` reads `Sources/sources.json` from Application Support and indexes sources into Spotlight. Text imports write metadata/body text directly. File imports copy the selected security-scoped file into `Sources/files/`; PDFs extract text with PDFKit, while other files attempt UTF-8/ASCII extraction.
Editing an imported file source updates Marks' stored extracted text and metadata, but does not modify the copied original file.
Change guidance:
- Empty or image-only PDFs may import with no extractable text; podcast actions are disabled when `podcastText` is empty.
- Source podcasts use `marks-source://{uuid}` as the cache/index URL and send extracted text plus `source_kind` to the backend.
- If changing source storage, update deletion, Spotlight removal, QuickLook file lookup, and source podcast cache behavior together.
- If changing source storage, update editing, deletion, Spotlight removal, QuickLook file lookup, and source podcast cache behavior together.
## Podcasts