Skip to content

heronin: photo facts, thumbnails and tags come from Drive - #35

Merged
fizzy-pm[bot] merged 1 commit into
mainfrom
heronin/drive-meta
Nov 11, 2026
Merged

fizzy-pm[bot] merged 1 commit into
mainfrom
heronin/drive-meta

Conversation

@fizzy-publish

@fizzy-publish fizzy-publish Bot commented Nov 11, 2026

Copy link
Copy Markdown

heronin: photo facts, thumbnails and tags come from Drive

In plain words

Photos stored in Drive now bring their dates, camera details, dimensions, tags and favorites into Heronin. Thumbnail requests and tag edits can wait for Drive to answer. Imports distinguish different photos that happen to have the same file size.

Part of fizzyedit/work#1185

What changes

  • Read photo details and saved tags from Drive when available.
  • Deliver thumbnail bytes and edit results on the next store pump.
  • Refresh the photo listing after successful edits.
  • Preserve existing behavior when Drive lacks these commands.
    pub fn unsupported(p: *Pending) void {
        p.result = error.Unsupported;
        p.store.queue(p.ctx, .{ .meta = p });
    }

What you will notice

Drive photo details, tags and favorites populate the library. Tagging can run with Drive mounted. Drawing the returned thumbnail images remains a separate task.

How we know it works

In-process fakes check metadata, deferred thumbnails, property writes, listing refreshes, same-size import collisions and compatibility with older Drive versions. All six requested gates pass.

How this serves fizzy

The platform lets Heronin use Drive's photo capabilities through named commands without linking Drive into the app.

For agents: technical summary

Goal

Connect the store to Drive D3/D4 commands while preserving older-host behavior.

What changed and why

Meta has three function pointers and a context. Each deferred operation uses one Pending, with results copied into the existing answer queue. Host event parsing uses std.zon.parse.fromSlice and defaults missing props to an empty object. Successful imports expose the content MD5.

Source budget: 206 added non-test lines and 420 added-plus-deleted lines including tests, from git diff --numstat HEAD. No new source files were added (wc -l contribution: 0). The PR page and report are delivery artifacts.

How it was verified

Passed: zig fmt --check build.zig tools tests/check_public model app server, zig build, zig build server, zig build test, zig build web, and zig build check-public. git diff --check also passes. New tests require Meta and exercise behavior unavailable on main.

Not done / follow-ups

No live Drive service was exercised. Rendering encoded thumbnails and linking Drive remain separate work. No build files, views, server, FakeStore, drive_props, or store interface changed.

Part of fizzyedit/work#1185

Signed-off-by: fizzy pop-os-codex-2 <slot+pop-os-codex-2@fizzy.invalid>
@fizzy-pm
fizzy-pm Bot merged commit 0dc14e0 into main Nov 11, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants