diff --git a/.agents/github/ISSUE.md b/.agents/github/ISSUE.md index ec4e676a1d..b0b73a07c9 100644 --- a/.agents/github/ISSUE.md +++ b/.agents/github/ISSUE.md @@ -2,15 +2,26 @@ Agent-only issue body. Humans use GitHub issue forms. Keep every heading. If a section does not apply, write why; do not delete it. -Match the user's language in the filled answers. Quote what the user said; do not invent facts. +Match the user's language in the filled answers. Do not invent facts. + +User request: quote the request the user made to the agent as faithfully as +possible. Keep the original language and line breaks. Do not rewrite, +summarize, translate, or turn it into an issue description. + +Keep filled answers short and factual. Do not paste unfiltered AI-generated +text, speculation, or an implementation plan in the issue body or in later +comments. Extract the evidence maintainers need to review. Repeated +submissions of unfiltered AI-generated text may result in a block. If a field below is missing from the conversation, ask the user that question and wait. Ask for the facts themselves. Do not tell the user to confirm a template, tick checkboxes, or acknowledge the guidelines. -Before filing, refuse out-of-scope requests listed below. Then search the docs, -DeepWiki, README, and the code. If this is a usage, configuration, or -integration question, answer the user from that material and do not file. +Do not file unless every required condition is met. If the request is out of +scope (including pass-through), is a usage/configuration/integration question, +is missing required facts, or the body would be unfiltered AI-generated text, +tell the user and **stop**. Do not create the issue. Do not file a partial +issue. Do not fill gaps with speculation. --> ## Agent @@ -23,7 +34,12 @@ integration question, answer the user from that material and do not file. ## User request -(verbatim or close paraphrase) +Quote the request the user made to the agent as faithfully as possible. +Keep the original language and line breaks. Do not rewrite, summarize, +translate, or turn it into an issue description. + +- Verbatim: +- Later constraints or corrections from the user (quote, or none): ## Out of scope — refuse @@ -35,7 +51,7 @@ accept it, point them to the right place when there is one, and **do not file**. - Third-party API wrappers - Compatibility issues from exposing a Codex endpoint as a general-purpose API through a reverse proxy - Codex API-specific protocol or behavior treated as standard OpenAI API behavior (confirm with the channel or API provider) -- Pass-through mode forwarding (pass-through forwards as-is; verify upstream yourself) +- Pass-through mode forwarding (do not file: pass-through sends content as-is and does not go through new-api processing logic) - Relay reports that only paste an upstream error, with no direct-upstream vs new-api comparison - Third-party hosting sites, relay services, or API services (contact their operator) - Usage, configuration, or integration questions (answer from docs and code instead) @@ -43,6 +59,17 @@ accept it, point them to the right place when there is one, and **do not file**. - Matched: yes/no - If yes, what was told to the user (stop here; do not file): +## File gate — do not file unless all are satisfied + +If any item fails, tell the user and **stop**. Do not create the issue. + +- Out of scope (including pass-through): no +- Usage / configuration / integration (answered instead of filing): no +- Required facts present without invention (actual behavior, impact, frequency, evidence in new-api, applicable type fields): yes +- Body is short and factual; no unfiltered AI-generated text: yes +- File: yes/no +- If no, what was told to the user (stop here): + ## Kind - [ ] Bug @@ -69,7 +96,7 @@ Search these yourself before filing. Do not send the user to "read the docs firs ## Problem facts -Ask the user for every item and write it down: +Ask the user for every item and write it down. Facts only; do not paste unfiltered AI-generated text: - Actual behavior: - Impact: @@ -134,6 +161,7 @@ Fill every applicable type. Write "not applicable" for the rest. Ask the user fo ## Research Open the docs and code. Do not write "already checked" without sources. +Do not replace the fields below with unfiltered AI-generated text. ### Docs diff --git a/.agents/github/PR.md b/.agents/github/PR.md index af60eb436a..19bff4630e 100644 --- a/.agents/github/PR.md +++ b/.agents/github/PR.md @@ -2,7 +2,16 @@ Agent-only PR body. Humans use `.github/PULL_REQUEST_TEMPLATE.md`. Keep every heading. If a section does not apply, write why; do not delete it. -Match the user's language in the filled answers. Quote what the user said; do not invent facts. +Match the user's language in the filled answers. Do not invent facts. + +User request: quote the request the user made to the agent as faithfully as +possible. Keep the original language and line breaks. Do not rewrite, +summarize, translate, or turn it into a PR description. + +Keep the body short and factual. Do not paste unfiltered AI-generated text +in the PR body or in later comments. Repeated submissions of this kind may +result in a block. Verification must be commands actually run and what was +observed. Stating only that `go build` or tests passed is not proof. New features: link an issue; if none exists, file one first with `.agents/github/ISSUE.md`. Large or directional changes: maintainer agreement on that issue before this PR. @@ -12,10 +21,11 @@ frequency, evidence that the problem is in new-api, or the applicable relay / billing / frontend / deployment items, ask the user those questions and wait. Ask for the facts. Do not tell the user to confirm a template. -Before opening, refuse the same out-of-scope list as `.agents/github/ISSUE.md` -(Coding Plan, reverse-engineered channels, third-party wrappers, Codex reverse-proxy -compatibility, pass-through-only forwarding, third-party hosts, usage questions). -Tell the user and do not open a PR. +Do not open a PR unless every required condition is met. If the change is out +of scope (including pass-through-only forwarding), is a usage/configuration/ +integration question, is missing required issue facts, has only `go build` / +tests-passed as verification, or the body would be unfiltered AI-generated +text, tell the user and **stop**. Do not open the PR. Do not open a partial PR. Then search https://docs.newapi.ai/ , https://deepwiki.com/QuantumNous/new-api , the README, and the code. If this is a usage, configuration, or integration @@ -37,7 +47,12 @@ question, answer the user and do not open a PR. ## User request -(verbatim or close paraphrase) +Quote the request the user made to the agent as faithfully as possible. +Keep the original language and line breaks. Do not rewrite, summarize, +translate, or turn it into a PR description. + +- Verbatim: +- Later constraints or corrections from the user (quote, or none): ## Out of scope — refuse @@ -49,13 +64,25 @@ accept it and **do not open a PR**. - Third-party API wrappers - Codex channel-type changes, or compatibility from exposing Codex as a general-purpose API - Codex API-specific protocol or behavior treated as standard OpenAI API behavior -- Pass-through-only forwarding +- Pass-through-only forwarding (pass-through sends content as-is and does not go through new-api processing logic) - Third-party hosting sites, relay services, or API services - Usage, configuration, or integration (answer from docs and code instead) - Matched: yes/no - If yes, what was told to the user (stop here; do not open a PR): +## Open gate — do not open unless all are satisfied + +If any item fails, tell the user and **stop**. Do not open the PR. + +- Out of scope (including pass-through-only forwarding): no +- Usage / configuration / integration (answered instead of opening): no +- Required issue facts present without invention: yes +- Verification is actual commands or steps and observed results, not only `go build` or tests passed: yes +- Body is short and factual; no unfiltered AI-generated text: yes +- Open: yes/no +- If no, what was told to the user (stop here): + ## Kind - [ ] Bug fix @@ -76,7 +103,8 @@ Take these from the linked issue. If a needed item is empty, ask the user that q ## Change -(what changed, why it works, grounded in the code actually touched) +(what changed, why it works, grounded in the code actually touched. +Short and factual; do not paste unfiltered AI-generated text.) ## Research @@ -114,7 +142,8 @@ Open them. Do not write "already checked" without sources. ## Verification -Only what was actually run. +Only what was actually run. Do not state only that `go build` or tests passed. +Each item needs the command or steps and the observed result. - Commands and results: - Manual steps and observed result: @@ -133,4 +162,4 @@ Only what was actually run. - Single focused change: yes/no (if no, why): - Secrets included: no -- Out of scope (Coding Plan / reverse-engineered channel / third-party wrapper / Codex): no +- Out of scope (Coding Plan / reverse-engineered channel / third-party wrapper / Codex / pass-through-only forwarding): no diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 5f7bbdce18..cf29054de3 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -13,10 +13,12 @@ body: - 文档:https://docs.newapi.ai/ - 使用问题先看或先问:https://deepwiki.com/QuantumNous/new-api - - 转发类问题必须先确认问题发生在 new-api 这一层:请使用等价的脱敏请求分别直连上游和经过 new-api,对比响应状态、错误体与服务端日志。透传模式或未经对比、仅展示上游报错的反馈不接受 issue。 + - 开启透传请勿反馈问题;透传会直接发送内容,不会经过 new-api 的逻辑处理。 + - 请以简练语言陈述事实与证据。Issue 正文及后续评论均不得直接粘贴未经人工过滤的大段 AI 文本。 + - 转发类问题必须先确认问题发生在 new-api 这一层:请使用等价的脱敏请求分别直连上游和经过 new-api,对比响应状态、错误体与服务端日志。未经对比、仅展示上游报错的反馈不接受 issue。 - 不接受 Coding Plan、逆向渠道、第三方封装接口,以及将 Codex 接口反代为通用 API 后产生的兼容性问题;Codex API 自身特有的协议或行为也不应被当作标准 OpenAI API 行为,相关问题请先向渠道或接口提供方确认。 - 本项目不提供官方托管服务,也不为第三方托管站、中转站或 API 服务提供技术支持;此类问题请联系对应运营方。 - - 警告:删除本模板、删除小节标题或随意清空内容的 issue,可能会被直接关闭;重复恶意提交者可能会被 block。 + - 警告:删除本模板、删除小节标题或随意清空内容的 issue,可能会被直接关闭;多次提交未经人工过滤的大段 AI 文本,或重复恶意提交者,可能会被 block。 - type: dropdown id: deployment-source @@ -52,11 +54,13 @@ body: required: true - label: "**非第三方服务:** 我确认这不是第三方托管站、中转站、API 服务或未经本仓库原版验证的 fork 所独有的问题;第三方实例问题应联系其运营方。" required: true + - label: "**非透传:** 我确认相关渠道未开启透传。开启透传会直接发送内容,不会经过 new-api 的逻辑处理,此类问题不接受 issue。" + required: true - label: "**问题归属:** 我已提供足以区分客户端、new-api 和上游的证据;转发问题已使用等价的脱敏请求对比直连上游与经过 new-api 的结果,确认错误由 new-api 引入或改变,而非仅原样转发上游报错。" required: true - label: "**渠道与协议边界:** 我确认问题不是由 Coding Plan、逆向渠道、第三方封装接口、Codex 反代接口,或 Codex API 自身特有行为导致;若问题最初出现于此类接口,我已在本仓库支持的标准 API 协议上复现。" required: true - - label: "**维护成本:** 我理解项目维护者精力有限,不遵循模板要求的 issue 可能会被无视或直接关闭。" + - label: "**维护成本:** 我理解项目维护者精力有限。Issue 正文及后续评论均不得直接粘贴未经人工过滤的大段 AI 文本,须先提炼可复核的要点;不遵循模板要求或缺少要点、无法复核的内容可能会被无视或直接关闭。多次提交此类内容可能会被 block。" required: true - type: markdown diff --git a/.github/ISSUE_TEMPLATE/bug_report_en.yml b/.github/ISSUE_TEMPLATE/bug_report_en.yml index a707f28579..2a21abeeea 100644 --- a/.github/ISSUE_TEMPLATE/bug_report_en.yml +++ b/.github/ISSUE_TEMPLATE/bug_report_en.yml @@ -13,10 +13,12 @@ body: - Docs: https://docs.newapi.ai/ - Usage questions first: https://deepwiki.com/QuantumNous/new-api - - Relay reports must first establish that the issue occurs in the new-api layer. Use equivalent redacted requests to compare the direct upstream result with the result through new-api, including response status, error body, and server logs. Reports involving pass-through mode, or showing only an upstream error without this comparison, are not accepted. + - Do not report issues when pass-through is enabled; pass-through sends content as-is and does not go through new-api processing logic. + - State facts and evidence concisely. Do not paste unfiltered AI-generated text in the issue body or in later comments. + - Relay reports must first establish that the issue occurs in the new-api layer. Use equivalent redacted requests to compare the direct upstream result with the result through new-api, including response status, error body, and server logs. Reports that skip this comparison or only show an upstream error are not accepted. - Reports about Coding Plan services, reverse-engineered channels, third-party API wrappers, or compatibility issues caused by exposing a Codex endpoint through a reverse proxy as a general-purpose API are not accepted. Protocols or behavior specific to the Codex API should not be treated as standard OpenAI API behavior; confirm such issues with the channel or API provider first. - This project does not operate an official hosted service or provide technical support for third-party hosting sites, relay services, or API services. Contact the relevant operator for those issues. - - Warning: issues with this template removed, section headings deleted, or content cleared may be closed directly. Repeated abusive submissions may result in a block. + - Warning: issues with this template removed, section headings deleted, or content cleared may be closed directly. Repeated submissions of unfiltered AI-generated text, or repeated abusive submissions, may result in a block. - type: dropdown id: deployment-source @@ -52,11 +54,13 @@ body: required: true - label: "**Not a third-party service:** I confirm that this issue is not exclusive to a third-party hosting site, relay, API service, or fork that has not been verified against the unmodified repository. Third-party instance issues must be reported to their operator." required: true + - label: "**Not pass-through:** I confirm that pass-through is not enabled on the relevant channel. Pass-through sends content as-is and does not go through new-api processing logic; such reports are not accepted." + required: true - label: "**Issue attribution:** I have provided evidence that distinguishes the client, new-api, and upstream layers. For relay issues, I compared equivalent redacted requests sent directly upstream and through new-api, confirming that new-api introduces or changes the error rather than merely forwarding the upstream error unchanged." required: true - label: "**Channel and protocol boundary:** I confirm that the issue is not caused by a Coding Plan service, reverse-engineered channel, third-party API wrapper, Codex reverse-proxy endpoint, or behavior specific to the Codex API. If first observed through such an interface, I have reproduced it using a standard API protocol supported by this repository." required: true - - label: "**Maintainer time:** I understand that maintainers have limited time and issues that do not follow this template may be ignored or closed directly." + - label: "**Maintainer time:** I understand that maintainers have limited time. Do not paste unfiltered AI-generated text in the issue body or in later comments; extract the points needed for review first. Submissions that do not follow this template, or that omit the necessary points and cannot be reviewed, may be ignored or closed. Repeated submissions of this kind may result in a block." required: true - type: markdown diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index c5453ccd28..313e977ae1 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -13,9 +13,10 @@ body: - 文档:https://docs.newapi.ai/ - 使用问题先看或先问:https://deepwiki.com/QuantumNous/new-api - - 开启透传后的转发相关反馈不接受 issue;透传模式会直接转发请求,请自行确认上游行为。 + - 开启透传请勿反馈问题;透传会直接发送内容,不会经过 new-api 的逻辑处理。 + - 请以简练语言陈述事实与证据。Issue 正文及后续评论均不得直接粘贴未经人工过滤的大段 AI 文本。 - 不接受 Coding Plan、逆向渠道、第三方封装接口,以及将 Codex 接口反代为通用 API 后产生的兼容性问题;Codex API 自身特有的协议或行为也不应被当作标准 OpenAI API 行为,相关问题请先向渠道或接口提供方确认。 - - 警告:删除本模板、删除小节标题或随意清空内容的 issue,可能会被直接关闭;重复恶意提交者可能会被 block。 + - 警告:删除本模板、删除小节标题或随意清空内容的 issue,可能会被直接关闭;多次提交未经人工过滤的大段 AI 文本,或重复恶意提交者,可能会被 block。 - type: input id: version @@ -34,9 +35,11 @@ body: required: true - label: "**提交前必读:** 我已完整阅读上方“提交前必读”,并已查看文档 https://docs.newapi.ai/、项目 README 且向 AI 提问,确认这不是使用、配置或接入类问题,且现有版本无法满足需求。" required: true + - label: "**非透传:** 我确认这不是开启透传后的转发相关反馈;透传会直接发送内容,不会经过 new-api 的逻辑处理。" + required: true - label: "**模板完整:** 我未删除此模板中的任何引导内容或小节标题,并会按要求完整填写。" required: true - - label: "**维护成本:** 我理解项目维护者精力有限,不遵循模板要求的 issue 可能会被无视或直接关闭。" + - label: "**维护成本:** 我理解项目维护者精力有限。Issue 正文及后续评论均不得直接粘贴未经人工过滤的大段 AI 文本,须先提炼可复核的要点;不遵循模板要求或缺少要点、无法复核的内容可能会被无视或直接关闭。多次提交此类内容可能会被 block。" required: true - type: textarea diff --git a/.github/ISSUE_TEMPLATE/feature_request_en.yml b/.github/ISSUE_TEMPLATE/feature_request_en.yml index c442682bee..ea63b1816e 100644 --- a/.github/ISSUE_TEMPLATE/feature_request_en.yml +++ b/.github/ISSUE_TEMPLATE/feature_request_en.yml @@ -13,9 +13,10 @@ body: - Docs: https://docs.newapi.ai/ - Usage questions first: https://deepwiki.com/QuantumNous/new-api - - Issues about forwarding behavior after enabling pass-through mode are not accepted; pass-through mode forwards requests directly, so please verify upstream behavior yourself. + - Do not report issues when pass-through is enabled; pass-through sends content as-is and does not go through new-api processing logic. + - State facts and evidence concisely. Do not paste unfiltered AI-generated text in the issue body or in later comments. - Reports about Coding Plan services, reverse-engineered channels, third-party API wrappers, or compatibility issues caused by exposing a Codex endpoint through a reverse proxy as a general-purpose API are not accepted. Protocols or behavior specific to the Codex API should not be treated as standard OpenAI API behavior; confirm such issues with the channel or API provider first. - - Warning: issues with this template removed, section headings deleted, or content cleared may be closed directly. Repeated abusive submissions may result in a block. + - Warning: issues with this template removed, section headings deleted, or content cleared may be closed directly. Repeated submissions of unfiltered AI-generated text, or repeated abusive submissions, may result in a block. - type: input id: version @@ -34,9 +35,11 @@ body: required: true - label: "**Read this first:** I have fully read the section above, reviewed the docs at https://docs.newapi.ai/ and the project README, and asked AI first, confirming this is not a usage, configuration, or integration question, and that the current version cannot meet my needs." required: true + - label: "**Not pass-through:** I confirm this is not a forwarding report after enabling pass-through; pass-through sends content as-is and does not go through new-api processing logic." + required: true - label: "**Template intact:** I have not removed any guidance or section headings from this template and will complete it as requested." required: true - - label: "**Maintainer time:** I understand that maintainers have limited time and issues that do not follow this template may be ignored or closed directly." + - label: "**Maintainer time:** I understand that maintainers have limited time. Do not paste unfiltered AI-generated text in the issue body or in later comments; extract the points needed for review first. Submissions that do not follow this template, or that omit the necessary points and cannot be reviewed, may be ignored or closed. Repeated submissions of this kind may result in a block." required: true - type: textarea diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 237c383825..f080aedd45 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -7,7 +7,8 @@ English template: `.github/PULL_REQUEST_TEMPLATE/en.md` > [!IMPORTANT] > -> - 描述可用 AI 辅助。提交前请审阅全文,并**声明对其负责**,避免未经核对的直接粘贴。 +> - 描述可用 AI 辅助。提交前请审阅并精炼全文,仅保留维护者需要复核的要点,并**声明对其负责**。PR 正文及后续评论均不得直接粘贴未经人工过滤的大段 AI 文本;多次提交此类内容可能会被 block。 +> - 开启透传请勿反馈问题;透传会直接发送内容,不会经过 new-api 的逻辑处理。 > - 请按本模板填写后再提交。 ## 🔗 关联任务 / Related Issue @@ -24,17 +25,18 @@ English template: `.github/PULL_REQUEST_TEMPLATE/en.md` - [ ] 📝 文档更新 (Documentation) ## 📝 变更描述 / Description -(简述做了什么、为什么生效。如果难以简述,建议先拆分范围,或在 Issue 中与维护者对齐。) +(简述做了什么、为什么生效。不得直接粘贴未经人工过滤的大段 AI 文本。如果难以简述,建议先拆分范围,或在 Issue 中与维护者对齐。) ## 📸 运行证明 / Proof of Work -(请写明如何验证:实际步骤与观察结果。UI 变更请附截图或录屏;Bug 修复请说明复现过程与修复后结果。) +(请写明如何验证:实际命令或步骤,以及观察结果。仅声明 `go build` 通过或测试通过,不视为有效证明。UI 变更请附截图或录屏;Bug 修复请说明复现过程与修复后结果。) ## ✅ 提交前检查项 / Checklist -- [ ] **人工确认:** 无论描述是否由 AI 生成,我已审阅全部内容,并声明对其准确性与完整性负责。 +- [ ] **人工确认:** 无论描述是否由 AI 生成,我已审阅并精炼全文,仅保留可复核的要点,并声明对其准确性与完整性负责。PR 正文及后续评论均未直接粘贴未经人工过滤的大段 AI 文本。 - [ ] **非重复提交:** 我已搜索现有的 [Issues](https://github.com/QuantumNous/new-api/issues) 与 [PRs](https://github.com/QuantumNous/new-api/pulls),确认不是重复提交。 - [ ] **新功能关联 Issue:** 若此 PR 标记为 `New feature`,我已关联对应 Issue;若尚无 Issue,我已先自行创建。 - [ ] **事前沟通:** 若改动较大或涉及方向性变更,已在关联 Issue 中与维护者沟通并达成一致。 - [ ] **功能范围:** 本 PR 不是 Coding Plan、逆向渠道、第三方封装接口,也不是对 Codex 渠道类型的改动。 +- [ ] **非透传:** 本 PR 不是针对开启透传后的转发行为;透传会直接发送内容,不会经过 new-api 的逻辑处理。 - [ ] **范围聚焦:** 本 PR 为一项聚焦改动,未包含无关代码。 -- [ ] **本地验证:** 已在本地运行并通过测试或手动验证,维护者可以据此复核。 +- [ ] **本地验证:** 已按变更路径实际验证,并写明命令与观察结果。仅声明 `go build` 通过或测试通过,不视为有效证明。 - [ ] **安全合规:** 代码中无敏感凭据,且符合项目代码规范。 diff --git a/.github/PULL_REQUEST_TEMPLATE/en.md b/.github/PULL_REQUEST_TEMPLATE/en.md index 446e9cbd79..ab4a35c279 100644 --- a/.github/PULL_REQUEST_TEMPLATE/en.md +++ b/.github/PULL_REQUEST_TEMPLATE/en.md @@ -7,7 +7,8 @@ Chinese template: `.github/PULL_REQUEST_TEMPLATE.md` > [!IMPORTANT] > -> - AI-assisted descriptions are welcome. Please review the full text before submitting and **take responsibility** for it. Avoid pasting unreviewed content. +> - AI-assisted descriptions are welcome. Review and condense the full text before submitting, keep only the points maintainers need to re-check, and **take responsibility** for it. Do not paste unfiltered AI-generated text in the PR body or in later comments. Repeated submissions of this kind may result in a block. +> - Do not report issues when pass-through is enabled; pass-through sends content as-is and does not go through new-api processing logic. > - Please complete this template before submitting. ## Related Issue @@ -24,17 +25,18 @@ Chinese template: `.github/PULL_REQUEST_TEMPLATE.md` - [ ] Documentation ## Description -(Briefly describe what changed and why it works. If that is hard to summarize, consider splitting the scope or aligning with maintainers in an Issue first.) +(Briefly describe what changed and why it works. Do not paste unfiltered AI-generated text. If that is hard to summarize, consider splitting the scope or aligning with maintainers in an Issue first.) ## Proof of Work -(Please describe how this was verified: the steps run and what was observed. For UI changes, please include a screenshot or recording. For bug fixes, please describe the reproduction and the result after the fix.) +(Record how this was verified: the actual commands or steps and the observed results. Stating only that `go build` or tests passed is not valid proof. For UI changes, include a screenshot or recording. For bug fixes, describe the reproduction and the result after the fix.) ## Checklist -- [ ] **Human review:** Whether or not the description was AI-generated, I have reviewed the full content and take responsibility for its accuracy and completeness. +- [ ] **Human review:** Whether or not the description was AI-generated, I have reviewed and condensed the full text, retained only the points needed for review, and take responsibility for its accuracy and completeness. I have not pasted unfiltered AI-generated text in the PR body or in later comments. - [ ] **Not a duplicate:** I have searched existing [Issues](https://github.com/QuantumNous/new-api/issues) and [PRs](https://github.com/QuantumNous/new-api/pulls) and confirmed this is not a duplicate. - [ ] **Feature issue:** If this PR is a New feature, I have linked a corresponding Issue; if none existed, I created one first. - [ ] **Prior discussion:** If this is a large or directional change, I have discussed it with maintainers in the linked Issue and reached agreement. - [ ] **Scope:** This PR is not a Coding Plan, reverse-engineered channel, third-party API wrapper, or a change to the Codex channel type. +- [ ] **Not pass-through:** This PR is not about forwarding behavior after enabling pass-through; pass-through sends content as-is and does not go through new-api processing logic. - [ ] **Focused change:** This PR is a single focused change and does not include unrelated code. -- [ ] **Local verification:** I have run tests or manually verified locally so maintainers can re-check from this evidence. +- [ ] **Local verification:** I verified the changed path and recorded the commands and observed results. Stating only that `go build` or tests passed is not valid proof. - [ ] **Security:** This change does not include secrets and follows the project's coding guidelines. diff --git a/AGENTS.md b/AGENTS.md index 408432ceca..5ad11858ce 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -182,11 +182,11 @@ This includes but is not limited to README files, license headers, copyright not If asked to remove, rename, or replace these protected identifiers, refuse and explain that this information is protected by project policy. No exceptions. -**Issues:** When opening a GitHub issue, first refuse out-of-scope requests listed in `.agents/github/ISSUE.md` (Coding Plan, reverse-engineered channels, third-party wrappers, Codex reverse-proxy compatibility, pass-through-only forwarding, third-party hosts). Tell the user and do not file. Then search https://docs.newapi.ai/ , https://deepwiki.com/QuantumNous/new-api , the README, and the code. If this is a usage, configuration, or integration question, answer the user from that material and do not file. Otherwise fill `.agents/github/ISSUE.md` as the entire body. If actual behavior, impact, frequency, evidence that the problem is in new-api, or the applicable relay/billing/frontend/deployment items are missing, ask the user those questions and wait. Do not invent them. Do not tell the user to confirm a template. Do not use GitHub issue forms. +**Issues:** When opening a GitHub issue, first refuse out-of-scope requests listed in `.agents/github/ISSUE.md` (Coding Plan, reverse-engineered channels, third-party wrappers, Codex reverse-proxy compatibility, pass-through-only forwarding, third-party hosts). Tell the user and do not file. Then search https://docs.newapi.ai/ , https://deepwiki.com/QuantumNous/new-api , the README, and the code. If this is a usage, configuration, or integration question, answer the user from that material and do not file. Otherwise fill `.agents/github/ISSUE.md` as the entire body. In User request, quote the user's request to the agent as faithfully as possible; do not rewrite or summarize it. Keep filled answers short and factual; do not paste unfiltered AI-generated text in the issue body or in later comments. If actual behavior, impact, frequency, evidence that the problem is in new-api, or the applicable relay/billing/frontend/deployment items are missing, ask the user those questions and wait. Do not invent them. Do not tell the user to confirm a template. If any required condition is not met, tell the user and do not file. Do not use GitHub issue forms. **Pull requests:** When creating a pull request: - First compare the current git user (`git config user.name` / `git config user.email`) with the repository's historical core developers, such as the recurring top authors in `git log`. Do not change git config. - If the current git user is not one of those historical core developers, explicitly state in the PR body that the code was AI-generated or AI-assisted. - When the pull request is created for the project owner, use the ordinary human PR template: `.github/PULL_REQUEST_TEMPLATE.md` for Chinese requests or `.github/PULL_REQUEST_TEMPLATE/en.md` for English requests. Project-owner pull requests MUST NOT use `.agents/github/PR.md` unless the owner explicitly asks for it. -- For all other agent-created pull requests, fill `.agents/github/PR.md` as the entire PR body. Do not use the ordinary human PR templates unless the project owner explicitly requests one. +- For all other agent-created pull requests, fill `.agents/github/PR.md` as the entire PR body. Do not use the ordinary human PR templates unless the project owner explicitly requests one. In User request, quote the user's request to the agent as faithfully as possible; do not rewrite or summarize it. Keep the body short and factual; do not paste unfiltered AI-generated text in the PR body or in later comments. Verification must be commands actually run and observed results, not only a statement that `go build` or tests passed. If any required condition is not met, tell the user and do not open the PR.