Skip to content

SafeTensors serve route drops ignore_eos and seed: apr-cli's ChatCompletionRequest has no such fields #2853

Closed as not planned

Description

@noahgift

Found by the cross-vendor review arm (agy, gemini-3.1-pro-high) on PR #2851's third commit, re-verified by reading the code.

crates/apr-cli/src/commands/serve/types.rs ChatCompletionRequest carries no ignore_eos (nor seed), and parse_chat_completion_request in serve/chat.rs deserialises straight into it, so both are silently dropped on the routes that use it: safetensors_chat_completions_handler and the Ollama handlers mounted in serve/safetensors.rs (apr serve run model.safetensors). A client asking for ignore_eos: true there gets a generation that stops at EOS with no refusal — the silent-drop shape PERF-039 closed on the GGUF/realizar route (aprender-serve/src/api/cuda_chat_backend.rs fails closed with reject_unsupported_ignore_eos, and stop_tokens_unless_ignore_eos empties the stop set).

Not on the measured path: the PP-26 witness and the band producer drive the GGUF route, where ignore_eos is honoured (every slot in evidence/perf041/lambda/witness.json completes exactly n_predict tokens). #2851 touches serve/types.rs only to name DEFAULT_CONTEXT_LENGTH (PP-14); the request type's fields are as they were on origin/main, and chat.rs / safetensors.rs are untouched. Fix: add the two fields to the type and either honour them in the SafeTensors decode loop or refuse them the way PERF-039 does.

🤖 Generated with Claude Code

Activity

  1. added this to the 0.69.0 milestone on Sep 10, 2026
  2. added
    bugSomething isn't working
    P0Critical priority
    on Sep 11, 2026
  3. modified the milestones: 0.69.0, 0.72.0, 0.68.3, 0.70.0 on Sep 17, 2026
  4. noahgift commented on Sep 23, 2026

    @noahgift
    MemberAuthor

    milestone → 0.72.0 per docs/roadmaps/milestone-triage-2026-09-23.md (#4024), operator approval 2026-09-23 (relayed by aprender-cf). Reason: serve/agent/telemetry surface: Agent Ready (#4000)

  5. noahgift commented on Sep 25, 2026

    @noahgift
    MemberAuthor

    Parked by APR-EPIC-001: over S3 budget (rank 6/142). Reopen = pull. Applied by aprender-d1 under a 3-lane quorum receipt (handoff/balance-quorum-rev4.json).

  6. removed this from the 0.72.0 milestone on Sep 25, 2026
  7. 3 remaining items

  8. noahgift commented on Sep 25, 2026

    @noahgift
    MemberAuthor

    Reopened by APR-EPIC-001 retro quorum: the agy lane voted keep-open (P0 on its train), and a close needs both counted lanes (cop ruling 2026-09-25, handoff/park-retro-quorum.json). Unlinked; milestone restored to its train. Applied by aprender-d1.

  9. modified the milestones: backlog, 0.72.0 on Sep 25, 2026
  10. removed
    parkedClosed over epic budget (APR-EPIC-001 rule 5). Reopen = pull.
    on Sep 25, 2026
  11. added
    P2Medium priority
    and removed
    P0Critical priority
    on Oct 14, 2026
  12. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    P0 to P2 (2026-10-14 P0 triage): P0 now means it blocks the next release or carries the operator's own words on it; this issue does neither, and its milestone is 0.72.0.

  13. noahgift commented on Oct 14, 2026

    @noahgift
    MemberAuthor

    Folded into #2582 as a checklist row (TRIAGE-100, 2026-10-14): the open-ticket cap is 100, so this ticket is now tracked on that master and closed as not planned. Nothing is lost: reopen it when its work resumes, and an open PR for it reopens it. Pushed branch: fix/2853-safetensors-ignore-eos, fix/2853-safetensors-ignore-eos-seed.

    Agent: aprender-clerk

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

    P2Medium prioritybugSomething isn't workingowner:aprender-a7owner sessionsize:MK̂ 3-4 h

    Type

    No type

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions