fix(analysis): emit Cancelled event + assert lock-release after cancel (0.87.13)
Two 0.87.4 follow-ups: 1. Cron tick: existing shutdown-on-cancel test now also asserts the advisory lock is re-acquirable after cancel-during-tick. Without this, a refactor moving `pg_advisory_unlock` under the cancel arm would ship green and break multi-replica safety. 2. Analysis worker: cancel-mid-dispatch left the dashboard banner stuck on the cancelled page until a later page overwrote it. Add a `Cancelled` AnalysisEvent variant, publish on the cancel-release branch, wire the analysis and admin overview dashboards to clear on it. Per-page chip rolls back from `analyzing` to `queued`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -857,7 +857,12 @@ export type AnalysisEvent =
|
||||
chapter_id: string | null;
|
||||
}
|
||||
| {
|
||||
kind: 'started' | 'completed' | 'failed';
|
||||
// `cancelled` fires when the worker drops an in-flight dispatch
|
||||
// on daemon shutdown / settings-toggle-off. The lease was
|
||||
// released, not failed — the page returns to pending. The
|
||||
// dashboard banner clears on this so it doesn't stick on the
|
||||
// cancelled page until another `started` overwrites it.
|
||||
kind: 'started' | 'completed' | 'failed' | 'cancelled';
|
||||
page_id: string;
|
||||
manga_id: string;
|
||||
manga_title: string;
|
||||
|
||||
Reference in New Issue
Block a user