Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
8054016
feat: overlay persisted image-region boxes on source figures
seonghobae Aug 20, 2026
e7d1b35
docs: avoid image overlay ADR collision
seonghobae Aug 20, 2026
6681688
test: cover invalid image overlay bounds
seonghobae Aug 20, 2026
e6fd907
docs: allocate unique image overlay ADR number
seonghobae Aug 20, 2026
a3b1ec0
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into c…
seonghobae Aug 20, 2026
2da6a18
fix: validate embedded image sources at render boundary
seonghobae Aug 20, 2026
9c2d26c
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into f…
seonghobae Aug 20, 2026
66fc696
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into f…
seonghobae Aug 20, 2026
d8a938c
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into f…
seonghobae Aug 20, 2026
7504774
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into f…
seonghobae Aug 21, 2026
381098a
Merge latest buyer image evidence into region overlays
seonghobae Aug 21, 2026
6c8f31c
Merge commit 'ff562a99cf57759b61ee657293b74ea3938cf1ac' into HEAD
seonghobae Aug 21, 2026
bd3f649
Merge remote-tracking branch 'refs/remotes/origin/feat/buyer-image-re…
seonghobae Aug 21, 2026
f44ec17
Merge remote-tracking branch 'origin/fix/buyer-image-evidence' into c…
seonghobae Aug 21, 2026
76dc329
Merge remote-tracking branch 'origin/feat/buyer-image-region-overlays…
seonghobae Aug 21, 2026
6d716a1
Merge commit 'b818ef88ef4a5964ddeb2752b610170feab0d2cd' into HEAD
seonghobae Aug 21, 2026
a550f8f
fix: preserve buyer image region evidence
seonghobae Aug 21, 2026
05860e9
Merge remote-tracking branch 'origin/feat/buyer-image-region-overlays…
seonghobae Aug 21, 2026
5336b28
fix: preserve image region evidence during restack
seonghobae Aug 21, 2026
324f1fa
Merge remote-tracking branch 'origin/feat/buyer-image-region-overlays…
seonghobae Aug 21, 2026
c9b39eb
Merge commit '3131868a9ffbd85fb32895eaebf0a130dd6a9af7' into HEAD
seonghobae Aug 21, 2026
8b37682
fix: preserve buyer chrome across image overlays
seonghobae Aug 21, 2026
519a8c3
fix: keep evidence panel above buyer header
seonghobae Aug 21, 2026
9339e2b
Merge branch 'fix/buyer-image-evidence' of https://github.com/Context…
seonghobae Aug 21, 2026
57e75d5
fix: preserve image region evidence state
seonghobae Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,10 @@ contextual-orchestrator owns model discovery and selection.
retaining the original asset and provenance. Recognize image DOM/visual
regions before OCR, descriptions, Keyman extraction, or embeddings. Store
region-level evidence; never show an internal LLM instruction such as
`This post is an image` to a buyer.
`This post is an image` to a buyer. When a source image can be reattached,
draw only persisted visual-region boxes; never invent coordinates. If the
bitmap is missing or a box is invalid, keep the region list and do not
fabricate a locator (ADR 0110 / 0113).

## Source parsing and semantic units

Expand All @@ -150,7 +153,8 @@ contextual-orchestrator owns model discovery and selection.
paragraphs, not the authoring application's spacing workaround.
- Image descriptions, OCR text, and region evidence are analysis artifacts,
not buyer-facing prompt instructions. Buyer UI shows the source content and
useful captions/evidence only, with provenance where appropriate.
useful captions/evidence only, with provenance where appropriate. Overlay
boxes use stored ratios; a missing image fails closed to the list.

## Pluggable channels: never fake a missing signal

Expand Down
20 changes: 20 additions & 0 deletions CHANGELOG.d/2.13.2-image-region-overlays.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# 2.13.2 — Overlay persisted image-region boxes

## Added

- Buyer post figures now draw persisted visual-region boxes on a reattached
source image. Selecting a box announces that region's caption or OCR.
- Invalid, missing, or out-of-bounds coordinates stay list-only. When the
bitmap cannot be reattached, the region list remains the fallback and no
locator is invented.

## Changed

- Image-region overlay and current-region labels are translated through the
five-locale catalog (Korean, English fallback, Chinese, Japanese,
Vietnamese).
- Buyer image rendering now rejects script, SVG, external, and malformed
source URLs before they reach an image element.
- The login, application shell, footer, and shared button styles remain
defined while the overlay stylesheet evolves; a new post image also clears
any selection from the previous post.
38 changes: 38 additions & 0 deletions docs/adr/0113-buyer-image-region-overlays.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# ADR 0113: Overlay persisted visual-region boxes on the source image

- Status: Accepted
- Date: 2026-08-20
- Depends on: [0067](0067-visual-region-vision-agent.md), [0091](0091-visual-region-embedding-persistence.md), [0110](0110-buyer-image-evidence-rendering.md)

## Context

ADR 0067 and ADR 0091 persist parent-relative `x_ratio`, `y_ratio`,
`width_ratio`, and `height_ratio` for each accepted visual region. ADR 0110
renders captions, OCR, tags, and a region list, but the buyer still cannot
see which panel of the source image supplied that evidence.

## Decision

- When the source image can be reattached and a region has a finite persisted
box inside the unit square, draw that box on the figure as a
keyboard-focusable control. Selecting it announces the persisted caption or
OCR as the current image region.
- Never invent coordinates. Invalid, missing, non-finite, zero-area, or
out-of-bounds boxes stay list-only. When the source image cannot be
reattached, keep the region list and do not draw empty overlays.
- Do not surface LLM instructions from image `unit_text`. Overlay labels come
only from persisted region caption or extracted text.
- Translate overlay and current-region labels through the five-locale UI
catalog.
- Reset the selected region when the rendered source image changes, so a
stayed-open post popup cannot carry a selection into another post.
- Keep the shared login, header, footer, and button selectors defined in the
same stylesheet; image-overlay work must not remove application chrome.

## Consequences

Buyers can locate panel-level evidence on the source image. Search and
embedding remain bound to the existing region tables. A missing bitmap still
fails closed to the list rather than fabricating a locator, and moving between
posts does not show a stale selection. The shared-chrome selector regression
also keeps the login and application shell usable while this feature evolves.
2 changes: 1 addition & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "frontend",
"private": true,
"version": "2.12.6",
"version": "2.13.2",
"type": "module",
"scripts": {
"dev": "vite",
Expand Down
Loading