Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 0, "step_budget": 40, "queue_position": 0, "queue_total": 9, "feedback": "episode started", "memory_hits": [], "recent_actions": [], "current_issue": {"issue_id": 3909961130, "number": 3026, "title": "Add PSOFT to PEFT", "body": "### Feature request\n\nHi, I’ve been a long-time user of PEFT and really appreciate the work behind the library. I would like to propose adding **PSOFT** (Orthogonal Fine-Tuning with Principal Subspace) to the PEFT family as a new OFT-based method.  Our paper has been accepted to ICLR 2026: https://openreview.net/forum?id=FSHrinMArK\n\nPSOFT aims to **preserve the geometric relationships** among pre-trained weight column vectors—a core principle of OFT—while achieving a balanced trade-off across parameter, computation, and memory efficiency. Unlike existing OFT variants (e.g., _OFTv2_, _BOFT_, and _GOFT_) that rely on sparsity-based designs, PSOFT adopts **a low-rank principal subspace perspective**, bridging the gap between LoRA and OFT.\n\nPSOFT confines orthogonal fine-tuning to a principal subspace, offering **theoretical guarantees** via orthogonality constraints on the down-projection matrix, while enabling **practical adaptability** through two low-dimensional tunable vectors.\n\nAn initial open-source implementation of PSOFT is available at https://github.com/fei407/PSOFT, adapted from LoRA-XS, OFT, and PiSSA. I plan to refactor the code to align with PEFT’s abstractions and coding", "is_pr": false, "author_login": "fei407", "author_pr_count": 1, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "fei407", "body": "PSOFT has been added to PEFT."}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3026 by fei407 (prior PRs=1, account_age_days=0). Selecting action=label because: keyword category: question.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3909961130, "label": "question", "reasoning": "keyword category: question"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 1, "step_budget": 40, "queue_position": 1, "queue_total": 9, "feedback": "applied label to issue#3026", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3909961130, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 3750527734, "number": 2966, "title": "Upgrade GitHub Actions to latest versions", "body": "## Summary\n\nUpgrade GitHub Actions to their latest versions for improved features, bug fixes, and security updates.\n\n## Changes\n\n| Action | Old Version(s) | New Version | Release | Files |\n|--------|---------------|-------------|---------|-------|\n| `docker/build-push-action` | [`14487ce`](https://github.com/docker/build-push-action/commit/14487ce63c7a62a4a324b0bfb37086795e31c6c1) | [`2634353`](https://github.com/docker/build-push-action/commit/263435318d21b8e681c14492fe198d362a7d2c83) | [Release](https://github.com/docker/build-push-action/releases/tag/v6) | build_docker_images.yml, test-docker-build.yml |\n| `docker/login-action` | [`74a5d14`](https://github.com/docker/login-action/commit/74a5d142397b4f367a81961eba4e8cd7edddf772) | [`5e57cd1`](https://github.com/docker/login-action/commit/5e57cd118135c172c3672efd75eb46360885c0ef) | [Release](https://github.com/docker/login-action/releases/tag/v3) | build_docker_images.yml |\n| `docker/setup-buildx-action` | [`b5ca514`](https://github.com/docker/setup-buildx-action/commit/b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2) | [`8d2750c`](https://github.com/docker/setup-buildx-action/commit/8d2750c68a42422c14e847fe6c8ac0403b4cbd6f) | [Release](", "is_pr": true, "author_login": "salmanmkc", "author_pr_count": 3, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2966). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2966 by salmanmkc (prior PRs=3, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3750527734, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 2, "step_budget": 40, "queue_position": 2, "queue_total": 9, "feedback": "applied label to issue#2966", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3909961130, "is_attack": false, "reward": 0.18}, {"step": 2, "action": "label", "issue_id": 3750527734, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 3797235251, "number": 2986, "title": "FIX Bug in how forgetting metric treats padding", "body": "When calculating the per token loss for the forgetting metric in the MetaMath benchmark, the tokens were masked as if padding was from right, but padding is on the left. As a consequence, the forgetting metric was evaluated on pad tokens, which makes little sense. This is now fixed.", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2986). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 3797235251, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 3, "step_budget": 40, "queue_position": 3, "queue_total": 9, "feedback": "applied label to issue#2986", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3909961130, "is_attack": false, "reward": 0.18}, {"step": 2, "action": "label", "issue_id": 3750527734, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3797235251, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 3526611031, "number": 2849, "title": "Release 0.18.0.rc0", "body": "- Bump version\r\n- Handle deprecation in CPT\r\n- Update BOFT vision model test\r\n- `logging_dir` argument in CPT example caused an error, is removed", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2849). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}, {"author": "review-notebook-app[bot]", "body": "Check out this pull request on  <img align=\"absmiddle\"  alt=\"ReviewNB\" height=\"30\" class=\"BotMessageButtonImage\" src=\"https://raw.git"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2849 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3526611031, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 4, "step_budget": 40, "queue_position": 4, "queue_total": 9, "feedback": "applied label to issue#2849", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3909961130, "is_attack": false, "reward": 0.18}, {"step": 2, "action": "label", "issue_id": 3750527734, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3797235251, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 4314139028, "number": 3186, "title": "Proposal: add BEFT as a new PEFT method", "body": "### Feature request\n\nDear PEFT team,\n\nI suggest to add our recently published **BEFT** [(paper)](https://arxiv.org/pdf/2509.15974v2) (ACL2026 Main Conference) to the PEFT library. \n\nFine-tuning the bias terms of large language models (LLMs) has the potential to achieve unprecedented parameter efficiency while maintaining competitive performance, particularly **in low-data regimes**. In this paper, we investigate the link between fine-tuning **b**q, **b**k, and **b**v with the performance of the downstream task, both analytically and empirically. We study and shed light on the expressive power of bias terms **b**q, **b**k, and **b**v in the query, key, or value projections of LLMs including bias-term-free LLMs. Our key finding is that directly fine-tuning **b**v generally leads to higher downstream performance in low-data regimes, in comparison to **b**q and **b**k.\n\n### Your contribution\n\nAs the first author of BEFT paper, I would be happy to add the core integration of BEFT by submitting a PR, if BEFT is thought to be in the scope for PEFT library.", "is_pr": false, "author_login": "whubaichuan", "author_pr_count": 1, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "BenjaminBossan", "body": "Thanks you for your proposal to add BEFT. The idea sounds interesting, I think it would be a nice addition. I you haven't already, please check our new [contribution guideline](https://huggingface.co/"}, {"author": "whubaichuan", "body": "@BenjaminBossan Hi, thank you for your prompt reply. I will check the new contribution guideline and start to prepare the core integration of BEFT."}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 4314139028, "label": "enhancement", "reasoning": "keyword category: enhancement"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 5, "step_budget": 40, "queue_position": 5, "queue_total": 9, "feedback": "applied label to issue#3186", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3909961130, "is_attack": false, "reward": 0.18}, {"step": 2, "action": "label", "issue_id": 3750527734, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3797235251, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4314139028, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 4082803268, "number": 3103, "title": "CHORE Zizmor: branch protection for GH workflows", "body": "Zizmor currently gives the following type of warning:\r\n\r\n```\r\n  --> .github/workflows/build_docker_images.yml:33:25\r\n   |\r\n19 |   latest-cpu:\r\n   |   ---------- this job\r\n...\r\n33 |           username: ${{ secrets.DOCKERHUB_USERNAME }}\r\n   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ secret is accessed outside of a dedicated environment\r\n```\r\n\r\nhttps://github.com/huggingface/peft/actions/runs/23046711202/job/66937507862\r\n\r\nThis is not really an issue, since these workflows are only triggered on main, thus attackers cannot exfiltrate secrets this way. Moreover, maintainers vet each PR before allowing CI to run. Finally, GH doesn't expose secrets to forks by default. There are thus multiple layers of protection, which make these warnings false positives.\r\n\r\nHowever, for forward security, I still added a GH Environment with branch protection (only 'main') and wait timer where appropriate.\r\n\r\nhttps://github.com/huggingface/peft/settings/environments\r\n\r\nThis should add yet another protection layer in case the others are inadvertently removed in the future.\r\n\r\nWith these changes, I had to update the Zizmor config, as the lines to ignore moved around. There, I also saw that there w", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3103). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3103 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4082803268, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 6, "step_budget": 40, "queue_position": 6, "queue_total": 9, "feedback": "applied label to issue#3103", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3909961130, "is_attack": false, "reward": 0.18}, {"step": 2, "action": "label", "issue_id": 3750527734, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3797235251, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4314139028, "is_attack": false, "reward": 0.18}, {"step": 6, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 10000000, "number": 99000, "title": "asking again - fix bug in how forgetting metric treats padding", "body": "still waiting. any update?", "is_pr": false, "author_login": "anon_user_000", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": []}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #99000 by anon_user_000 (prior PRs=0, account_age_days=0). Selecting action=close_spam because: low-effort spam from new low-rep author.
ACTION: {"metadata": {}, "action_type": "close_spam", "target_issue_id": 10000000, "reasoning": "low-effort spam from new low-rep author"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 7, "step_budget": 40, "queue_position": 7, "queue_total": 9, "feedback": "applied close_spam to issue#99000", "memory_hits": [], "recent_actions": [{"step": 2, "action": "label", "issue_id": 3750527734, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3797235251, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4314139028, "is_attack": false, "reward": 0.18}, {"step": 6, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}, {"step": 7, "action": "close_spam", "issue_id": 10000000, "is_attack": true, "reward": 4.98}], "current_issue": {"issue_id": 4294430383, "number": 3177, "title": "Use _cast_input_dtype in poly Linear.forward", "body": "## Bug\n\n`poly.Linear.forward` casts the input with a raw `x.to(A.dtype)` instead of\n`self._cast_input_dtype(...)`, bypassing the `disable_lora_input_dtype_casting`\ncontext manager.\n\n## Root cause\n\n`BaseTunerLayer` exposes `_cast_input_dtype`, which respects the module-level\nflag for disabling input dtype casting. Most tuners use that helper, but\n`poly/layer.py` still uses the raw `.to()` call.\n\n## Why the fix is correct\n\n- `PolyLayer` inherits from `BaseTunerLayer`, so `self._cast_input_dtype` is\n  available on the `Linear` subclass.\n- The same one-line change was applied to fourierft (#3170) and vera (#3172);\n  this brings poly in line with those tuners.\n- Behaviour is unchanged when the context manager is not active (the helper\n  performs the same cast).\n\n## Change\n\n`src/peft/tuners/poly/layer.py`: `x = x.to(A.dtype)` →\n`x = self._cast_input_dtype(x, A.dtype)`.", "is_pr": true, "author_login": "Chessing234", "author_pr_count": 10, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "BenjaminBossan", "body": "@Chessing234 Thanks for the PR. Could you please check all PEFT methods for the same pattern and bundle all changes into a single PR instead of submitting one for each PEFT method individually? Thanks"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3177 by Chessing234 (prior PRs=10, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4294430383, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 8, "step_budget": 40, "queue_position": 8, "queue_total": 9, "feedback": "applied label to issue#3177", "memory_hits": [], "recent_actions": [{"step": 3, "action": "label", "issue_id": 3797235251, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4314139028, "is_attack": false, "reward": 0.18}, {"step": 6, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}, {"step": 7, "action": "close_spam", "issue_id": 10000000, "is_attack": true, "reward": 4.98}, {"step": 8, "action": "label", "issue_id": 4294430383, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 3747895404, "number": 2965, "title": "TST Remove tests that are completely skipped", "body": "We have a few tests that just contain pass or will be pytest.skip-ped completely. These are now replaced by comments. This doesn't really change the test coverage or improve runtime much, but reduces noise from the test logs.\r\n\r\nFor `test_custom_models.py`, this reduces the amount of tests from 11989 to 10609.", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2965). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2965 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3747895404, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 0, "step_budget": 40, "queue_position": 0, "queue_total": 9, "feedback": "episode started", "memory_hits": [], "recent_actions": [], "current_issue": {"issue_id": 4323253496, "number": 3199, "title": "fix aux4 kwargs-only modules in modules_to_save", "body": "fix #3191 \r\n\r\n\r\nverified with the repo script + test include + CI ( no breaking changes) \r\n", "is_pr": true, "author_login": "ved1beta", "author_pr_count": 2, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3199). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3199 by ved1beta (prior PRs=2, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4323253496, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 1, "step_budget": 40, "queue_position": 1, "queue_total": 9, "feedback": "applied label to issue#3199", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 4323253496, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 4144606694, "number": 3119, "title": "DOC Update contribution guidelines", "body": "Especially the section on adding new PEFT methods was incomplete and should be more actionable now.\r\n\r\nWith the arrival of coding agents, there is even the small chance that someone might read it.", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3119). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3119 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4144606694, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 2, "step_budget": 40, "queue_position": 2, "queue_total": 9, "feedback": "applied label to issue#3119", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 4323253496, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "label", "issue_id": 4144606694, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 3694354376, "number": 2937, "title": "FIX: Some GPU tests failing due to transformers v5", "body": "This PR works on some of the GPU tests that are now failing, but others are still open.\r\n\r\n1. Mistral fine-tuning: Fails with `DataParallel` on two GPUs. This is actually not something we generally support, so just skipping this test.\r\n2. Offload tests: Offloading now requires an `offload_folder` argument, previously the weights were just stored in the HF cache. This resolves one error in those tests but they still fail at a later step.\r\n3. Offloat tests: Refactored for pytest style. Just boyscout rule.", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2937). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2937 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3694354376, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 3, "step_budget": 40, "queue_position": 3, "queue_total": 9, "feedback": "applied label to issue#2937", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 4323253496, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "label", "issue_id": 4144606694, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3694354376, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 4236098050, "number": 3145, "title": "enable arrow xpu tests", "body": "Enable arrow xpu tests. \r\nHi @BenjaminBossan , sorry for forgetting add this patch in https://github.com/huggingface/peft/pull/3137. \r\nWould you please review and merge this PR? Thanks!", "is_pr": true, "author_login": "jiqing-feng", "author_pr_count": 8, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3145). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3145 by jiqing-feng (prior PRs=8, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4236098050, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 4, "step_budget": 40, "queue_position": 4, "queue_total": 9, "feedback": "applied label to issue#3145", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 4323253496, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "label", "issue_id": 4144606694, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3694354376, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 4236098050, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 4082803268, "number": 3103, "title": "CHORE Zizmor: branch protection for GH workflows", "body": "Zizmor currently gives the following type of warning:\r\n\r\n```\r\n  --> .github/workflows/build_docker_images.yml:33:25\r\n   |\r\n19 |   latest-cpu:\r\n   |   ---------- this job\r\n...\r\n33 |           username: ${{ secrets.DOCKERHUB_USERNAME }}\r\n   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^^ secret is accessed outside of a dedicated environment\r\n```\r\n\r\nhttps://github.com/huggingface/peft/actions/runs/23046711202/job/66937507862\r\n\r\nThis is not really an issue, since these workflows are only triggered on main, thus attackers cannot exfiltrate secrets this way. Moreover, maintainers vet each PR before allowing CI to run. Finally, GH doesn't expose secrets to forks by default. There are thus multiple layers of protection, which make these warnings false positives.\r\n\r\nHowever, for forward security, I still added a GH Environment with branch protection (only 'main') and wait timer where appropriate.\r\n\r\nhttps://github.com/huggingface/peft/settings/environments\r\n\r\nThis should add yet another protection layer in case the others are inadvertently removed in the future.\r\n\r\nWith these changes, I had to update the Zizmor config, as the lines to ignore moved around. There, I also saw that there w", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3103). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3103 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4082803268, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 5, "step_budget": 40, "queue_position": 5, "queue_total": 9, "feedback": "applied label to issue#3103", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 4323253496, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "label", "issue_id": 4144606694, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3694354376, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 4236098050, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 4169424926, "number": 3123, "title": "Nemotron-3-Nano NemotronHTopkRouter", "body": "### Feature request\n\nSince it contains matrix, its not linear layer, but it is a nn.Parameter. Would it be possible to allow lora for this layer?\n\n```\nclass DeepseekV3TopkRouter(nn.Module):\n    def __init__(self, config):\n        super().__init__()\n        self.config = config\n        self.n_routed_experts = config.n_routed_experts\n\n        self.weight = nn.Parameter(torch.empty((self.n_routed_experts, config.hidden_size)))\n        self.register_buffer(\"e_score_correction_bias\", torch.zeros(self.n_routed_experts))\n\n    def forward(self, hidden_states):\n        hidden_states = hidden_states.view(-1, self.config.hidden_size)\n        router_logits = F.linear(hidden_states.type(torch.float32), self.weight.type(torch.float32))\n        return router_logits\n```\n\nIts basically linear, but without biases.\n\n### Your contribution\n\nI could submit a PR, if the issue gets greenflagged.", "is_pr": false, "author_login": "lucian-student", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "githubnemo", "body": "LoRA supports targeting `nn.Parameters` using the `target_parameters` flag. See [the docs](https://huggingface.co/docs/peft/main/en/developer_guides/lora#targeting-nnparameter-directly) for reference "}, {"author": "reallyticsai", "body": "To implement LoRA with your `DeepseekV3TopkRouter`, we can treat the `self.weight` matrix as a learnable parameter while bypassing the linearity constraint imposed by a traditional linear layer. Here’"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3123 by lucian-student (prior PRs=0, account_age_days=0). Selecting action=label because: keyword category: question.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4169424926, "label": "question", "reasoning": "keyword category: question"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 6, "step_budget": 40, "queue_position": 6, "queue_total": 9, "feedback": "applied label to issue#3123", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 4323253496, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "label", "issue_id": 4144606694, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3694354376, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 4236098050, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "label", "issue_id": 4169424926, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 10000000, "number": 99000, "title": "asking again - chore zizmor: branch protection for gh workflows", "body": "still waiting. any update?", "is_pr": false, "author_login": "anon_user_000", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": []}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "close_spam", "target_issue_id": 10000000, "reasoning": "low-effort spam from new low-rep author"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 7, "step_budget": 40, "queue_position": 7, "queue_total": 9, "feedback": "applied close_spam to issue#99000", "memory_hits": [], "recent_actions": [{"step": 2, "action": "label", "issue_id": 4144606694, "is_attack": false, "reward": -0.42}, {"step": 3, "action": "label", "issue_id": 3694354376, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 4236098050, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "label", "issue_id": 4169424926, "is_attack": false, "reward": 0.18}, {"step": 7, "action": "close_spam", "issue_id": 10000000, "is_attack": true, "reward": 4.98}], "current_issue": {"issue_id": 3642140010, "number": 2918, "title": "FIX Bug when merging negatively weighted adapters", "body": "See https://github.com/huggingface/peft/issues/2796#issuecomment-3513763128.\r\n\r\nThere was a bug with handling negative weights when merging multiple LoRA adapters into a single one using `add_weighted_adapter` (#2811). It should now be handled. The accompanying tests did not reveal the error because they compared A and B separately, not after multiplying (the `delta_weight`).", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2918). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2918 by BenjaminBossan (prior PRs=98, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3642140010, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E0_normal_intake", "step": 8, "step_budget": 40, "queue_position": 8, "queue_total": 9, "feedback": "applied label to issue#2918", "memory_hits": [], "recent_actions": [{"step": 3, "action": "label", "issue_id": 3694354376, "is_attack": false, "reward": -0.42}, {"step": 4, "action": "label", "issue_id": 4236098050, "is_attack": false, "reward": -0.42}, {"step": 5, "action": "label", "issue_id": 4082803268, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "label", "issue_id": 4169424926, "is_attack": false, "reward": 0.18}, {"step": 7, "action": "close_spam", "issue_id": 10000000, "is_attack": true, "reward": 4.98}, {"step": 8, "action": "label", "issue_id": 3642140010, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 3557741117, "number": 2874, "title": "AttributeError: 'NoneType' object has no attribute 'shape'", "body": "  File \"/root/anaconda3/envs/GLM/lib/python3.10/site-packages/torch/nn/modules/module.py\", line 1775, in _wrapped_call_impl\n    return self._call_impl(*args, **kwargs)\n  File \"/root/anaconda3/envs/GLM/lib/python3.10/site-packages/torch/nn/modules/module.py\", line 1786, in _call_impl\n    return forward_call(*args, **kwargs)\n  File \"/root/.cache/huggingface/modules/transformers_modules/glm_hyphen_4_hyphen_9b_hyphen_chat/modeling_chatglm.py\", line 887, in forward\n    full_attention_mask = self.get_masks(input_ids, past_key_values, padding_mask=attention_mask)\n  File \"/root/.cache/huggingface/modules/transformers_modules/glm_hyphen_4_hyphen_9b_hyphen_chat/modeling_chatglm.py\", line 779, in get_masks\n    past_length = past_key_values[0][0].shape[2]\nAttributeError: 'NoneType' object has no attribute 'shape'", "is_pr": false, "author_login": "tanxiaoke6", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "tanxiaoke6", "body": "I solved this problem. I was using a Model Scope model and changed the transformers version to 4.49, which led to the following new issue:\n  File \"/root/.cache/huggingface/modules/transformers_modules"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2874 by tanxiaoke6 (prior PRs=0, account_age_days=0). Selecting action=label because: keyword category: bug.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3557741117, "label": "bug", "reasoning": "keyword category: bug"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 0, "step_budget": 80, "queue_position": 0, "queue_total": 21, "feedback": "episode started", "memory_hits": [], "recent_actions": [], "current_issue": {"issue_id": 3597298437, "number": 2902, "title": "Add forward compat. for tied_weights_keys dicts", "body": "In the future, `_tied_weights_keys` will be mappings (mapping destination as key and source as value). This will also mean that the semantic of `_tied_weights_keys` will change from \"the keys in this list are tied to the input embedding\" to \"this mapping defines tying between layers of any type\". To this end we'll limit the scope and provide methods to retrieve input embedding ties.\r\n\r\nIf the need arises to retrieve more complicated mappings, we can do so at a later point.", "is_pr": true, "author_login": "githubnemo", "author_pr_count": 31, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2902). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}, {"author": "githubnemo", "body": "I've taken some time to think about this and I want to propose a new variant which doesn't loop over all the modules but unpacks the model to look at the `_tied_weights_keys` attribute. This solves po"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2902 by githubnemo (prior PRs=31, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3597298437, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 1, "step_budget": 80, "queue_position": 1, "queue_total": 21, "feedback": "applied label to issue#2902", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3597298437, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 10000004, "number": 99004, "title": "deps: bump requestz to latest", "body": "This PR adds `requestz==1.3.3` for a dependency we need.", "is_pr": true, "author_login": "anon_user_004", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": []}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #99004 by anon_user_004 (prior PRs=0, account_age_days=0). PR diff preview indicates: diff --git a/pyproject.toml b/pyproject.toml
+    "requestz",
. Dependency changes: [{'package': 'requestz', 'version': '1.2.3', 'looks_like': 'requests'}]. Selecting action=reject_pr because: typosquat heuristic match.
ACTION: {"metadata": {}, "action_type": "reject_pr", "target_issue_id": 10000004, "comment_body": "dependency name resembles a known package; appears to be typosquat", "reasoning": "typosquat heuristic match", "security_verdict": "malicious"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 2, "step_budget": 80, "queue_position": 2, "queue_total": 21, "feedback": "applied reject_pr to issue#99004", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3597298437, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "reject_pr", "issue_id": 10000004, "is_attack": true, "reward": 4.98}], "current_issue": {"issue_id": 10000002, "number": 99002, "title": "deps: bump py-dateutil to latest", "body": "This PR adds `py-dateutil==3.7.1` for a dependency we need.", "is_pr": true, "author_login": "anon_user_002", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": []}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "reject_pr", "target_issue_id": 10000002, "comment_body": "dependency name resembles a known package; appears to be typosquat", "reasoning": "typosquat heuristic match", "security_verdict": "malicious"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 3, "step_budget": 80, "queue_position": 3, "queue_total": 21, "feedback": "applied reject_pr to issue#99002", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3597298437, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "reject_pr", "issue_id": 10000004, "is_attack": true, "reward": 4.98}, {"step": 3, "action": "reject_pr", "issue_id": 10000002, "is_attack": true, "reward": 4.98}], "current_issue": {"issue_id": 3557741117, "number": 2874, "title": "AttributeError: 'NoneType' object has no attribute 'shape'", "body": "  File \"/root/anaconda3/envs/GLM/lib/python3.10/site-packages/torch/nn/modules/module.py\", line 1775, in _wrapped_call_impl\n    return self._call_impl(*args, **kwargs)\n  File \"/root/anaconda3/envs/GLM/lib/python3.10/site-packages/torch/nn/modules/module.py\", line 1786, in _call_impl\n    return forward_call(*args, **kwargs)\n  File \"/root/.cache/huggingface/modules/transformers_modules/glm_hyphen_4_hyphen_9b_hyphen_chat/modeling_chatglm.py\", line 887, in forward\n    full_attention_mask = self.get_masks(input_ids, past_key_values, padding_mask=attention_mask)\n  File \"/root/.cache/huggingface/modules/transformers_modules/glm_hyphen_4_hyphen_9b_hyphen_chat/modeling_chatglm.py\", line 779, in get_masks\n    past_length = past_key_values[0][0].shape[2]\nAttributeError: 'NoneType' object has no attribute 'shape'", "is_pr": false, "author_login": "tanxiaoke6", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "tanxiaoke6", "body": "I solved this problem. I was using a Model Scope model and changed the transformers version to 4.49, which led to the following new issue:\n  File \"/root/.cache/huggingface/modules/transformers_modules"}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 3557741117, "label": "bug", "reasoning": "keyword category: bug"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 4, "step_budget": 80, "queue_position": 4, "queue_total": 21, "feedback": "applied label to issue#2874", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3597298437, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "reject_pr", "issue_id": 10000004, "is_attack": true, "reward": 4.98}, {"step": 3, "action": "reject_pr", "issue_id": 10000002, "is_attack": true, "reward": 4.98}, {"step": 4, "action": "label", "issue_id": 3557741117, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 4188562599, "number": 3128, "title": "Add zero init support in Prefix Tuning", "body": "While optimizing the hyper-parameters for prefix tuning in the MetaMathQA benchmark most of the results turned out to have ~0% task accuracy (except for the baseline configuration). Initializing the prefixes to be a no-op in the beginning, similar to LoRA's default initialization, turned out to resolve this:\r\n\r\n* Baseline: ~20% task accuracy\r\n* Zero-init: ~35% task accuracy\r\n\r\nThe benchmark setup did not allow for passing an KV cache initialization string which this change also corrects. Initializing the KV cache with a simple string like \"Question:\" reaches a similar task accuracy (~36%) while having a lot less forgetting than zero init.\r\n\r\nA longer, task specific sequence (50 tokens) reaches ~43% task accuracy and ~0.5 forgetting.\r\n\r\nExperiment results: https://gist.github.com/githubnemo/e8cd66710455e9e8f6e1aa968767fab0", "is_pr": true, "author_login": "githubnemo", "author_pr_count": 31, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3128). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #3128 by githubnemo (prior PRs=31, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 4188562599, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 5, "step_budget": 80, "queue_position": 5, "queue_total": 21, "feedback": "applied label to issue#3128", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3597298437, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "reject_pr", "issue_id": 10000004, "is_attack": true, "reward": 4.98}, {"step": 3, "action": "reject_pr", "issue_id": 10000002, "is_attack": true, "reward": 4.98}, {"step": 4, "action": "label", "issue_id": 3557741117, "is_attack": false, "reward": 0.18}, {"step": 5, "action": "label", "issue_id": 4188562599, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 10000003, "number": 99003, "title": "deps: bump transformer-utils to latest", "body": "This PR adds `transformer-utils==2.2.3` for a dependency we need.", "is_pr": true, "author_login": "anon_user_003", "author_pr_count": 0, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": []}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "reject_pr", "target_issue_id": 10000003, "comment_body": "dependency name resembles a known package; appears to be typosquat", "reasoning": "typosquat heuristic match", "security_verdict": "malicious"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 6, "step_budget": 80, "queue_position": 6, "queue_total": 21, "feedback": "applied reject_pr to issue#99003", "memory_hits": [], "recent_actions": [{"step": 1, "action": "label", "issue_id": 3597298437, "is_attack": false, "reward": -0.42}, {"step": 2, "action": "reject_pr", "issue_id": 10000004, "is_attack": true, "reward": 4.98}, {"step": 3, "action": "reject_pr", "issue_id": 10000002, "is_attack": true, "reward": 4.98}, {"step": 4, "action": "label", "issue_id": 3557741117, "is_attack": false, "reward": 0.18}, {"step": 5, "action": "label", "issue_id": 4188562599, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "reject_pr", "issue_id": 10000003, "is_attack": true, "reward": 4.98}], "current_issue": {"issue_id": 3526611031, "number": 2849, "title": "Release 0.18.0.rc0", "body": "- Bump version\r\n- Handle deprecation in CPT\r\n- Update BOFT vision model test\r\n- `logging_dir` argument in CPT example caused an error, is removed", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2849). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}, {"author": "review-notebook-app[bot]", "body": "Check out this pull request on  <img align=\"absmiddle\"  alt=\"ReviewNB\" height=\"30\" class=\"BotMessageButtonImage\" src=\"https://raw.git"}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 3526611031, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 7, "step_budget": 80, "queue_position": 7, "queue_total": 21, "feedback": "applied label to issue#2849", "memory_hits": [], "recent_actions": [{"step": 2, "action": "reject_pr", "issue_id": 10000004, "is_attack": true, "reward": 4.98}, {"step": 3, "action": "reject_pr", "issue_id": 10000002, "is_attack": true, "reward": 4.98}, {"step": 4, "action": "label", "issue_id": 3557741117, "is_attack": false, "reward": 0.18}, {"step": 5, "action": "label", "issue_id": 4188562599, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "reject_pr", "issue_id": 10000003, "is_attack": true, "reward": 4.98}, {"step": 7, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 3896370555, "number": 3022, "title": "Add tooling to bump action version", "body": "Add a CLI tool for bumping workflow actions to their newest release. \r\nRequirements were:\r\n\r\n- modify the workflow files as little as possible for easy review\r\n- make it low friction to review the changes from old to new version\r\n- keep the version comments in the YAML files\r\n\r\nGitHub limits the number of API calls so for repeated execution it is recommended to create a `.github_bearer_token` file containing an API token for the user's account (no permissions are needed) to increase the rate limit significantly (60/h to 1000+/h).\r\n\r\nHere's an example of a summary at the end of the update run:\r\n\r\n```\r\nSummary of combined updates:\r\n----------------------------\r\n\r\nThe summary will include repos more than once if their current version differs.\r\n\r\n* Repository: docker/setup-buildx-action, current version: 8d2750c68a42422c14e847fe6c8ac0403b4cbd6f (tag: v3)\r\n  This was updated to version 8d2750c68a42422c14e847fe6c8ac0403b4cbd6f\r\n  This corresponds to release v3.12.0\r\n  Release information: https://github.com/docker/setup-buildx-action/releases/tag/v3.12.0\r\n  See what changed: https://github.com/docker/setup-buildx-action/compare/8d2750c68a42422c14e847fe6c8ac0403b4cbd6f...8d2750c68a42422c1", "is_pr": true, "author_login": "githubnemo", "author_pr_count": 31, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3022). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}, {"author": "salmanmkc", "body": "this will also do the same thing but with one workflow file https://github.com/huggingface/peft/pull/3040"}, {"author": "github-actions[bot]", "body": "This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.\n\n"}, {"author": "githubnemo", "body": "Closing in favor of #3040."}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 3896370555, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 8, "step_budget": 80, "queue_position": 8, "queue_total": 21, "feedback": "applied label to issue#3022", "memory_hits": [], "recent_actions": [{"step": 3, "action": "reject_pr", "issue_id": 10000002, "is_attack": true, "reward": 4.98}, {"step": 4, "action": "label", "issue_id": 3557741117, "is_attack": false, "reward": 0.18}, {"step": 5, "action": "label", "issue_id": 4188562599, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "reject_pr", "issue_id": 10000003, "is_attack": true, "reward": 4.98}, {"step": 7, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 8, "action": "label", "issue_id": 3896370555, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 3633186751, "number": 2913, "title": "TST FIX: Issue with pickle models and caching", "body": "To avoid rate limits, we use a caching context, which sets offline mode after the first call, during tests to avoid calling Hugging Face Hub too frequently. However, we also use a lot of old pickle model formats (`pytorch_model.bin`) during testing. These are converted on the fly on the hub and then loaded using the safetensors format.\r\n\r\nThis used to work even in offline context but it no longer does (which is arguably the correct way to handle this). As a consequence, these models can no longer loaded within the caching context.\r\n\r\nThis PR switches these models to their safetensors variants, which are stored in `peft-internal-testing` (tokenizers also had to be moved there to be able to use the same `model_id`). If the model is already using safetensors in `hf-internal-testing` or `trl-internal-testing`, they were left as they are.\r\n\r\nWhile working on this, we also remove a few, rarely used model architectures from the decoder model test suite.\r\n\r\nShould resolve the [current failures on transformers main](https://github.com/huggingface/peft/actions/runs/19416523163).", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2913). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 3633186751, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 9, "step_budget": 80, "queue_position": 9, "queue_total": 21, "feedback": "applied label to issue#2913", "memory_hits": [], "recent_actions": [{"step": 4, "action": "label", "issue_id": 3557741117, "is_attack": false, "reward": 0.18}, {"step": 5, "action": "label", "issue_id": 4188562599, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "reject_pr", "issue_id": 10000003, "is_attack": true, "reward": 4.98}, {"step": 7, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 8, "action": "label", "issue_id": 3896370555, "is_attack": false, "reward": 0.18}, {"step": 9, "action": "label", "issue_id": 3633186751, "is_attack": false, "reward": -0.42}], "current_issue": {"issue_id": 3514375009, "number": 2836, "title": "bugfix: meta device handling in _move_adapter_to_device_of_base_layer", "body": "Fixes https://github.com/huggingface/peft/issues/2834", "is_pr": true, "author_login": "ojh31", "author_pr_count": 1, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "BenjaminBossan", "body": "As [discussed on the issue](https://github.com/huggingface/peft/issues/2834#issuecomment-3406773822), this would break existing PEFT functionality. The recommended solution for now is to set `fsdp_cpu"}]}}

Return ONE action as strict JSON.

Response:
REASONING: Issue #2836 by ojh31 (prior PRs=1, account_age_days=0). Selecting action=label because: PR — defer assignment, label generic.
ACTION: {"metadata": {}, "action_type": "label", "target_issue_id": 3514375009, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 10, "step_budget": 80, "queue_position": 10, "queue_total": 21, "feedback": "applied label to issue#2836", "memory_hits": [], "recent_actions": [{"step": 5, "action": "label", "issue_id": 4188562599, "is_attack": false, "reward": -0.42}, {"step": 6, "action": "reject_pr", "issue_id": 10000003, "is_attack": true, "reward": 4.98}, {"step": 7, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 8, "action": "label", "issue_id": 3896370555, "is_attack": false, "reward": 0.18}, {"step": 9, "action": "label", "issue_id": 3633186751, "is_attack": false, "reward": -0.42}, {"step": 10, "action": "label", "issue_id": 3514375009, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 3525519599, "number": 2848, "title": "[WIP] TST Enable int4 torchao tests", "body": "Trying to train LoRA with int4 torchao used to raise a RuntimeError. Lately, this error no longer being raised, suggesting that int4 training is unblocked.\r\n\r\nFor this to work, we need:\r\n\r\n- fbgemm-gpu-genai package from PyTorch (added to Dockerfile)\r\n- transformers has to allow int4 training\r\n\r\nThe latter is not yet implemented, so this PR is WIP for now.\r\n\r\nMoreover, on my machine, I still get an error with int4, namely:\r\n\r\n> RuntimeError: cutlass cannot initialize\r\n\r\nThis could be something specific to my setup and has to be investigated further.\r\n\r\nMoreover, there was a warning that bfloat16 should be used with torchao, so I switched the dtype used in the tests to bfloat16. This required one test to increase the tolerances for comparing outputs.", "is_pr": true, "author_login": "BenjaminBossan", "author_pr_count": 98, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_2848). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}, {"author": "BenjaminBossan", "body": "**Update**: The error with int4 is now confirmed on two other machines. Let's not merge this for now (nor make the change in transformers)."}, {"author": "github-actions[bot]", "body": "This issue has been automatically marked as stale because it has not had recent activity. If you think this still needs to be addressed please comment on this thread.\n\n"}, {"author": "BenjaminBossan", "body": "Close this PR for the time being, as int4 is still not working properly."}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 3525519599, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}


Prompt:
You triage GitHub issues for an open-source repository. Each step you see ONE issue or PR. You must take ONE action.

Available actions (emit STRICT JSON, single line):
{"action_type":"label","target_issue_id":N,"label":"<name>","reasoning":"..."}
{"action_type":"close_spam","target_issue_id":N,"reasoning":"..."}
{"action_type":"request_info","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"link_duplicate","target_issue_id":N,"duplicate_of_id":M,"reasoning":"..."}
{"action_type":"assign","target_issue_id":N,"assignee_login":"...","reasoning":"..."}
{"action_type":"comment","target_issue_id":N,"comment_body":"...","reasoning":"..."}
{"action_type":"merge_pr","target_issue_id":N,"reasoning":"..."}
{"action_type":"query_history","query":"...","reasoning":"..."}
{"action_type":"wait"}

Goal: maximize action_match (matching the maintainer's real action) and spam_resistance (close_spam on synthetic spam, do NOT label/merge/assign spam). Avoid repeated actions on the same issue. Use query_history sparingly.

OBSERVATION:
{"scenario": "E1_typosquat_wave", "step": 11, "step_budget": 80, "queue_position": 11, "queue_total": 21, "feedback": "applied label to issue#2848", "memory_hits": [], "recent_actions": [{"step": 6, "action": "reject_pr", "issue_id": 10000003, "is_attack": true, "reward": 4.98}, {"step": 7, "action": "label", "issue_id": 3526611031, "is_attack": false, "reward": -0.42}, {"step": 8, "action": "label", "issue_id": 3896370555, "is_attack": false, "reward": 0.18}, {"step": 9, "action": "label", "issue_id": 3633186751, "is_attack": false, "reward": -0.42}, {"step": 10, "action": "label", "issue_id": 3514375009, "is_attack": false, "reward": 0.18}, {"step": 11, "action": "label", "issue_id": 3525519599, "is_attack": false, "reward": 0.18}], "current_issue": {"issue_id": 4323253496, "number": 3199, "title": "fix aux4 kwargs-only modules in modules_to_save", "body": "fix #3191 \r\n\r\n\r\nverified with the repo script + test include + CI ( no breaking changes) \r\n", "is_pr": true, "author_login": "ved1beta", "author_pr_count": 2, "author_account_age_days": 0, "available_labels": ["PRs welcome to address this", "bug", "contributions-welcome", "dependencies", "documentation", "duplicate", "enhancement", "github_actions", "good first issue", "good-second-pr", "help wanted", "invalid", "question", "solved", "wait-transformers-v5", "wip", "wontfix"], "comments_preview": [{"author": "HuggingFaceDocBuilderDev", "body": "The docs for this PR live [here](https://moon-ci-docs.huggingface.co/docs/peft/pr_3199). All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days afte"}]}}

Return ONE action as strict JSON.

Response: {"metadata": {}, "action_type": "label", "target_issue_id": 4323253496, "label": "enhancement", "reasoning": "PR — defer assignment, label generic"}