From 3a54fdaf04abcca6b9c36d88a2b0621d9bb3b5d5 Mon Sep 17 00:00:00 2001 From: Abhiram R N Date: Wed, 15 Jul 2026 12:41:45 +0530 Subject: [PATCH] fix: analyze_bug fallback to known_repos in local dev mode analyze_bug unconditionally blocked on MissingProjectConfig even when FORGE_REQUIRE_PROJECT_CONFIG=false. Align with epic_decomposition.py which already falls back to settings.known_repos in local dev mode. Signed-off-by: Abhiram R N Co-Authored-By: Claude Opus 4.6 --- src/forge/workflow/nodes/rca_analysis.py | 35 ++++++++++++++---------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/forge/workflow/nodes/rca_analysis.py b/src/forge/workflow/nodes/rca_analysis.py index 76419ccf..534728ef 100644 --- a/src/forge/workflow/nodes/rca_analysis.py +++ b/src/forge/workflow/nodes/rca_analysis.py @@ -63,21 +63,28 @@ async def analyze_bug(state: BugState) -> BugState: try: repos = await jira.get_project_repos(issue.project_key) except MissingProjectConfig as e: - await post_status_comment( - jira, - ticket_key, - f"Cannot start RCA: repository configuration is missing for project " - f"`{issue.project_key}`.\n\n" - f"Set `forge.repos` on the Jira project to a comma-separated list of " - f"`owner/repo` values, then add `forge:retry` to resume.\n\n" - f"Details: {e}", + if settings.forge_require_project_config: + await post_status_comment( + jira, + ticket_key, + f"Cannot start RCA: repository configuration is missing for project " + f"`{issue.project_key}`.\n\n" + f"Set `forge.repos` on the Jira project to a comma-separated list of " + f"`owner/repo` values, then add `forge:retry` to resume.\n\n" + f"Details: {e}", + ) + await jira.set_workflow_label(ticket_key, ForgeLabel.BLOCKED) + return { + **state, + "last_error": str(e), + "current_node": "analyze_bug", + } + repos = settings.known_repos + logger.info( + "Project %s: falling back to GITHUB_KNOWN_REPOS: %s", + issue.project_key, + repos, ) - await jira.set_workflow_label(ticket_key, ForgeLabel.BLOCKED) - return { - **state, - "last_error": str(e), - "current_node": "analyze_bug", - } task_description = load_prompt( "analyze-bug",