Skip to content

Carry forward safe Responses replay diagnostics on current SDK #446

Closed

Description

@cloga

Scope

Carry forward the independently useful diagnostics and SDK-level regression coverage from the closed/superseded draft PR #218, rebuilt against the repository's current pinned pi-ai / DSH baseline. This issue is a follow-up request, not evidence that the work is already implemented.

The prior PR added structured, allowlisted reasons for rejected Responses replay shapes (including reasoning without encrypted content, incomplete items, reference-only items, and previous-response references), a locally owned zero-based input index, safe type/status values and field-presence booleans, while retaining the existing message-only INVALID_REQUEST surface. Its tests also covered malicious/changing getters and a synthetic pi-ai Responses stream. The old draft's results relied on pi-ai 0.87.1 and must not be treated as current SDK evidence.

Acceptance criteria

  • Inspect the current plugin and SDK APIs, then implement only plugin-owned safe structural diagnostics through the existing native error surface.
  • Add focused synthetic SDK/integration regressions against the exact current lockfile dependencies. Verify a rejected request does not dispatch network I/O, does not mutate original history, preserves encrypted bytes and call_id on valid replay, and never discloses unknown or hostile fields.
  • Keep current replay, authorization, account isolation, cancellation and transaction semantics intact. Do not admit new replay shapes, capture payloads, retry automatically, delete history, switch models, or change DSH Core.
  • Update directly relevant English and Chinese documentation.
  • Run focused tests and the repository's documented validation gates; report environmental limits without claiming unrun checks passed.

Context and boundaries

#221 closed #217 but explicitly did not replace the unique diagnostic and SDK reproduction scope in #218. Main has since changed through #227, #281, #319 and #327, so the old branch must not be cherry-picked as-is. Start from current main and preserve the old branch for reference. This work is separate from the concurrent install/CI dependency-guard task; keep that CI/tooling scope untouched.

Do not merge, publish, install, restart, or make real model calls as part of this issue.

Activity

  1. cloga commented on Oct 25, 2026

    @cloga
    OwnerAuthor

    Progress update: implementation is available in draft #449 at 669f9322611f02bfbe2078c8bb00a99ce0c2b027. Exact-head Windows/Linux verify, both Published adapter jobs and release-ready passed in run 40152677439. The PR records the replay diagnostics, pinned SDK regressions, preserved history/encryption semantics and its synthetic-only evidence limits. This remains an open implementation PR; it is not live provider acceptance or delivery. After #452 merged, the base advanced, so the PR owner is refreshing against current main and rerunning strict exact-head CI. Original draft/PR-CI-only boundaries remain; no merge or publication is implied.

  2. cloga commented on Oct 25, 2026

    @cloga
    OwnerAuthor

    Refresh after #452 landed: PR #449 now targets current main a7a59c56aa7d5846942e34bf764a8b689caa7b59 at head ba9738a0612a9bf1d2df8dc9053b797ad6e04904. Exact-head run 40183388037 passed Linux/Windows verify, Linux/Windows Published adapter, and release-ready; release was skipped. The implementation/CI portion is ready for review. No live-provider claim is made, and the original draft/PR-CI-only boundary remains in effect. Keep this issue open until the associated implementation is accepted/landed or the owner explicitly changes that boundary.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions