- Replace context-based state management with useSyncExternalStore
- Add immer for immutable state updates
- Implement selector-based API for better performance
- Add TgProvider to track current chat context
- Strong typing support with TgGlobalState interface
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add MessagePersistenceOptions interface with getPreviousMessageId/setPreviousMessageId callbacks
- Add optional MtcuteAdapterOptions parameter to constructor
- Make containerId stable using chatId and optional key instead of timestamp
- Implement message ID persistence logic to edit existing messages after bot restarts
- Handle MESSAGE_ID_INVALID errors gracefully by creating new messages
- Simplify initialization by removing unnecessary messageIdInitialized flag
feat: implement message persistence in persist-todo-bot example
- Create MessageIdStorage class for managing message IDs on disk
- Store message IDs in separate file (message-ids.json)
- Wire up message persistence callbacks in the adapter
- Update documentation to reflect message persistence feature
BREAKING CHANGE: sendReactMessage now strictly accepts chatId as number (not number | string)
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add comprehensive persistent todo bot example with MobX state management
- Implement custom storage layer with FileStorage and MemoryStorage
- Add TodoStore with full CRUD operations and persistence
- Create unified PersistentTodoBot component with single /start command
- Add comprehensive test suite with Vitest
BREAKING CHANGE: Simplify MtcuteAdapter API
- Remove botToken from config (now passed to start() method)
- Constructor accepts either TelegramClient or config object directly
- start() method now requires botToken parameter
- Update all examples to use the new cleaner API
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Install react-router-dom dependency
- Create react-router-experiment.tsx demonstrating React Router usage
- Implement navigation with Routes, nested routes, and navigation hooks
- Add example pages: Homepage, BlogsIndex, and BlogPage with params
- Use MemoryRouter for in-memory routing suitable for Telegram bots
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add README.md to packages/examples for docs workflow
- Fix CI workflow bun filter commands and add test env vars
- Add security permissions for SARIF upload in security workflow
- Document NPM_TOKEN requirement in release workflow
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Split project into three packages:
- @react-telegram/core: Core React reconciler
- @react-telegram/mtcute-adapter: MTCute Telegram adapter
- @react-telegram/examples: Example bots (private)
- Add <br /> tag support for line breaks
- Update all examples to use <br /> instead of {'\n'}
- Configure Bun workspaces for better package management
- Update imports to use package names instead of relative paths
- Update README with new installation instructions
- Remove test files (moved to separate testing setup)
BREAKING CHANGE: Package names changed from react-telegram to @react-telegram/*
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>