Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
38b8516
feat(payments): give LivePaymentSession an interval payment loop
rickstaa Jul 30, 2026
dcad2df
feat(live-runner): fund metered single-shot calls while they run
rickstaa Jul 30, 2026
7cfcef7
feat(live-runner): keep reserved sessions funded for as long as they …
rickstaa Jul 30, 2026
6cb4771
refactor(payments): resolve the payment cadence per call
rickstaa Jul 30, 2026
97af81c
docs(payments): note where the payment cadence should come from
rickstaa Jul 30, 2026
aa1d8fd
feat(live-runner): take the session payment endpoint from control_url
rickstaa Jul 30, 2026
478282f
refactor(payments): drop the redundant CancelledError re-raise
rickstaa Jul 30, 2026
9505698
docs(payments): explain why run_payments exists and what it returns
rickstaa Jul 30, 2026
1fca24e
docs(payments): say why the loop stops on any 4xx
rickstaa Jul 30, 2026
8509b62
docs(payments): trim the cadence comment to one line
rickstaa Jul 30, 2026
e100211
refactor(payments): tighten the payment path after review
rickstaa Jul 30, 2026
15faf50
docs(payments): say what bounds the payment cadence
rickstaa Jul 30, 2026
9d13a2f
fix(live-runner): align reservation and payment lifecycles
j0sh Jul 31, 2026
95845f0
refactor(live-runner): require session control URLs
j0sh Jul 31, 2026
88aebc7
refactor(live-runner): own server payment challenges
j0sh Aug 1, 2026
e21f31f
refactor(live-runner): centralize session close
j0sh Aug 1, 2026
cd205df
refactor(http): mark empty post helper internal
j0sh Aug 1, 2026
c49e5c6
docs(live-runner): trim session comments
j0sh Aug 1, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/livepeer_gateway/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
)
from .discovery import discover_orchestrators, discover_runners
from .orch_info import get_orch_info
from .remote_signer import LivePaymentSession, PaymentSession
from .remote_signer import LivePaymentChallenge, LivePaymentSession, PaymentSession
from .scope import start_scope
from .selection import (
RunnerSelectionCursor,
Expand Down Expand Up @@ -107,6 +107,7 @@
"LiveRunnerSession",
"LiveRunnerSessionCallback",
"LiveRunnerSessionEvent",
"LivePaymentChallenge",
"LivePaymentSession",
"LiveRunnerProxy",
"LivepeerGatewayError",
Expand Down
21 changes: 18 additions & 3 deletions src/livepeer_gateway/http.py
Original file line number Diff line number Diff line change
Expand Up @@ -305,9 +305,9 @@ async def _request_body(
async def request_json(
url: str,
*,
method: Optional[str] = None,
payload: Optional[dict[str, Any]] = None,
headers: Optional[dict[str, str]] = None,
method: str | None = None,
payload: dict[str, Any] | None = None,
headers: dict[str, str] | None = None,
timeout: float = 5.0,
) -> Any:
"""
Expand Down Expand Up @@ -403,6 +403,21 @@ async def get_json(
return await request_json(url, headers=headers, timeout=timeout)


async def _post_empty(
url: str,
*,
headers: dict[str, str] | None = None,
timeout: float = 5.0,
) -> None:
"""POST an empty body to ``url`` and discard the response."""
await _request_body(
url,
method="POST",
headers=headers,
timeout=timeout,
)


def _parse_http_url(url: str, *, context: str = "URL") -> ParseResult:
"""
Normalize a URL for HTTP(S) endpoints.
Expand Down
Loading