Skip to content

feat(compare): side-by-side A/B/C compare tool (#23) - #149

Merged
iret77 merged 1 commit into
mainfrom
feat/issue-23-side-by-side-compare
Aug 1, 2026
Merged

feat(compare): side-by-side A/B/C compare tool (#23)#149
iret77 merged 1 commit into
mainfrom
feat/issue-23-side-by-side-compare

Conversation

@iret77

@iret77 iret77 commented Jul 31, 2026

Copy link
Copy Markdown
Contributor

Neues compare-MCP-Tool: A/B- bzw. A/B/C-Vergleich in voll-Panes (Markdown + Bild/Video pro Variante), Klick wählt eine aus → {selected}. Optional sync_scroll. Zieht den Markdown→sanitized-HTML-Renderer aus Form.svelte in ein geteiltes markdown.ts (eine DOMPurify-Allowlist statt Duplikat).

Build: Rust 143✓, clippy✓, FE grün, Python 36✓. Mac-E2E offen: Rendering, Klick-vs-Textselektion-Guard, sync-scroll.

Closes #23


Batch-Kontext: Teil eines 6-PR-Sets (#141, #146, #23, #24, #25, #17) aus parallelen Sub-Sessions, das zusammen einen Release ergibt.

  • Kein Versions-Bump in diesem PR — die Version wird gesammelt beim Release gebumpt (keine Rapid Releases).
  • Empfohlene Merge-Reihenfolge: 3/6. Spätere PRs werden nach vorherigen Merges auf main rebased (Hotspots: mcp.rs, http.rs, skill.md, CHANGELOG.md, server.py).
  • Kein Push auf main; Merge via PR (AGENTS.md). CI baut/testet; interaktives Dialog-E2E nur am Mac verifizierbar.

View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is disabled.

Adds a standalone `compare` MCP tool alongside confirm/ask/form/gallery:
render 2+ full-content variants (Markdown text and/or image/video) as
equal-width panes and let the user click one to pick, instead of a
small thumbnail (ask) or an independent per-item verdict (gallery).

- New Compare.svelte widget with sync_scroll (locked scroll across
  panes) and a shared max_height so panes stay visually equal.
- Rust: compare case in the spec validator (>=2 variants, non-empty
  value) and the window-size estimator (scales with variant count,
  grows for image/video variants).
- Mirrored compare tool in the Python aiui-mcp package for
  remote/headless sessions.
- Extracted the Markdown-to-sanitized-HTML renderer out of Form.svelte
  into companion/src/lib/markdown.ts so both widgets share one
  DOMPurify allowlist instead of drifting.
- docs/skill.md and CHANGELOG.md updated.
@iret77
iret77 force-pushed the feat/issue-23-side-by-side-compare branch from c9739dd to b52e2ba Compare July 31, 2026 21:39
@iret77
iret77 merged commit 2ddd51f into main Aug 1, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add side-by-side compare (A/B oder A/B/C)

1 participant