Skip to content

fix: permanently retire Global ETF research mandate - #306

Closed
Pigbibi wants to merge 1 commit into
mainfrom
codex/qsl-p3-global-etf-terminal-revocation-019fd89e
Closed

fix: permanently retire Global ETF research mandate#306
Pigbibi wants to merge 1 commit into
mainfrom
codex/qsl-p3-global-etf-terminal-revocation-019fd89e

Conversation

@Pigbibi

@Pigbibi Pigbibi commented Aug 9, 2026

Copy link
Copy Markdown
Contributor

Summary

Safety behavior

Every retired-ID request returns REJECT with positions and budgets cleared and execution_authorized=false. Malformed, non-finite, and oversized numeric material cannot escape the fail-closed result.

This is terminal revocation only. It grants no research promotion, deployment, runtime, paper, shadow, live, order, or capital authority.

Verification

  • tests-first RED: 7 failures / 1 pass, including oversized-integer OverflowError and missing explicit retirement reason
  • retired-mandate focused: 3 passed, 5 subtests passed
  • risk gate full: 49 passed, 76 subtests passed
  • full suite: 935 passed, 1 skipped, 136 subtests passed
  • Ruff, compile, lock/dependency, package/import, scope2, secret, provider URL, and diff gates: passed
  • package wheel SHA-256: da3894611d4cf73c9645abc4a65c22f468be79c2762b810e60097d7e92f8430c
  • package sdist SHA-256: 41ab60de0abe27c99d095679df85cc901c58aff408d4891bd9368e984fe8f7c0

No remediation is authorized on this PR. Any new material exact-head blocker closes the PR unmerged and parks the slice.

Co-Authored-By: Codex <noreply@openai.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: e5a5c790fd

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +326 to +327
if mandate_provenance.get("mandate_id") == _RETIRED_GLOBAL_ETF_RESEARCH_MANDATE:
return {}, {"retired_global_etf_research_mandate"}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Sanitize malformed metadata before issuing retired rejection

When a request uses the retired mandate ID but contains malformed position or budget metadata, this early return only seeds the rejection reason and still proceeds to _canonical_digest(decision_payload). Fields such as PositionTarget.role, order_preference, or BudgetIntent.unit are copied without validation, so a value like float("nan") raises ValueError under allow_nan=False instead of returning the promised terminal REJECT with cleared exposure. The retired path should sanitize these receipt fields or otherwise guarantee the rejection after the exactly-once engine assessment.

Useful? React with 👍 / 👎.

@Pigbibi Pigbibi closed this Aug 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant