Skip to content

EPIC 0.73.0: Agent Ready — apr serve as the one agent gateway (E-1/E-2, R-1..R-9) #5348

Open
4 of 6 issues completed

Description

@noahgift

owner: aprender-w5018 (set 2026-10-19 by aprender-triage-worker at the cop's word; picks up children only as batch constituents after its current timed task)

Tracker for the "Agent Ready" bar, moved from 0.72.0 to 0.73.0. The plan, with each row's measurable done-when and falsifier, is docs/specifications/EPIC-0.72-agent-ready-plan.md.

apr serve becomes the one gateway an agent harness can drive.

Exit bar

  • E-1: one conformance suite passes on every model × backend that the release certifies. Today no suite exists.
  • E-2: an agent harness completes a tool-calling task end to end, with 2 green receipts: Claude Code via /v1/messages, and an OpenAI-client harness. Each receipt carries the gateway's binary sha and the transcript hash.

Rows

Every R-row's done-when needs the R-6 suite, so R-6 and R-1 go first.
Not the same as #4000, which was renamed "Train What You Serve" and stays in 0.72.0.

Children tracked here (REDUCE-1022)

Activity

  1. added this to the 0.73.0 milestone on Oct 14, 2026
  2. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    R-3/4/5/7/8/9 state, read 2026-10-14 16:20Z on main @ 909b977. Lead: aprender-w4664. Staffed: R-1 wmainred, R-2 wprodmodels, R-6 cd.

    row children state gap (what the done-when still needs) owner
    R-3 seed #3760, #3786, #3754 all CLOSED 09-23 (0.69.1) the suite's seed case (same seed gives the same bytes, a different seed gives different bytes) on both shapes. No case exists. none
    R-4 telemetry #3718 (CLOSED 10-14), #3981 (CLOSED 09-25), #3598 row 1 (in E2 #3598, still OPEN) 2/3 closed exact usage cases on both shapes, plus the negative control (an off-by-one count goes RED). Tok/s excluding load has no serve case. none
    R-5 serve surface #3979, #3978, #3987 all CLOSED 09-24/25 streaming cases ([DONE] last, finish_reason set) on the .apr, GGUF and safetensors routers, plus the dropped-finish_reason negative control. The cd R-6 plan already names that mutant, so these cases can ride R-6's S1. none (could fold into R-6)
    R-7 MCP #2794 (a CLOSED PR, not an issue; the plan's "OPEN 0.70.0" is stale) apr mcp is registered in apr-cli-commands-v1.yaml no inspector run on record, and no malformed-schema RED control none
    R-8 sha pin none not built: no binary_sha256 anywhere in aprender-serve (only apr bench / test_llm_band) GET / or /health returns binary_sha256; a consumer refuses a mismatch (RED) and accepts a match none
    R-9 ratchet slice 3 #3997 (S3 Debt Ratchet, OPEN, milestone 0.71.0); #4003 is a CLOSED research-plan PR slice-3 gates not named in #3997 for 0.73 the slice-3 gate list and its measured baseline #3997's owner, to confirm for 0.73

    E-1 waits on R-6. E-2 (two agent-harness receipts) waits on R-1 and R-2, and has no owner.

    Rows that need an owner: R-3, R-4, R-5, R-7, R-8, and E-2. R-9 needs #3997's owner to take slice 3 for 0.73.

    Agent: aprender-w4664

  3. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    R-6 (agent conformance suite): #5349. S1 is on branch feat/r6-conformance-5349; the demo baseline is 5/12, and the 7 fails map to R-1..R-3 (see #5349).

  4. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    R-8 (gateway names its binary; consumers refuse a mismatch): branch feat/5348-r8-binary-sha256 @ 2258513, pushed, no PR yet.

    • Server: GET / on every apr serve router (realizar router, APR-CPU and safetensors Indexed routers) carries binary_sha256 = sha256 of the running executable; the wgpu router, which has no GET /, carries it on /health.
    • Consumer: LlmClient::require_binary_sha256(expected) reads GET / then /health and returns BinarySha256Mismatch on a wrong, null or absent sha; an empty pin never matches; case-insensitive hex.

    Evidence at 2258513:

    step result
    clippy aprender-serve / apr-cli / aprender-test-lib (llm) rc 0, 0 findings in changed files
    route_surface_2376 (serve) 11 passed, incl. root_index_carries_the_running_binary_sha256
    tests_route_index_3979 (cli) 5 passed; GET / sha checked against an independent sha256 of the test binary
    llm::client (test-lib) 35 passed, incl. the three r8_* tests
    mutant: serve GET / sha → None RED (assertion, rc 101)
    mutant: cli route index sha → None RED, 3 router tests (rc 101)
    mutant: consumer accepts any sha RED, 2 tests (rc 101)
    restore, fmt, aprender-contracts lib, deny advisories all rc 0

    Spec line: "RED wrong sha; right sha passes" — both directions are tested above. Unblocks the E-2 receipts' binary-sha field.

  5. added
    P1High priority
    epicEpic — multi-story umbrella
    on Oct 18, 2026
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

    P1High priorityepicEpic — multi-story umbrella

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions