mirror of
https://github.com/zapstore/zapstore.git
synced 2026-10-05 12:38:24 +00:00
1.5 KiB
1.5 KiB
WORK-016 — Report Publish Confirmation
Feature: FEAT-009-nip56-app-reporting.md Status: Complete
Tasks
- 1. Treat a NIP-56 report as published only after an AppCatalog relay
explicitly accepts its event.
- Files:
lib/widgets/app_report_sheet.dart
- Files:
- 2. Preserve the report and expose a retryable failure when no relay
accepts the event, including timeouts and rejections.
- Files:
lib/widgets/app_report_sheet.dart
- Files:
- 3. Cover accepted, rejected, and absent relay responses.
- Files:
test/widgets/app_report_sheet_test.dart
- Files:
- 4. Display the relay's rejection reason when it responds negatively.
- Files:
lib/widgets/app_report_sheet.dart,test/widgets/app_report_sheet_test.dart
- Files:
Test Coverage
| Scenario | Expected | Status |
|---|---|---|
| Relay accepts report event | Success is reported | [x] |
| Relay rejects or times out | Form stays open with retryable error | [x] |
| No response for report event | Form stays open with retryable error | [x] |
| Relay rejection includes a reason | User sees the relay's reason | [x] |
| Relay rejection has no reason | User sees that the relay omitted it | [x] |
Decisions
2026-07-10 — Explicit relay acceptance
Decision: The report flow waits for purplebase's publish response and considers publishing successful only when at least one AppCatalog relay accepts the signed report event.
Rationale: A timeout or relay rejection is a completed transport response, not a successful submission.