Commit Graph

148 Commits

Author SHA1 Message Date
Mikhail Kilin
1b70b12799 docs: update CONTEXT.md with refactoring progress
- Document P3.9 (Message Grouping) completion
- Document P3.10 (Hotkey Mapping) completion
- Document P4.12 (Rustdoc) partial completion
- Priority 3: 100% complete! 🎉
- Overall refactoring: 12/17 tasks (71%)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 23:53:58 +03:00
Mikhail Kilin
6cc8d05e1c docs: add rustdoc comments for public API (P4.12 partial)
- Add comprehensive documentation for TdClient:
  * Struct-level docs with examples
  * Authentication methods (send_phone_number, send_code, send_password)
  * Chat methods (load_chats, load_folder_chats, leave_chat, get_profile_info)
  * All methods now have parameter docs, return types, and error descriptions

- Add comprehensive documentation for App:
  * Struct-level docs with state machine explanation
  * Constructor documentation
  * Examples for common usage patterns

- Progress: +60 doc comment lines (210 → 270)
- Update REFACTORING_ROADMAP.md (P4.12 partial completion)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 23:53:24 +03:00
Mikhail Kilin
1629c0fc6a refactor: add hotkey mapping configuration (P3.10)
- Add HotkeysConfig structure in src/config.rs
- Implement matches(key: KeyCode, action: &str) method
- Support for 10 configurable hotkeys:
  * Navigation: up, down, left, right (vim + russian + arrows)
  * Actions: reply, forward, delete, copy, react, profile
- Add support for char keys and special keys (Up, Down, Delete, etc)
- Add default values for all hotkeys (english + russian layouts)
- Write 9 unit tests (all passing)
- Add rustdoc documentation with examples
- Update REFACTORING_ROADMAP.md (Priority 3: 4/4 tasks, 100%)
- Update CONTEXT.md with implementation details
- Overall refactoring progress: 12/17 tasks (71%)

Priority 3 is now 100% complete! 🎉

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 23:51:10 +03:00
Mikhail Kilin
0ca3da54e7 refactor: extract message grouping logic (P3.9)
- Create src/message_grouping.rs module (255 lines)
- Add MessageGroup enum (DateSeparator, SenderHeader, Message)
- Add group_messages() function for date/sender grouping
- Write 5 unit tests (all passing)
- Add full rustdoc documentation with examples
- Update REFACTORING_ROADMAP.md (Priority 3: 3/4 tasks, 75%)
- Update CONTEXT.md with refactoring progress
- Overall refactoring progress: 11/17 tasks (65%)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 23:30:41 +03:00
Mikhail Kilin
c5896b7f14 tests 2026-01-31 23:02:53 +03:00
Mikhail Kilin
af3c36b9a1 docs: обновлён CONTEXT.md с описанием исправлений
Добавлено описание исправлений от 31 января (вечер):
- Исправление отображения новых сообщений
- Исправление редактирования
- Исправление reply
- Удаление отладочных логов
2026-01-31 18:38:47 +03:00
Mikhail Kilin
07c401e0f9 fix: исправлены баги с сообщениями, редактированием и reply
- Изменён порядок хранения сообщений (теперь от старых к новым)
- Исправлена логика выбора сообщений для редактирования
- Исправлена отправка reply (структура условий)
- Добавлено сохранение reply_info при отправке
- Удалены отладочные логи

Fixes: сообщения теперь отображаются корректно в UI
Fixes: редактирование работает без ошибки 'Message not found'
Fixes: reply показывает превью исходного сообщения
2026-01-31 18:29:02 +03:00
Mikhail Kilin
644e36597d fixes 2026-01-31 03:48:50 +03:00
Mikhail Kilin
1bf9b3d703 docs: celebrate Priority 2 completion! 🎉
Обновлена документация для отражения ПОЛНОГО ЗАВЕРШЕНИЯ Priority 2
(все 5 задач выполнены на 100%).

Изменения:
- CONTEXT.md: отмечен Priority 2 как завершённый (100%, 5/5)
- CONTEXT.md: добавлена секция P2.7 MessageBuilder
- CONTEXT.md: обновлён раздел "Последние обновления" с празднованием
- CONTEXT.md: добавлены итоги Priority 2
- CONTEXT.md: обновлён технический долг
- REFACTORING_ROADMAP.md: отмечен P2.7 как завершённый
- REFACTORING_ROADMAP.md: добавлена детальная секция MessageBuilder
- REFACTORING_ROADMAP.md: обновлён общий прогресс (47%, 8/17 задач)

🏆 ИТОГИ PRIORITY 2 (100%):
 P2.5 — Error enum
 P2.3 — Config validation
 P2.4 — Newtype для ID
 P2.6 — MessageInfo реструктуризация
 P2.7 — MessageBuilder pattern

Статус: Priority 2 ПОЛНОСТЬЮ ЗАВЕРШЁН! 🎊
Следующий этап: Priority 3 (UI компоненты, форматирование)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 02:03:59 +03:00
Mikhail Kilin
c42976c358 refactor: add MessageBuilder with fluent API (P2.7)
Добавлен MessageBuilder для удобного создания MessageInfo с помощью
fluent API вместо вызова конструктора с 14 параметрами.

Изменения:
- Создан MessageBuilder в tdlib/types.rs с fluent API
- Реализованы методы:
  * new(id) - создание builder с обязательным ID
  * sender_name(), text(), entities(), date(), edit_date()
  * outgoing(), incoming(), read(), unread(), edited()
  * editable(), deletable_for_self(), deletable_for_all()
  * reply_to(), forward_from(), reactions(), add_reaction()
  * build() - финальное создание MessageInfo
- Обновлён convert_message() для использования builder
- Добавлен экспорт MessageBuilder в tdlib/mod.rs
- Добавлены 6 unit тестов демонстрирующих fluent API

Преимущества:
- Более читабельный код создания сообщений
- Самодокументирующийся API
- Гибкость в установке опциональных полей
- Легче добавлять новые поля в будущем

Пример использования:
```rust
let message = MessageBuilder::new(MessageId::new(123))
    .sender_name("Alice")
    .text("Hello, world!")
    .outgoing()
    .read()
    .build();
```

Статус: Priority 2 ЗАВЕРШЁН 100% (5/5 задач)! 🎉
-  Error enum
-  Config validation
-  Newtype для ID
-  MessageInfo реструктуризация
-  MessageBuilder pattern

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 02:02:07 +03:00
Mikhail Kilin
5709fab9c3 docs: update documentation for P2.6 completion
Обновлена документация для отражения завершения задачи P2.6
(реструктуризация MessageInfo).

Изменения:
- CONTEXT.md: добавлен P2.6 в завершённые задачи Priority 2
- CONTEXT.md: обновлён статус Priority 2 (80%, 4/5 задач)
- CONTEXT.md: добавлена детальная секция "Последние обновления"
- CONTEXT.md: обновлён технический долг
- REFACTORING_ROADMAP.md: отмечен P2.6 как завершённый
- REFACTORING_ROADMAP.md: обновлён общий прогресс (41%, 7/17 задач)
- REFACTORING_ROADMAP.md: добавлено "Что сделано" для P2.6

Статус: Priority 2 - 80% (4/5 задач)
Осталась последняя задача: P2.7 MessageBuilder pattern

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 01:47:51 +03:00
Mikhail Kilin
43960332d9 refactor: restructure MessageInfo with logical field grouping (P2.6)
Сгруппированы 16 плоских полей MessageInfo в 4 логические структуры
для улучшения организации кода и maintainability.

Новые структуры:
- MessageMetadata: id, sender_name, date, edit_date
- MessageContent: text, entities
- MessageState: is_outgoing, is_read, can_be_edited, can_be_deleted_*
- MessageInteractions: reply_to, forward_from, reactions

Изменения:
- Добавлены 4 новые структуры в tdlib/types.rs
- Обновлена MessageInfo для использования новых структур
- Добавлен конструктор MessageInfo::new() для удобного создания
- Добавлены getter методы (id(), text(), sender_name() и др.) для удобного доступа
- Обновлены все места создания MessageInfo (convert_message)
- Обновлены все места использования (~200+ обращений):
  * ui/messages.rs: рендеринг сообщений
  * app/mod.rs: логика приложения
  * input/main_input.rs: обработка ввода и копирование
  * tdlib/client.rs: обработка updates
  * Все тестовые файлы (14 файлов)

Преимущества:
- Логическая группировка данных
- Проще понимать структуру сообщения
- Легче добавлять новые поля в будущем
- Улучшенная читаемость кода

Статус: Priority 2 теперь 80% (4/5 задач)
-  Error enum
-  Config validation
-  Newtype для ID
-  MessageInfo реструктуризация
-  MessageBuilder pattern

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 01:45:54 +03:00
Mikhail Kilin
7081a886ad refactor: implement newtype pattern for IDs (P2.4)
Добавлены типобезопасные обёртки ChatId, MessageId, UserId для предотвращения
смешивания разных типов идентификаторов на этапе компиляции.

Изменения:
- Создан src/types.rs с тремя newtype структурами
- Реализованы методы: new(), as_i64(), From<i64>, Display
- Добавлены traits: Hash, Eq, Serialize, Deserialize
- Обновлены 15+ модулей для использования новых типов:
  * tdlib: types.rs, chats.rs, messages.rs, users.rs, reactions.rs, client.rs
  * app: mod.rs, chat_state.rs
  * input: main_input.rs
  * tests: app_builder.rs, test_data.rs
- Исправлены 53 ошибки компиляции связанные с type conversions

Преимущества:
- Компилятор предотвращает смешивание разных типов ID
- Улучшенная читаемость кода (явные типы вместо i64)
- Самодокументирующиеся типы

Статус: Priority 2 теперь 60% (3/5 задач)
-  Error enum
-  Config validation
-  Newtype для ID
-  MessageInfo реструктуризация
-  MessageBuilder pattern

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-31 01:33:18 +03:00
Mikhail Kilin
38e73befc1 fixes 2026-01-31 01:00:43 +03:00
Mikhail Kilin
bba5cbd22d fixes 2026-01-30 23:55:01 +03:00
Mikhail Kilin
433233d766 commit 2026-01-30 17:26:21 +03:00
Mikhail Kilin
a4cf6bac72 fixes 2026-01-30 16:18:16 +03:00
Mikhail Kilin
4deb0fbe00 commit 2026-01-30 15:07:13 +03:00
c2ddb0a449 Merge pull request 'add_tests' (#11) from add_tests into main
Some checks failed
CI / Check (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
Reviewed-on: #11
2026-01-28 22:23:58 +00:00
Mikhail Kilin
126c7482af fixes
Some checks failed
CI / Check (pull_request) Has been cancelled
CI / Format (pull_request) Has been cancelled
CI / Clippy (pull_request) Has been cancelled
CI / Build (macos-latest) (pull_request) Has been cancelled
CI / Build (ubuntu-latest) (pull_request) Has been cancelled
CI / Build (windows-latest) (pull_request) Has been cancelled
2026-01-29 01:22:57 +03:00
Mikhail Kilin
68a2b7a982 fixes 2026-01-28 11:39:21 +03:00
72a8f3e6b1 Merge pull request 'yet-another-changes' (#10) from yet-another-changes into main
Some checks failed
CI / Check (push) Has been cancelled
CI / Format (push) Has been cancelled
CI / Clippy (push) Has been cancelled
CI / Build (macos-latest) (push) Has been cancelled
CI / Build (ubuntu-latest) (push) Has been cancelled
CI / Build (windows-latest) (push) Has been cancelled
Reviewed-on: #10
2026-01-27 22:43:12 +00:00
Mikhail Kilin
051c4a0265 fixes
Some checks failed
CI / Check (pull_request) Has been cancelled
CI / Format (pull_request) Has been cancelled
CI / Clippy (pull_request) Has been cancelled
CI / Build (macos-latest) (pull_request) Has been cancelled
CI / Build (ubuntu-latest) (pull_request) Has been cancelled
CI / Build (windows-latest) (pull_request) Has been cancelled
2026-01-28 01:29:03 +03:00
Mikhail Kilin
f291191577 fixes 2026-01-27 23:29:00 +03:00
Mikhail Kilin
356d2d3064 add account profile 2026-01-27 13:41:29 +03:00
Mikhail Kilin
ac684da820 add draft messages 2026-01-27 12:31:31 +03:00
61dc09fd50 Merge pull request 'yet-another-changes' (#9) from yet-another-changes into main
Reviewed-on: #9
2026-01-27 09:12:57 +00:00
Mikhail Kilin
dc76e01f3c add find messages 2026-01-27 12:09:05 +03:00
Mikhail Kilin
81dc5b9007 add pinned messages 2026-01-27 04:38:29 +03:00
Mikhail Kilin
4d5625f950 add typings in/out
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 03:59:49 +03:00
Mikhail Kilin
46720b3584 fixes 2026-01-25 21:21:07 +03:00
86e2b4c804 Merge pull request 'yet-another-changes' (#8) from yet-another-changes into main
Reviewed-on: #8
2026-01-24 22:49:27 +00:00
Mikhail Kilin
e4dabbe3ac fixes 2026-01-25 01:47:38 +03:00
Mikhail Kilin
fa749d24c5 fixes 2026-01-24 18:53:35 +03:00
6c297758a0 Merge pull request 'fixes' (#5) from yet-another-changes into main
Reviewed-on: #5
2026-01-23 23:23:49 +00:00
Mikhail Kilin
22c4e17377 fixes 2026-01-24 02:22:47 +03:00
65a73f35de Merge pull request 'yet-another-changes' (#4) from yet-another-changes into main
Reviewed-on: #4
2026-01-22 12:27:08 +00:00
Mikhail Kilin
c18f43664e fixes 2026-01-22 15:26:15 +03:00
Mikhail Kilin
1ef341d907 commit 2026-01-21 21:20:18 +03:00
0f379dc240 Merge pull request 'fixes' (#3) from yet-another-changes into main
Reviewed-on: #3
2026-01-20 23:59:28 +00:00
Mikhail Kilin
0a9ae8b448 fixes 2026-01-21 02:49:28 +03:00
b81eec55d6 Merge pull request 'fixes' (#2) from yet-another-changes into main
Reviewed-on: #2
2026-01-20 23:29:12 +00:00
Mikhail Kilin
32ab1df1fa fixes 2026-01-21 02:27:08 +03:00
652b101571 Merge pull request 'yet-another-changes' (#1) from yet-another-changes into main
Reviewed-on: #1
2026-01-20 11:55:25 +00:00
Mikhail Kilin
9912ac11bd fixes 2026-01-20 14:54:30 +03:00
Mikhail Kilin
699f50a59c fixes 2026-01-20 13:37:02 +03:00
Mikhail Kilin
b6d9291864 fixes 2026-01-20 01:00:12 +03:00
Mikhail Kilin
d701464fde init 2026-01-18 11:49:41 +03:00