Background import worker and job queue #25

Open
opened 2026-10-10 22:21:49 +00:00 by keith · 1 comment
Owner

Context

Implement this MVP work package under M3 - Import & Indexing Engine, following the managed-storage decision in #1.

Acceptance criteria

  • Use PostgreSQL-backed jobs and a separate PHP worker; imports outlive HTTP requests.
  • Claim jobs atomically, serialize filesystem mutations, and detect stale jobs with recoverable states.
  • Restart without duplicate copies or catalog records; test graceful shutdown and idempotent retry.
  • Create models, folders and associated records from confirmed grouping manifest; integrate the catalog repository service when available.

Blocked by: #24, #11, #28, #28

Sequence note: implement #28 before the worker despite its M4 grouping; importer and web routes share repository services.

Sequence note: implement #28 before the worker despite its M4 grouping; importer and web routes share repository services.

## Context Implement this MVP work package under M3 - Import & Indexing Engine, following the managed-storage decision in #1. ## Acceptance criteria - [ ] Use PostgreSQL-backed jobs and a separate PHP worker; imports outlive HTTP requests. - [ ] Claim jobs atomically, serialize filesystem mutations, and detect stale jobs with recoverable states. - [ ] Restart without duplicate copies or catalog records; test graceful shutdown and idempotent retry. - [ ] Create models, folders and associated records from confirmed grouping manifest; integrate the catalog repository service when available. Blocked by: #24, #11, #28, #28 Sequence note: implement #28 before the worker despite its M4 grouping; importer and web routes share repository services. Sequence note: implement #28 before the worker despite its M4 grouping; importer and web routes share repository services.
keith added this to the M3 - Import & Indexing Engine milestone 2026-10-10 22:21:49 +00:00
keith added the area:indexertype:featurepriority:medium labels 2026-10-10 22:21:49 +00:00
Author
Owner

Acceptance reconciliation at c1ef2ee: keeping open. Queue, worker and locking exist. Confirmed manifest and collision/DB-failure replay remain incomplete. Existing success-path tests do not establish full crash recovery. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.

Acceptance reconciliation at c1ef2ee: keeping open. Queue, worker and locking exist. Confirmed manifest and collision/DB-failure replay remain incomplete. Existing success-path tests do not establish full crash recovery. This is a source/test review, not a newly executed crash or restore experiment. Fresh Windows suite: 291 tests, 1801 assertions, 22 skips; lint passes. PostgreSQL fixture success does not waive these feature criteria.
Sign in to join this conversation.