Skip to content

Roll windowed_counter budget windows inside a generation #1526

Open

Description

@doublewhy

Problem

The SEM-223 catalog on dev a4357f9a requires windowed_counter accounting for action_rate and allows it for inference_tokens and image_generations (raes_contracts/contracts/participant_resource_types.py:51-56), and a windowed budget must declare window_ticks (raes/participant_resource_budgets.py:71, :93-95). #1466 implements budget enforcement, but the reference runtime never rolls a window within a generation. The new SEM-223 section of specs/formal/participant-semantics/autonomous-execution.md at #1466 head 11fcd577 records this as a nonclaim (:232-233):

The reference runtime does not roll a windowed_counter window inside a generation. Its use resets only at the dimension's declared reset boundary.

No module under raes_runtime at 11fcd577 names windowed_counter or window_ticks. A windowed dimension therefore accumulates like a cumulative counter until its reset boundary: an action-rate budget of N actions per window refuses the next action in the same generation even after the window has passed.

Scope

  • Define window rollover for windowed_counter dimensions in the SEM-223 section: the window clock, when use expires, and how rollover interacts with reservations that are not yet settled and with generation fencing.
  • Implement rollover in the reference runtime's reservation and accounting path, and record it in the budget evidence that conformance reads.

Done when

  • A windowed_counter dimension admits a new attempt once the window that held the earlier use has passed, within one generation.
  • Tests cover an attempt refused inside the window, the same attempt admitted after rollover, and a reservation that is open across a rollover.
  • The SEM-223 section defines rollover and no longer lists it as a nonclaim.

Related

Activity

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions