- Date: 2026-02-11
- Project:
tdlib-poc - Group:
io.ndmik - Scope target:
login + getMe + sendTextMessage
- Lock POC goal:
login + getMe + sendTextMessage - Decide first runtime target (macOS/Linux)
- Prepare Telegram test account/chat
- Confirm success criteria for sign-off
- Build TDLib in local build workspace (completed)
- Verify native library exists:
- Source:
<tdlib-build>/build/libtdjson.1.8.61.dylib - Project copy:
native/libtdjson.1.8.61.dylib - Symlink for runtime loading:
native/libtdjson.dylib
- Source:
- Verify header exists:
<tdlib-build>/td/telegram/td_json_client.h
- Copy native library into project-local
native/folder - Record TDLib commit hash used for build:
6d509061574d684117f74133056aa43df89022fc(short:6d5090615)
- Initialize Spring Boot project skeleton
- Set
group = 'io.ndmik' - Set app name
tdlib-poc - Add main application class
- Add context-load test
- Add JNA dependency
- Add typed config properties for TDLib settings
- Create JNA interface for
td_json_client_*methods - Add request/response JSON mapper (Jackson)
- Implement
TdClientwrapper (send,receive,close) - Add startup/shutdown lifecycle hooks
- Implement TDLib init (
setTdlibParameters) - Handle auth states (
WaitTdlibParameters,WaitPhoneNumber,WaitCode,Ready) - Add phone number submission flow
- Add auth code submission flow
- Persist TDLib DB in project directory
- Implement
getMe - Implement
sendMessage(text) - Expose minimal API or CLI commands for POC actions
- Add structured logs for update handling
- Mask sensitive values in logs
- Add receive loop timeout/retry behavior
- Ensure graceful client shutdown
- Unit: native load test
- Unit: JSON mapping test
- Unit: auth state machine transition tests
- Integration smoke test with env vars:
TD_API_IDTD_API_HASHTD_PHONE
- Restart app and confirm session reuse from TDLib DB
- Document setup/run flow in README
- Add scripts (
run-local,run-with-native-lib,smoke-test) - Add troubleshooting notes
- Final sign-off checklist
- Run
CHAT_ID=<id> ./final-signoff.sh. - Confirm restart and TDLib session reuse.
- Validate final sign-off checklist.
- Commit/release preparation.