Skip to content

Define dedicated Claude Code live-test inputs and authorization #557

Open

Description

@NOirBRight

Part of #73; supplies the dedicated credential-contract prerequisite already required by #78. This is a test-resource/authorization decision, not another implementation of #74 or #78.

Earlier Linux-round authorization (not automatically renewed)

  • One isolated Linux live round only.
  • At most 20 real upstream HTTP attempts per protocol, including retries, model-selection probes, and auxiliary/count-token calls.
  • At most 2,048 output tokens per request; at most 30 minutes total; stop at the limit, no automatic renewal.
  • Responses target: Codex / Luna / max (canonical identity and effort mapping must be verified).
  • Chat target confirmed: CommandCode / deepseek/deepseek-v4-flash. Native target remains under investigation; do not infer approval for a full native test round from the limited qualification below.

Latest qualification-only authorization

  • ONLY Ollama Cloud gpt-oss:20b: one /v1/messages request, max32 output tokens, <=2minutes execution, no retries or other model fallback.
  • May consume existing account allowance, but no purchase, upgrade, or normal-config changes. This is a campaign-specific exception, not a change to the frozen release matrix.
  • Preflight stopped before reservation/I/O because the active CodexHub runtime lacks the required Ollama provider/key; zero model requests. User must configure that input or supply an explicit existing key-file path.

Still required

  • Exact Responses model/effort identity verified against the existing catalog: gpt-5.6-luna supports max in both the local Direct cache and generated CodexHub catalog. Its catalog default is medium, so the requested max must be explicit. This is catalog evidence, not a live availability pass.
  • Chat selection is confirmed; finish native model eligibility/selection and protocol evidence. Public Ollama model lists and Low Usage labels do not establish Free-account access.
  • Complete explicit credential inputs for the chosen legs. The user expressly permits existing CodexHub-managed credentials; Codex and CommandCode sources were located by sanitized read-only inspection. Ollama credentials were not found in the active app runtime, so its probe made zero requests. Keep paths private and NEVER paste values; do not inspect unrelated auth stores or modify source credentials.
  • Record an input contract using existing dedicated auth/API-key loader patterns where possible, without adding Claude cases to the existing frozen eight-case CLI contract. New schema/fields only where the selected resources require them.
  • The isolated runner binds credentials to the intended endpoint/provider and uses atomic pre-dispatch request/token/deadline limits. Logs and CLI environment variables alone are not budget enforcement.
  • Separate synthetic loopback evidence from real upstream evidence; preserve the users normal settings and auth files.

Completion

Close only after the exact resource identities, safe input contract, bounded runner preflight, and user authorization are recorded. This issue does not claim the providers or Claude integration passed live acceptance; those remain #74 and #78. A later round or Windows run requires its own explicit resource/budget authorization.

Context

Activity

  1. NOirBRight commented on Sep 20, 2026

    @NOirBRight
    OwnerAuthor

    User decisions advanced: Chat target is CommandCode deepseek/deepseek-v4-flash. Responses remains Codex gpt-5.6-luna with max effort. User explicitly approved using existing CodexHub-managed credentials; a sanitized local inspection confirmed the two required credential sources exist without printing, copying, or changing their contents. This is a campaign-specific input decision, not a rewrite of the frozen release E2E credential policy.

    Anthropic target is still undecided: user has Ollama Free and requested investigation of models both accessible on Free and usable through Messages. Indexed official documentation establishes Messages compatibility, but retrieved pricing material only promises an unspecified starter-model subset. No exact Free-eligible model or account quota is verified. No Ollama inference has been made.

    Research checkpoint: ticket-557 @ d51c749; evidence-provenance correction: ticket-74 @ 1a857f0. Both documentation-only commits await independent merger. New delegates are failing with Usage Limit Reached; an existing merger has been asked to process the checkpoints if its runtime permits. PR #556 remains draft; #74 not closed.

  2. NOirBRight commented on Sep 20, 2026

    @NOirBRight
    OwnerAuthor

    New narrowly scoped user approval: ONLY Ollama gpt-oss:20b; at most one Messages request, max32 output tokens, <=2minutes, no retries/model fallback/purchase/upgrade. This does not renew the full campaign live budget or change the frozen release matrix.

    Attempt stopped during preflight, before any outbound reservation or network call. Sanitized inspection found no Ollama provider in the active CodexHub runtime provider file (including ID/name/host matching), and no OLLAMA_API_KEY in the initial environments of the active app/Gateway processes. The active runtime path was verified from those processes. Zero model requests, no model usage, no config/credential changes. This is missing input, NOT evidence that Free rejects20b or that Messages is unsupported.

    User was asked to configure the Ollama key in CodexHub or provide an existing key-file path, never the key contents. #74 and #557 offline implementation continue independently.

  3. NOirBRight commented on Sep 20, 2026

    @NOirBRight
    OwnerAuthor

    Reviewed offline checkpoint merged into draft campaign PR #556 at f736209 (candidate 08c943a). Separate Standards and Spec reviews passed after corrections for unsupported owner-only permission primitives, strict JSON parsing, terminal grant expiry, and explicit reasoning effort. Focused integration tests: 21 passed. Full Python core on identical Python/test blobs: 3060 passed, 180 skipped, 267 subtests; final candidate change was documentation-only. No live upstream calls or source credential/config changes. This is PARTIAL infrastructure, not completed resource qualification or a production gate waiver. Native/Ollama input is still missing; future live rounds require their explicit bounded authorization.

  4. NOirBRight commented on Sep 20, 2026

    @NOirBRight
    OwnerAuthor

    New offline preflight risk (no upstream calls): at f736209, existing official Codex compatibility and transparent request paths remove max_output_tokens=2048. Strict official-app passthrough preserves it in the same synthetic case. The compatibility source comments say the backend rejects the parameter, but this is not fresh remote evidence. Catalog support for Luna/max and the observed CLI cap do not prove a provider-enforced output ceiling. Final-byte admission must run AFTER all normalization and refuse if the configured limit disappears. Do not silently strip the user budget, substitute providers, or treat stream truncation as a bound on upstream generation/billing. Bounded-output compatibility of the selected Codex resource remains a qualification gate. Source:

    # The chatgpt.com/backend-api/codex endpoint requires store=false,
    # forces streaming, and rejects max_output_tokens. Inject/fix these
    # so callers that don't know about Codex's quirks (e.g. ZCode via
    # the Chat Completions gateway) still work.
    if payload.get("store") is not False:
    payload["store"] = False
    changed = True
    if payload.get("stream") is not True:
    payload["stream"] = True
    changed = True
    if "max_output_tokens" in payload:
    del payload["max_output_tokens"]
    changed = True
    and
    def official_passthrough_request_body(
    body: bytes,
    payload: Mapping[str, Any] | None,
    upstream: Mapping[str, Any],
    model_id: str | None = None,
    event_context: dict[str, Any] | None = None,
    ) -> bytes:
    if not isinstance(payload, Mapping):
    # Strict official passthrough has no parsed shape to safely rewrite.
    return body
    next_payload = dict(payload)
    upstream_model = upstream.get("upstream_model")
    changed = False
    if _collaboration_delivery.make_messages_portable(next_payload):
    changed = True
    if event_context is not None:
    event_context[_collaboration_delivery.CONTEXT_KEY] = True
    if isinstance(upstream_model, str) and upstream_model and next_payload.get("model") != upstream_model:
    next_payload["model"] = upstream_model
    changed = True
    service_tier = upstream.get("service_tier")
    if isinstance(service_tier, str) and service_tier and next_payload.get("service_tier") != service_tier:
    next_payload["service_tier"] = service_tier
    changed = True
    if _response._sanitize_unsupported_compaction_input_items(next_payload):
    changed = True
    if host._normalize_responses_message_input_items(next_payload):
    changed = True
    if _response._sanitize_official_system_messages(next_payload):
    changed = True
    if _response._sanitize_official_strict_function_schemas(next_payload):
    changed = True
    if next_payload.get("store") is not False:
    next_payload["store"] = False
    changed = True
    reasoning_changed, reasoning_counts = host._sanitize_official_input_reasoning_items(next_payload)
    if reasoning_changed:
    _gateway_events.write_proxy_event(
    "official_reasoning_history_sanitized",
    upstream="official",
    reasoning_items_removed=reasoning_counts["removed_non_portable"],
    reasoning_items_kept_official_encrypted=reasoning_counts["kept_official_encrypted"],
    )
    changed = True
    if not changed:
    return body
    return json.dumps(next_payload, ensure_ascii=True, separators=(",", ":")).encode("utf-8")

  5. NOirBRight commented on Sep 20, 2026

    @NOirBRight
    OwnerAuthor

    Offline composition caught a new native admission mismatch: the pinned Claude CLI sends output_config.effort with thinking.type=adaptive, but the current helper checks thinking.effort. With a native leg explicitly bound to max, it refuses the canonical request before I/O. Responses and Chat each passed one synthetic loopback dispatch and refused the second; native still fails, so the combined check is NOT a pass. A scoped #557 correction and regression are underway in its isolated worktree. Do not fabricate a thinking.effort field or remove the binding to make the check green. No real model calls or credential/config changes.

  6. NOirBRight commented on Sep 20, 2026

    @NOirBRight
    OwnerAuthor

    Reviewed native-binding correction 945e808 is now integrated and pushed in fbadd78. Both delta axes passed. Combined exact-code core:3101 passed/180 skipped/267 subtests. Three-protocol buffered loopback composition now passes for all legs: one admitted dispatch, second refused before I/O. Native output_config.effort is canonical; fixed legs reject legacy thinking.effort, including count-token requests, while legitimate omission on count-token requests remains allowed. This closes the offline mismatch reported above, NOT live resource qualification. No real model calls, source credential/config changes or OAuth refresh; native key input and selected Codex hard-output-cap qualification remain open.

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

    needs-infoWaiting on reporter for more information

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions