【架构优化】从 Engine.applyObservation 中拆出节点活动文案推导 observationActivity
Mantenedores costumam responder em até 1 dia
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 15/100
Direção de pesquisa
The activity-text switch sits inside Engine.applyObservation in internal/engine/engine_observe.go; start by reading that switch and the branches the issue lists. Move it unchanged into a package-level observationActivity function and add a table-driven test file in the same package. Done means gofmt, go vet ./internal/engine/ and go test ./internal/engine/ pass. Note that PR #456 is already open against this issue, so the work is claimed.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
现状问题
internal/engine/engine_observe.go 中 Engine.applyObservation 约 120 行,同时负责:幂等去重、字段补全、日志记录、节点属性回填、节点活动文案推导、工具调用计数、用量累计、遥测合并与截断。
其中根据 observation.Category/Name/Phase/Level 推导节点 Activity 文案的 switch 有 6 个分支、约 35 行,内含多层嵌套(tool/sandbox 分支在某些条件下不更新文案,process 分支要拼接 provider/model 标签),是一段纯计算逻辑却嵌在有副作用的大函数里,目前也没有直接的单元测试。
重构方案
- 把该
switch原样抽成包级纯函数observationActivity(observation domain.TelemetryEvent) (string, bool),返回新的活动文案以及是否需要更新(对应原来 tool 非匹配、sandbox.closed不更新文案的情形)。 applyObservation中改为:if activity, ok := observationActivity(observation); ok { nr.Activity = activity }。- 分支逻辑、文案逐字不变,不改其它代码。
影响范围
仅 internal/engine/engine_observe.go 一个函数内部,加一个新测试文件;无对外接口、无行为变化。
验证方式
- 新增表驱动单测覆盖每个分支(reasoning/output/tool 开始、结束、结束报错/sandbox 普通与 closed/process.started 含与不含 provider、model/其它 process/default 有无 message)。
gofmt、go vet ./internal/engine/、go test ./internal/engine/通过。
- Linguagem predominante
- Go
- Estrelas
- 141
- Forks
- 28
- Merge médio
- 1d 15h
- PRs com merge (30d)
- 113
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de Tencent/LoopForge
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
[Bug]: 官方镜像未安装 wecom-cli,企业微信通知报「通知服务未安装 wecom-cli」Talvez já em andamento @newexploreor assumiu há 1 dia. Abertabug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Tencent/LoopForge#156 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
【架构优化】合并 gitwork/workbranch.go 中 push/pull 重复的默认提交身份注入为 withFallbackIdentityTalvez já em andamento @fx-kurumi assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 40/100
Mantenedores costumam responder em até 1 dia
-
【架构优化】从 runtime.installNPMCLI 中拆出 npm 参数拼装 npmCLIInstallArgs 与安装结果启用 activateNPMStageTalvez já em andamento @fx-kurumi assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 30/100
Mantenedores costumam responder em até 1 dia
Todas as issues de Tencent/LoopForge
Issues semelhantes
-
team:library-maintainers
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
padok-team/burrito#1208 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
bazel-contrib/rules_go#4784 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
-
Уязвимые компоненты в GoAberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
POSIdev-community/aictl#40 ·
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 62/100
prime-radiant-inc/evener#6306 ·
Mantenedores costumam responder em até 1 dia