Photo: save path, is-local, content bytes, metadata and EXIF getters (closes #141)
check / check (push) Successful in 1m18s

A Photo now has savePath and isLocal, which look only at the disk;
content() and exif(), which may download the original; and modifiedAt,
hash, fileSize and year. PhotoRecord gains modifiedAt, hash and fileSize.
The JPEG EXIF scan moves from metadata-backup.ts to the new src/exif.ts,
so the read surface does not import the backup command.

Model: opus-5-5
This commit is contained in:
2026-10-01 15:03:08 +00:00
parent e6825abcdb
commit bef47e64fa
12 changed files with 506 additions and 86 deletions
+9
View File
@@ -25,6 +25,15 @@ declares one.
# Completed Steps
- 2026-10-01: A `Photo` has `savePath`, `isLocal`, `content()`, `exif()`,
`modifiedAt`, `hash`, `fileSize` and `year` (issue 141). `savePath` is where
`lib.backup()` writes the original under the library's download directory, and
`isLocal` says whether the whole original is there; both look only at the
disk. `content()` returns the original's bytes and `exif()` the common EXIF
fields of a JPEG; both may download the original, and `exif()` downloads no
video. `PhotoRecord` gains `modifiedAt`, `hash` and `fileSize`, and the JPEG
EXIF scan moved to `src/exif.ts`.
- 2026-09-29: The "Workflow" list at the top of this file now says to branch
from `next` and open a pull request that targets `next`, that the repository
manager squash-merges a reviewed pull request into `next`, and that only sneak