@goodandready/dsh-image-gen 0.10.13 → 0.10.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/README.ru.md +18 -0
- package/lib/client.js +1028 -1019
- package/lib/cost-meter.js +3 -2
- package/lib/frontend-assets.js +3 -0
- package/lib/generation-cache.js +7 -3
- package/lib/index.js +87 -28
- package/lib/loop-guard.js +6 -1
- package/lib/providers.js +1 -1
- package/lib/resolve-image.js +12 -1
- package/lib/security.js +10 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -84,6 +84,24 @@
|
|
|
84
84
|
* **Subscription Aspect Ratio Mapping**: maps aspect ratios (`16:9`, `3:2`, `9:16`, `2:3`) to appropriate subscription dimensions (`1536x1024` / `1024x1536`) instead of falling back to default square `1024x1024`.
|
|
85
85
|
|
|
86
86
|
|
|
87
|
+
### 🚀 What's New in v0.10.15
|
|
88
|
+
* **Loop Guard Zero-Limit Bypass (#212)**: Fixed an edge case where setting `loopGuardLimit: 0` (configured to disable protection) enforced a limit of 1 due to `Math.max(1, limit)`. Setting limit to 0 now properly bypasses loop checks.
|
|
89
|
+
* **Security Hardening (Token Masking)**: Added automatic pattern masking for Replicate API tokens (`r8_...`) and Google Gemini API keys (`AIza...`) in `sanitizeErrorAndLogs`.
|
|
90
|
+
* **Cache Resilience**: Isolated LRU touch updates in `getCachedGeneration` so that metadata write contention does not discard valid image bytes on cache hits.
|
|
91
|
+
* **Defensive File Safety**: Added explicit file existence, empty file (0 bytes), and 50 MB maximum size cap checks in `resolveConversationImage` preventing OOM crashes on huge files.
|
|
92
|
+
* **Vectorize Image Attachment & Toolview Preview**: `vectorize_image` now registers the SVG in `ctx.attachments` and provides `url`, enabling interactive preview in `tool.call.toolview`.
|
|
93
|
+
* **SVG Markup Validation**: Added strict validation in `optimizeSvgContent` rejecting non-SVG strings with descriptive errors.
|
|
94
|
+
* **Cost Meter Safety**: Hardened `assertBudgetAvailable` to handle string/undefined/NaN values safely.
|
|
95
|
+
* **Expanded Test Suite**: Added `test/batch3-quality.test.mjs` expanding suite to **126 automated tests (100% pass)**.
|
|
96
|
+
|
|
97
|
+
### 🚀 What's New in v0.10.14
|
|
98
|
+
* **dsh-clinebot Unified Visual Overhaul (#210)**: Redesigned client settings card following the high-end `dsh-clinebot` unified design system. Added top quick stats row (`.ig-grid-4`, `.ig-stat-box`) showing active provider, default specs, safety/loop guard, and daily budget/cache status. Integrated status badges (`.ig-badge-ok/warn/bad`).
|
|
99
|
+
* **5 Categorized Settings Tabs**: Settings fields organized into intuitive tabs: ⚙️ General, 🔌 Provider, ✨ Prompt & Styles, 🛡️ Safety & Budget, ⚡ Cache & Storage.
|
|
100
|
+
* **Client ErrorBoundary Protection**: Wrapped all settings forms and toolviews in an `ErrorBoundary` with retry capability, preventing any component render crash from affecting DSH core UI.
|
|
101
|
+
* **Full Host Config ↔ Client Fields Synchronization**: Synchronized all 40 config properties between `Config` schema in `lib/index.js`, staged `FIELDS` in `lib/client.js`, and localization dictionaries (`en`/`ru`). Exposes controls: `qualityGate`, `dailyBudgetUsd`, `loopGuardLimit`, `diskCache`, `subscriptionQuality`, `cacheBySeed`, `cacheByPrompt`.
|
|
102
|
+
* **Complete Toolview Registration**: Registered `tool.call.toolview` for all 8 visual tools (`generate_image`, `edit_image`, `vary_image`, `blend_images`, `generate_image_pack`, `remove_background`, `upscale_image`, `vectorize_image`).
|
|
103
|
+
* **Safety, Budget & Loop Guard Hardening**: Extended `trackAndAssertLoopGuard`, `assertBudgetAvailable`, and `sanitizeErrorAndLogs` error masking across `edit_image`, `vary_image`, `blend_images`, `remove_background`, and `upscale_image`. Added `seedreamBaseURL` support.
|
|
104
|
+
|
|
87
105
|
### 🚀 What's New in v0.10.13
|
|
88
106
|
* **Plugin Settings Location (#208)**: Moved settings card exclusively into the standard `Settings → Plugins → Plugin settings` section (`settings.plugin.item` slot). Removed the legacy fallback to `settings.section` that previously caused duplicate entries in the top-level sidebar navigation.
|
|
89
107
|
* **Deferred Slot Injection (`registerSlotWhenReady`)**: Implemented robust deferred injection via `ctx.slots.inject` ensuring the settings card safely mounts when the parent settings container is rendered, eliminating timing collisions at startup.
|
package/README.ru.md
CHANGED
|
@@ -130,6 +130,24 @@ graph LR
|
|
|
130
130
|
- **100% интернационализация (#140)**: устранены захардкоженные русские строки, добавлены переводы на русский, английский и китайский языки.
|
|
131
131
|
|
|
132
132
|
|
|
133
|
+
### 🚀 Что нового в v0.10.15
|
|
134
|
+
* **Обход Loop Guard при нулевом лимите (#212)**: Исправлена ошибка, когда при значении `loopGuardLimit: 0` (отключение защиты) срабатывал `Math.max(1, 0) = 1` и блокировал вызовы на 2-й итерации. При значении 0 лимит теперь полностью отключается.
|
|
135
|
+
* **Усиление безопасности токенов**: В `sanitizeErrorAndLogs` добавлено маскирование токенов Replicate (`r8_...`) и ключей Google Gemini (`AIza...`).
|
|
136
|
+
* **Устойчивость дискового кэша**: Изолировано обновление метаданных LRU при чтении из кэша — ошибки записи метаданных больше не приводят к сбросу валидных байтов кэша.
|
|
137
|
+
* **Безопасность загрузки файлов**: В `resolveConversationImage` добавлены проверки существования файла, запрет 0-байтных файлов и ограничение 50 МБ для предотвращения переполнения памяти.
|
|
138
|
+
* **Вложения и Toolview для векторизации**: Инструмент `vectorize_image` теперь сохраняет SVG во вложения `ctx.attachments` и возвращает `url`, что активирует карточку интерактивного предпросмотра в чате.
|
|
139
|
+
* **Валидация SVG-разметки**: `optimizeSvgContent` теперь строго проверяет наличие корневого тега `<svg>` и выдает понятную ошибку при передаче не-SVG текста.
|
|
140
|
+
* **Безопасная обработка бюджета**: `assertBudgetAvailable` защищен от `NaN`, нечисловых и неопределенных значений стоимости.
|
|
141
|
+
* **Расширенное тестирование**: Добавлен набор тестов `test/batch3-quality.test.mjs`, общее число тестов выросло до **126 (100% pass)**.
|
|
142
|
+
|
|
143
|
+
### 🚀 Что нового в v0.10.14
|
|
144
|
+
* **Единый дизайн в стиле dsh-clinebot (#210)**: Интерфейс настроек переработан в соответствии со стандартами `dsh-clinebot`. Добавлен верхний дашборд быстрой статистики (`.ig-grid-4`, `.ig-stat-box`), отображающий активного провайдера, формат и размер, статус Quality Gate и лимит Loop Guard, дневной бюджет и состояние кэша.
|
|
145
|
+
* **5 категорий настроек (табы)**: Поля сгруппированы по вкладкам: ⚙️ Основные, 🔌 Провайдер, ✨ Промпт и стили, 🛡️ Безопасность и бюджет, ⚡ Кэш и хранение.
|
|
146
|
+
* **Защита интерфейса через ErrorBoundary**: Все формы настроек и тулвью обёрнуты в компонент `ErrorBoundary` с возможностью повтора (Retry), что изолирует возможные ошибки отрисовки от основного интерфейса DSH.
|
|
147
|
+
* **Полная синхронизация Config ↔ Client FIELDS ↔ Словари**: Синхронизированы все 40 параметров конфигурации. В интерфейс выведены управление `qualityGate`, `dailyBudgetUsd`, `loopGuardLimit`, `diskCache`, `subscriptionQuality`, `cacheBySeed`, `cacheByPrompt`.
|
|
148
|
+
* **Регистрация Toolview для всех 8 визуальных инструментов**: Карточка `tool.call.toolview` теперь регистрируется для `generate_image`, `edit_image`, `vary_image`, `blend_images`, `generate_image_pack`, `remove_background`, `upscale_image`, `vectorize_image`.
|
|
149
|
+
* **Комплексная защита от циклов и утечек API-ключей**: Расширено действие `trackAndAssertLoopGuard`, проверки бюджета `assertBudgetAvailable` и санитизации ошибок `sanitizeErrorAndLogs` на инструменты `edit_image`, `vary_image`, `blend_images`, `remove_background`, `upscale_image`. Добавлен параметр `seedreamBaseURL`.
|
|
150
|
+
|
|
133
151
|
### 🚀 Что нового в v0.10.13
|
|
134
152
|
* **Размещение карточки настроек (#208)**: Карточка настроек плагина перенесена строго в стандартную вкладку «Настройки → Плагины → Настройки плагинов» (слот `settings.plugin.item`). Удалён устаревший запасной путь `settings.section`, из-за которого настройки отображались отдельным пунктом в общем корневом меню настроек.
|
|
135
153
|
* **Безопасная отложенная регистрация слота (`registerSlotWhenReady`)**: Регистрация через `ctx.slots.inject` гарантирует корректную загрузку и монтирование формы настроек при открытии страницы в DSH UI без ошибок синхронизации.
|