【架构优化】从 applyPromptPlaceholders 中拆出仓库描述 promptRepositoryLine 与上游输出收集 upstreamNodeOutputs

Ouverte
#458 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

@fx-kurumi y travaille déjà.

Depuis le 13/11/2026.

  • #459 par @fx-kurumi — ouverte

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
20/100
Type d'issue
Refactorisation
Clarté
Clairement spécifiée
Activité
À l'abandon
Stack technique
go
Domaine
backend

Piste de recherche

Start in internal/engine/prompt.go at applyPromptPlaceholders, where the {{repository}} and {{upstream}} values are derived inline. The issue asks for two extracted helpers, promptRepositoryLine and upstreamNodeOutputs, with behavior unchanged, plus a new test file covering their branches. Pull request #459 is already open against this issue, so check with the maintainers before starting. Done means gofmt, go vet ./internal/engine/ and go test ./internal/engine/ pass.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

现状问题

internal/engine/prompt.go 的 applyPromptPlaceholders 约 85 行,把十几个占位符的取值推导和替换写在同一个函数里。其中两段是不依赖 prompt 的纯推导,却内联在替换流程中间:

  • {{repository}}:根据 run.Repository 拼出仓库描述(未绑定 / 工蜂项目 ID / Git SSH);
  • {{upstream}}:遍历 wf.Edges 收集指向当前节点、且上游有输出的节点结果。

这两段无法单独测试,也让主函数难读。

重构方案

  • 拆出 promptRepositoryLine(run domain.Run) string,原样搬迁仓库描述推导;
  • 拆出 upstreamNodeOutputs(wf, node, run) []string,原样搬迁上游输出收集;
  • applyPromptPlaceholders 改为调用这两个函数,替换顺序、追加段落与文案完全不变。

影响范围

仅 internal/engine/prompt.go(包内私有函数),新增测试文件;对外接口与行为不变。

验证方式

  • 新增单元测试覆盖两个新函数的各分支(未绑定仓库、工蜂仓库、SSH 仓库;无上游、上游无输出、多上游按边顺序);
  • gofmt、go vet ./internal/engine/、go test ./internal/engine/。
Langage dominant
Go
Étoiles
141
Forks
28
Merge moyen
1 j 15 h
PR mergées (30 j)
113

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de Tencent/LoopForge

Toutes les issues de Tencent/LoopForge

Issues similaires

Plus d'issues Go

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.