feat(image): add native-read controls and autosave settings

- add per-profile native image preferences and native-capability detection
- redesign Settings -> Image around compact sections with Web-style autosave
- expose richer backend/profile status and update Gemini Flash defaults
This commit is contained in:
Tam Nhu Tran committed 2026-04-01 15:32:37 -04:00
1 parent 9d1d281e34
commit 982ffc5895
30 files changed
+1893 -708

No files matched your search

+20 -4
View File
@@ -100,9 +100,17 @@ describe('Model Catalog', () => {
assert.strictEqual(gem3.tier, undefined, 'AGY models should not have paid tier');
});
it('has 3 models total', () => {
it('includes Gemini Flash via Antigravity', () => {
const { MODEL_CATALOG } = modelCatalog;
assert.strictEqual(MODEL_CATALOG.agy.models.length, 3);
const flash = MODEL_CATALOG.agy.models.find((m) => m.id === 'gemini-3-1-flash-preview');
assert(flash, 'Should include Gemini Flash');
assert.strictEqual(flash.name, 'Gemini Flash');
assert.strictEqual(flash.tier, undefined, 'AGY models should not have paid tier');
});
it('has 4 models total', () => {
const { MODEL_CATALOG } = modelCatalog;
assert.strictEqual(MODEL_CATALOG.agy.models.length, 4);
});
});
@@ -155,9 +163,17 @@ describe('Model Catalog', () => {
assert.strictEqual(gem25.tier, undefined);
});
it('has 2 models total', () => {
it('includes Gemini Flash with pro tier', () => {
const { MODEL_CATALOG } = modelCatalog;
assert.strictEqual(MODEL_CATALOG.gemini.models.length, 2);
const flash = MODEL_CATALOG.gemini.models.find((m) => m.id === 'gemini-3-flash-preview');
assert(flash, 'Should include Gemini Flash');
assert.strictEqual(flash.name, 'Gemini Flash');
assert.strictEqual(flash.tier, 'pro');
});
it('has 3 models total', () => {
const { MODEL_CATALOG } = modelCatalog;
assert.strictEqual(MODEL_CATALOG.gemini.models.length, 3);
});
});