Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
d18d6b0
chore: ignore local verification artifacts
Manho Oct 20, 2026
1cd6e40
feat: ask engaged users to rate Panelize on the Chrome Web Store
Manho Oct 20, 2026
ee6cf8b
test: skip Chrome's generated _metadata when copying the extension
Manho Oct 20, 2026
ebe659b
feat: compose comparison snapshots from a tab capture
Manho Oct 20, 2026
54edf0a
feat: share a snapshot of the comparison
Manho Oct 20, 2026
98db635
test: add a live smoke test for sharing a 2x2 comparison
Manho Oct 20, 2026
2f13554
fix: keep focus in an open dialog when the prompt box restores focus
Manho Oct 21, 2026
fdd0bc9
feat: let the multi-panel page scroll provider conversations for snap…
Manho Oct 21, 2026
95deb5a
feat: share snapshots silently, in two layouts, with full answers
Manho Oct 21, 2026
fa55bb4
test: refresh the live extension's service worker on every run
Manho Oct 21, 2026
52231a2
fix: hide floating buttons and fades while stitching full answers
Manho Oct 21, 2026
9a8a98f
fix: keep header fades and overlay scrollbars out of stitched answers
Manho Oct 21, 2026
c050032
fix: hide notices stacked on a pinned composer in stitched answers
Manho Oct 21, 2026
f9a7fed
test: add a live v2 share snapshot test
Manho Oct 21, 2026
4dbabd3
fix: start full answers at the latest turn and keep pinned boxes, fad…
Manho Oct 21, 2026
0e1c786
feat: keep tab sharing between snapshots and open in the last mode
Manho Oct 21, 2026
0a7c7de
fix: keep the shared tab at its own scale and put virtual lists back
Manho Oct 21, 2026
679ada9
fix: take only frames captured after each grab from the shared tab
Manho Oct 21, 2026
17c4076
test: add a live v3 share snapshot run with Grok, both prompts and id…
Manho Oct 21, 2026
87cf5f4
fix: start a snapshot over when the window changes size under it
Manho Oct 21, 2026
eae555f
test: record window size and require every panel stitched in the live…
Manho Oct 21, 2026
41bd1ec
fix: round stitched screens at their edges so seams leave no 1px line
Manho Oct 21, 2026
369f312
test: send directly with timeouts and count only sent prompts in the …
Manho Oct 21, 2026
9e3f29e
feat: make the panelize.dev link stand out in share snapshots
Manho Oct 22, 2026
f76cf95
fix(share): capture only panels fully on screen and name the ones lef…
Manho Oct 22, 2026
d21b9f9
feat(multi-panel): fit overflowing provider pages and drag panel edge…
Manho Oct 22, 2026
a3934e4
fix(share): name the providers whose long answer was cut short
Manho Oct 22, 2026
29c0109
fix(share): keep the pointer out of tab-sharing snapshots
Manho Oct 22, 2026
6c86688
test(share): poll the cancel run's progress at a fixed interval
Manho Oct 22, 2026
b3e2c17
build(test): upgrade Playwright to 1.62.1 for Chrome 151
Manho Oct 22, 2026
b1d1a8c
test(multi-panel): wait for a fitted frame to take its new viewport
Manho Oct 22, 2026
e691667
fix(multi-panel): keep a fitted page fitted once laid out at its width
Manho Oct 22, 2026
abe0f03
test(share): wait for the fitted viewport and pin threads to the bottom
Manho Oct 22, 2026
1dfde6c
fix(share): start at the user message, not an answer quoting the prompt
Manho Oct 22, 2026
1a26e3a
fix(share): bind silent capture to the Panelize tab
Manho Oct 22, 2026
6dbafa9
fix(share): fit pages scaled to their panel by their size on screen
Manho Oct 22, 2026
ea92ef8
fix(share): name the panels whose page stopped answering mid-capture
Manho Oct 22, 2026
a90ef0e
fix(share): start over when a panel is resized mid-capture
Manho Oct 22, 2026
d9f2587
fix(share): ask a page again when it does not scroll, then name it
Manho Oct 22, 2026
7da4d42
fix(share): retry a page that jumps past what was captured
Manho Oct 22, 2026
50ba7c4
fix(share): show the current view of a page that will not stay at the…
Manho Oct 22, 2026
23640b1
fix(share): export the edited title, not the image before the edit
Manho Oct 22, 2026
d3cd1d3
fix(multi-panel): fit a page whose app sits beside a side rail
Manho Oct 22, 2026
b3c62e4
fix(snapshot): keep what clipping ancestors hide out of the clip
Manho Oct 22, 2026
e959714
test(e2e): skip frames without a URL when looking up a provider frame
Manho Oct 22, 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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ test-screenshot-*.png
debug-screenshot.png
screenshot*.png
test-results/
artifacts/

# Local planning artifacts
task_plan.md
Expand Down
132 changes: 132 additions & 0 deletions _locales/de/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -827,5 +827,137 @@
"content": "$1"
}
}
},
"ratingPromptMessage": {
"message": "Gefällt dir Panelize? Bewerte es im Chrome Web Store"
},
"ratingPromptRate": {
"message": "Bewerten"
},
"ratingPromptLater": {
"message": "Später"
},
"ratingPromptNever": {
"message": "Nicht mehr fragen"
},
"shareButtonText": {
"message": "Teilen"
},
"shareButtonTitle": {
"message": "Teile einen Schnappschuss dieses Vergleichs. Das Bild bleibt auf deinem Gerät."
},
"shareDialogTitle": {
"message": "Vergleich teilen"
},
"shareDialogClose": {
"message": "Schließen"
},
"sharePrivacyWarning": {
"message": "Prüfe das Bild vor dem Teilen: Es kann Chatverläufe in Seitenleisten, Kontonamen oder Avatare zeigen."
},
"shareCopyButton": {
"message": "In die Zwischenablage kopieren"
},
"shareDownloadButton": {
"message": "PNG herunterladen"
},
"shareCopied": {
"message": "Bild in die Zwischenablage kopiert"
},
"shareCopyFailed": {
"message": "Das Bild konnte nicht kopiert werden. Nutze stattdessen PNG herunterladen."
},
"shareCaptureCancelled": {
"message": "Schnappschuss abgebrochen"
},
"shareCaptureWrongSurface": {
"message": "Teile diesen Panelize-Tab, um einen Schnappschuss zu erstellen"
},
"shareCaptureTabHidden": {
"message": "Aufnahme abgebrochen: Lass diesen Panelize-Tab im Vordergrund, bis sie fertig ist"
},
"shareCaptureFailed": {
"message": "Der Vergleich konnte nicht aufgenommen werden"
},
"shareCaptureLayoutChanged": {
"message": "Die Größe des Fensters oder der Panels hat sich ständig geändert, daher konnte der Vergleich nicht aufgenommen werden. Bitte erneut versuchen."
},
"shareModeLabel": {
"message": "Bildausschnitt"
},
"shareModeCurrent": {
"message": "Aktuelle Ansicht"
},
"shareModeFull": {
"message": "Vollständige Antworten"
},
"shareTitleLabel": {
"message": "Titel"
},
"shareTitlePlaceholder": {
"message": "Überschrift hinzufügen (optional)"
},
"shareSnapshotTagline": {
"message": "KI im direkten Vergleich"
},
"shareSnapshotPromptLabel": {
"message": "Prompt"
},
"shareSnapshotCaption": {
"message": "Kostenlose Chrome-Erweiterung"
},
"shareSnapshotSubline": {
"message": "Gleicher Prompt · $1 · im direkten Vergleich"
},
"shareTruncatedNote": {
"message": "Zu lang für ein Bild, nur der Anfang wird gezeigt: $1"
},
"shareInterruptedNote": {
"message": "Konnte nicht bis zum Ende aufgenommen werden, nur der Anfang wird gezeigt: $1"
},
"shareCurrentViewOnly": {
"message": "Nur aktuelle Ansicht: $1"
},
"panelResizeHandle": {
"message": "Ziehen, um die Panelbreite zu ändern. Doppelklick zum Zurücksetzen."
},
"shareOutOfViewNote": {
"message": "Nicht vollständig sichtbar, ausgelassen: $1 — seitlich scrollen und erneut teilen, um sie einzuschließen"
},
"shareShortcutHint": {
"message": "Tipp: Drücke $1 auf dieser Seite, um die Bestätigung von Chrome zu überspringen"
},
"shareToolbarHint": {
"message": "Tipp: Klicke auf dieser Seite auf das Panelize-Symbol in der Symbolleiste, um die Bestätigung von Chrome zu überspringen"
},
"shareProgressPreparing": {
"message": "Schnappschuss wird vorbereitet…"
},
"shareProgressStep": {
"message": "Bildschirm $1 von $2 wird aufgenommen…"
},
"shareStreamStatus": {
"message": "Dieser Tab wird für Schnappschüsse geteilt"
},
"shareStreamStop": {
"message": "Beenden"
},
"shareProgressHoldPointer": {
"message": "Bitte die Maus kurz nicht bewegen…"
},
"shareProgressCancel": {
"message": "Abbrechen"
},
"labelShareWatermark": {
"message": "Wasserzeichen auf geteilten Bildern anzeigen"
},
"descShareWatermark": {
"message": "Zeigt den Namen Panelize, panelize.dev und das Datum auf Schnappschüssen über die Teilen-Schaltfläche. Überschrift und Rahmen bleiben immer erhalten."
},
"msgShareWatermarkEnabled": {
"message": "Wasserzeichen auf geteilten Bildern aktiviert"
},
"msgShareWatermarkDisabled": {
"message": "Wasserzeichen auf geteilten Bildern deaktiviert"
}
}
132 changes: 132 additions & 0 deletions _locales/en/messages.json
Original file line number Diff line number Diff line change
Expand Up @@ -844,5 +844,137 @@
"content": "$1"
}
}
},
"ratingPromptMessage": {
"message": "Enjoying Panelize? Rate it on the Chrome Web Store"
},
"ratingPromptRate": {
"message": "Rate"
},
"ratingPromptLater": {
"message": "Later"
},
"ratingPromptNever": {
"message": "Don't ask again"
},
"shareButtonText": {
"message": "Share"
},
"shareButtonTitle": {
"message": "Share a snapshot of this comparison. The image stays on your device."
},
"shareDialogTitle": {
"message": "Share comparison"
},
"shareDialogClose": {
"message": "Close"
},
"sharePrivacyWarning": {
"message": "Check the image before you share it: it may show chat history in sidebars, account names or avatars."
},
"shareCopyButton": {
"message": "Copy to clipboard"
},
"shareDownloadButton": {
"message": "Download PNG"
},
"shareCopied": {
"message": "Image copied to clipboard"
},
"shareCopyFailed": {
"message": "Couldn't copy the image. Use Download PNG instead."
},
"shareCaptureCancelled": {
"message": "Snapshot cancelled"
},
"shareCaptureWrongSurface": {
"message": "To take a snapshot, share this Panelize tab"
},
"shareCaptureTabHidden": {
"message": "Snapshot stopped: keep this Panelize tab in front until it is done"
},
"shareCaptureFailed": {
"message": "Couldn't capture the comparison"
},
"shareCaptureLayoutChanged": {
"message": "The window or panels kept changing size, so the comparison couldn't be captured. Try again."
},
"shareModeLabel": {
"message": "Snapshot area"
},
"shareModeCurrent": {
"message": "Current view"
},
"shareModeFull": {
"message": "Full answers"
},
"shareTitleLabel": {
"message": "Title"
},
"shareTitlePlaceholder": {
"message": "Add a headline (optional)"
},
"shareSnapshotTagline": {
"message": "Compare AI side by side"
},
"shareSnapshotPromptLabel": {
"message": "Prompt"
},
"shareSnapshotCaption": {
"message": "Free Chrome extension"
},
"shareSnapshotSubline": {
"message": "Same prompt · $1 · side by side"
},
"shareTruncatedNote": {
"message": "Too long for one image, only the start is shown: $1"
},
"shareInterruptedNote": {
"message": "Could not be captured to the end, only the start is shown: $1"
},
"shareCurrentViewOnly": {
"message": "Current view only: $1"
},
"panelResizeHandle": {
"message": "Drag to resize panels. Double-click to reset."
},
"shareOutOfViewNote": {
"message": "Not fully on screen, left out: $1 — scroll sideways and share again to include them"
},
"shareShortcutHint": {
"message": "Tip: press $1 on this page to skip Chrome's confirmation"
},
"shareToolbarHint": {
"message": "Tip: click the Panelize toolbar icon on this page to skip Chrome's confirmation"
},
"shareProgressPreparing": {
"message": "Preparing snapshot…"
},
"shareProgressStep": {
"message": "Capturing screen $1 of $2…"
},
"shareStreamStatus": {
"message": "Sharing this tab for snapshots"
},
"shareStreamStop": {
"message": "Stop"
},
"shareProgressHoldPointer": {
"message": "Keep the mouse still for a moment…"
},
"shareProgressCancel": {
"message": "Cancel"
},
"labelShareWatermark": {
"message": "Show watermark on shared images"
},
"descShareWatermark": {
"message": "Show the Panelize name, panelize.dev and the date on snapshots taken with the Share button. The headline and frame stay either way."
},
"msgShareWatermarkEnabled": {
"message": "Watermark on shared images enabled"
},
"msgShareWatermarkDisabled": {
"message": "Watermark on shared images disabled"
}
}
Loading
Loading