mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-09-17 20:32:25 +03:00
* feat(sse): unified media-part detection helper (image+audio, input_image) * refactor(guardrails): extractImageParts/comboStructure delegate to unified media detector * fix(sse): media detector — audio parts no longer shadow sibling/nested image indicators * fix(guardrails): close extract↔replace contract for input_image (allowlist + splice) * perf(guardrails): skip media traversal when bridge disabled; short-circuit combo image check * feat(guardrails): in-memory LRU bridge cache (sha256 keyed) * feat(settings): modalityBridge* schema with legacy visionBridge* fallback * feat(db): migrate visionBridge* settings to modalityBridge* (idempotent) * refactor(guardrails): harden bridge cache key/config + settings resolution (review minors) * feat(guardrails): vision bridge mode selector (auto/describe/reroute) short-circuit * feat(guardrails): task-aware vision description prompt (default on) * feat(guardrails): describe-path cache integration * docs(guardrails): review polish — cache-key coupling notes + helper header * feat(guardrails): in-memory bridge stats + modality-bridge response header * feat(api): modality bridge stats endpoint + header wiring in chat handler * docs(guardrails): document modality bridge mode/task-aware/cache/header + stats endpoint * chore: untrack _tasks symlink (inherited from base tip; blocks pre-commit tracked-artifacts gate) * fix(db): renumber modality bridge migration 139->140 (base renumbered ccr_blocks to 139) * docs(guardrails): migration filename touch-up 139->140 * docs(db): stale comment touch-ups after 139->140 renumber and #9688 landing * fix(db): renumber modality bridge migration 140->141 (base renumbered connection_runtime_state to 140) * test(db): migration test titles 139->141 --------- Co-authored-by: diegosouzapw <diegosouzapw@users.noreply.github.com>
31 lines
1.8 KiB
SQL
31 lines
1.8 KiB
SQL
-- 141_modality_bridge_settings.sql
|
|
-- Modality Bridge (PR-1): copy legacy visionBridge* settings to the new modalityBridge* keys.
|
|
-- Legacy keys are left in place for one release cycle (rollback window).
|
|
-- Idempotent: each INSERT only fires when the new key does not exist yet, so an
|
|
-- operator-set modalityBridge* value is never overwritten and re-runs are no-ops.
|
|
|
|
INSERT INTO key_value (namespace, key, value)
|
|
SELECT 'settings', 'modalityBridgeVisionEnabled', value FROM key_value
|
|
WHERE namespace = 'settings' AND key = 'visionBridgeEnabled'
|
|
AND NOT EXISTS (SELECT 1 FROM key_value WHERE namespace = 'settings' AND key = 'modalityBridgeVisionEnabled');
|
|
|
|
INSERT INTO key_value (namespace, key, value)
|
|
SELECT 'settings', 'modalityBridgeVisionModel', value FROM key_value
|
|
WHERE namespace = 'settings' AND key = 'visionBridgeModel'
|
|
AND NOT EXISTS (SELECT 1 FROM key_value WHERE namespace = 'settings' AND key = 'modalityBridgeVisionModel');
|
|
|
|
INSERT INTO key_value (namespace, key, value)
|
|
SELECT 'settings', 'modalityBridgeVisionPrompt', value FROM key_value
|
|
WHERE namespace = 'settings' AND key = 'visionBridgePrompt'
|
|
AND NOT EXISTS (SELECT 1 FROM key_value WHERE namespace = 'settings' AND key = 'modalityBridgeVisionPrompt');
|
|
|
|
INSERT INTO key_value (namespace, key, value)
|
|
SELECT 'settings', 'modalityBridgeVisionTimeout', value FROM key_value
|
|
WHERE namespace = 'settings' AND key = 'visionBridgeTimeout'
|
|
AND NOT EXISTS (SELECT 1 FROM key_value WHERE namespace = 'settings' AND key = 'modalityBridgeVisionTimeout');
|
|
|
|
INSERT INTO key_value (namespace, key, value)
|
|
SELECT 'settings', 'modalityBridgeVisionMaxImages', value FROM key_value
|
|
WHERE namespace = 'settings' AND key = 'visionBridgeMaxImages'
|
|
AND NOT EXISTS (SELECT 1 FROM key_value WHERE namespace = 'settings' AND key = 'modalityBridgeVisionMaxImages');
|