wulf-pulse/lib
lorentz dd4cf68def feat: add project_phases entity sync with task project_id backfill
The Autotask Tasks bulk API does not return projectID in its response,
causing all tasks.project_id to be NULL. This fixes it by:

- Adding project_phases as a synced entity (Autotask endpoint: /Phases)
- Migration 059: project_phases table with project_id, phase_number,
  estimated_hours, start/due dates, parent_phase_id, is_scheduled
- EntityType.PROJECT_PHASES added to all sync maps and dependency graph
  (depends on PROJECTS, runs before TASKS in sync order)
- buildProjectPhasesFilter: Phases endpoint requires a filter (id > 0)
- mapProjectPhase: maps Autotask field names to DB columns
- Post-sync backfill in syncEntity: after each project_phases sync,
  UPDATE tasks SET project_id = pp.project_id FROM project_phases pp
  JOIN projects p WHERE tasks.phase_id = pp.id
  Only backfills where the project exists in our DB (FK constraint on
  tasks.project_id; archived projects are skipped gracefully)

Result: 2,455 of 4,966 tasks now have project_id populated. Tasks
belonging to archived/completed projects have phase_id resolvable via
project_phases even when project_id remains NULL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 13:57:33 -04:00
..
hooks Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00
services feat: add project_phases entity sync with task project_id backfill 2026-03-24 13:57:33 -04:00
types feat: add project_phases entity sync with task project_id backfill 2026-03-24 13:57:33 -04:00
utils feat: add project_phases entity sync with task project_id backfill 2026-03-24 13:57:33 -04:00
auth-client.ts feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
auth-utils.ts feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
auth.ts feat: add Autotask tags sync (tag groups, tags, ticket tag associations) 2026-03-20 09:22:40 -04:00
bootstrap.ts feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
permissions.ts feat: add authentication, user management, and admin features 2026-01-31 12:43:14 -05:00
utils.ts Restructure: rename to Pulse and move app to root 2025-10-28 23:08:54 -04:00