From ba75cc28b5fe783f65527b2028192b880fdd2381 Mon Sep 17 00:00:00 2001 From: Otto Date: Wed, 18 Feb 2026 13:36:12 +0000 Subject: [PATCH] fix(copilot): Remove description from feature request search, add PII prevention (#12155) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two targeted changes to the CoPilot feature request tools: 1. **Remove description from search results** — The `search_feature_requests` tool no longer returns issue descriptions. Only the title is needed for duplicate detection, reducing unnecessary data exposure. 2. **Prevent PII in created issues** — Updated the `create_feature_request` tool description and parameter descriptions to explicitly instruct the LLM to never include personally identifiable information (names, emails, company names, etc.) in Linear issue titles and descriptions. Resolves [SECRT-2010](https://linear.app/autogpt/issue/SECRT-2010) --- .../backend/copilot/tools/feature_requests.py | 21 ++++++++++++++----- .../copilot/tools/feature_requests_test.py | 2 -- .../backend/backend/copilot/tools/models.py | 1 - 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/autogpt_platform/backend/backend/copilot/tools/feature_requests.py b/autogpt_platform/backend/backend/copilot/tools/feature_requests.py index 2c9e8cd017..06f1faeaee 100644 --- a/autogpt_platform/backend/backend/copilot/tools/feature_requests.py +++ b/autogpt_platform/backend/backend/copilot/tools/feature_requests.py @@ -33,7 +33,6 @@ query SearchFeatureRequests($term: String!, $filter: IssueFilter, $first: Int) { id identifier title - description } } } @@ -205,7 +204,6 @@ class SearchFeatureRequestsTool(BaseTool): id=node["id"], identifier=node["identifier"], title=node["title"], - description=node.get("description"), ) for node in nodes ] @@ -239,7 +237,11 @@ class CreateFeatureRequestTool(BaseTool): "Create a new feature request or add a customer need to an existing one. " "Always search first with search_feature_requests to avoid duplicates. " "If a matching request exists, pass its ID as existing_issue_id to add " - "the user's need to it instead of creating a duplicate." + "the user's need to it instead of creating a duplicate. " + "IMPORTANT: Never include personally identifiable information (PII) in " + "the title or description — no names, emails, phone numbers, company " + "names, or other identifying details. Write titles and descriptions in " + "generic, feature-focused language." ) @property @@ -249,11 +251,20 @@ class CreateFeatureRequestTool(BaseTool): "properties": { "title": { "type": "string", - "description": "Title for the feature request.", + "description": ( + "Title for the feature request. Must be generic and " + "feature-focused — do not include any user names, emails, " + "company names, or other PII." + ), }, "description": { "type": "string", - "description": "Detailed description of what the user wants and why.", + "description": ( + "Detailed description of what the user wants and why. " + "Must not contain any personally identifiable information " + "(PII) — describe the feature need generically without " + "referencing specific users, companies, or contact details." + ), }, "existing_issue_id": { "type": "string", diff --git a/autogpt_platform/backend/backend/copilot/tools/feature_requests_test.py b/autogpt_platform/backend/backend/copilot/tools/feature_requests_test.py index a24eb4de22..2b99396551 100644 --- a/autogpt_platform/backend/backend/copilot/tools/feature_requests_test.py +++ b/autogpt_platform/backend/backend/copilot/tools/feature_requests_test.py @@ -117,13 +117,11 @@ class TestSearchFeatureRequestsTool: "id": "id-1", "identifier": "FR-1", "title": "Dark mode", - "description": "Add dark mode support", }, { "id": "id-2", "identifier": "FR-2", "title": "Dark theme", - "description": None, }, ] patcher, _ = _mock_linear_config(query_return=_search_response(nodes)) diff --git a/autogpt_platform/backend/backend/copilot/tools/models.py b/autogpt_platform/backend/backend/copilot/tools/models.py index b32f6ca2ce..c3604aaf77 100644 --- a/autogpt_platform/backend/backend/copilot/tools/models.py +++ b/autogpt_platform/backend/backend/copilot/tools/models.py @@ -486,7 +486,6 @@ class FeatureRequestInfo(BaseModel): id: str identifier: str title: str - description: str | None = None class FeatureRequestSearchResponse(ToolResponseBase):