Skip to content

media: import legacy user + project images in import-laddr (not runtime fallback) #130

Description

@themightychris

Context

Reported by Travis in #0-leadership-team (June 2026): the new site shows initials/blank where laddr profile photos (and project art) used to be.

allowing the new site to also pull from the old site's images for users and projects

Decision (2026-06): import, don't proxy-fallback

Investigation found:

  • avatarUrl is derived solely from avatarKey (serializers/common.ts:54, person.ts:94); when null the SPA shows initials. There is no gravatar fallback.
  • import-laddr imports blog-post media but not person avatars or project images, and RawPersonSchema (json-fetcher) doesn't even fetch an avatar field — so every imported user lands with avatarKey: null.

So the right fix is to import the legacy images during import-laddr (download → processAvatar-style square + thumbnail → store as gitsheets attachment → set avatarKey), not a runtime proxy/fallback to the old site (which would couple uptime to laddr).

Open question (blocks implementation)

The laddr /people?format=json payload doesn't expose avatars. Need the Emergence-side source for a person's photo (likely an Avatar/Photo media ref or a /people/<id>/avatar URL) and the equivalent for project logos/art, then extend the fetcher + importer to pull + store them.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions