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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions