Some checks failed
CI / lint-and-test (push) Failing after 23s
- Added *.egg-info/ to .gitignore to prevent egg metadata from being tracked. - Updated virtual environment instructions in CONTRIBUTING.md and README.md to use .venv for consistency. - Revised mkdocs.yml to include a placeholder for the repository URL when publishing. - Cleaned up pyproject.toml by removing unnecessary pylint configuration. - Enhanced import-format.md and runbook.md documentation for clarity on user roles and health check endpoints.
40 lines
2.1 KiB
Markdown
40 lines
2.1 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
|
|
- **Group duty pin**: when the pinned duty message is updated on schedule, the bot re-pins it so group members get a Telegram notification. Configurable via `DUTY_PIN_NOTIFY` (default: enabled); set to `0` or `false` to only edit the message without re-pinning.
|
|
|
|
### Changed
|
|
|
|
- **Group duty pin refresh**: schedule updates now send a new message, unpin the previous one and pin the new one (instead of editing the existing message and re-pinning). Ensures the pinned message is always a fresh post; on pin/unpin errors the stored message_id is not updated so the next run retries.
|
|
|
|
## [0.1.0] - 2025-02-20
|
|
|
|
### Added
|
|
|
|
- Telegram bot with python-telegram-bot v22 (polling, Application API).
|
|
- Commands: `/start`, `/help`, `/set_phone`, `/import_duty_schedule`, `/pin_duty`.
|
|
- Miniapp (calendar and duty list) served at `/app` with Russian and English (i18n).
|
|
- FastAPI HTTP API: `GET /api/duties`, `GET /api/calendar-events`, `GET /api/calendar/ical/{token}.ics`.
|
|
- Telegram initData validation for Miniapp; optional phone-based access (`ALLOWED_PHONES` / `ADMIN_PHONES`).
|
|
- SQLite (default) / configurable DB; SQLAlchemy models, repository, Alembic migrations.
|
|
- Duty-schedule import: two-step flow (handover time + JSON file); parser for meta.start_date and schedule[].duty.
|
|
- Group duty pin: pin current duty message in group with time/timezone from `DUTY_DISPLAY_TZ`.
|
|
- External calendar ICS URL support; personal ICS calendar by secret token.
|
|
- Configuration via environment variables; full reference in docs/configuration.md.
|
|
- Docker support (dev and prod compose); entrypoint runs migrations then app.
|
|
|
|
### Security
|
|
|
|
- Input validation and initData hash verification for Miniapp access.
|
|
- Optional CORS and init_data_max_age; use env for secrets.
|
|
|
|
[0.1.0]: https://github.com/your-org/duty-teller/releases/tag/v0.1.0 <!-- placeholder: set to your repo URL when publishing -->
|