Repository navigation
agent: #8 Kontextleiste wird beim Markieren am oberen Rand abgeschnitten - #9
Merged
leonatwork merged 1 commit intoOct 16, 2026
Conversation
…are Lösung. Lies zuerst den vollständigen Issue-Thread inklusive aller Kommentare, CLAUDE.md und die relevanten Repository-Regeln. Prüfe vorhandene PRs und aktuellen Code, bevor du Änderungen machst. Leite die verbindlichen Akzeptanzkriterien aus dem Issue ab und dokumentiere nicht erfüllbare oder widersprüchliche Kriterien klar. Arbeite testgetrieben: Erzeuge Regressionstests, verifiziere ihr korrektes Fehlschlagen vor dem Fix und führe danach die relevanten Tests sowie die vorgeschriebenen Qualitätsprüfungen aus. Ändere nur, was für das Issue erforderlich ist. Keine Produktionsdeployments, keine Änderungen an Produktionsdaten oder Produktions-Supabase und kein --prod. Merge den PR nicht. Issue: #8 Titel: Kontextleiste wird beim Markieren am oberen Rand abgeschnitten Beschreibung: <!-- hermes-agent-form-v1:start --> ## Ziel und Nutzen Die kontextuelle Auswahlleiste (Blase) bleibt beim Markieren von Text, besonders bei mehrzeiliger Auswahl nahe am oberen Rand, vollständig sichtbar und bedienbar. ## Ist-Zustand / Problem Gemeldet: Bei mehrzeiliger Auswahl nahe am oberen Rand wird die Leiste oben abgeschnitten (Rahmen, Rundungen, Symbole, Beschriftungen). Code auf main (Blase.tsx messen): Die Leiste liegt absolut im scrollenden .pw-s-papier. Sie steht über der Auswahl, wenn start.top - r.top >= Höhe + 16 gilt. Beginnt die Auswahl oberhalb des Sichtbereichs, steht sie bei scrollTop+8 mit translateX(-50%). Sonst steht sie unter start.bottom (bei einer Zeile unter ende.bottom). Ein Zweig mit Position außerhalb des Sichtbereichs ist nicht erkennbar. Offen: Reproduktion und Ursache. ## Umfang (In Scope) - Positionierung der Auswahlleiste bei Textauswahl - Kollisions-/Flip-Verhalten am oberen Rand des sichtbaren Papierbereichs - Mehrzeilige Auswahl im Schreibeditor - Ursachenanalyse, im PR dokumentiert - Automatisierter Regressionstest für den oberen Randfall in Editor.test.tsx ## Nicht Teil dieses Issues (Out of Scope) - Änderungen an der Textauswahl selbst - Redesign der Aktionsleiste - Änderungen an Manuskriptinhalten - Neue Produktlogik außerhalb der Auswahlleiste - Klemmen des Panels (Gewissheit/Ebene) nach unten ## Fachliche und UX-Entscheidungen - Bevorzugt oberhalb der Auswahl positionieren. - Bei zu wenig Platz oben automatisch unterhalb anzeigen. - Die Leiste bleibt vollständig im sichtbaren Editor-/Papierbereich. - Leon (Folgekommentar): erst Ursache ermitteln und im PR dokumentieren; Regressionstest muss auf main rot sein; ist das Abschneiden nicht reproduzierbar, nur belegte Änderungen vornehmen. - Offen (technisch): genaue Stub-Koordinaten für mehrzeilige Auswahl. - Offen: Ob der Bezugsrahmen das Papier oder der gesamte Viewport ist. Der Code nutzt das Papier. ## Prüfbare Akzeptanzkriterien - AC-1: Bei einer mehrzeiligen Auswahl nahe am oberen Rand ist die Aktionsleiste vollständig sichtbar. - AC-2: Reicht der Platz oberhalb nicht aus, wird die Aktionsleiste unterhalb der Auswahl positioniert. - AC-3: Rahmen, Rundungen, Symbole und Beschriftungen werden nicht abgeschnitten. - AC-4: Das Verhalten wird mit einem automatisierten Regressionstest für die Popover-Positionierung abgesichert. - AC-5: Der PR dokumentiert die ermittelte Ursache (Zweig und Geometrie) oder hält fest, dass das Abschneiden mit der vorhandenen Logik nicht reproduzierbar war. - AC-6: Der Regressionstest ist auf main rot (Position außerhalb des Sichtbereichs) und mit dem Fix grün. Ist das nicht herstellbar, nennt der PR den Grund und es gibt keine Änderung an der Positionslogik ohne Beleg. ## QS und Nachweis - Neuer Regressionstest, der auf main rot und mit Fix grün ist, mit mehrzeiligen Stubs (coordsAtPos, getBoundingClientRect, scrollTop, offsetHeight) - npm test erfolgreich - npm run typecheck erfolgreich - npm run build erfolgreich - Manuelle Prüfung in der Mac-App bleibt bei Leon ## Offene Fragen – _Automatisch nach dem Formular „Agent-Auftrag“ strukturiert (Hermes-Triage). Die ursprüngliche Beschreibung steht unten unverändert._ <!-- hermes-agent-form-v1:end --> <details><summary>Ursprüngliche Beschreibung</summary> <!-- hermes-original:start --> ## Ziel und Nutzen Beim Markieren von Text bleibt die kontextuelle Aktionsleiste vollständig sichtbar und bedienbar. ## Ist-Zustand / Problem Bei einer mehrzeiligen Textauswahl nahe am oberen Rand wird die helle Kontextleiste nach oben aus dem sichtbaren Editorbereich geschoben und abgeschnitten. Oberer Rahmen, Rundungen, Symbole und Beschriftungen sind teilweise nicht sichtbar. ### Reproduktion 1. Plotwerk öffnen und einen Text im Editor anzeigen. 2. Mehrere Zeilen markieren, sodass die Auswahl nahe am oberen Rand beginnt. 3. Die erscheinende Aktionsleiste beobachten. Erwartet: Das Popover wird vollständig oberhalb der Auswahl angezeigt oder bei zu wenig Platz unterhalb positioniert. Tatsächlich: Das Popover ist am oberen Rand abgeschnitten und nur teilweise nutzbar. ## Umfang (In Scope) - Positionierung der kontextuellen Aktionsleiste bei Textauswahl - Kollisions-/Flip-Verhalten am oberen Viewport- oder Editor-Rand - Mehrzeilige Auswahl ## Nicht Teil dieses Issues (Out of Scope) - Änderungen an der Textauswahl selbst - Redesign der Aktionsleiste - Änderungen an Manuskriptinhalten ## Fachliche und UX-Entscheidungen - Bevorzugt oberhalb der Auswahl positionieren. - Wenn dort nicht genug Platz ist, automatisch unterhalb anzeigen. - Die Leiste muss vollständig innerhalb des sichtbaren Editor-/Viewport-Bereichs bleiben. ## Prüfbare Akzeptanzkriterien AC-1: Bei einer mehrzeiligen Auswahl nahe am oberen Rand ist die Aktionsleiste vollständig sichtbar. AC-2: Reicht der Platz oberhalb nicht aus, wird die Aktionsleiste unterhalb der Auswahl positioniert. AC-3: Rahmen, Rundungen, Symbole und Beschriftungen werden nicht abgeschnitten. AC-4: Das Verhalten wird mit einem automatisierten Regressionstest für die Popover-Positionierung abgesichert. ## QS und Nachweis - Automatisierter UI-/Komponententest für eine Auswahl nahe am oberen Rand - Manuelle Prüfung mit mehrzeiliger Auswahl - `npm run build` und `npm test` müssen erfolgreich sein ## Technischer Kontext und Referenzen Ein Screenshot liegt dem Agent-Stack lokal als Referenz vor. Darauf ist eine mehrzeilige blaue Textauswahl zu sehen; die darüber erscheinende helle Aktionsleiste mit „Notiz“ und „Ebene“ ist am oberen Fensterrand abgeschnitten. Der Manuskripttext wird nicht öffentlich wiedergegeben. ## Offene Fragen – <!-- hermes-original:end --> </details> Zusätzliche Repo-Regeln: Commits tragen ein DCO-Sign-off (das macht dev-loop automatisch). Auf diesem Server gibt es kein Rust/Tauri: nur TypeScript-Teil (core/, src/) mit npm run build und npm test prüfen, src-tauri nicht bauen. Keine Inhalte aus privaten Manuskripten; Beispiele nur aus fixtures/. Farben nur über Tokens in src/theme/tokens.css, UI nach docs/design/screens, core/ bleibt reines TypeScript, core/ki nutzt nur ProjektLeser. Reviewer verdict: APPROVE after 2 round(s). Generated by dev-loop (not pushed). Signed-off-by: leonatwork <leon.11@live.de>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Zusammenfassung
Autonome Umsetzung von #8: Kontextleiste wird beim Markieren am oberen Rand abgeschnitten
Verifikation
Coder-/Reviewer-Loop:
APPROVEnach 2 Runde(n)Tests und Qualitätsprüfungen: siehe Commit und CI-Checks
Kein automatischer Merge oder Produktionsdeploy
Modell:
azure/gpt-5.3-codex; Decision-1 (active): routegpt-5.3-codex, Risikomedium; QS:npm run build && npm testbestandenCloses #8
Note
Low Risk
Changes are limited to test files (timeouts and new positioning assertions); no production runtime behavior is modified in this diff.
Overview
Stabilizes integration tests around the writing editor’s selection toolbar (“Blase”) and the full-app browser demo, aligning coverage with issue #8 (toolbar clipped when selecting near the top of the paper).
In
Editor.test.tsx, the Blase positioning suite gains a richer geometry stub: fixed assumed bubble width/height viaoffsetWidth/offsetHeight, paperscrollTop/clientHeight, and separate start/end coordinates for multi-line selections. Two new cases assert that near the top of the visible area the toolbar flips below (pw-s-blase--unten) and stays fully on-screen, and that when the selection starts above the viewport the vertical position clamps toscrollTop +padding.In
app.test.tsx, twofindBy*assertions for chapter UI now use a 5s timeout to reduce flakes while the demo project loads.Reviewed by Cursor Bugbot for commit 13f16ed. Bugbot is set up for automated code reviews on this repo. Configure here.