• Will Chen's avatar
    Add telemetry for local-agent search-replace operations (#2371) · 20b95024
    Will Chen 提交于
    ## Summary
    - Add `local_agent:search_replace:success` and
    `local_agent:search_replace:failure` telemetry events to track
    search-replace outcomes in local-agent mode
    - Add `local_agent:file_edit_retry` telemetry to detect when multiple
    edit tool types (write_file, edit_file, search_replace) are used on the
    same file, indicating retry/fallback behavior
    - Add `FileEditTracker` to `AgentContext` to track tool usage per file
    during an agent session
    
    ## Test plan
    - [x] TypeScript type checks pass
    - [x] Linter passes
    - [x] All 654 unit tests pass
    
    🤖 Generated with [Claude Code](https://claude.com/claude-code)
    
    #skip-bugbot
    <!-- devin-review-badge-begin -->
    
    ---
    
    <a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2371">
      <picture>
    <source media="(prefers-color-scheme: dark)"
    srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
    <img
    src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
    alt="Open with Devin">
      </picture>
    </a>
    <!-- devin-review-badge-end -->
    
    <!-- This is an auto-generated description by cubic. -->
    ---
    ## Summary by cubic
    Adds telemetry to local-agent to track search-replace success/failure
    and when multiple edit tools touch the same file. Introduces a
    FileEditTracker in AgentContext to record write_file, edit_file, and
    search_replace usage per file.
    
    - **New Features**
    - Emit local_agent:search_replace:success and
    local_agent:search_replace:failure (includes filePath and error on
    failure).
    - Emit local_agent:file_edit_retry when a file uses 2+ different edit
    tools; includes per-tool counts.
    - Track usage via FileEditTracker on AgentContext with a helper that
    records tool calls.
    
    - **Migration**
    - Update any AgentContext mocks/constructors to include fileEditTracker:
    {}.
    
    <sup>Written for commit f8345128b1d29b555c4c787df7103a6cae98373b.
    Summary will update on new commits.</sup>
    
    <!-- End of auto-generated description by cubic. -->
    
    ---------
    Co-authored-by: 's avatarClaude Opus 4.5 <noreply@anthropic.com>
    20b95024
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxfmtrc.json 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CLA.md 正在载入提交数据...
CLAUDE.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
lint-staged.config.js 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...