Repository navigation
fix(file-manager): Einzeilige aktive F-Leiste und eindeutige Mehrhost-Transferziele #464
Description
Activity
- addedbugSomething isn't workingSomething isn't workingenhancementNew feature or requestNew feature or request
on Sep 20, 2026 - added a commit that references this issue
on Sep 24, 2026 Statusabgleich vom 28.09.2026:
status: blocked.Dateimanager-/Transferkorrekturen sind über #465/#466 in #477 enthalten. Offen sind die native einzeilige F-Leiste/Fokusprüfung sowie echte lokale/Remote-/Mehrhost-Transfers mit eindeutiger Zielidentität und Schutz vor veralteten Zielen.
Aktueller technischer Blocker: Der gemeinsame Abnahme-PR #477 ist Draft und enthält laut PR-Beschreibung die Änderungen dieses Issues. Sein aktueller HEAD
5c9c445ba961671583c09981450a7fb79b9c9cfdhat im vollständigen Prüflauf 36354992553 den Statusfailure: Die Schritte „Rust workspace coverage tests“ und „Export coverage and execution evidence“ sind fehlgeschlagen; die separate Nicht-Rust-Suite ist erfolgreich. Eine grüne vollständige Baseline ist damit weiterhin nicht belegt.Der letzte PR-Prüflauf 36353993130 auf dem Vorgänger
710faa3e8scheiterte an Linux-Clippy und „Native subscription Agent layout evidence“ auf macOS. Spätere Quellkorrekturen sind dokumentiert, ein grüner Ersatz für diese Pflichtprüfungen ist beim Statusabgleich nicht vorhanden. Das bedeutet nicht, dass jedes einzelne Issue den gemeinsamen Fehler verursacht.Nächster Schritt: Die fehlgeschlagenen gemeinsamen Prüfungen korrigieren und auf dem aktuellen Stand erfolgreich nachweisen; anschließend die oben genannte individuelle Restabnahme abschließen. Solange technische Gates fehlen, ist dies weder
readynoch ausschließlichneeds-user. Dieser Eintrag aktualisiert den Status; er startet keinen Build und schließt das Issue nicht.- addedstatus: blockedTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe AbhängigkeitTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe Abhängigkeitstatus: in-progressIn Bearbeitung; Verifikation noch nicht abgeschlossenIn Bearbeitung; Verifikation noch nicht abgeschlossenand removedstatus: blockedTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe AbhängigkeitTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe Abhängigkeitstatus: in-progressIn Bearbeitung; Verifikation noch nicht abgeschlossenIn Bearbeitung; Verifikation noch nicht abgeschlossen
on Sep 28, 2026 - added a commit that references this issue
on Oct 1, 2026 Mit #477 auf
maingemergt (Merge-Commitc0af4484e). Weiter blockiert: Die native F-Leisten-Abnahme war im letzten Lauf rot (Legende im Kompaktmodus nur 16 px breit, Zellen außerhalb). Die Ursache ist ungeklärt;74fc6fad4erweitert die Fehlermeldung um Fenstergröße und Legendenmodus. Der erste Batch-Lauf aufmainliefert die Diagnose.Ursache gefunden und mit #481 auf
main(a84d8d730): Die Breadcrumb hatte keine Breitengrenze. Ein langer Pfad machte das linke Dateimanager-Pane breiter als seinen Anteil, das rechte bekam keine Breite (Lauf 36851973446: Fenster 760 px, rechtes Pane bei x=796–1345, F-Leiste 16 px). Weiter blockiert, bis der nächsteci-batch-Lauf die native F-Leisten-Abnahme bestätigt; offen ist, ob bei rund 250 px Panebreite alle acht Tasten ohne Überlappung passen.Nativ bestätigt: Im
ci-batch-Lauf 36934129461 isttest_native_workspace_file_managers_evidencegrün, auch bei 760 px Fensterbreite. Die F-Leiste bleibt einzeilig im eigenen Pane. Offen bleibt die Abnahme durch Christian in der App.- addedstatus: needs-userWartet auf Entscheidung, Test oder Freigabe durch ChristianWartet auf Entscheidung, Test oder Freigabe durch Christianand removedstatus: blockedTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe AbhängigkeitTechnisch blockiert: fehlgeschlagene CI/Abnahme oder externe Abhängigkeit
on Oct 1, 2026 Enthalten im Test-DMG aus Lauf 37208729131 (
9ce5af67c), wartet auf Christians Abnahme.Codebefund
9ce5af67c: Ziel-Anzeige weicht abLesender Abgleich, kein Build und kein Test ausgeführt. Einzeilige F-Leiste, Aktivzustand nur in der fokussierten Pane, Routing und Revalidierung sind im Code umgesetzt. Offen sind:
- Ziel-Labels zeigen die Registry-ID statt des Hostnamens.
fm_label()baut<node_id>:<pfad>(app/src/sftp_manager/browser.rs:2281-2288). Picker und Toasts zeigen damit eine interne ID, und zwei Panes mit gleichem Host und Pfad sehen identisch aus. Das Routing selbst ist korrekt (fm_registry.rs:47-70). AC6 ist damit nur in der Anzeige verletzt. - Ziel vor der Ausführung nicht sichtbar. Ein Standardziel wird bei F5/F6 sofort ausgeführt (
browser.rs:2447-2452). Die dauerhafte Fußzeile „Ziel: …“ aus dem Mockup fehlt, das Ziel erscheint erst danach im Toast (AC5). - Unter 280 px gibt es keine weitere Rückfallstufe der F-Leiste (
browser.rs:156). Das Verhalten bei etwa 250 px ist ungeprüft.
- Ziel-Labels zeigen die Registry-ID statt des Hostnamens.
Erledigt mit #538, gemergt als
ebfd3d525. Rebased aufmainnach #536, #537 und #539.Behoben
Die drei offenen Punkte aus dem Codebefund vom 06.10.:
- Ziel-Labels nennen den Host statt der Registry-ID. Picker, Fußzeile und Toasts zeigen
Host · Verzeichnismit demselben Host-Label wie der Pane-Kopf (seit fix(ui): Pane-Identität im Dateimanager-Modus und bei Hostwechsel #536): SSH-Host, ersatzweise der Anzeigename, lokal mit~.- Tragen zwei verschiedene Hosts dasselbe Label, wird zusätzlich die Verbindung (
user@host[:port], mit dem tatsächlich verwendeten Login-Benutzer) angezeigt. - Zwei Panes im selben Verzeichnis unterscheidet die Pane-Referenz.
- Die Identität wird bei jedem erfolgreichen Connect aus genau dieser Verbindung erneuert. Das Routing ist unverändert.
- Tragen zwei verschiedene Hosts dasselbe Label, wird zusätzlich die Verbindung (
- Das Ziel ist vor der Ausführung sichtbar. Eine dauerhafte Fußzeile „Ziel: Host · Verzeichnis“ bzw. „Ziel wählen“ steht über der F-Leiste. Ein Klick öffnet die Zielauswahl.
- Die Auswahl zeigt den eigenen Tab zuerst, markiert das aktuelle Ziel und nennt bei F5/F6 die Quelle.
- Ein gewähltes Ziel folgt seiner Pane. Ist diese Pane geschlossen oder kein Dateimanager mehr, fragen Fußzeile und F5/F6 neu und fallen nicht auf eine andere Pane zurück (#spec „Transfer“).
- F-Leiste unter 280 px: bereits durch fix(file-manager): F-Tasten immer mit Kurzbeschriftung, Umbruch statt Ausblenden #506 gelöst (1, 2 oder 4 Zeilen gemäß #spec F2; „einzeilig“ aus der ursprünglichen Abnahme ist damit abgelöst). Der native Nachweistest war seit fix(file-manager): F-Tasten immer mit Kurzbeschriftung, Umbruch statt Ausblenden #506 veraltet (alte Legenden-IDs, Umbruch galt als Fehler) und ist korrigiert. Er belegt jetzt zusätzlich die Ziel-Fußzeile.
Konflikt-, Symlink-, Pfad-, Streaming-, Abbruch-, Überschreibschutz und Stale-Ziel-Revalidierung sind unverändert. PRODUCT §39, TECH §5A, #spec F3, README und Mockup sind mitgezogen.
Geprüft
rustfmt --check,no-new-cjk, Syntaxprüfung der Mockup-Skripte, eigenes Review und drei Codex-Review-Runden. Alle Befunde sind behoben, die letzte Runde war ohne Befund.Nicht verifiziert
- Compile, Clippy und Rust-Tests laufen erst im nächsten gebündelten ci-batch. Der letzte Lauf (37793832881) scheiterte schon vorher beim Compile an
terminal/view.rs(nicht dieser Fix;5b814cf51adressiert das). Damit sind auch die Tests aus fix(file-manager): F-Tasten immer mit Kurzbeschriftung, Umbruch statt Ausblenden #506 noch ungelaufen. - Reconnect-Auffrischung und Login-Benutzer aus der Authentifizierung: nur statisch geprüft, weil beide Pfade eine echte SSH-Verbindung brauchen.
- Native Ausführung in der App (Fußzeile, Auswahl, echte lokale/Remote-/Mehrhost-Transfers): nicht erfolgt.
Fällt dabei etwas auf, bitte das Issue wieder öffnen.
- Ziel-Labels nennen den Host statt der Registry-ID. Picker, Fußzeile und Toasts zeigen
- removedstatus: needs-userWartet auf Entscheidung, Test oder Freigabe durch ChristianWartet auf Entscheidung, Test oder Freigabe durch Christian
on Oct 9, 2026
Vertrag
Dateimanager bleibt ein reversibler Modus jeder Terminal-Pane. Zwei Dateimanager-Panes ergeben den MC-Workflow; die Funktion ist nicht auf genau zwei Panes oder einen Host begrenzt.
Abnahme
..-Fokusregel wird in Dateimanager: Nach '..' vorheriges Verzeichnis auswählen #458 umgesetzt und hier im Gesamtflow mitgeprüft, nicht doppelt implementiert.Einstieg / Prüfmatrix
app/src/sftp_manager/browser.rs(render_responsive_function_bar, Copy/Move, Zielpicker),keynav.rs,fm_registry.rs,file_list.rs,transfer_queue.rs, Pane-Mode-Anbindung inapp/src/workspace/view.rs.Fälle: lokal↔lokal, lokal↔remote, remote A↔remote B; gleiche Pfade auf zwei Hosts; N=2/N=3; Ziel in anderem Tab; kein gültiges Ziel; stale Ziel während offenem Picker; Fokuswechsel mit F-Taste; Mode-X/F10 und spätere Rückkehr. HTML-Fixture-Tests sind kein Beweis nativer Transfers.
Abgrenzung: Host-/Launch-Auflösung in #460, Geometrie/Fokus-Lifecycle in #462,
..in #458. Die native Transferidentität kann bereits korrekt sein: bestehende Schutzlogik bewahren und fehlende Regressionstests ergänzen statt pauschal umschreiben.Ausführung und Grenzen
Implementierungsagent: GPT-5.6 Sol. Teil des übergeordneten UI-Implementierungsplans #459. Keine neue globale Navigation und kein Ersatz vorhandener Session-/Pane-Funktionen. Bestehende WarpUI-Komponenten, Theme-Rollen, Lokalisierung und Action-Routing verwenden. Mockup-Verhalten ist ein Produktvertrag, kein Nachweis nativer Funktionsfähigkeit.
Vor Codeänderungen aktuellen Main-Stand und zugehörige Specs prüfen; bereits korrektes Verhalten mit Tests absichern, nicht neu bauen. Produkt-/Tech-/HTML-Spezifikation im selben PR mitziehen. Worktree + Feature-Branch, keine fremden Änderungen überschreiben. Keine Builds auf dem MacBook, kein Release und keine teure Build-/CI-Phase allein aufgrund dieses Issues. Verifikation gemäß Repo-/Buildregeln einschließlich
cargo checküber den freigegebenen CI-Weg; native Laufzeit-/Screenshot-Nachweise nicht durch HTML-Tests ersetzen.