Aventuras/docs
Tony Frazier bab2236558
Drop Imagen and the fallback list from the Google image profile (#630)
## Summary

The Google image profile no longer supports Imagen models. It lists only
the Gemini image models (`gemini-*-image`, `nano-banana-*`), and every
listed model takes reference images.

It also stops substituting a hard-coded Imagen list when the model
request cannot be made or fails.

## Changes

- `google.ts`: `listModels` keeps only ids that `isGoogleImageModel`
accepts. The `predict` method check, the hard-coded Imagen fallback
list, and the per-model reference-support gating (`takesReferences` /
`referenceSupport`) are removed. Every listed model is `supportsImg2Img:
true`, and `generate` always passes reference images through.
- Without an API key, `listModels` returns `[]` and makes no request.
- A non-OK response or a response without a `models` array now throws
instead of returning the fallback list, so the failure reaches the
caller.
- `google.test.ts`: tests cover the no-key case, filtering to image
models, an empty result, and a failed request. The Imagen-specific tests
and the `modelFetcher` mock are removed.
- `registry.test.ts`: the "downloads no reference for a model that takes
none" case uses an OpenAI `dall-e-3` model, since Google no longer has
such a model.
- `docs/architecture/overview.md`: the reference-image note says Google
takes references on every image model it lists.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_012Byy6EZfyc7U3jH2d2QbCB


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **New Features**
* Google image-generation models can now use supplied reference images
across all supported models.
* The available Google image models are now based on models returned by
the service and marked as supporting reference images.
* **Bug Fixes**
* When no API key is configured, no image models are listed. Failed or
invalid model-list requests and empty results no longer show hard-coded
fallback models.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 13:35:26 -04:00
..
architecture Drop Imagen and the fallback list from the Google image profile (#630) 2026-10-19 13:35:26 -04:00
development Harden the HTTP plugin transport: body timeouts, no Origin, decompression, OS roots (#622) 2026-10-18 13:27:54 -04:00
README.md Keep a generation running in the background on iOS (#626) 2026-10-18 15:01:14 +05:30

Aventuras — internal documentation

How the app is put together and why it is put together that way. The user-facing page is the repository README; this is for whoever is changing the code.

These documents carry the reasoning that does not fit in a comment: the measured numbers, the failure a design exists to prevent, the two things that must stay in step. Code comments stay short and say only what the next reader cannot infer — see CLAUDE.md.

Architecture

Document Read it before touching
overview.md the repository layout, StoryEntry/branches/chapters/world state, the generation pipeline, or the side panels and their swipe gestures
context-injection.md services/ai/retrieval/, WorldStateInjector, the three tiers, stickiness, agentic or static memory retrieval
lore-management.md services/ai/lorebook/, services/duplicates/, LoreManagementCoordinator, the duplicates window
prompts.md anything under services/prompts/templates/, prompt packs, or the order blocks are assembled in
ai-services.md adding a ServiceId, agent profiles, reasoning effort, or a default in ai/core/defaults.ts
persistence.md SQLite, a new migration, src-tauri/src/, or the shape of the settings blob
dialogue-and-tts.md utils/dialogue.ts, dialogue highlighting, or the TTS pipeline
story-time.md services/storyTime/, time anchors, timeline anomalies, reconciliation, or a new story's starting time
exchange-format.md services/exchange/, exporting or importing a vault character, scenario or lorebook, the Aventura JSON format
state-tracking.md services/stateTracking/, rollbackService, the store's write methods, checkpoints at past entries, the Labs State Tracking switch
narration-cleaning.md utils/narrationClean.ts, or sending story entries to a model that should not read <pic> tags, HTML or layout markup

Development

Document Read it before
testing.md writing a test — the suite has real constraints on what it can import
release.md cutting a release, or changing the updater, CI or the build scripts
ci-caching.md changing a CI cache key, what a cache stores, or the Android targets
ios-build-target.md the iOS build target, the unsigned .ipa pipeline, or gen/apple
ios-background-generation.md keeping a generation running while the app is in the background on iOS, or the generation plugin
platform-support.md using a new JS, CSS or Web API, or changing the bundle targets or minimum OS versions
shadcn-svelte.md regenerating components/ui/ or bringing back the shadcn-svelte generator

Keeping them true

If a change alters behaviour a document describes, update the document in the same commit. A document nobody trusts costs more than no document: the numbers in these files were measured, and a stale one is read as a measurement.