feat: upload alarm snapshots to webhook payloads
This commit is contained in:
@@ -1,31 +1,30 @@
|
||||
# Task Todo
|
||||
|
||||
- [x] Review the current project instructions and check for task-relevant lessons.
|
||||
- [x] Check repository status before starting retry-queue work.
|
||||
- [x] Re-verify that `main` includes webhook case management before layering retries on top.
|
||||
- [x] Inspect the current webhook delivery path, config surface, runtime integration point, and manage API hooks.
|
||||
- [x] Write the detailed retry-queue implementation plan to `docs/superpowers/plans/2026-06-09-webhook-retry-queue.md`.
|
||||
- [x] Execute webhook retry queue backend TDD cycle.
|
||||
- [x] Execute runtime/manage API retry integration TDD cycle.
|
||||
- [x] Update documentation/config formatting for retry queue settings and sinks.
|
||||
- [x] Inspect the OTA upload API document and current runtime/webhook capture path.
|
||||
- [x] Create an isolated worktree for alarm snapshot upload implementation.
|
||||
- [x] Write the detailed implementation plan to `docs/superpowers/plans/2026-06-09-alarm-snapshot-upload.md`.
|
||||
- [x] Execute alarm snapshot upload client TDD cycle.
|
||||
- [x] Execute runtime and webhook payload integration TDD cycle.
|
||||
- [x] Update config surface, docs, and verification notes.
|
||||
- [x] Run targeted verification and final full verification.
|
||||
|
||||
## Notes
|
||||
|
||||
- `tasks/lessons.md` is absent in this repository/worktree, so there were no prior session lessons to review.
|
||||
- Main branch merge result is available locally at `81f1709`; retry-queue work continues from branch `feat/webhook-retry-queue`.
|
||||
- Upload API reference: `/Users/glo/code/go/wenma/ai_manager/zd-ai-manager/chunk-upload-oss-service/UPLOAD_API.md`
|
||||
- User-provided upload target: `https://ota.zhengxinshipin.com`
|
||||
- User-provided token secret: `change-me-in-production`
|
||||
|
||||
## Review
|
||||
|
||||
- Plan saved to `docs/superpowers/plans/2026-06-09-webhook-retry-queue.md`.
|
||||
- Chosen scope keeps the first outbound webhook attempt synchronous, then persists failures into a JSONL-backed retry queue with bounded backoff and dead-letter cutoff.
|
||||
- Retry queue observability and manual compensation will be exposed through the management API rather than the frontend in this phase.
|
||||
- Implemented queue-aware webhook delivery in `src/cold_display_guard/webhooks.py`, runtime retry draining in `src/cold_display_guard/main.py`, manage API retry list/drain endpoints in `src/cold_display_guard/manage_api.py`, and config/doc updates in `src/cold_display_guard/config.py`, `config/example.toml`, and `README_zh.md`.
|
||||
- Plan saved to `docs/superpowers/plans/2026-06-09-alarm-snapshot-upload.md`.
|
||||
- Chosen implementation keeps snapshot upload entirely outside `BatchEngine` and enriches webhook payloads from the runtime side using the already captured frame.
|
||||
- Implemented `src/cold_display_guard/alarm_snapshots.py` for JPEG encoding plus OTA chunk-upload orchestration, runtime integration in `src/cold_display_guard/main.py`, webhook payload enrichment in `src/cold_display_guard/webhooks.py`, config exposure/secret stripping in `src/cold_display_guard/config.py` and `src/cold_display_guard/manage_api.py`, and config/doc updates in `config/example.toml` and `README_zh.md`.
|
||||
- Targeted verification passed:
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest tests/test_webhooks.py -v`
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest tests/test_alarm_snapshots.py -v`
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest tests/test_main.py -v`
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest tests/test_manage_api.py -v`
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest tests/test_config.py -v`
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest tests/test_webhooks.py tests/test_config.py tests/test_manage_api.py -v`
|
||||
- Final verification passed:
|
||||
- `eval "$(/opt/homebrew/bin/pyenv init -)" && PYTHONPATH=src python -m unittest discover -s tests -v`
|
||||
- `cd web && pnpm install --frozen-lockfile && pnpm build`
|
||||
|
||||
Reference in New Issue
Block a user