The safety policy hands off a Shopify order note as "moving money" while refunds pass

Aperta
#890 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@sx4im ci sta già lavorando.

Dal 31/10/2026.

  • #930 di @sx4im — aperta

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
typescript

Direzione di ricerca

Start with the payments rule in server/src/approvals/policy.ts and trace how the safety policy evaluates Shopify action names, descriptions, and arguments. Check how SHOPIFY_UPDATE_ORDER and SHOPIFY_CREATE_REFUND are represented and covered by existing tests. Done means notes on an order no longer trigger a money hand-off while refunds do; the proposed administrator allow rule is an additional design question.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

bug

What happens

Writing a note on a Shopify order (SHOPIFY_UPDATE_ORDER with only id and note) is handed off to the person as a money action:

approval.evaluated  composio-shopify/SHOPIFY_UPDATE_ORDER
  outcome: { behaviour: "hand_off", source: "safety",
             reason: "Paying, purchasing or moving money is always done by the person." }

Meanwhile SHOPIFY_CREATE_REFUND, which does move money, passes without a hand-off.

The payments rule in server/src/approvals/policy.ts is a keyword regex (payment|pay|checkout|purchase|place order|... |billing). The order-update action's schema or description very likely matched on a word such as billing (it has a billing_address field), while "refund" is not in the list at all.

Suggested fix

  • Classify on what the action does, not on words found anywhere in its schema. At least match against the action's name and the arguments actually sent, not field names that were left empty.
  • Add refunds to the money rule (refund, create_refund), since they move money.
  • Consider letting an administrator mark a specific action as not money-moving (an allow rule that the safety layer respects), with the decision recorded in the audit log.
Lingua principale
TypeScript
Stelle
9.2k
Fork
1.2k
Merge medio
1g 13h
PR unite (30g)
105

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di CopilotKit/OpenBot

Tutte le issue di CopilotKit/OpenBot

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.