Skip to content

0.1.8 Beta6: Generate the runtime-derived Chat and Collaboration V2 conversion matrix #66

Closed

Description

@NOirBRight

Parent

#259 (part of #248)

Outcome

Generate the versioned Responses-to-Chat conversion matrix used by Beta6 from the installed runtime structures and accepted prior contracts, including the complete Collaboration V2 lifecycle.

The matrix is keyed by field value, declaration/item type, execution owner, and protocol representation. It is not keyed by model name.

Required behavior

  • Preserve a field/item when Chat can carry it natively.
  • Adapt only when an approved reversible equivalent exists.
  • Reject a required semantic before upstream sampling when Chat cannot carry it without loss.
  • Do not silently delete unknown declarations/items or synthesize incompatible IDs.
  • Never fallback to Responses, Official, another model, or another Provider.

Acceptance criteria

Closed #25/#26 and the Beta3.3 Chat history fixes remain conversion foundations.

Blocked by

Activity

  1. NOirBRight commented on Jul 13, 2026

    @NOirBRight
    OwnerAuthor

    SEQUENCING DECISION — conditional Chat fallback, not the initial GLM blocker

    #66 remains the single runtime-derived Responses-to-Chat matrix for the full #57/Milestone decision. It does not block initial GLM-5.2 mechanical/standard Worker qualification while the #105/#108 Responses path remains viable.

    Activate a generic Chat implementation A/B early only if one clean post-#108 Responses qualification still fails for a proven protocol/history reason. If triggered, build an opt-in request-scoped tool bridge on #25/#26, cover custom/tool_search/namespace/history/body/SSE semantics, and fail closed on ambiguity. Do not create a duplicate Chat-bridge Issue or move this scope into #105/#108.

  2. NOirBRight commented on Jul 15, 2026

    @NOirBRight
    OwnerAuthor

    Tool-call contract evidence for the later Chat path (2026-07-15)

    A pinned comparison against farion1231/cc-switch@f6e37ed99443890a865669e28bf1caf5e85d466d adds evidence relevant to this matrix:

    • cc-switch's openai_chat path treats tool declarations, assistant tool calls, follow-up tool results/history, and terminal errors as one symmetric codec. Custom tools are represented through a reversible function wrapper, original call identity is restored on the return path, and local adapter failure closes with a normal response.failed terminal instead of leaving the stream open.
    • CodexHub's current GLM experiment was Ollama native Responses, not Responses-to-Chat. An unwrapped custom apply_patch declaration repeatedly produced shapes that the response-side exact {patch:string} validator rejected. A request-scoped probe exposing the same operation as a strict Responses function schema completed two consecutive shell_command -> apply_patch -> shell_command loops with zero request errors, retries, or protocol fallback.
    • Therefore this does not prove that the reported Chat disconnect has the same root cause. It does show what 0.1.8 Beta6: Generate the runtime-derived Chat and Collaboration V2 conversion matrix #66 must test: declaration/call/result/history symmetry, opaque ID preservation, explicit fail-closed handling for non-reversible tools, and exactly one terminal event on adapter failure.

    When #66 is activated, include a real Chat tool-loop E2E that distinguishes protocol-translation failure from upstream transport failure and asserts no disconnect or duplicate retry after the tool call. Keep #114's Responses transport diagnosis separate; its earlier reporter correction already records the supplied GLM Chat disconnect as related but distinct.

  3. 28 remaining items

  4. changed the title [-]0.1.8 Beta6: Generate the runtime-derived Chat conversion matrix and fail closed on loss[/-] [+]0.1.8 Beta6: Generate the runtime-derived Chat and Collaboration V2 conversion matrix[/+] on Aug 10, 2026
  5. NOirBRight commented on Aug 19, 2026

    @NOirBRight
    OwnerAuthor

    Campaign rewrite from #441: this matrix is no longer blocked by #351 (stale 0.1.8 Beta5 release train). Chat contract work can start independently of that historical gate.

    #253 / #254 consume this matrix. Provider qualification (#285 / #286 / #396) no longer blocks those contract tickets.

  6. self-assigned this
    on Aug 19, 2026
  7. NOirBRight commented on Aug 19, 2026

    @NOirBRight
    OwnerAuthor

    Claimed: generate the versioned Responses-to-Chat conversion matrix from protocol_translation plus the accepted #392/#64 runtime contracts.

  8. NOirBRight commented on Aug 19, 2026

    @NOirBRight
    OwnerAuthor

    Landed on ac1a27e.

    • Artifact: docs/evidence/issue-66/chat-conversion-matrix.json
    • Builder: scripts/build_issue_66_chat_conversion_matrix.py
    • Tests: tests/test_issue_66_chat_conversion_matrix.py (6 passed)

    The matrix classifies request fields, input items, stream/identity, and the six Collaboration V2 tools. It is not keyed by model name. Unknown/encrypted/hosted/custom semantics are unavailable and fail closed. V2 namespace adaptation is marked required_by_394; the standard Chat floor is bound to current protocol_translation.py.

    #253 / #254 should consume this artifact instead of inventing a second matrix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

P1Priority 1: current iteration goalcampaign:0.1.8-beta60.1.8 Beta6 usable Chat campaigncampaign:gateway-chatGateway deep modules and Codex↔Chat bridgeenhancementNew feature or requestready-for-agentFully specified, ready for an AFK agentwayfinder:researchWayfinder evidence or research ticket

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions