Problem
LogSegment::try_new accepts LogSegmentFiles from internal callers. PR #3222 considered requiring latest_commit_file whenever ascending_commit_files is non-empty, but existing callers and legacy connector state may omit it.
Enforcing the invariant could reject previously accepted inputs even when the commit list is otherwise sufficient to construct the segment.
Goal
Determine whether every non-empty ascending_commit_files list can safely require latest_commit_file.
- If yes, enforce the invariant and update all callers and tests.
- If no, document when latest_commit_file may be absent and retain the optional behavior.
Problem
LogSegment::try_new accepts LogSegmentFiles from internal callers. PR #3222 considered requiring latest_commit_file whenever ascending_commit_files is non-empty, but existing callers and legacy connector state may omit it.
Enforcing the invariant could reject previously accepted inputs even when the commit list is otherwise sufficient to construct the segment.
Goal
Determine whether every non-empty ascending_commit_files list can safely require latest_commit_file.