Skip to content

Сохранение, буфер обмена, исправления после ревью, CI на трёх системах, релиз 0.1.0 - #2

Merged
Feargin merged 12 commits into
mainfrom
fix/review
Oct 9, 2026
Merged

Feargin merged 12 commits into
mainfrom
fix/review

Conversation

@Feargin

@Feargin Feargin commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

Новое

  • Ctrl+Shift+C — рисунок картинкой в буфер обмена, вставить в чат созвона (через Rust, tauri-plugin-clipboard-manager).
  • Ctrl+S / Ctrl+O — PNG, который открывается любым просмотрщиком и содержит холст для правки (чанк iTXt, как у Excalidraw). Системные диалоги привязаны к окну холста — не прячутся под ним. Открываемый файл проверяется.
  • Кнопки на панели, памятка, 11 языков.

Исправления после ревью

  • Скриншоты больше не копятся в памяти: картинки без ссылок с холста и из истории освобождаются.
  • История отмены ограничена и по объёму (длинные штрихи кистью).
  • installId больше не меняется на каждом запуске, если его не было в настройках.
  • Занятый глобальный хоткей — холст открывается и подсказывает сменить комбинацию.
  • Смена режима посреди выделения скриншота отменяет выделение.

Качество

  • Тесты ядра на node:test (12) и Rust (10): Markdown, история, поворот, привязка стрелок, формат PNG и сцены, настройки.
  • CI: Rust (fmt, clippy, тесты) на Linux, Windows и macOS; интерфейс — проверки и тесты.
  • Рисование фигур вынесено в ui/shapes-draw.js — одно и то же на экран и в картинку.

Релиз 0.1.0

CHANGELOG.md с заметками к 0.1.0 — release.yml берёт описание черновика оттуда.

🤖 Generated with Claude Code

Feargin and others added 12 commits October 9, 2026 10:50
Картинки не удалялись никогда — даже после очистки и ухода из истории отмены. Программа живёт фоном неделями, а кадр 4K весит десятки мегабайт: перед новым скриншотом освобождаем картинки, на которые не ссылаются ни холст, ни история.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Если в файле не было installId, он генерировался заново на каждом запуске и не сохранялся — хаб считал бы каждый запуск новой установкой. Тесты на значения по умолчанию и миграцию хоткея.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Без хоткея холст не открыть ничем, кроме трея, а предупреждение было только в скрытых настройках. Теперь холст показывается и при автозапуске, внизу — подсказка сменить комбинацию.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Markdown, история отмены, геометрия с поворотом, привязка стрелок, освобождение картинок — без DOM, Tauri и зависимостей (npm test). Запускаются в CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ui/shapes-draw.js рисует в любой 2D-контекст: и на экран, и в картинку для экспорта. canvas.js отвечает только за экранный холст: кадры, выделение, лазер.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Кроме 200 шагов — до ~50 млн символов JSON: длинные штрихи кистью — тысячи точек, и 200 полных копий холста заняли бы сотни мегабайт в программе, что живёт фоном. Последний шаг отмены остаётся всегда.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Хоткей или двойной тап Alt посреди выделения оставляли замороженный кадр поверх экрана.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
У каждой системы свой платформенный код (опрос Alt, окно, диалоги) — он должен компилироваться до релиза, а не впервые на теге.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Ctrl+Shift+C — рисунок картинкой в буфер обмена, вставить в чат созвона (tauri-plugin-clipboard-manager)
- Ctrl+S — PNG, который открывается любым просмотрщиком и содержит холст (чанк iTXt, как у Excalidraw); Ctrl+O — открыть для правки, прежний холст — через Ctrl+Z
- системные диалоги (tauri-plugin-dialog) с окном холста как владельцем — не прячутся под ним; путь выбирает человек
- открываемый файл проверяется: только известные фигуры с корректными полями, размер до 256 МБ
- кнопки на панели, памятка, 11 языков, тесты формата PNG и сцены, документы

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Раздел версии из CHANGELOG.md становится описанием черновика релиза; без раздела релиз не выпускается. Заметки к 0.1.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Все точки лазера шли одним списком, и первая точка нового штриха соединялась с хвостом прошлого — на пару кадров линия через весь экран. Теперь начало штриха помечено, и между штрихами отрезка нет.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Вместо общего с Signal Lab: утечка одного ключа не затронет другое приложение. Приватная половина — только в секретах CI.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Feargin
Feargin merged commit 6b317f8 into main Oct 9, 2026
8 checks passed
@Feargin
Feargin deleted the fix/review branch October 9, 2026 08:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant