Diego Rodrigues de Sa e Souza
71c85f31cd
feat(guardrails): modality bridge core — vision mode/task-aware/cache/input_image + modalityBridge settings (#9759)
* 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>
2026-08-08 01:59:11 -03:00
..
2026-07-26 12:11:31 -03:00
2026-07-02 10:47:13 -03:00
2026-08-05 23:51:43 -03:00
2026-06-26 23:14:27 -03:00
2026-07-17 11:32:25 -03:00
2026-04-24 13:20:59 -03:00
2026-07-17 10:40:56 -03:00
2026-07-17 10:40:56 -03:00
2026-07-27 17:24:43 -03:00
2026-07-26 17:19:19 -03:00
2026-06-17 19:26:32 -03:00
2026-07-18 21:19:27 -03:00
2026-07-04 13:00:30 -03:00
2026-07-17 10:40:22 -03:00
2026-07-16 14:13:43 -03:00
2026-04-28 02:41:19 -03:00
2026-07-10 19:04:51 -03:00
2026-07-26 12:11:31 -03:00
2026-04-17 11:56:52 -03:00
2026-06-03 18:24:41 -03:00
2026-06-29 08:40:06 -03:00
2026-07-27 19:06:45 -03:00
2026-08-05 23:52:27 -03:00
2026-07-26 16:30:52 -03:00
2026-08-05 08:32:38 -03:00
2026-07-23 05:03:44 -03:00
2026-06-26 02:51:06 -03:00
2026-08-02 20:35:58 -03:00
2026-05-29 12:44:29 -03:00
2026-06-20 14:55:24 -03:00
2026-07-26 03:52:38 -03:00
2026-06-28 06:58:29 -03:00
2026-06-08 00:47:34 -03:00
2026-07-27 17:24:09 -03:00
2026-07-18 21:19:42 -03:00
2026-06-26 02:51:06 -03:00
2026-05-11 00:41:36 +02:00
2026-08-08 01:59:11 -03:00
2026-03-04 21:02:56 -03:00
2026-07-27 19:07:13 -03:00
2026-07-18 03:07:37 -03:00
2026-05-26 23:51:47 -03:00
2026-08-05 08:44:59 -03:00
2026-08-05 22:41:06 -03:00
2026-07-16 14:13:26 -03:00
2026-08-05 22:41:06 -03:00
2026-07-21 11:50:14 -03:00
2026-06-19 06:49:01 -03:00
2026-08-05 21:43:55 -03:00
2026-08-05 21:43:55 -03:00
2026-08-05 21:43:55 -03:00
2026-06-13 17:27:40 -03:00
2026-08-05 21:43:55 -03:00
2026-08-06 22:55:33 -03:00
2026-08-07 11:13:20 -03:00
2026-07-18 21:19:42 -03:00
2026-08-07 20:54:23 -03:00
2026-08-05 23:52:21 -03:00
2026-08-06 11:08:23 -03:00
2026-07-26 03:52:46 -03:00
2026-08-05 08:32:38 -03:00
2026-08-05 08:32:38 -03:00
2026-08-05 08:32:38 -03:00
2026-07-12 18:07:49 -03:00
2026-08-05 21:43:40 -03:00
2026-08-05 22:40:26 -03:00
2026-06-04 20:05:38 -03:00
2026-08-05 21:42:18 -03:00
2026-07-27 11:29:49 -03:00
2026-05-29 12:44:29 -03:00
2026-06-30 06:54:29 -03:00
2026-04-23 16:28:33 +00:00
2026-06-27 09:07:12 -03:00
2026-08-05 23:52:27 -03:00
2026-08-07 20:53:57 -03:00
2026-08-05 22:41:25 -03:00
2026-07-26 12:11:23 -03:00
2026-07-27 17:25:30 -03:00
2026-08-05 22:41:13 -03:00
2026-07-11 11:22:22 -03:00
2026-08-04 10:06:25 -03:00
2026-07-26 03:52:38 -03:00
2026-07-19 20:52:54 -03:00
2026-06-08 18:50:53 -03:00
2026-07-24 09:35:51 -03:00
2026-08-07 20:52:51 -03:00
2026-07-28 01:27:20 -03:00
2026-06-07 07:20:02 -03:00
2026-07-07 21:48:27 -03:00
2026-06-26 02:51:06 -03:00
2026-07-26 16:30:52 -03:00
2026-05-15 20:23:53 +01:00
2026-07-02 10:47:13 -03:00
2026-08-07 20:53:12 -03:00