feat: add driving flag to relationship query responses

Add computed driving flag to all relationship queries (list_relationships,
get_predecessors, get_successors). A relationship is marked as driving when
the predecessor's early end date plus lag determines the successor's early
start date.

Changes:
- Add early_start_date and early_end_date columns to activities schema
- Parse early dates from TASK table in XER files
- Implement is_driving_relationship() helper with 24hr tolerance for
  calendar gaps
- Update all relationship queries to compute and return driving flag
- Add contract and unit tests for driving flag functionality
- Update spec, contracts, and documentation
This commit is contained in:
2026-01-07 07:21:58 -05:00
parent 2255b65ef6
commit af8cdc1d31
17 changed files with 654 additions and 324 deletions

View File

@@ -336,7 +336,11 @@
"type": "string",
"enum": ["FS", "SS", "FF", "SF"]
},
"lag_hr_cnt": { "type": "number" }
"lag_hr_cnt": { "type": "number" },
"driving": {
"type": "boolean",
"description": "True if this relationship drives the successor's early start date"
}
}
},
"RelatedActivity": {
@@ -349,7 +353,11 @@
"type": "string",
"enum": ["FS", "SS", "FF", "SF"]
},
"lag_hr_cnt": { "type": "number" }
"lag_hr_cnt": { "type": "number" },
"driving": {
"type": "boolean",
"description": "True if this relationship drives the successor's early start date"
}
}
},
"Pagination": {