Symptom
Workstacean registers a push-notification callback via `tasks/pushNotificationConfig/set` — Quinn accepts (no error). But when the task reaches terminal state, Quinn never POSTs to the callback URL. Workstacean falls back to polling (30s cadence) to detect completion.
Compare with the researcher agent which now delivers via webhook:
```
Researcher ✅
[task-tracker] Callback for e414b4c8… → terminal state "completed" (via webhook)
Quinn ❌
[task-tracker] Task 513e2950… reached terminal state "completed" after 36s
```
What needs to happen
On terminal state transition (`completed`, `failed`, `canceled`), Quinn should:
- Check if a `pushNotificationConfig` exists for the task
- POST the full Task JSON to `config.url` with `Authorization: Bearer <config.token>`
- Fire-and-forget (retain the `asyncio.Task` handle per the hardening guide — weak ref GC trap)
- Retry once on transient failure (network blip); drop on 4xx
Reference: Build an A2A Agent — Push notifications and Task store hardening #2.
Impact
Without webhook delivery, every Quinn task uses 30s-cadence polling. Functional but adds 15s average latency to result delivery and burns polling round-trips that push eliminates.
Symptom
Workstacean registers a push-notification callback via `tasks/pushNotificationConfig/set` — Quinn accepts (no error). But when the task reaches terminal state, Quinn never POSTs to the callback URL. Workstacean falls back to polling (30s cadence) to detect completion.
Compare with the researcher agent which now delivers via webhook:
```
Researcher ✅
[task-tracker] Callback for e414b4c8… → terminal state "completed" (via webhook)
Quinn ❌
[task-tracker] Task 513e2950… reached terminal state "completed" after 36s
```
What needs to happen
On terminal state transition (`completed`, `failed`, `canceled`), Quinn should:
Reference: Build an A2A Agent — Push notifications and Task store hardening #2.
Impact
Without webhook delivery, every Quinn task uses 30s-cadence polling. Functional but adds 15s average latency to result delivery and burns polling round-trips that push eliminates.