Diego Rodrigues de Sa e Souza
7715825cb8
fix(video): harden visual frame deduplication ( #11382 )
...
Merged via consolidated batch validation (worktree `.claude/worktrees/batch-0824d`), stacked on the just-merged #11362 as documented. Moves the Video Bridge frame cap to post-dedup, bounds the perceptual candidate pool to at most 2x budget (max 16), includes the dedup policy/version in result-cache identity, adds cooperative abort checks to the comparator loop. Static gates green; own dedup/cache-version regression suite passed in the combined-batch run (grayscale-16x16-mean-cells-v2 policy, real fixtures). Thanks!
2026-08-24 09:31:00 -03:00
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