Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,10 @@ describe('submitGithubIssueWithConfirm', () => {
expect(posted.appVersion).toBe('0.0.112');
expect(posted.userName).toBe('公开昵称');
expect(posted.description).toContain('用户改过的正文');
expect(posted.description).toContain('## 提交时的任务环境');
expect(posted.description).toContain(
'仅代表提交时快照,不一定是故障环境。OS 来自提交客户端本机,不含 SSH 远端主机;Harness / 模型来自当前任务。与运行环境无关的反馈可忽略本段。',
);
expect(posted.description).toContain('**版本区域**: CN');
expect(posted.description).toContain('**OS**: darwin arm64 (25.5.0)');
expect(posted.description).toContain('**Harness**: Codex');
Expand Down Expand Up @@ -237,6 +241,7 @@ describe('submitGithubIssueWithConfirm', () => {
expect(description).not.toContain('版本区域');
expect(description).not.toContain('global');
// 其余 env 行不受影响,不能因为省略区域行把 env 块整段搞坏。
expect(description).toContain('## 提交时的任务环境');
expect(description).toContain('**OS**: darwin arm64 (25.5.0)');
expect(description).toContain('**界面语言**: zh-CN');
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
* 1. 组环境信息并解析本次真实提交身份—— agent 不参与;
* 2. await confirm(确认卡片,含真实身份)—— **唯一**通往 postIssue 的路径;
* 3. confirmed 后以用户确认的 title/body/type 为准(用户编辑版优先);
* 4. body 末尾附 env 块,clamp 后严格按已确认身份 POST,失败不切换身份。
* 4. body 末尾附「提交时的任务环境」块,clamp 后严格按已确认身份 POST,失败不切换身份。
*
* 模块保持 electron-free,全部依赖注入(规则 14),单测直接调 submitGithubIssueWithConfirm。
*/
Expand Down Expand Up @@ -196,6 +196,9 @@ export async function submitGithubIssueWithConfirm(
const envBlock = [
'',
'---',
'## 提交时的任务环境',
Comment thread
dashhuang marked this conversation as resolved.
'',
'仅代表提交时快照,不一定是故障环境。OS 来自提交客户端本机,不含 SSH 远端主机;Harness / 模型来自当前任务。与运行环境无关的反馈可忽略本段。',
// global 不写这一行 —— 缺失即默认区域,理由见 CINDY_REGION_CODE(与确认卡片同源)。
...(regionCode ? [`**版本区域**: ${regionCode}`] : []),
`**OS**: ${env.platform} ${env.arch} (${env.osVersion})`,
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/renderer/i18n/locales/en/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -9715,7 +9715,7 @@
},
"issueAgent": {
"command": {
"instruction": "I'd like to file feedback for {{appName}}. Help me turn it into a complete, clear GitHub issue: confirm whether it is a bug or feature request, and ask only for missing or ambiguous details. Summarize or generalize user-provided quotes and examples by default instead of copying information that could identify a person, conversation, or business context. For bugs, collect the symptoms, reproduction steps, expected and actual behavior, frequency, attempted fixes, and—only with my consent—redacted diagnostic summaries; never include passwords, tokens, email addresses, personal paths, or unrelated files. For feature requests, clarify the use case, current pain point, and desired outcome. Once the information is sufficient, submit it with the submit_github_issue tool via cindy_helper call_tool (category=feedback; you can run list_tools first to check the parameters; a confirmation card will be shown to me before submitting). No GitHub plugin or account setup is required: Cindy's official bot is the default, and a working GitHub account appears only as an optional identity in the confirmation card. After creation, tell me the issue number and link, explain that Cindy is open source, and offer to help me reproduce, fix, test, or extend it from source. If the submission fails, tell me the reason honestly.{{details}}",
"instruction": "I'd like to file feedback for {{appName}}. Help me turn it into a clear GitHub issue: figure out whether it is a bug or a suggestion, and ask only what is actually missing—do not run a fixed questionnaire. Ordinary suggestions do not need a bug checklist; skip Harness, model, and Effort questions when they are unrelated. Summarize or generalize user-provided quotes and examples by default instead of copying information that could identify a person, conversation, or business context. Screenshots in this chat are not uploaded to GitHub—never write that screenshots were attached; describe what they showed instead. With my consent, include redacted diagnostic summaries; never include passwords, tokens, email addresses, personal paths, or unrelated files. For feature requests, write the visible use case and ask; do not write repo paths, implementation plans, or acceptance checklists unless I ask. Once the information is sufficient, submit it with the submit_github_issue tool via cindy_helper call_tool (category=feedback; you can run list_tools first to check the parameters; a confirmation card will be shown to me before submitting). No GitHub plugin or account setup is required: Cindy's official bot is the default, and a working GitHub account appears only as an optional identity in the confirmation card. After creation, tell me the issue number and link, explain that Cindy is open source, and offer to help me reproduce, fix, test, or extend it from source. If the submission fails, tell me the reason honestly.{{details}}",
"detailsPrefix": "\nMy initial description: {{details}}"
},
"confirm": {
Expand All @@ -9735,8 +9735,8 @@
"publicNameHint": "This attribution will appear publicly in the Issue body",
"anonymous": "Anonymous",
"useAnonymous": "Use Anonymous Attribution",
"envLine": "Attached automatically on submit: client {{appVersion}} · {{platform}} {{arch}} ({{osVersion}}) · UI language {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}}",
"envLine": "Submitting client environment (attached automatically on submit): client {{appVersion}} · {{platform}} {{arch}} ({{osVersion}}) · UI language {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}} (this session)",
"regionLine": "Build region: {{region}}",
"regionCodeCn": "CN",
"regionCodeDev": "Dev",
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/renderer/i18n/locales/ja/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -9699,7 +9699,7 @@
},
"issueAgent": {
"command": {
"instruction": "{{appName}} にフィードバックを送りたいです。情報が揃った明確な GitHub issue にまとめるのを手伝ってください:バグか機能要望かを確認し、不足または曖昧な点だけを質問してください。ユーザーが示した発言や例は既定で要約・一般化し、個人、会話、業務を特定できる情報をそのまま転載しないでください。バグでは現象、再現手順、期待する動作と実際の動作、再現頻度、試した対処をできるだけ確認し、ユーザーの同意がある場合だけ個人情報を除いた診断の要約を含めてください。パスワード、トークン、メールアドレス、個人パス、無関係なファイル内容は含めないでください。機能要望では利用シーン、現在の困りごと、期待する結果を確認してください。情報が揃ったら cindy_helper の call_tool で submit_github_issue ツールを呼び出して提出してください(category=feedback。先に list_tools でパラメータを確認できます。提出前に確認カードが表示されます)。GitHub プラグインやアカウントの設定は不要です。既定では Cindy 公式 Bot が送信し、利用可能な GitHub アカウントがある場合のみ確認カードに追加の送信元として表示されます。作成後は issue 番号とリンクを伝え、Cindy がオープンソースであること、ソースから再現・修正・テスト・機能開発を一緒に進められることを案内してください。提出に失敗した場合は、理由をそのまま教えてください。{{details}}",
"instruction": "{{appName}} にフィードバックを送りたいです。明確な GitHub issue にまとめるのを手伝ってください:バグか要望かを見極め、足りないことだけを聞いてください。決まった質問票は使わないでください。通常の要望に欠陥のチェックリストを当てはめず、実行環境と無関係なら Harness、モデル、推論強度は尋ねないでください。ユーザーが示した発言や例は既定で要約・一般化し、個人、会話、業務を特定できる情報をそのまま転載しないでください。このチャットの画像は GitHub にアップロードされないので、「スクリーンショットを添付済み」と書かず、画像の内容を文章で説明してください。ユーザーの同意がある場合だけ個人情報を除いた診断の要約を含めてください。パスワード、トークン、メールアドレス、個人パス、無関係なファイル内容は含めないでください。機能要望では見える利用シーンと要望を書き、求められない限りリポジトリパス、実装案、受け入れ条件は書かないでください。情報が揃ったら cindy_helper の call_tool で submit_github_issue ツールを呼び出して提出してください(category=feedback。先に list_tools でパラメータを確認できます。提出前に確認カードが表示されます)。GitHub プラグインやアカウントの設定は不要です。既定では Cindy 公式 Bot が送信し、利用可能な GitHub アカウントがある場合のみ確認カードに追加の送信元として表示されます。作成後は issue 番号とリンクを伝え、Cindy がオープンソースであること、ソースから再現・修正・テスト・機能開発を一緒に進められることを案内してください。提出に失敗した場合は、理由をそのまま教えてください。{{details}}",
"detailsPrefix": "\n最初の説明:{{details}}"
},
"confirm": {
Expand All @@ -9719,8 +9719,8 @@
"publicNameHint": "この署名は Issue 本文に公開表示されます",
"anonymous": "匿名",
"useAnonymous": "匿名の署名を使用",
"envLine": "送信時に自動で付加されます:クライアント {{appVersion}} · {{platform}} {{arch}}({{osVersion}})· 表示言語 {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}}",
"envLine": "送信クライアント環境(送信時に自動で付加):クライアント {{appVersion}} · {{platform}} {{arch}}({{osVersion}})· 表示言語 {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}}(このセッション)",
"regionLine": "リージョン:{{region}}",
"regionCodeCn": "CN",
"regionCodeDev": "Dev",
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/renderer/i18n/locales/ko/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -9699,7 +9699,7 @@
},
"issueAgent": {
"command": {
"instruction": "{{appName}}에 피드백을 제출하고 싶습니다. 정보가 충분하고 명확한 GitHub issue로 정리하도록 도와주세요: 버그인지 기능 제안인지 확인하고, 빠진 정보나 모호한 부분만 질문해 주세요. 사용자가 제공한 인용문과 예시는 기본적으로 요약하거나 일반화하고 개인, 대화 또는 업무 맥락을 식별할 수 있는 정보를 그대로 복사하지 마세요. 버그라면 증상, 재현 단계, 기대 동작과 실제 동작, 재현 빈도, 시도한 해결 방법을 최대한 확인하고, 사용자가 동의한 경우에만 민감 정보를 제거한 진단 요약을 포함해 주세요. 비밀번호, 토큰, 이메일 주소, 개인 경로, 관련 없는 파일 내용은 포함하지 마세요. 기능 제안이라면 사용 시나리오, 현재 문제와 원하는 결과를 확인해 주세요. 정보가 충분해지면 cindy_helper의 call_tool로 submit_github_issue 도구를 호출해 제출해 주세요(category=feedback, 먼저 list_tools로 매개변수를 확인할 수 있습니다. 제출 전에 확인 카드가 표시됩니다). GitHub 플러그인이나 계정 설정은 필요하지 않습니다. 기본적으로 Cindy 공식 봇이 제출하며, 사용 가능한 GitHub 계정이 있을 때만 확인 카드에 추가 제출 계정으로 표시됩니다. 생성 후 issue 번호와 링크를 알려 주고, Cindy가 오픈 소스이며 소스에서 재현·수정·테스트·기능 개발을 함께 진행할 수 있다고 안내해 주세요. 제출에 실패하면 이유를 그대로 알려주세요.{{details}}",
"instruction": "{{appName}}에 피드백을 제출하고 싶습니다. 명확한 GitHub issue로 정리하도록 도와주세요: 버그인지 제안인지 파악하고, 실제로 부족한 것만 질문하세요. 고정 설문은 쓰지 마세요. 일반적인 제안에 버그 체크리스트를 들이대지 말고, 실행 환경과 무관하면 Harness, 모델, 추론 강도는 묻지 마세요. 사용자가 제공한 인용문과 예시는 기본적으로 요약하거나 일반화하고 개인, 대화 또는 업무 맥락을 식별할 수 있는 정보를 그대로 복사하지 마세요. 이 채팅의 이미지는 GitHub에 업로드되지 않으니 「스크린샷을 첨부함」이라고 쓰지 말고, 화면에 보이는 내용을 글로 설명해 주세요. 사용자가 동의한 경우에만 민감 정보를 제거한 진단 요약을 포함해 주세요. 비밀번호, 토큰, 이메일 주소, 개인 경로, 관련 없는 파일 내용은 포함하지 마세요. 기능 제안이라면 눈에 보이는 사용 장면과 요청을 쓰고, 요청하지 않는 한 저장소 경로, 구현안, 인수 조건은 쓰지 마세요. 정보가 충분해지면 cindy_helper의 call_tool로 submit_github_issue 도구를 호출해 제출해 주세요(category=feedback, 먼저 list_tools로 매개변수를 확인할 수 있습니다. 제출 전에 확인 카드가 표시됩니다). GitHub 플러그인이나 계정 설정은 필요하지 않습니다. 기본적으로 Cindy 공식 봇이 제출하며, 사용 가능한 GitHub 계정이 있을 때만 확인 카드에 추가 제출 계정으로 표시됩니다. 생성 후 issue 번호와 링크를 알려 주고, Cindy가 오픈 소스이며 소스에서 재현·수정·테스트·기능 개발을 함께 진행할 수 있다고 안내해 주세요. 제출에 실패하면 이유를 그대로 알려주세요.{{details}}",
"detailsPrefix": "\n초기 설명: {{details}}"
},
"confirm": {
Expand All @@ -9719,8 +9719,8 @@
"publicNameHint": "이 서명은 Issue 본문에 공개적으로 표시됩니다",
"anonymous": "익명",
"useAnonymous": "익명 서명 사용",
"envLine": "제출 시 자동으로 첨부됩니다: 클라이언트 {{appVersion}} · {{platform}} {{arch}}({{osVersion}}) · 표시 언어 {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}}",
"envLine": "제출 클라이언트 환경(제출 시 자동 첨부): 클라이언트 {{appVersion}} · {{platform}} {{arch}}({{osVersion}}) · 표시 언어 {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}} (지금 이 세션)",
"regionLine": "지역: {{region}}",
"regionCodeCn": "CN",
"regionCodeDev": "Dev",
Expand Down
6 changes: 3 additions & 3 deletions apps/desktop/src/renderer/i18n/locales/zh-CN/common.json
Original file line number Diff line number Diff line change
Expand Up @@ -9691,7 +9691,7 @@
},
"issueAgent": {
"command": {
"instruction": "我想给 {{appName}} 提交一条反馈。请协助我整理成一个高质量、信息完整的 GitHub issue:先确认反馈类型(bug 还是功能建议),只针对缺失或含糊的信息追问;整理时默认概括或泛化用户提供的原话和示例,不要直接复制可识别个人、对话或业务的信息;Bug 尽量补齐现象、复现步骤、期望与实际行为、复现频率、已尝试的方法,并在用户同意后纳入经过脱敏的诊断摘要,禁止提交密码、令牌、邮箱、个人路径或无关文件内容;功能建议补齐使用场景、当前痛点和期望结果。信息足够后用 cindy_helper 的 call_tool 调用 submit_github_issue 工具提交(category=feedback,可先 list_tools 查看参数要求;提交前系统会弹确认卡片给我看)。这不需要安装或配置 GitHub 插件:默认由 Cindy 官方 Bot 提交;若当前有可用的 GitHub 账号,确认卡会额外提供本人账号选项。创建成功后告诉我 issue 编号和链接,并说明 Cindy 是开源软件,询问我是否希望通过源码一起复现、修复 Bug、开发功能或准备 PR。如果提交失败,如实告诉我原因。{{details}}",
"instruction": "我想给 {{appName}} 提交一条反馈。请协助我整理成一个高质量的 GitHub issue:先弄清这是缺陷还是建议,缺什么问什么,不要套固定问卷。普通建议不必按缺陷清单追问,和环境无关不必追问 Harness、模型或推理强度。整理时默认概括或泛化用户提供的原话和示例,不要直接复制可识别个人、对话或业务的信息。对话里的图不会传到 GitHub,不要写「已提供截图」,用文字描述图上内容即可;用户同意后再纳入脱敏诊断摘要,禁止提交密码、令牌、邮箱、个人路径或无关文件内容。功能建议写用户能看见的场景和诉求,不要写仓库路径、实现方案或验收清单。信息足够后用 cindy_helper 的 call_tool 调用 submit_github_issue 工具提交(category=feedback,可先 list_tools 查看参数要求;提交前系统会弹确认卡片给我看)。这不需要安装或配置 GitHub 插件:默认由 Cindy 官方 Bot 提交;若当前有可用的 GitHub 账号,确认卡会额外提供本人账号选项。创建成功后告诉我 issue 编号和链接,并说明 Cindy 是开源软件,询问我是否希望通过源码一起复现、修复 Bug、开发功能或准备 PR。如果提交失败,如实告诉我原因。{{details}}",
"detailsPrefix": "\n我的初始描述:{{details}}"
},
"confirm": {
Expand All @@ -9711,8 +9711,8 @@
"publicNameHint": "该署名会公开显示在 Issue 正文中",
"anonymous": "匿名",
"useAnonymous": "使用匿名署名",
"envLine": "提交时将自动附加:客户端 {{appVersion}} · {{platform}} {{arch}}({{osVersion}})· 界面语言 {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}}",
"envLine": "提交客户端环境(提交时自动附加):客户端 {{appVersion}} · {{platform}} {{arch}}({{osVersion}})· 界面语言 {{uiLanguage}}",
"runtimeLine": "Harness {{harness}} · Model ID {{modelId}}(当前任务)",
"regionLine": "版本区域:{{region}}",
"regionCodeCn": "CN",
"regionCodeDev": "Dev",
Expand Down
Loading