Commit 7df8b876b for llama.cpp

commit 7df8b876b91208a86a6d792e1140b3deec14535b
Author: 7konigsberg <77811205+7konigsberg@users.noreply.github.com>
Date:   Thu Oct 29 05:28:03 2026 -0400

    server : restore the spec checkpoint for drafts longer than n_rs_seq (#31350)

    Assisted-by: Claude

    Co-authored-by: Zeshawn Zahid <zzshawnn@gmail.com>

diff --git a/tools/server/server-context.cpp b/tools/server/server-context.cpp
index 2bd1ab9ec..9377e3c17 100644
--- a/tools/server/server-context.cpp
+++ b/tools/server/server-context.cpp
@@ -4958,9 +4958,10 @@ private:

                 const uint32_t n_rollback = slot.spec_draft.size() + 1 - accepted.size();

+                // the recurrent snapshots are only guaranteed for batches of up to n_rs_seq + 1 tokens, so a longer draft uses its checkpoint
                 const bool use_ckpt_tgt =
                     ctx_tgt_seq_rm_type == COMMON_CONTEXT_SEQ_RM_TYPE_FULL ||
-                    (ctx_tgt_seq_rm_type == COMMON_CONTEXT_SEQ_RM_TYPE_RS && n_rollback > llama_n_rs_seq(ctx_tgt));
+                    (ctx_tgt_seq_rm_type == COMMON_CONTEXT_SEQ_RM_TYPE_RS && n_draft > llama_n_rs_seq(ctx_tgt));

                 // check for partial draft acceptance
                 if (n_rollback > 0) {