Skip to content

bug(onboarding): seeded default agents have no images on a fresh install — avatar generation needs a Gemini key nobody has yet #2693

Description

@vybe

Summary

On a fresh install with no keys configured, every seeded default agent renders without an image. Shipped templates declare avatar_prompt and avatars are produced at runtime by the Gemini-backed image generation service, which short-circuits with not_configured when GEMINI_API_KEY is absent — which is the state of every new instance. The default fleet is the first thing a new operator sees, and it arrives blank.

Context

First-run seeding provisions a starter fleet from bundled local: templates, so a fresh install comes up with agents already running. Those templates carry an avatar_prompt (e.g. config/agent-templates/scout/template.yaml) rather than an image, and src/backend/services/image_generation_service.py returns not_configured without a Gemini key — so the generation path that would fill it in never runs.

The result is that the out-of-the-box experience, including on a marketplace install where the operator has configured nothing at all, is a dashboard of identity-less agents.

Acceptance Criteria

  • Seeded default agents show an image on a fresh install with no keys configured and no outbound API call at boot
  • The approach is a deliberate choice, not a fallback bolted on: either a static image bundled with each shipped template (preferred — deterministic and offline) or a distinctive per-agent placeholder
  • avatar_prompt remains the regeneration path once a Gemini key exists; a bundled image must not block an operator from generating a new one
  • Covers every agent in the bundled first-run manifest, not only the templates that happen to have prompts today
  • Nothing about the default fleet's appearance depends on an external API being reachable

Technical Notes

  • Templates: config/agent-templates/*/template.yaml (avatar_prompt)
  • Generation service and its not_configured short-circuit: src/backend/services/image_generation_service.py
  • Avatar storage: src/backend/db/agent_settings/avatar.py
  • First-run seeding: src/backend/services/system_seed_service.py

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

complexity-mediumComplexity: medium (board points 5-8)priority-p2Importantstatus-in-devMerged to dev, awaiting release cut to mainstatus-readyGreenlit and ready for development (vetted; counterpart to status-incubating)theme-ui-uxTheme: UI/UXtype-bugBug fix

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions