Repository navigation
Помощник и «Из iCloud»: пароли не уходят модели, удалить — только разрешённое правилами; сбой части файлов не стирает восстановленное - #17
Merged
Conversation
…решённое правилами, согласие на каждый вариант; сбой части файлов не стирает восстановленное Помощник (Mac и Windows): - Начало текстовых файлов уходит модели, только если человек это включил (по умолчанию — нет). Таблицы (.csv, .tsv: выгрузки паролей из браузеров) не читаются вовсе. Файл, в начале которого видны пароль или PIN (по-русски и по-английски), ключ, токен (GitHub, Slack, OpenAI, Anthropic, Stripe, AWS, Google, Telegram-бот, JWT), пароль в адресе, пара «почта:пароль», номер карты, длинная строка вида ключа или фраза восстановления кошелька, не показывается целиком, а не по кусочку. Домашняя папка в тексте заменяется на «~» и на Windows. - «В Корзину» — только то, что разрешают правила «Разобрать»: места, которые программы создают заново, и установщики старше недели (AssistantTrash, тот же CleanupPlanner). Остальное — только в сейф, что бы ни ответила модель; модель видит пометку "trash":"allowed". Перед удалением правила проверяются ещё раз по свежим сведениям с диска. Отправленное в Корзину возвращается кнопкой «Вернуть» (тот же механизм, что в «Разобрать»). - Согласие — отдельно на каждый вариант, с понятным «куда уходят сведения» (Anthropic, Ollama на этом компьютере, сервер OffLoadAI вместе с ключом Pro), и отзывается одной кнопкой. Ключ согласия новый: прежнее давалось на описание, по которому начало файлов уходило всегда. - Windows: разбор ответа модели не падает на полях не той формы; любая ошибка вопроса — сообщение, а не страница, навсегда «в работе»; RecycleException при отправке в Корзину ловится. Из iCloud (Mac и Windows): - restic restore при ошибке с отдельными файлами выходит с кодом 1, а программа ждала 3 и стирала всё восстановленное. Теперь ошибки с файлами разбираются из stderr (JSON restic 0.17+ и текст 0.16), такие файлы — restic оставляет их полного размера с нулями на месте недочитанного — убираются (только обычные файлы внутри папки восстановления), остальное остаётся, и сказано, чего нет и что сверки не было. Сообщение об ошибке — без сырого JSON. - Mac: закрытие раздела во время просмотра или поиска больше не оставляет «Открыть» крутиться. Проверки: секреты в начале файлов (образцы выше и обычные тексты без ложных тревог), правила удаления, пометка для модели, разбор обоих форматов ошибок restic, удаление испорченного без выхода за папку; с restic — частичное восстановление из хранилища с испорченным куском. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019g9zXsGLHyDxJzGtUAQUVY
…ый правила разрешают удалить Эти проверки смотрят, откуда берётся ответ (result без structured_output, текстовые блоки Messages API), и узнают его по совету «trash». После нового правила «удалять — только то, что разрешают правила «Разобрать»» такой совет для файла без пометки переводится в сейф — поэтому у файла в этих проверках теперь пометка canTrash. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019g9zXsGLHyDxJzGtUAQUVY
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.
Пункты 1–4 из проверки новых частей («Что ещё можно улучшить?»). Сделано для Mac и Windows.
Помощник
Пароли не уходят модели. Раньше в начале небольших текстовых файлов модели уходило то, что экран согласия обещал не читать никогда: выгрузка паролей из Safari и Chrome (
.csv), заметка «Пароль от почты: …», токен Telegram-бота, ключ Google, JWT. Вырезались только английскиеpassword:и несколько видов ключей..csv,.tsv) не читаются вовсе.~и на Windows. Раньше там оставалосьC:\Users\<имя>.Удалить можно только то, что разрешают правила «Разобрать». Раньше кнопку «В Корзину» получал любой личный файл, который модель назвала мусором. Модель при этом могла поддаться имени или тексту файла.
AssistantTrashработает на том жеCleanupPlanner, что и «Разобрать». В Корзину можно отправить только места, которые программы создают заново, и установщики старше недели. Остальное — только в сейф."trash":"allowed". Если она всё же советует удалить что-то другое, совет исправляется на «в сейф», и на экране написано почему.CleanupModel.trashиputBackстали внутренними, а не закрытыми.Согласие дано на конкретный вариант и отзывается.
assistant.consent.<вариант>). Прежнее общее согласие давалось на описание, по которому начало файлов уходило всегда, поэтому экран согласия покажется один раз заново.Windows.
idчислом.RecycleExceptionпри отправке в Корзину теперь перехватывается.Документация.
Из iCloud
При ошибке с отдельными файлами
restic restoreвыходит с кодом 1 (я проверил по исходникам restic и на настоящем restic). Программа ждала код 3, который уrestoreне бывает, и стирала всё восстановленное; повторная попытка кончалась тем же.ignoring error for …(0.16)...из вывода не выходит за папку, папки с ошибкой не трогаются.--verifyне делает.Проверка
Mac. Проверка типов на Linux по заглушкам AppKit, SwiftUI и Security прошла без ошибок. Проверены правленые файлы ядра, приложения и проверок.
Windows. Всё решение собирается на Linux (
dotnet build -p:EnableWindowsTargeting=true): 0 ошибок, 0 предупреждений.Распознавание секретов. Прогнано в обоих движках регулярных выражений: ICU, как на macOS, и .NET. Из 21 образца секретов не пропущен ни один, 15 обычных текстов не приняты за секрет.
Частичное восстановление. Код ядра Mac прогнан на Linux с настоящим restic 0.16.4:
Из трёх файлов остался целый, два испорченных убраны, сказано, что сверки не было. Разбор вывода для Windows проверен на том же stderr.
Новые проверки.
trashдля модели.Не проверено. Живьём на macOS и Windows интерфейс не смотрел.
Не менял
🤖 Generated with Claude Code
https://claude.ai/code/session_019g9zXsGLHyDxJzGtUAQUVY
Generated by Claude Code