Captures the outcome of a build stage so the shared wait tail can be parameterized identically for both local and remote builds.
BuildResult(
self,
updated: dict = dict(),
progress_message: str = '',
timeout_seconds: int = 300,
poll_interval_seconds: int = 1,
no_result_message: str = 'Deployment updated',
on_poll: Callable[[str, str, Callable[[str], None]], None] | None = None,
on_interrupt: Callable[[str], None] | None = None,
show_build_logs_on_failure: bool = False
)