Skip to content

Foundation: opt-in live Jev backend and response recorder #64

Closed

Description

@CompleteDotTech

Goal

Let a reader with their own key run any recipe against Jev, and capture those responses as recorded fixtures.

Scope

  • LiveBackend wrapping typesafe_sdk.TypeSafeClient.system_one, available only with the live extra, JEV_COOKBOOK_LIVE=1, and TYPESAFE_API_KEY.
  • The model is passed explicitly per run. The model string the API returns and the usage block are kept on the result.
  • A request budget guard: a maximum number of calls per run, enforced in code, with a clear error when exceeded.
  • A recorder that writes responses into a recipe's fixtures with provenance recorded, the returned model string, and the date.
  • A documented path for alternative backends through the System One Adapter (S08), needed by recipes 50 and 55. Decide whether that is an optional extra and write the decision down.
  • The key never appears in logs, exceptions, fixtures, or notebook output.

Acceptance criteria

  • Tests run with the HTTP layer mocked; CI makes no network call and needs no key
  • Missing key or missing opt-in gives a clear, actionable error
  • A test shows the budget guard stops a run
  • A test shows recorded fixtures replay through ReplayBackend byte for byte
  • The pull request states whether a real live call was made during development. If none was, it says so
  • Lint and tests pass in CI, or locally with the output pasted in the pull request if CI does not exist yet

Dependencies

References

Activity

  1. added
    type: foundationShared code, tooling, CI, or docs that recipes depend on
    status: blockedWaiting on the issues listed under Dependencies
    on Oct 6, 2026
  2. added
    status: in progressClaimed; a branch or pull request exists
    and removed
    status: blockedWaiting on the issues listed under Dependencies
    status: in progressClaimed; a branch or pull request exists
    on Oct 7, 2026
  3. CompleteDotTech commented on Oct 7, 2026

    @CompleteDotTech
    ContributorAuthor

    Closed by the orchestrator: implemented by pull request #93, merged as 5f75fdd with Opus approval of its final head 00dd72d (comment 6028927960). The pull request body lost its closing keyword during a description edit, so GitHub did not auto-close.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: p1Next up once unblockedsize: MAbout a daytype: foundationShared code, tooling, CI, or docs that recipes depend on

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions