From a8e2fdfda700db48ebe1569fc1b881d4fa857e7a Mon Sep 17 00:00:00 2001 From: "smart-ssh-coder[bot]" <338317697+smart-ssh-coder[bot]@users.noreply.github.com> Date: Wed, 14 Oct 2026 21:36:19 +0000 Subject: [PATCH] chore(release): 0.7.0 (#531) Co-Authored-By: Claude Sonnet 5.5 --- CHANGELOG.md | 161 ++++++++++++++++++ Cargo.lock | 22 +-- Cargo.toml | 2 +- apps/smart-ssh-community/Cargo.toml | 2 +- .../frontend/package-lock.json | 4 +- .../smart-ssh-community/frontend/package.json | 2 +- apps/smart-ssh-community/tauri.conf.json | 2 +- .../issue-102-pruefung-nicht-verfuegbar.md | 7 - changelog.d/issue-128-ordner-upload.md | 6 - changelog.d/issue-168-openai-web-recherche.md | 3 - changelog.d/issue-173-web-ergebnis-flag.md | 4 - ...177-nicht-nutzbare-server-import-gruppe.md | 3 - .../issue-182-host-key-schluesseltyp.md | 3 - changelog.d/issue-183-textkontrast.md | 3 - .../issue-231-pruefung-ohne-anbieter.md | 4 - changelog.d/issue-239-schluesselbund-texte.md | 4 - .../issue-242-loeschen-waehrend-fortsetzen.md | 2 - ...issue-245-gleiche-rollen-zusammenfassen.md | 3 - .../issue-246-sftp-server-login-shell.md | 3 - changelog.d/issue-248-host-keys-anzeigen.md | 3 - changelog.d/issue-250-anzeige-trenner.md | 4 - changelog.d/issue-252-rechte-warnung.md | 4 - .../issue-254-schluesseldatei-pfad-pflicht.md | 2 - changelog.d/issue-255-fork-bombe-risiko.md | 3 - changelog.d/issue-256-prioritaet-tauschen.md | 5 - changelog.d/issue-257-sftp-server-rechte.md | 4 - ...-258-ki-kontext-ungueltige-allow-regeln.md | 3 - ...ssue-260-ungueltige-regel-einmal-melden.md | 3 - ...sue-261-schluesselwoerter-alle-sprachen.md | 3 - .../issue-265-einstellungen-schreibfehler.md | 3 - .../issue-266-master-passwort-haertung.md | 4 - .../issue-269-startmaske-erneut-versuchen.md | 2 - .../issue-270-redactor-weitere-formen.md | 4 - changelog.d/issue-271-neuer-chat.md | 3 - .../issue-277-umlaut-nfd-schwaerzung.md | 2 - .../issue-303-sftp-server-symlink-pruefung.md | 2 - changelog.d/issue-315-neuer-chat-nachricht.md | 3 - .../issue-318-umbenannte-fork-bombe.md | 3 - changelog.d/issue-323-kommandos-buendeln.md | 3 - changelog.d/issue-324-localhost-abbruch.md | 3 - changelog.d/issue-325-live-ausgabe.md | 4 - .../issue-326-modelle-automatisch-laden.md | 3 - changelog.d/issue-327-wartet-auf-eingabe.md | 4 - .../issue-328-sitzung-waehrend-kommando.md | 3 - changelog.d/issue-329-datum-folgt-sprache.md | 4 - .../issue-330-ki-antwortet-in-ui-sprache.md | 2 - ...e-331-franzoesisch-spanisch-italienisch.md | 6 - ...issue-332-portugiesisch-niederlaendisch.md | 2 - changelog.d/issue-333-nordische-sprachen.md | 3 - ...olnisch-tschechisch-ukrainisch-russisch.md | 6 - ...sue-335-japanisch-chinesisch-koreanisch.md | 6 - ...erkisch-griechisch-ungarisch-rumaenisch.md | 3 - ...sue-337-indonesisch-vietnamesisch-hindi.md | 2 - ...ssue-339-werkzeugbeschreibungen-sprache.md | 3 - .../issue-344-notiz-vorschlag-nur-server.md | 3 - .../issue-345-cap-beendet-ganzes-kommando.md | 3 - .../issue-352-prompt-historie-sofort.md | 3 - .../issue-353-verbindungsabriss-erkennen.md | 4 - .../issue-355-sitzung-neu-verbinden.md | 3 - .../issue-356-automatisch-neu-verbinden.md | 2 - .../issue-357-dateiinhalt-kopieren-50-mb.md | 3 - changelog.d/issue-358-datei-kopieren.md | 3 - changelog.d/issue-359-notiz-format.md | 3 - .../issue-361-weiter-anweisung-sprache.md | 2 - changelog.d/issue-366-redaktion-akzente.md | 4 - ...issue-374-risiko-verkettung-leerzeichen.md | 3 - changelog.d/issue-381-oberflaeche-rahmen.md | 4 - .../issue-382-serververwaltung-tastatur.md | 3 - changelog.d/issue-383-chat-ueberarbeitung.md | 2 - .../issue-384-dateibrowser-bedienung.md | 3 - .../issue-385-einstellungen-tastatur.md | 3 - .../issue-386-ki-mcp-regeln-tastatur.md | 2 - .../issue-387-startdialoge-ueberarbeitet.md | 2 - .../issue-404-dateibrowser-werkzeugleiste.md | 3 - changelog.d/issue-405-chmod-beschriftungen.md | 3 - changelog.d/issue-407-serverliste-fokus.md | 2 - changelog.d/issue-408-dialog-button-order.md | 4 - .../issue-417-spracheingabe-aufnahme.md | 3 - changelog.d/issue-418-spracheingabe-chat.md | 6 - changelog.d/issue-421-titelzeile-schmal.md | 2 - changelog.d/issue-422-toast-position.md | 3 - changelog.d/issue-425-baum-pfeiltasten.md | 3 - changelog.d/issue-427-mcp-token-verbergen.md | 3 - changelog.d/issue-433-risiko-heredoc-kette.md | 3 - .../issue-460-einstellungen-escape-webkit.md | 3 - ...issue-505-erweiterungsinhalt-versiegeln.md | 2 - changelog.d/issue-529-rustls-update.md | 2 - ...ssue-99-modell-ohne-tool-unterstuetzung.md | 5 - crates/ai-providers/Cargo.toml | 2 +- crates/app-logic/Cargo.toml | 14 +- crates/app-shell/Cargo.toml | 18 +- crates/credentials-keyring/Cargo.toml | 2 +- crates/mcp-server/Cargo.toml | 2 +- crates/persistence-sqlite/Cargo.toml | 2 +- crates/real-app-tests/Cargo.toml | 8 +- crates/ssh-transport/Cargo.toml | 2 +- release-notes/0.7.0.json | 37 ++++ 97 files changed, 240 insertions(+), 306 deletions(-) delete mode 100644 changelog.d/issue-102-pruefung-nicht-verfuegbar.md delete mode 100644 changelog.d/issue-128-ordner-upload.md delete mode 100644 changelog.d/issue-168-openai-web-recherche.md delete mode 100644 changelog.d/issue-173-web-ergebnis-flag.md delete mode 100644 changelog.d/issue-177-nicht-nutzbare-server-import-gruppe.md delete mode 100644 changelog.d/issue-182-host-key-schluesseltyp.md delete mode 100644 changelog.d/issue-183-textkontrast.md delete mode 100644 changelog.d/issue-231-pruefung-ohne-anbieter.md delete mode 100644 changelog.d/issue-239-schluesselbund-texte.md delete mode 100644 changelog.d/issue-242-loeschen-waehrend-fortsetzen.md delete mode 100644 changelog.d/issue-245-gleiche-rollen-zusammenfassen.md delete mode 100644 changelog.d/issue-246-sftp-server-login-shell.md delete mode 100644 changelog.d/issue-248-host-keys-anzeigen.md delete mode 100644 changelog.d/issue-250-anzeige-trenner.md delete mode 100644 changelog.d/issue-252-rechte-warnung.md delete mode 100644 changelog.d/issue-254-schluesseldatei-pfad-pflicht.md delete mode 100644 changelog.d/issue-255-fork-bombe-risiko.md delete mode 100644 changelog.d/issue-256-prioritaet-tauschen.md delete mode 100644 changelog.d/issue-257-sftp-server-rechte.md delete mode 100644 changelog.d/issue-258-ki-kontext-ungueltige-allow-regeln.md delete mode 100644 changelog.d/issue-260-ungueltige-regel-einmal-melden.md delete mode 100644 changelog.d/issue-261-schluesselwoerter-alle-sprachen.md delete mode 100644 changelog.d/issue-265-einstellungen-schreibfehler.md delete mode 100644 changelog.d/issue-266-master-passwort-haertung.md delete mode 100644 changelog.d/issue-269-startmaske-erneut-versuchen.md delete mode 100644 changelog.d/issue-270-redactor-weitere-formen.md delete mode 100644 changelog.d/issue-271-neuer-chat.md delete mode 100644 changelog.d/issue-277-umlaut-nfd-schwaerzung.md delete mode 100644 changelog.d/issue-303-sftp-server-symlink-pruefung.md delete mode 100644 changelog.d/issue-315-neuer-chat-nachricht.md delete mode 100644 changelog.d/issue-318-umbenannte-fork-bombe.md delete mode 100644 changelog.d/issue-323-kommandos-buendeln.md delete mode 100644 changelog.d/issue-324-localhost-abbruch.md delete mode 100644 changelog.d/issue-325-live-ausgabe.md delete mode 100644 changelog.d/issue-326-modelle-automatisch-laden.md delete mode 100644 changelog.d/issue-327-wartet-auf-eingabe.md delete mode 100644 changelog.d/issue-328-sitzung-waehrend-kommando.md delete mode 100644 changelog.d/issue-329-datum-folgt-sprache.md delete mode 100644 changelog.d/issue-330-ki-antwortet-in-ui-sprache.md delete mode 100644 changelog.d/issue-331-franzoesisch-spanisch-italienisch.md delete mode 100644 changelog.d/issue-332-portugiesisch-niederlaendisch.md delete mode 100644 changelog.d/issue-333-nordische-sprachen.md delete mode 100644 changelog.d/issue-334-polnisch-tschechisch-ukrainisch-russisch.md delete mode 100644 changelog.d/issue-335-japanisch-chinesisch-koreanisch.md delete mode 100644 changelog.d/issue-336-tuerkisch-griechisch-ungarisch-rumaenisch.md delete mode 100644 changelog.d/issue-337-indonesisch-vietnamesisch-hindi.md delete mode 100644 changelog.d/issue-339-werkzeugbeschreibungen-sprache.md delete mode 100644 changelog.d/issue-344-notiz-vorschlag-nur-server.md delete mode 100644 changelog.d/issue-345-cap-beendet-ganzes-kommando.md delete mode 100644 changelog.d/issue-352-prompt-historie-sofort.md delete mode 100644 changelog.d/issue-353-verbindungsabriss-erkennen.md delete mode 100644 changelog.d/issue-355-sitzung-neu-verbinden.md delete mode 100644 changelog.d/issue-356-automatisch-neu-verbinden.md delete mode 100644 changelog.d/issue-357-dateiinhalt-kopieren-50-mb.md delete mode 100644 changelog.d/issue-358-datei-kopieren.md delete mode 100644 changelog.d/issue-359-notiz-format.md delete mode 100644 changelog.d/issue-361-weiter-anweisung-sprache.md delete mode 100644 changelog.d/issue-366-redaktion-akzente.md delete mode 100644 changelog.d/issue-374-risiko-verkettung-leerzeichen.md delete mode 100644 changelog.d/issue-381-oberflaeche-rahmen.md delete mode 100644 changelog.d/issue-382-serververwaltung-tastatur.md delete mode 100644 changelog.d/issue-383-chat-ueberarbeitung.md delete mode 100644 changelog.d/issue-384-dateibrowser-bedienung.md delete mode 100644 changelog.d/issue-385-einstellungen-tastatur.md delete mode 100644 changelog.d/issue-386-ki-mcp-regeln-tastatur.md delete mode 100644 changelog.d/issue-387-startdialoge-ueberarbeitet.md delete mode 100644 changelog.d/issue-404-dateibrowser-werkzeugleiste.md delete mode 100644 changelog.d/issue-405-chmod-beschriftungen.md delete mode 100644 changelog.d/issue-407-serverliste-fokus.md delete mode 100644 changelog.d/issue-408-dialog-button-order.md delete mode 100644 changelog.d/issue-417-spracheingabe-aufnahme.md delete mode 100644 changelog.d/issue-418-spracheingabe-chat.md delete mode 100644 changelog.d/issue-421-titelzeile-schmal.md delete mode 100644 changelog.d/issue-422-toast-position.md delete mode 100644 changelog.d/issue-425-baum-pfeiltasten.md delete mode 100644 changelog.d/issue-427-mcp-token-verbergen.md delete mode 100644 changelog.d/issue-433-risiko-heredoc-kette.md delete mode 100644 changelog.d/issue-460-einstellungen-escape-webkit.md delete mode 100644 changelog.d/issue-505-erweiterungsinhalt-versiegeln.md delete mode 100644 changelog.d/issue-529-rustls-update.md delete mode 100644 changelog.d/issue-99-modell-ohne-tool-unterstuetzung.md create mode 100644 release-notes/0.7.0.json diff --git a/CHANGELOG.md b/CHANGELOG.md index a929bc45..dfaf8595 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,167 @@ Features that are only available in a paid edition are marked with ## [Unreleased] +## [0.7.0] — 2026-10-14 + +### Highlights +- Voice input in the AI chat with local speech recognition; audio stays on your computer. +- The interface is now available in many more languages, from French and Spanish to Japanese and Hindi. +- Automatic reconnect after a connection loss, with chat history and AI context kept. +- Whole-folder upload in the file browser, plus copying remote files to the clipboard. +- Commands now show their output live in the chat, and a hung command can be stopped. +- Keyboard use and focus handling were improved across the whole interface. + +### Added +- Voice input in the AI chat: a microphone button next to “Send” (or + Ctrl+Shift+M) dictates text into the input field. Recognition runs locally + with a Whisper model; a dialog asks before the speech model is downloaded. + Model and language can be chosen under “Voice input” in the settings. +- The interface is now also available in French, Spanish, Italian, Portuguese + (Brazil), Dutch, Swedish, Danish, Norwegian (Bokmål), Finnish, Polish, + Czech, Ukrainian, Russian, Japanese, Simplified Chinese, Korean, Turkish, + Greek, Hungarian, Romanian, Indonesian, Vietnamese and Hindi. The language + can be chosen in the settings or follows the system. +- After a connection loss, the tab can be reconnected with “Reconnect” or the + R key; chat history and AI context are kept. +- Smart SSH can reconnect automatically (off, 30 s, 60 s or 5 min; default + 60 s). If an AI step was running, the AI continues by itself afterwards. +- The file browser uploads whole folders including subfolders, via “Upload + folder” or drag and drop. Existing files are listed and confirmed once; + symbolic links are skipped, and a summary lists skipped and failed files. +- In the file browser, “Copy file” puts a remote file (up to 50 MB) on the + clipboard so it can be pasted in the file manager. +- The output of a running command appears live, line by line, in the chat, + separated into standard and error output and redacted like the result. +- If a running command is probably waiting for input (e.g. “Continue? + [Y/n]”), the chat shows a notice next to the stop button; after stopping, + the AI suggests a non-interactive variant. +- “New chat” in a connected session starts a fresh conversation without + disconnecting SSH. The old chat stays in the list. +- AI web research is now also available with the official OpenAI provider + (“Web research” switch in the AI settings). +- The server settings show the stored host keys (algorithm and fingerprint) + so they can be compared against a second source. + +### Changed +- The AI answers in the interface language by default; session titles, + closing notes and summaries follow it. Date and time follow the selected + language instead of the system setting, and the language picker shows each + language under its own name. +- The AI proposes independent commands together in one reply and uses + non-interactive options (e.g. `-y`) so commands do not hang. +- While an AI command is running, the file browser, terminal and disconnect + of the same session remain usable; disconnecting cancels the command. +- A dead SSH connection is detected after about a minute and shown as + “disconnected”, even on a silent network outage. +- “Copy file content” works for text files up to 50 MB (previously 256 KB); + from 5 MB on, progress is shown and the copy can be cancelled. +- The AI keeps server notes short and in fixed sections and stores lasting + facts instead of events. Existing notes are rewritten at the next suggestion. +- After entering the API key, the provider form loads the model list when you + leave the field; a rejected key is clearly shown in red. +- If a local Ollama model without tool support causes an error, the app shows + “This model does not support tool calling” with a hint to untick “Supports + native tool calling” in the provider settings. +- The host key prompt also shows the key type of the offered key (e.g. + `ssh-ed25519`), including during the connection test. +- Muted text and labels on accent surfaces are easier to read in the dark + theme (contrast per WCAG AA). +- Keyboard use and focus were improved across the interface: consistent + buttons and visible focus rings; dialogs and menus close with Escape and + return focus; the session tab bar and the server tree are operated with + the arrow keys and Home/End (Delete closes the focused tab); more readable + hint texts and labeled fields. +- In the startup dialogs and the host key dialog, the primary action is now + on the right, before it “Quit”/“Cancel” or “Reject”. +- The file browser toolbar separates file actions and elevated privileges + into two groups and wraps in small windows. +- Notifications appear at the top right instead of the bottom left and no + longer cover the chat input field in small windows. + +### Fixed +- Settings close with Escape again on macOS after a category was clicked. +- In narrow windows the version text no longer crowds the tab bar: below + 1024 px only the dev marker remains; version and edition are shown under + Settings > About. +- While a connection is being established, server entries stay reachable by + keyboard; after closing the host key dialog, focus returns to the server. +- “Owner”, “Group” and “Others” in the file browser's permissions dialog are + labeled in the selected language. +- A prompt sent in the open chat is immediately reachable with the Up arrow + key. +- The “Continue” button after a truncated AI reply sends its instruction in + the interface language instead of always in German; English sessions + receive all AI tool descriptions in English. +- Risk classification rates a command with trailing spaces inside a chain + (`;`, `&&`, `|`) as strictly as the command on its own. +- Password keywords with decomposed accents (e.g. `contraseña` from the + clipboard) and with a typographic apostrophe (`clé d’accès`) are masked. +- The automatic note suggestion after disconnecting affects only the + server's note, never the group's. +- A running AI command on localhost can be cancelled; it is terminated with + its pipelines and the output so far is kept. When a local command reaches + the output limit, its pipeline members and background processes are + terminated too. +- A message you send exactly while “New chat” is in progress is rejected and + stays in the input field instead of ending up in the new chat. +- Queued messages and command results are merged into one message when sent + to the AI; strict OpenAI-compatible servers no longer reject them. +- A chat session can no longer be deleted while it is being resumed. +- Allow rules with an invalid pattern are no longer described to the AI as + runnable without confirmation; such rules are logged once per connection. +- Moving a filter rule in priority is atomic and can no longer leave two + rules with the same priority. Arrows next to a rule with an invalid + pattern are disabled and give the reason. +- If saving settings fails or the settings file is corrupted, the app reports + the error and no longer overwrites the file. +- “Try again” on the startup screen also works when registering the startup + events failed. +- “Test connection” reports an empty key file path as a missing required + field, even if it consists only of whitespace or invisible characters. +- The elevated file browser finds `sftp-server` on servers whose login shell + is csh, tcsh or fish. +- The keychain-unreachable message says that only the key of the encrypted + database is stored there and that the database cannot be opened without it. +- Unusable servers (unreadable login method) count as existing servers when + importing an SSH configuration and appear in a group's delete preview. + +### Security +- If the optional AI second opinion or the AI check for injected instructions + fails (e.g. expired key, rate limit, provider unreachable), this is shown + instead of being silently skipped, and the affected or next action requires + confirmation. If the second opinion cannot be set up on connect, or the + injection check is enabled but not active, the session shows a notice. +- If a reply is stopped or aborted by an error after a web research, the + session still counts as “has read untrusted content”; following actions + are escalated accordingly. +- Content that an edition attaches to a chat message is always redacted, + fenced as untrusted and size-checked before it reaches the AI; attachments + over 20 MiB per request or of unsupported types are rejected. +- Updated the TLS library (rustls) to fix four published advisories affecting + outbound HTTPS connections. +- Fork bombs, including renamed ones (e.g. `b(){ b|b& };b`) and ones embedded + in a longer command, are rated high risk. A command with an incomplete + here-doc suffix (e.g. `rm;<<`) is no longer rated lower than the command + alone. +- Credentials are redacted for German keywords (`Passwort:`, `Schlüssel=`), + also in decomposed Unicode form, and for password keywords in the newly + supported languages. More password forms are recognized: `mysqlsh`, + `mysqlpump`, `mysql5`, `mariadb-*`, `openssl -K`, Drupal 7 hashes and quoted + passwords spanning a line break. +- The elevated file browser no longer suggests a sudo rule if `sftp-server`, + a parent directory or a symlink on the way is not owned by root or is + writable by others; a warning is shown instead. +- Paths and file names in startup dialogs, and rejected input in server + forms, are no longer broken up or reversed by line separators or + text-direction control characters. +- If the app cannot restrict the permissions of a sensitive file (database, + host keys, logs, settings), a warning is written to the log file. +- The master password file is checked more strictly: a link at its + intermediate location is not followed, and an unreadable location is no + longer interpreted as “no master password”. +- The MCP token in the settings is hidden by default and can be shown with a + button; “Copy configuration” still copies the real token. + ## [0.6.0] — 2026-10-09 ### Highlights diff --git a/Cargo.lock b/Cargo.lock index 2e30f70a..e1f8cc2a 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -77,7 +77,7 @@ dependencies = [ [[package]] name = "ai-providers" -version = "0.6.0" +version = "0.7.0" dependencies = [ "async-trait", "chrono", @@ -153,7 +153,7 @@ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "app-logic" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ai-providers", "async-trait", @@ -185,7 +185,7 @@ dependencies = [ [[package]] name = "app-shell" -version = "0.6.0" +version = "0.7.0" dependencies = [ "ai-providers", "app-logic", @@ -1216,7 +1216,7 @@ dependencies = [ [[package]] name = "credentials-keyring" -version = "0.6.0" +version = "0.7.0" dependencies = [ "keyring", "secrecy", @@ -3502,7 +3502,7 @@ checksum = "47e1ffaa40ddd1f3ed91f717a33c8c0ee23fff369e3aa8772b9605cc1d22f4c3" [[package]] name = "mcp-server" -version = "0.6.0" +version = "0.7.0" dependencies = [ "async-trait", "axum", @@ -4363,7 +4363,7 @@ checksum = "9b4f627cb1b25917193a259e49bdad08f671f8d9708acfd5fe0a8c1455d87220" [[package]] name = "persistence-sqlite" -version = "0.6.0" +version = "0.7.0" dependencies = [ "async-trait", "chrono", @@ -4950,7 +4950,7 @@ checksum = "20675572f6f24e9e76ef639bc5552774ed45f1c30e2951e1e99c59888861c539" [[package]] name = "real-app-tests" -version = "0.6.0" +version = "0.7.0" dependencies = [ "app-logic", "base64 0.23.1", @@ -6000,7 +6000,7 @@ dependencies = [ [[package]] name = "smart-ssh-community" -version = "0.6.0" +version = "0.7.0" dependencies = [ "app-shell", "serde_json", @@ -6074,7 +6074,7 @@ dependencies = [ [[package]] name = "speech" -version = "0.6.0" +version = "0.7.0" dependencies = [ "cpal", "futures", @@ -6367,7 +6367,7 @@ dependencies = [ [[package]] name = "ssh-manager-core" -version = "0.6.0" +version = "0.7.0" dependencies = [ "argon2", "async-trait", @@ -6395,7 +6395,7 @@ dependencies = [ [[package]] name = "ssh-transport" -version = "0.6.0" +version = "0.7.0" dependencies = [ "async-trait", "bytes", diff --git a/Cargo.toml b/Cargo.toml index 2097914b..51ef2843 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -3,7 +3,7 @@ resolver = "2" members = ["crates/*", "apps/*"] [workspace.package] -version = "0.6.0" +version = "0.7.0" edition = "2021" license = "Apache-2.0" # Spec 0090, A12 (Dependency-Prüfung): keine dieser Crates wird auf crates.io diff --git a/apps/smart-ssh-community/Cargo.toml b/apps/smart-ssh-community/Cargo.toml index efe94420..14c1a34d 100644 --- a/apps/smart-ssh-community/Cargo.toml +++ b/apps/smart-ssh-community/Cargo.toml @@ -16,7 +16,7 @@ path = "src/main.rs" tauri-build = { version = "2", features = [] } [dependencies] -app-shell = { version = "0.6.0", path = "../../crates/app-shell" } +app-shell = { version = "0.7.0", path = "../../crates/app-shell" } tauri = { version = "2", features = [] } # `tauri-build`'s ACL-/Capability-Auflösung (in `build.rs`, läuft für dieses # Binary-Crate) scannt nur die eigenen, direkten Abhängigkeiten dieser diff --git a/apps/smart-ssh-community/frontend/package-lock.json b/apps/smart-ssh-community/frontend/package-lock.json index f7979455..2c94570b 100644 --- a/apps/smart-ssh-community/frontend/package-lock.json +++ b/apps/smart-ssh-community/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "smart-ssh", - "version": "0.6.0", + "version": "0.7.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "smart-ssh", - "version": "0.6.0", + "version": "0.7.0", "license": "Apache-2.0", "dependencies": { "@tailwindcss/typography": "^0.5.20", diff --git a/apps/smart-ssh-community/frontend/package.json b/apps/smart-ssh-community/frontend/package.json index 2fd39535..080eff19 100644 --- a/apps/smart-ssh-community/frontend/package.json +++ b/apps/smart-ssh-community/frontend/package.json @@ -1,7 +1,7 @@ { "name": "smart-ssh", "private": true, - "version": "0.6.0", + "version": "0.7.0", "license": "Apache-2.0", "type": "module", "scripts": { diff --git a/apps/smart-ssh-community/tauri.conf.json b/apps/smart-ssh-community/tauri.conf.json index e9fcdc6b..7a07873b 100644 --- a/apps/smart-ssh-community/tauri.conf.json +++ b/apps/smart-ssh-community/tauri.conf.json @@ -1,7 +1,7 @@ { "$schema": "https://schema.tauri.app/config/2", "productName": "Smart SSH", - "version": "0.6.0", + "version": "0.7.0", "identifier": "com.smartssh.desktop", "build": { "beforeDevCommand": { diff --git a/changelog.d/issue-102-pruefung-nicht-verfuegbar.md b/changelog.d/issue-102-pruefung-nicht-verfuegbar.md deleted file mode 100644 index b0ff95cb..00000000 --- a/changelog.d/issue-102-pruefung-nicht-verfuegbar.md +++ /dev/null @@ -1,7 +0,0 @@ -### Security -- If the optional AI second opinion or the AI check for injected instructions - fails (e.g. expired key, rate limit, provider unreachable), this is now - shown instead of being silently skipped. The affected action, or the next - suggested action, then requires confirmation. If the second opinion is - enabled but cannot be set up on connect (provider deleted, credentials - missing), the session shows a notice. diff --git a/changelog.d/issue-128-ordner-upload.md b/changelog.d/issue-128-ordner-upload.md deleted file mode 100644 index 97c84920..00000000 --- a/changelog.d/issue-128-ordner-upload.md +++ /dev/null @@ -1,6 +0,0 @@ -### Added -- The file browser now uploads whole folders including subfolders: via the - new "Upload folder" entry or by drag and drop. If existing files would be - overwritten, the app lists them and asks once for the whole folder. - Symbolic links are skipped; if a file fails, the rest continue, and a - summary lists what was skipped and what failed. diff --git a/changelog.d/issue-168-openai-web-recherche.md b/changelog.d/issue-168-openai-web-recherche.md deleted file mode 100644 index 81aa80e6..00000000 --- a/changelog.d/issue-168-openai-web-recherche.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- AI web research is now also available with the official OpenAI provider - ("Web research" switch in the AI settings). diff --git a/changelog.d/issue-173-web-ergebnis-flag.md b/changelog.d/issue-173-web-ergebnis-flag.md deleted file mode 100644 index 0d9fa14d..00000000 --- a/changelog.d/issue-173-web-ergebnis-flag.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- If a reply is stopped or aborted by an error after a web research, the - session still counts as "has read untrusted content"; following actions - are escalated accordingly. diff --git a/changelog.d/issue-177-nicht-nutzbare-server-import-gruppe.md b/changelog.d/issue-177-nicht-nutzbare-server-import-gruppe.md deleted file mode 100644 index 4cfee7e5..00000000 --- a/changelog.d/issue-177-nicht-nutzbare-server-import-gruppe.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- Unusable servers (unreadable login method) now count as existing servers - when importing an SSH configuration and appear in a group's delete preview. diff --git a/changelog.d/issue-182-host-key-schluesseltyp.md b/changelog.d/issue-182-host-key-schluesseltyp.md deleted file mode 100644 index 48278461..00000000 --- a/changelog.d/issue-182-host-key-schluesseltyp.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- The host key prompt now also shows the key type of the offered key - (e.g. `ssh-ed25519`), including during the connection test. diff --git a/changelog.d/issue-183-textkontrast.md b/changelog.d/issue-183-textkontrast.md deleted file mode 100644 index 4aa80619..00000000 --- a/changelog.d/issue-183-textkontrast.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- Muted text and labels on accent surfaces are easier to read in the dark - theme (contrast per WCAG AA). diff --git a/changelog.d/issue-231-pruefung-ohne-anbieter.md b/changelog.d/issue-231-pruefung-ohne-anbieter.md deleted file mode 100644 index 156f1460..00000000 --- a/changelog.d/issue-231-pruefung-ohne-anbieter.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- If the AI check for injected instructions is enabled for a server but the - AI second opinion is off or cannot be set up, the session now shows a - notice that the check is not active. diff --git a/changelog.d/issue-239-schluesselbund-texte.md b/changelog.d/issue-239-schluesselbund-texte.md deleted file mode 100644 index bf4c2ff5..00000000 --- a/changelog.d/issue-239-schluesselbund-texte.md +++ /dev/null @@ -1,4 +0,0 @@ -### Fixed -- The message shown when the system keychain is unreachable now says that - only the key of the encrypted database is stored there and that the - database cannot be opened without it. diff --git a/changelog.d/issue-242-loeschen-waehrend-fortsetzen.md b/changelog.d/issue-242-loeschen-waehrend-fortsetzen.md deleted file mode 100644 index c9fba4db..00000000 --- a/changelog.d/issue-242-loeschen-waehrend-fortsetzen.md +++ /dev/null @@ -1,2 +0,0 @@ -### Fixed -- A chat session can no longer be deleted while it is being resumed. diff --git a/changelog.d/issue-245-gleiche-rollen-zusammenfassen.md b/changelog.d/issue-245-gleiche-rollen-zusammenfassen.md deleted file mode 100644 index f97ee200..00000000 --- a/changelog.d/issue-245-gleiche-rollen-zusammenfassen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- Queued messages and command results are merged into one message when sent - to the AI; strict OpenAI-compatible servers no longer reject them. diff --git a/changelog.d/issue-246-sftp-server-login-shell.md b/changelog.d/issue-246-sftp-server-login-shell.md deleted file mode 100644 index 9ee37b2a..00000000 --- a/changelog.d/issue-246-sftp-server-login-shell.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- The elevated file browser now also finds `sftp-server` on servers whose - login shell is csh, tcsh or fish. diff --git a/changelog.d/issue-248-host-keys-anzeigen.md b/changelog.d/issue-248-host-keys-anzeigen.md deleted file mode 100644 index 8018f063..00000000 --- a/changelog.d/issue-248-host-keys-anzeigen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- The server settings now show the stored host keys (algorithm and - fingerprint) so they can be compared against a second source. diff --git a/changelog.d/issue-250-anzeige-trenner.md b/changelog.d/issue-250-anzeige-trenner.md deleted file mode 100644 index 155af8b6..00000000 --- a/changelog.d/issue-250-anzeige-trenner.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- Paths and file names in startup dialogs, and rejected input in server - forms, are no longer broken up or displayed reversed by line separators - or text-direction control characters. diff --git a/changelog.d/issue-252-rechte-warnung.md b/changelog.d/issue-252-rechte-warnung.md deleted file mode 100644 index cfe6e41c..00000000 --- a/changelog.d/issue-252-rechte-warnung.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- If the app cannot restrict the access permissions of a sensitive file - (database, host keys, logs, settings), a warning is now written to the - log file. diff --git a/changelog.d/issue-254-schluesseldatei-pfad-pflicht.md b/changelog.d/issue-254-schluesseldatei-pfad-pflicht.md deleted file mode 100644 index 61ccb26b..00000000 --- a/changelog.d/issue-254-schluesseldatei-pfad-pflicht.md +++ /dev/null @@ -1,2 +0,0 @@ -### Fixed -- "Test connection" now reports an empty key file path as a missing required field, like saving does, even if the path consists only of whitespace or invisible characters. diff --git a/changelog.d/issue-255-fork-bombe-risiko.md b/changelog.d/issue-255-fork-bombe-risiko.md deleted file mode 100644 index ef0ff8db..00000000 --- a/changelog.d/issue-255-fork-bombe-risiko.md +++ /dev/null @@ -1,3 +0,0 @@ -### Security -- A fork bomb is now also detected as high risk when embedded in a longer - command (chained, with `sudo` or inside `$(…)`). diff --git a/changelog.d/issue-256-prioritaet-tauschen.md b/changelog.d/issue-256-prioritaet-tauschen.md deleted file mode 100644 index 5eeeb992..00000000 --- a/changelog.d/issue-256-prioritaet-tauschen.md +++ /dev/null @@ -1,5 +0,0 @@ -### Fixed -- Moving a filter rule in priority is now atomic and can no longer leave two - rules with the same priority. -- Arrows next to a rule with an invalid pattern are disabled and give the - reason; the test view also marks such rules. diff --git a/changelog.d/issue-257-sftp-server-rechte.md b/changelog.d/issue-257-sftp-server-rechte.md deleted file mode 100644 index c2c088f6..00000000 --- a/changelog.d/issue-257-sftp-server-rechte.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- The elevated file browser no longer suggests a sudo rule if `sftp-server` - or a parent directory is not owned by root or is writable by others; a - warning is shown instead. diff --git a/changelog.d/issue-258-ki-kontext-ungueltige-allow-regeln.md b/changelog.d/issue-258-ki-kontext-ungueltige-allow-regeln.md deleted file mode 100644 index 3a3e15dc..00000000 --- a/changelog.d/issue-258-ki-kontext-ungueltige-allow-regeln.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- Allow rules with an invalid pattern are no longer described to the AI as - runnable without confirmation; such commands still require confirmation. diff --git a/changelog.d/issue-260-ungueltige-regel-einmal-melden.md b/changelog.d/issue-260-ungueltige-regel-einmal-melden.md deleted file mode 100644 index 7ebaab89..00000000 --- a/changelog.d/issue-260-ungueltige-regel-einmal-melden.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- A filter rule with an invalid pattern is now logged only once per - connection instead of on every evaluation. diff --git a/changelog.d/issue-261-schluesselwoerter-alle-sprachen.md b/changelog.d/issue-261-schluesselwoerter-alle-sprachen.md deleted file mode 100644 index 6654a941..00000000 --- a/changelog.d/issue-261-schluesselwoerter-alle-sprachen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Security -- Credentials are now also redacted for German keywords such as `Passwort:` - or `Schlüssel=`, regardless of the interface language. diff --git a/changelog.d/issue-265-einstellungen-schreibfehler.md b/changelog.d/issue-265-einstellungen-schreibfehler.md deleted file mode 100644 index a84f481a..00000000 --- a/changelog.d/issue-265-einstellungen-schreibfehler.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- If saving settings fails or the settings file is corrupted, the app reports - the error and no longer overwrites the file. diff --git a/changelog.d/issue-266-master-passwort-haertung.md b/changelog.d/issue-266-master-passwort-haertung.md deleted file mode 100644 index 8e9babaa..00000000 --- a/changelog.d/issue-266-master-passwort-haertung.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- The master password file is checked more strictly: an existing link at its - intermediate location is no longer followed, and an unreadable location is - no longer interpreted as "no master password". diff --git a/changelog.d/issue-269-startmaske-erneut-versuchen.md b/changelog.d/issue-269-startmaske-erneut-versuchen.md deleted file mode 100644 index 0086d41e..00000000 --- a/changelog.d/issue-269-startmaske-erneut-versuchen.md +++ /dev/null @@ -1,2 +0,0 @@ -### Fixed -- "Try again" on the startup screen now also works when registering the startup events failed; restarting the app is no longer necessary. diff --git a/changelog.d/issue-270-redactor-weitere-formen.md b/changelog.d/issue-270-redactor-weitere-formen.md deleted file mode 100644 index 9904963a..00000000 --- a/changelog.d/issue-270-redactor-weitere-formen.md +++ /dev/null @@ -1,4 +0,0 @@ -### Security -- Redaction before the AI context recognizes more password forms: - `mysqlsh`, `mysqlpump`, `mysql5` and `mariadb-*` clients, `openssl -K`, - Drupal 7 hashes and quoted passwords spanning a line break. diff --git a/changelog.d/issue-271-neuer-chat.md b/changelog.d/issue-271-neuer-chat.md deleted file mode 100644 index 368aee68..00000000 --- a/changelog.d/issue-271-neuer-chat.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- In the chat panel of a connected session, "New chat" starts a fresh - conversation without disconnecting SSH. The old chat stays in the list. diff --git a/changelog.d/issue-277-umlaut-nfd-schwaerzung.md b/changelog.d/issue-277-umlaut-nfd-schwaerzung.md deleted file mode 100644 index 19027855..00000000 --- a/changelog.d/issue-277-umlaut-nfd-schwaerzung.md +++ /dev/null @@ -1,2 +0,0 @@ -### Security -- Credential keywords with umlauts (e.g. `Schlüssel`) are now also redacted in decomposed Unicode form. diff --git a/changelog.d/issue-303-sftp-server-symlink-pruefung.md b/changelog.d/issue-303-sftp-server-symlink-pruefung.md deleted file mode 100644 index a1c94c50..00000000 --- a/changelog.d/issue-303-sftp-server-symlink-pruefung.md +++ /dev/null @@ -1,2 +0,0 @@ -### Security -- The elevated file browser now also checks the symlinks on the way to `sftp-server` and their directories before suggesting a sudoers line. diff --git a/changelog.d/issue-315-neuer-chat-nachricht.md b/changelog.d/issue-315-neuer-chat-nachricht.md deleted file mode 100644 index eeef8488..00000000 --- a/changelog.d/issue-315-neuer-chat-nachricht.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- A message you send exactly while "New chat" is in progress no longer ends - up unnoticed in the new chat: it is rejected and stays in the input field. diff --git a/changelog.d/issue-318-umbenannte-fork-bombe.md b/changelog.d/issue-318-umbenannte-fork-bombe.md deleted file mode 100644 index c90f1185..00000000 --- a/changelog.d/issue-318-umbenannte-fork-bombe.md +++ /dev/null @@ -1,3 +0,0 @@ -### Security -- Fork bombs with any function name (e.g. `b(){ b|b& };b`) are now rated - high risk, like the classic variant. diff --git a/changelog.d/issue-323-kommandos-buendeln.md b/changelog.d/issue-323-kommandos-buendeln.md deleted file mode 100644 index 1ab96475..00000000 --- a/changelog.d/issue-323-kommandos-buendeln.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- The AI proposes independent commands together in one reply and uses - non-interactive options (e.g. `-y`) so commands do not hang. diff --git a/changelog.d/issue-324-localhost-abbruch.md b/changelog.d/issue-324-localhost-abbruch.md deleted file mode 100644 index 1e706b56..00000000 --- a/changelog.d/issue-324-localhost-abbruch.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- A running AI command on localhost can now be cancelled; the command is - terminated together with its pipelines, and the output so far is kept. diff --git a/changelog.d/issue-325-live-ausgabe.md b/changelog.d/issue-325-live-ausgabe.md deleted file mode 100644 index 46695873..00000000 --- a/changelog.d/issue-325-live-ausgabe.md +++ /dev/null @@ -1,4 +0,0 @@ -### Added -- The output of a running command now appears live, line by line, in the - chat, separated into standard and error output and redacted like the - result. diff --git a/changelog.d/issue-326-modelle-automatisch-laden.md b/changelog.d/issue-326-modelle-automatisch-laden.md deleted file mode 100644 index 018aba13..00000000 --- a/changelog.d/issue-326-modelle-automatisch-laden.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- After entering the API key, the provider form loads the model list by - itself when you leave the field; a rejected key is clearly shown in red. diff --git a/changelog.d/issue-327-wartet-auf-eingabe.md b/changelog.d/issue-327-wartet-auf-eingabe.md deleted file mode 100644 index d69f5ec6..00000000 --- a/changelog.d/issue-327-wartet-auf-eingabe.md +++ /dev/null @@ -1,4 +0,0 @@ -### Added -- If a running command is probably waiting for input (e.g. "Do you want to - continue? [Y/n]"), the chat shows a notice next to the stop button. After - stopping, the AI suggests a non-interactive variant. diff --git a/changelog.d/issue-328-sitzung-waehrend-kommando.md b/changelog.d/issue-328-sitzung-waehrend-kommando.md deleted file mode 100644 index 7d30e45d..00000000 --- a/changelog.d/issue-328-sitzung-waehrend-kommando.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- While an AI command is running, the file browser, terminal and disconnect - of the same session remain usable; disconnecting cancels the command. diff --git a/changelog.d/issue-329-datum-folgt-sprache.md b/changelog.d/issue-329-datum-folgt-sprache.md deleted file mode 100644 index 60861f84..00000000 --- a/changelog.d/issue-329-datum-folgt-sprache.md +++ /dev/null @@ -1,4 +0,0 @@ -### Changed -- Date and time (chat sessions, file browser, notes) now follow the - language selected in the app instead of the system setting. -- The language picker shows each language under its own name. diff --git a/changelog.d/issue-330-ki-antwortet-in-ui-sprache.md b/changelog.d/issue-330-ki-antwortet-in-ui-sprache.md deleted file mode 100644 index 550e202a..00000000 --- a/changelog.d/issue-330-ki-antwortet-in-ui-sprache.md +++ /dev/null @@ -1,2 +0,0 @@ -### Changed -- The AI answers in the interface language by default; session titles, closing notes and summaries follow it. diff --git a/changelog.d/issue-331-franzoesisch-spanisch-italienisch.md b/changelog.d/issue-331-franzoesisch-spanisch-italienisch.md deleted file mode 100644 index 1ee0344b..00000000 --- a/changelog.d/issue-331-franzoesisch-spanisch-italienisch.md +++ /dev/null @@ -1,6 +0,0 @@ -### Added -- The interface is now also available in French, Spanish and Italian. - The language can be chosen in the settings or follows the system. - -### Security -- Redaction now also recognizes password keywords in French, Spanish and Italian. diff --git a/changelog.d/issue-332-portugiesisch-niederlaendisch.md b/changelog.d/issue-332-portugiesisch-niederlaendisch.md deleted file mode 100644 index 985f6ecc..00000000 --- a/changelog.d/issue-332-portugiesisch-niederlaendisch.md +++ /dev/null @@ -1,2 +0,0 @@ -### Added -- The app is now also available in Portuguese (Brazil) and Dutch. The language can be chosen in the settings and is selected automatically when it matches the system language. diff --git a/changelog.d/issue-333-nordische-sprachen.md b/changelog.d/issue-333-nordische-sprachen.md deleted file mode 100644 index dd8b0eea..00000000 --- a/changelog.d/issue-333-nordische-sprachen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- The interface is now also available in Swedish, Danish, Norwegian - (Bokmål) and Finnish; they can be chosen in the settings. diff --git a/changelog.d/issue-334-polnisch-tschechisch-ukrainisch-russisch.md b/changelog.d/issue-334-polnisch-tschechisch-ukrainisch-russisch.md deleted file mode 100644 index 03765758..00000000 --- a/changelog.d/issue-334-polnisch-tschechisch-ukrainisch-russisch.md +++ /dev/null @@ -1,6 +0,0 @@ -### Added -- The interface is now also available in Polish, Czech, Ukrainian and Russian. - The language can be chosen in the settings or follows the system. - -### Security -- Redaction now also recognizes password keywords in Polish, Czech, Ukrainian and Russian. diff --git a/changelog.d/issue-335-japanisch-chinesisch-koreanisch.md b/changelog.d/issue-335-japanisch-chinesisch-koreanisch.md deleted file mode 100644 index a2add1a7..00000000 --- a/changelog.d/issue-335-japanisch-chinesisch-koreanisch.md +++ /dev/null @@ -1,6 +0,0 @@ -### Added -- The interface is now also available in Japanese, Simplified Chinese and Korean. - The language can be chosen in the settings or follows the system. - -### Security -- Redaction now also recognizes password keywords in Japanese, Chinese and Korean. diff --git a/changelog.d/issue-336-tuerkisch-griechisch-ungarisch-rumaenisch.md b/changelog.d/issue-336-tuerkisch-griechisch-ungarisch-rumaenisch.md deleted file mode 100644 index 582252b7..00000000 --- a/changelog.d/issue-336-tuerkisch-griechisch-ungarisch-rumaenisch.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- The app is now also available in Turkish, Greek, Hungarian and Romanian. The language can be chosen in the settings and is selected automatically when it matches the system language. -- Passwords and keys are now also masked in output based on the keywords of these four languages (e.g. "şifre", "κωδικός", "jelszó", "parolă"). diff --git a/changelog.d/issue-337-indonesisch-vietnamesisch-hindi.md b/changelog.d/issue-337-indonesisch-vietnamesisch-hindi.md deleted file mode 100644 index 1abc9f85..00000000 --- a/changelog.d/issue-337-indonesisch-vietnamesisch-hindi.md +++ /dev/null @@ -1,2 +0,0 @@ -### Added -- The app is now also available in Indonesian, Vietnamese and Hindi. The language can be chosen in the settings and is selected automatically when it matches the system language. diff --git a/changelog.d/issue-339-werkzeugbeschreibungen-sprache.md b/changelog.d/issue-339-werkzeugbeschreibungen-sprache.md deleted file mode 100644 index aab6d4e2..00000000 --- a/changelog.d/issue-339-werkzeugbeschreibungen-sprache.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- English sessions now receive all AI tool descriptions in English instead - of a mix of German and English. diff --git a/changelog.d/issue-344-notiz-vorschlag-nur-server.md b/changelog.d/issue-344-notiz-vorschlag-nur-server.md deleted file mode 100644 index 1f187633..00000000 --- a/changelog.d/issue-344-notiz-vorschlag-nur-server.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- The automatic note suggestion after disconnecting now affects only the - server's note, never the group's. diff --git a/changelog.d/issue-345-cap-beendet-ganzes-kommando.md b/changelog.d/issue-345-cap-beendet-ganzes-kommando.md deleted file mode 100644 index 2078d1e3..00000000 --- a/changelog.d/issue-345-cap-beendet-ganzes-kommando.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- When a local command reaches the output limit, its pipeline members and - background processes are now terminated too, not just the shell. diff --git a/changelog.d/issue-352-prompt-historie-sofort.md b/changelog.d/issue-352-prompt-historie-sofort.md deleted file mode 100644 index 42f72c91..00000000 --- a/changelog.d/issue-352-prompt-historie-sofort.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- A prompt sent in the open chat is immediately reachable with the Up arrow - key, not only after reopening. diff --git a/changelog.d/issue-353-verbindungsabriss-erkennen.md b/changelog.d/issue-353-verbindungsabriss-erkennen.md deleted file mode 100644 index 1a38267d..00000000 --- a/changelog.d/issue-353-verbindungsabriss-erkennen.md +++ /dev/null @@ -1,4 +0,0 @@ -### Changed -- A dead SSH connection is detected after about a minute and shown as - "disconnected", even on a silent network outage and without an open - terminal. diff --git a/changelog.d/issue-355-sitzung-neu-verbinden.md b/changelog.d/issue-355-sitzung-neu-verbinden.md deleted file mode 100644 index 5af0ead9..00000000 --- a/changelog.d/issue-355-sitzung-neu-verbinden.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- After a connection loss, the tab can be reconnected with "Reconnect" or - the R key; chat history and AI context are kept. diff --git a/changelog.d/issue-356-automatisch-neu-verbinden.md b/changelog.d/issue-356-automatisch-neu-verbinden.md deleted file mode 100644 index 0cf22dae..00000000 --- a/changelog.d/issue-356-automatisch-neu-verbinden.md +++ /dev/null @@ -1,2 +0,0 @@ -### Added -- If the connection drops, Smart SSH reconnects automatically (configurable: off, 30 s, 60 s, 5 min; default 60 s). If an AI step was running, the AI continues by itself afterwards. diff --git a/changelog.d/issue-357-dateiinhalt-kopieren-50-mb.md b/changelog.d/issue-357-dateiinhalt-kopieren-50-mb.md deleted file mode 100644 index 34f02377..00000000 --- a/changelog.d/issue-357-dateiinhalt-kopieren-50-mb.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- "Copy file content" now works for text files up to 50 MB (previously 256 KB). - From 5 MB on, the file browser shows progress and lets you cancel the copy. diff --git a/changelog.d/issue-358-datei-kopieren.md b/changelog.d/issue-358-datei-kopieren.md deleted file mode 100644 index 5f34f5fd..00000000 --- a/changelog.d/issue-358-datei-kopieren.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- In the file browser, "Copy file" puts a remote file (up to 50 MB) on the - clipboard as a file; it can be pasted in the file manager. diff --git a/changelog.d/issue-359-notiz-format.md b/changelog.d/issue-359-notiz-format.md deleted file mode 100644 index cd4e96ba..00000000 --- a/changelog.d/issue-359-notiz-format.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- The AI keeps server notes short and in fixed sections and stores lasting - facts instead of events. Existing notes are rewritten at the next suggestion. diff --git a/changelog.d/issue-361-weiter-anweisung-sprache.md b/changelog.d/issue-361-weiter-anweisung-sprache.md deleted file mode 100644 index 2121489a..00000000 --- a/changelog.d/issue-361-weiter-anweisung-sprache.md +++ /dev/null @@ -1,2 +0,0 @@ -### Fixed -- The "Continue" button after a truncated AI reply now sends its instruction in the interface language instead of always in German. diff --git a/changelog.d/issue-366-redaktion-akzente.md b/changelog.d/issue-366-redaktion-akzente.md deleted file mode 100644 index 7770954a..00000000 --- a/changelog.d/issue-366-redaktion-akzente.md +++ /dev/null @@ -1,4 +0,0 @@ -### Fixed -- Password keywords with decomposed accents (e.g. `contraseña` from the - clipboard) and with a typographic apostrophe (`clé d’accès`) are now - masked as well. diff --git a/changelog.d/issue-374-risiko-verkettung-leerzeichen.md b/changelog.d/issue-374-risiko-verkettung-leerzeichen.md deleted file mode 100644 index 4b43352b..00000000 --- a/changelog.d/issue-374-risiko-verkettung-leerzeichen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- Risk classification now rates a command with trailing spaces inside a - chain (`;`, `&&`, `|`) as strictly as the command on its own. diff --git a/changelog.d/issue-381-oberflaeche-rahmen.md b/changelog.d/issue-381-oberflaeche-rahmen.md deleted file mode 100644 index 6f58bac9..00000000 --- a/changelog.d/issue-381-oberflaeche-rahmen.md +++ /dev/null @@ -1,4 +0,0 @@ -### Changed -- The session tab bar can be operated with the arrow keys and Home/End; - Delete closes the focused tab. Long server names are shortened. -- Consistent buttons and visible focus in the header, session and notices. diff --git a/changelog.d/issue-382-serververwaltung-tastatur.md b/changelog.d/issue-382-serververwaltung-tastatur.md deleted file mode 100644 index 8bd28507..00000000 --- a/changelog.d/issue-382-serververwaltung-tastatur.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- Server tree and server management: consistent buttons, visible focus ring in all fields, more readable help texts and labels on the import select fields. -- The picker dialog for earlier conversations and the ssh_config export can be closed with Escape; keyboard focus stays in the dialog. diff --git a/changelog.d/issue-383-chat-ueberarbeitung.md b/changelog.d/issue-383-chat-ueberarbeitung.md deleted file mode 100644 index d3e4ab44..00000000 --- a/changelog.d/issue-383-chat-ueberarbeitung.md +++ /dev/null @@ -1,2 +0,0 @@ -### Changed -- Chat and command confirmation: consistent buttons, visible keyboard focus (also in the input field), more readable small texts, and long commands wrap. The rule menu closes with Escape. diff --git a/changelog.d/issue-384-dateibrowser-bedienung.md b/changelog.d/issue-384-dateibrowser-bedienung.md deleted file mode 100644 index 0242c0a0..00000000 --- a/changelog.d/issue-384-dateibrowser-bedienung.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- The file browser is more consistent and easier to use with the keyboard: - dialogs close with Escape and return focus, and so does the action menu. diff --git a/changelog.d/issue-385-einstellungen-tastatur.md b/changelog.d/issue-385-einstellungen-tastatur.md deleted file mode 100644 index f51f4266..00000000 --- a/changelog.d/issue-385-einstellungen-tastatur.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- Settings: Escape closes the window, the Tab order stays within the window and focus returns afterwards. -- Settings and notes: consistent buttons and fields, visible focus rings, labeled input fields. diff --git a/changelog.d/issue-386-ki-mcp-regeln-tastatur.md b/changelog.d/issue-386-ki-mcp-regeln-tastatur.md deleted file mode 100644 index 1bc820bf..00000000 --- a/changelog.d/issue-386-ki-mcp-regeln-tastatur.md +++ /dev/null @@ -1,2 +0,0 @@ -### Changed -- AI providers, MCP servers and filter rules: consistent buttons and fields, more readable hint texts, visible keyboard focus, and rule scope selection with the arrow keys. diff --git a/changelog.d/issue-387-startdialoge-ueberarbeitet.md b/changelog.d/issue-387-startdialoge-ueberarbeitet.md deleted file mode 100644 index e502d87a..00000000 --- a/changelog.d/issue-387-startdialoge-ueberarbeitet.md +++ /dev/null @@ -1,2 +0,0 @@ -### Changed -- The unlock, startup, first-run and host key dialogs are more consistently designed, easier to use with the keyboard and no longer cut off in small windows. diff --git a/changelog.d/issue-404-dateibrowser-werkzeugleiste.md b/changelog.d/issue-404-dateibrowser-werkzeugleiste.md deleted file mode 100644 index 6028274f..00000000 --- a/changelog.d/issue-404-dateibrowser-werkzeugleiste.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- The file browser toolbar visually separates file actions and elevated - privileges into two groups and wraps in small windows. diff --git a/changelog.d/issue-405-chmod-beschriftungen.md b/changelog.d/issue-405-chmod-beschriftungen.md deleted file mode 100644 index 0beb8beb..00000000 --- a/changelog.d/issue-405-chmod-beschriftungen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Fixed -- In the file browser's permissions dialog, "Owner", "Group" and "Others" - are now labeled in the selected language. diff --git a/changelog.d/issue-407-serverliste-fokus.md b/changelog.d/issue-407-serverliste-fokus.md deleted file mode 100644 index 9cdd9651..00000000 --- a/changelog.d/issue-407-serverliste-fokus.md +++ /dev/null @@ -1,2 +0,0 @@ -### Fixed -- While a connection is being established, server entries stay reachable by keyboard; after closing the host key dialog, focus returns to the server. diff --git a/changelog.d/issue-408-dialog-button-order.md b/changelog.d/issue-408-dialog-button-order.md deleted file mode 100644 index 209a6ad9..00000000 --- a/changelog.d/issue-408-dialog-button-order.md +++ /dev/null @@ -1,4 +0,0 @@ -### Changed -- In the startup dialogs and the host key dialog, the primary action is now - on the right, with "Quit"/"Cancel" or "Reject" before it. Initial focus - and Escape are unchanged. diff --git a/changelog.d/issue-417-spracheingabe-aufnahme.md b/changelog.d/issue-417-spracheingabe-aufnahme.md deleted file mode 100644 index 542ac551..00000000 --- a/changelog.d/issue-417-spracheingabe-aufnahme.md +++ /dev/null @@ -1,3 +0,0 @@ -### Added -- Foundation for voice input: recording from the microphone and local - recognition with the loaded Whisper model. Audio stays on your computer. diff --git a/changelog.d/issue-418-spracheingabe-chat.md b/changelog.d/issue-418-spracheingabe-chat.md deleted file mode 100644 index 4ab62c36..00000000 --- a/changelog.d/issue-418-spracheingabe-chat.md +++ /dev/null @@ -1,6 +0,0 @@ -### Added -- Voice input in the AI chat: a microphone button next to "Send" (or - Ctrl+Shift+M) dictates text into the input field. Recognition runs - locally; a dialog asks before the speech model is downloaded for the - first time. Under "Voice input" in the settings you can choose the model - and language or turn the feature off. diff --git a/changelog.d/issue-421-titelzeile-schmal.md b/changelog.d/issue-421-titelzeile-schmal.md deleted file mode 100644 index a0c7bebb..00000000 --- a/changelog.d/issue-421-titelzeile-schmal.md +++ /dev/null @@ -1,2 +0,0 @@ -### Fixed -- In narrow windows the version text in the title bar no longer crowds the tab bar: below 1024 px width only the dev marker remains; version and edition are shown under Settings > About. diff --git a/changelog.d/issue-422-toast-position.md b/changelog.d/issue-422-toast-position.md deleted file mode 100644 index 38e29877..00000000 --- a/changelog.d/issue-422-toast-position.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- Notifications (toasts) now appear at the top right instead of the bottom - left and no longer cover the chat input field in small windows. diff --git a/changelog.d/issue-425-baum-pfeiltasten.md b/changelog.d/issue-425-baum-pfeiltasten.md deleted file mode 100644 index 85a0e01b..00000000 --- a/changelog.d/issue-425-baum-pfeiltasten.md +++ /dev/null @@ -1,3 +0,0 @@ -### Changed -- The server tree in the sidebar is a single Tab stop and can be operated - with the arrow keys and Home/End. diff --git a/changelog.d/issue-427-mcp-token-verbergen.md b/changelog.d/issue-427-mcp-token-verbergen.md deleted file mode 100644 index e5f047c2..00000000 --- a/changelog.d/issue-427-mcp-token-verbergen.md +++ /dev/null @@ -1,3 +0,0 @@ -### Security -- The MCP token in the settings is now hidden by default and can be shown - with a button; "Copy configuration" still copies the real token. diff --git a/changelog.d/issue-433-risiko-heredoc-kette.md b/changelog.d/issue-433-risiko-heredoc-kette.md deleted file mode 100644 index 43911fa4..00000000 --- a/changelog.d/issue-433-risiko-heredoc-kette.md +++ /dev/null @@ -1,3 +0,0 @@ -### Security -- A command with an incomplete here-doc suffix (e.g. `rm;<<`) is no longer - rated lower in the risk indicator than the command alone. diff --git a/changelog.d/issue-460-einstellungen-escape-webkit.md b/changelog.d/issue-460-einstellungen-escape-webkit.md deleted file mode 100644 index eb91aaa1..00000000 --- a/changelog.d/issue-460-einstellungen-escape-webkit.md +++ /dev/null @@ -1,3 +0,0 @@ -### Behoben -- Die Einstellungen schließen sich unter macOS (WebKit) wieder mit Escape, - auch nachdem eine Kategorie angeklickt wurde. diff --git a/changelog.d/issue-505-erweiterungsinhalt-versiegeln.md b/changelog.d/issue-505-erweiterungsinhalt-versiegeln.md deleted file mode 100644 index 9b9c63a6..00000000 --- a/changelog.d/issue-505-erweiterungsinhalt-versiegeln.md +++ /dev/null @@ -1,2 +0,0 @@ -### Security -- Content that an edition attaches to a chat message is now always redacted, fenced as untrusted and size-checked by the app before it reaches the AI; attachments over 20 MiB per request or of unsupported types are rejected. diff --git a/changelog.d/issue-529-rustls-update.md b/changelog.d/issue-529-rustls-update.md deleted file mode 100644 index 479739ff..00000000 --- a/changelog.d/issue-529-rustls-update.md +++ /dev/null @@ -1,2 +0,0 @@ -### Security -- Updated the TLS library (rustls) to fix four published advisories affecting outbound HTTPS connections. diff --git a/changelog.d/issue-99-modell-ohne-tool-unterstuetzung.md b/changelog.d/issue-99-modell-ohne-tool-unterstuetzung.md deleted file mode 100644 index 5bb6a1d6..00000000 --- a/changelog.d/issue-99-modell-ohne-tool-unterstuetzung.md +++ /dev/null @@ -1,5 +0,0 @@ -### Changed -- If a local Ollama model without tool support causes an error, the app now - shows the message "This model does not support tool calling" with a hint to - untick "Supports native tool calling" in the provider settings, instead of - a generic provider error. diff --git a/crates/ai-providers/Cargo.toml b/crates/ai-providers/Cargo.toml index 94600cc2..171408aa 100644 --- a/crates/ai-providers/Cargo.toml +++ b/crates/ai-providers/Cargo.toml @@ -16,7 +16,7 @@ futures = "0.3.34" reqwest = { version = "0.13.4", default-features = false, features = ["stream", "json", "rustls"] } serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" -ssh-manager-core = { version = "0.6.0", path = "../core" } +ssh-manager-core = { version = "0.7.0", path = "../core" } tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros", "time"] } tracing = "0.1.44" uuid = { version = "1.26.0", features = ["v4"] } diff --git a/crates/app-logic/Cargo.toml b/crates/app-logic/Cargo.toml index 946ffb7b..a47992cb 100644 --- a/crates/app-logic/Cargo.toml +++ b/crates/app-logic/Cargo.toml @@ -23,11 +23,11 @@ test-support = [] [dependencies] # Issue #104: NFKC-Normalisierung der Urteilswerte (Spec 0074). unicode-normalization = "0.1.25" -ai-providers = { version = "0.6.0", path = "../ai-providers" } +ai-providers = { version = "0.7.0", path = "../ai-providers" } async-trait = "0.1.92" base64 = "0.23.1" chrono = { version = "0.4.45", features = ["serde"] } -credentials-keyring = { version = "0.6.0", path = "../credentials-keyring" } +credentials-keyring = { version = "0.7.0", path = "../credentials-keyring" } directories = "6.0.0" futures = "0.3.34" # Spec 0075, §9 Q-1 Punkt 1 (übernommen aus app-shell/Cargo.toml, s. dort @@ -37,15 +37,15 @@ globset = "0.4.20" # ADR 0065 §3 (Nachtrag) (übernommen aus app-shell/Cargo.toml): `O_NONBLOCK` für # `key_files.rs`. libc = "0.2.189" -mcp-server = { version = "0.6.0", path = "../mcp-server" } -persistence-sqlite = { version = "0.6.0", path = "../persistence-sqlite" } +mcp-server = { version = "0.7.0", path = "../mcp-server" } +persistence-sqlite = { version = "0.7.0", path = "../persistence-sqlite" } regex = "1.13.1" secrecy = "0.10.3" serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" sha2 = "0.11.0" -ssh-manager-core = { version = "0.6.0", path = "../core" } -ssh-transport = { version = "0.6.0", path = "../ssh-transport" } +ssh-manager-core = { version = "0.7.0", path = "../core" } +ssh-transport = { version = "0.7.0", path = "../ssh-transport" } tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros", "sync", "time"] } tracing = "0.1.44" tracing-appender = "0.2.5" @@ -62,7 +62,7 @@ proptest = "1" # Klartext-Datenbanken an (Ausgangszustand einer bestehenden # Installation) und brauchen dafuer `connect_plaintext`. Nur hier, nie # unter `[dependencies]`. -persistence-sqlite = { version = "0.6.0", path = "../persistence-sqlite", features = ["test-support"] } +persistence-sqlite = { version = "0.7.0", path = "../persistence-sqlite", features = ["test-support"] } tempfile = "3.27.0" # Spec 0020, Abschnitt 6 (Muster wie app-shell/Cargo.toml). ssh-manager-core = { path = "../core", features = ["test-support"] } diff --git a/crates/app-shell/Cargo.toml b/crates/app-shell/Cargo.toml index 97218d92..c833d1e7 100644 --- a/crates/app-shell/Cargo.toml +++ b/crates/app-shell/Cargo.toml @@ -10,20 +10,20 @@ name = "app_shell" path = "src/lib.rs" [dependencies] -ai-providers = { version = "0.6.0", path = "../ai-providers" } +ai-providers = { version = "0.7.0", path = "../ai-providers" } # Spec 0084: die Tauri-freie Anwendungslogik — `app-shell` hängt von ihr ab, # nie umgekehrt (A3, s. `docs/architecture.md`). -app-logic = { version = "0.6.0", path = "../app-logic" } +app-logic = { version = "0.7.0", path = "../app-logic" } async-trait = "0.1.92" base64 = "0.23.1" # Issue #358: file references on the system clipboard (macOS/Windows/X11/Wayland). clipboard-rs = { version = "0.3.5", default-features = false } chrono = { version = "0.4.45", features = ["serde"] } -credentials-keyring = { version = "0.6.0", path = "../credentials-keyring" } +credentials-keyring = { version = "0.7.0", path = "../credentials-keyring" } directories = "6.0.0" futures = "0.3.34" -mcp-server = { version = "0.6.0", path = "../mcp-server" } -persistence-sqlite = { version = "0.6.0", path = "../persistence-sqlite" } +mcp-server = { version = "0.7.0", path = "../mcp-server" } +persistence-sqlite = { version = "0.7.0", path = "../persistence-sqlite" } regex = "1.13.1" # Spec 0059 (fataler Startfehler-Dialog): war bereits transitiv über # `tauri-plugin-dialog` im Baum (s. `Cargo.lock`) — hier direkt gepinnt, @@ -48,9 +48,9 @@ rfd = { version = "0.16.0", default-features = false, features = [ secrecy = "0.10.3" serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" -speech = { version = "0.6.0", path = "../speech" } -ssh-manager-core = { version = "0.6.0", path = "../core" } -ssh-transport = { version = "0.6.0", path = "../ssh-transport" } +speech = { version = "0.7.0", path = "../speech" } +ssh-manager-core = { version = "0.7.0", path = "../core" } +ssh-transport = { version = "0.7.0", path = "../ssh-transport" } tauri = { version = "2", features = [] } tauri-plugin-decoration = "3.0" tauri-plugin-dialog = "2.7.2" @@ -75,7 +75,7 @@ uuid = { version = "1.26.0", features = ["v4", "serde"] } # Klartext-Datenbanken an (Ausgangszustand einer bestehenden # Installation) und brauchen dafuer `connect_plaintext`. Nur hier, nie # unter `[dependencies]`. -persistence-sqlite = { version = "0.6.0", path = "../persistence-sqlite", features = ["test-support"] } +persistence-sqlite = { version = "0.7.0", path = "../persistence-sqlite", features = ["test-support"] } tempfile = "3.27.0" # ADR 0065 §3 (Nachtrag): `libc::mkfifo` im Testaufbau von # `ssh_config_apply/tests.rs` — nach Spec 0084 der einzige verbliebene diff --git a/crates/credentials-keyring/Cargo.toml b/crates/credentials-keyring/Cargo.toml index 4e1a63fc..8e8c559a 100644 --- a/crates/credentials-keyring/Cargo.toml +++ b/crates/credentials-keyring/Cargo.toml @@ -12,4 +12,4 @@ path = "src/lib.rs" [dependencies] keyring = "4.1.6" secrecy = "0.10.3" -ssh-manager-core = { version = "0.6.0", path = "../core" } +ssh-manager-core = { version = "0.7.0", path = "../core" } diff --git a/crates/mcp-server/Cargo.toml b/crates/mcp-server/Cargo.toml index ae54a2d8..109f99ed 100644 --- a/crates/mcp-server/Cargo.toml +++ b/crates/mcp-server/Cargo.toml @@ -12,7 +12,7 @@ rmcp = { version = "3.2.0", features = ["server", "macros", "transport-streamabl schemars = "1" serde = { version = "1.0.229", features = ["derive"] } serde_json = "1.0.151" -ssh-manager-core = { version = "0.6.0", path = "../core" } +ssh-manager-core = { version = "0.7.0", path = "../core" } tokio = { version = "1.53.1", features = ["sync", "time", "rt"] } tokio-util = "0.7.19" tracing = "0.1.44" diff --git a/crates/persistence-sqlite/Cargo.toml b/crates/persistence-sqlite/Cargo.toml index 942e7325..28a959f0 100644 --- a/crates/persistence-sqlite/Cargo.toml +++ b/crates/persistence-sqlite/Cargo.toml @@ -37,7 +37,7 @@ libsqlite3-sys = { version = "=0.37.0", features = ["bundled-sqlcipher-vendored- secrecy = "0.10.3" serde_json = "1.0.151" sqlx = { version = "0.9.0", features = ["sqlite", "runtime-tokio", "tls-rustls", "migrate", "chrono", "uuid", "sqlite-bundled"] } -ssh-manager-core = { version = "0.6.0", path = "../core" } +ssh-manager-core = { version = "0.7.0", path = "../core" } tokio = { version = "1.53.1", features = ["rt-multi-thread", "macros", "fs", "sync"] } tracing = "0.1.44" uuid = { version = "1.26.0", features = ["v4", "serde"] } diff --git a/crates/real-app-tests/Cargo.toml b/crates/real-app-tests/Cargo.toml index af5eecd4..e1f1fa16 100644 --- a/crates/real-app-tests/Cargo.toml +++ b/crates/real-app-tests/Cargo.toml @@ -15,13 +15,13 @@ description = "Starts the real desktop app through tauri-driver (WebDriver) and # HTTP clients) must not see WebDriver's HTTP client. This package has no # library or binary target. [dev-dependencies] -app-logic = { version = "0.6.0", path = "../app-logic" } +app-logic = { version = "0.7.0", path = "../app-logic" } base64 = "0.23.1" -credentials-keyring = { version = "0.6.0", path = "../credentials-keyring" } -persistence-sqlite = { version = "0.6.0", path = "../persistence-sqlite", features = ["test-support"] } +credentials-keyring = { version = "0.7.0", path = "../credentials-keyring" } +persistence-sqlite = { version = "0.7.0", path = "../persistence-sqlite", features = ["test-support"] } secrecy = "0.10.3" serde_json = "1.0.151" -ssh-manager-core = { version = "0.6.0", path = "../core" } +ssh-manager-core = { version = "0.7.0", path = "../core" } tempfile = "3.27.0" # No `manager` feature: it downloads browser drivers at runtime. The driver # is `tauri-driver`, installed by the CI job. diff --git a/crates/ssh-transport/Cargo.toml b/crates/ssh-transport/Cargo.toml index 7d9c707a..a196df49 100644 --- a/crates/ssh-transport/Cargo.toml +++ b/crates/ssh-transport/Cargo.toml @@ -30,7 +30,7 @@ rand = { version = "0.10.2", optional = true } russh = "0.63.1" russh-sftp = "2.4.0" secrecy = "0.10.3" -ssh-manager-core = { version = "0.6.0", path = "../core" } +ssh-manager-core = { version = "0.7.0", path = "../core" } # `process`/`fs`: Spec 0032 (lokaler Pseudo-Server) — `LocalTransport` # ruft die Plattform-Shell als Kindprozess auf, `LocalFileSession` (Spec # 0020-Trait, lokal implementiert) greift direkt aufs Dateisystem zu, diff --git a/release-notes/0.7.0.json b/release-notes/0.7.0.json new file mode 100644 index 00000000..a483acc7 --- /dev/null +++ b/release-notes/0.7.0.json @@ -0,0 +1,37 @@ +{ + "version": "0.7.0", + "highlights": { + "en": [ + "Voice input in the AI chat with local speech recognition; audio stays on your computer.", + "The interface is now available in many more languages, from French and Spanish to Japanese and Hindi.", + "Automatic reconnect after a connection loss, with chat history and AI context kept.", + "Whole-folder upload in the file browser, plus copying remote files to the clipboard.", + "Commands now show their output live in the chat, and a hung command can be stopped.", + "Keyboard use and focus handling were improved across the whole interface." + ], + "de": [ + "Spracheingabe im KI-Chat mit lokaler Erkennung; das Audio bleibt auf deinem Rechner.", + "Die Oberfläche gibt es jetzt in vielen weiteren Sprachen, von Französisch und Spanisch bis Japanisch und Hindi.", + "Automatisches Neuverbinden nach einem Verbindungsabbruch, Chatverlauf und KI-Kontext bleiben erhalten.", + "Ganze Ordner im Dateibrowser hochladen und Remote-Dateien in die Zwischenablage kopieren.", + "Befehle zeigen ihre Ausgabe live im Chat, und ein hängender Befehl lässt sich stoppen.", + "Tastaturbedienung und Fokusführung wurden in der gesamten Oberfläche verbessert." + ], + "fr": [ + "Saisie vocale dans le chat IA avec reconnaissance locale ; l'audio reste sur votre ordinateur.", + "L'interface est désormais disponible dans de nombreuses autres langues, du français et de l'espagnol au japonais et à l'hindi.", + "Reconnexion automatique après une perte de connexion, avec conservation de l'historique du chat et du contexte IA.", + "Envoi de dossiers entiers dans l'explorateur de fichiers et copie de fichiers distants dans le presse-papiers.", + "Les commandes affichent leur sortie en direct dans le chat, et une commande bloquée peut être arrêtée.", + "Meilleure utilisation au clavier et meilleure gestion du focus dans toute l'interface." + ], + "es": [ + "Entrada de voz en el chat de IA con reconocimiento local; el audio permanece en tu equipo.", + "La interfaz está disponible en muchos más idiomas, del francés y el español al japonés y el hindi.", + "Reconexión automática tras perder la conexión, conservando el historial del chat y el contexto de la IA.", + "Subida de carpetas completas en el explorador de archivos y copia de archivos remotos al portapapeles.", + "Los comandos muestran su salida en directo en el chat, y un comando bloqueado puede detenerse.", + "Mejor uso con el teclado y mejor gestión del foco en toda la interfaz." + ] + } +}