Skip to content

RTECO-1017 - Enrich User-Agent with agent/CI context and reuse Cursor… - #3468

Merged
fluxxBot merged 1 commit into
masterfrom
RTECO-1017-CIdetect
May 19, 2026
Merged

fluxxBot merged 1 commit into
masterfrom
RTECO-1017-CIdetect

Conversation

@fluxxBot

@fluxxBot fluxxBot commented May 4, 2026 •

Copy link
Copy Markdown
Contributor
  • All tests have passed. If this feature is not already covered by the tests, new tests have been added.
  • The pull request is targeting the master branch.
  • The code has been validated to compile successfully by running go vet ./....
  • The code has been formatted properly using go fmt ./....

Summary

Wires the invocation-context detection from jfrog-cli-core PR #1555 into jf:

  • Appends agent + CI info to the User-Agent header sent to Artifactory.
  • Reuses CURSOR_TRACE_ID (when invoked from Cursor) as the Uber Trace ID instead of generating a fresh one, so server-side logs correlate end-to-end with the agent's trace.

Motivation

RTECO-1017: differentiate human / CI / agent invocations of jf. Surface agent identity in every API call so support and observability can attribute traffic correctly without parsing metric payloads separately.

Changes

  • main.go:
    • setUberTraceIdToken reuses ExecutionContext.TraceID (currently CURSOR_TRACE_ID) when present; falls back to the existing 16-char hex generator otherwise.
    • clientutils.SetUserAgent now calls corecommands.EnrichUserAgent(base) which appends (agent; ci=<system>) to the base CLI User-Agent. Returns base unchanged when neither agent nor CI is detected.
  • go.mod — points at the published pre-release of jfrog-cli-core that contains the detection logic. Must be bumped to the final tagged version once core PR Allow option to disable the 'npm ls' command being triggered in the background during JFrog CLI run ( NPM )  #1555 merges.

Examples

Context User-Agent
Plain shell jfrog-cli-go/2.103.0
Claude Code jfrog-cli-go/2.103.0 (claude)
Cursor jfrog-cli-go/2.103.0 (cursor)
Cursor in GitHub Actions jfrog-cli-go/2.103.0 (cursor; ci=github_actions)
GitHub Actions, no agent jfrog-cli-go/2.103.0 (ci=github_actions)

Trace-ID propagation

CURSOR_TRACE_ID is reused when the detected agent is cursor. For all other agents, a fresh 16-char hex trace ID is generated as before. Gated on agent identity — prevents stale values leaked from an outer shell being used when a different agent is the real invoker.

Memoization (sync.Once in core)

DetectExecutionContext() is called from two places in main.go — EnrichUserAgent and setUberTraceIdToken. Both return the same cached snapshot (memoized via sync.Once in core on first call). No divergence possible even if env mutates between calls.

Depends on:

  1. RTECO-1017 - Detect agent + CI invocation context, enrich metrics wit… jfrog-cli-core#1555

@fluxxBot fluxxBot added the new feature Automatically generated release notes label May 4, 2026
@fluxxBot fluxxBot added the safe to test Approve running integration tests on a pull request label May 7, 2026
@fluxxBot fluxxBot added safe to test Approve running integration tests on a pull request and removed safe to test Approve running integration tests on a pull request labels May 18, 2026
@fluxxBot
fluxxBot force-pushed the RTECO-1017-CIdetect branch from 1b9f4ad to faa87c1 Compare May 19, 2026 06:29
@fluxxBot fluxxBot added new feature Automatically generated release notes safe to test Approve running integration tests on a pull request and removed new feature Automatically generated release notes safe to test Approve running integration tests on a pull request labels May 19, 2026
@fluxxBot
fluxxBot merged commit 7c7c49b into master May 19, 2026
111 of 113 checks passed
@fluxxBot
fluxxBot deleted the RTECO-1017-CIdetect branch May 19, 2026 07:26
social4hyq pushed a commit to social4hyq/homebrew-core that referenced this pull request Sep 20, 2026
jfrog-cli 2.104.1

Created-by: HarmonybrewBot
Commit-by: HarmonybrewBot
Merged-by: HarmonybrewBot
Description: Created by `brew bump`

---

Created with `brew bump-formula-pr`.<details>
  <summary>release notes</summary>
  <pre>## What changed in v2.104.1

> Auto-generated from 6 repositories · 2026-05-22  
> Comparing `v2.103.0` → `v2.104.1`

> ℹ️  No changes in: gofrog

### ✨ New Features

- **[build-info-go]** Enhance Yarn module to support workspace projects and non-registry de… [#379](jfrog/build-info-go#379) (@fluxxBot)
- **[jfrog-cli]** Add common --format flag support [#3454](jfrog/jfrog-cli#3454) (@ehl-jf)
- **[jfrog-cli]** Add --format flag support to rt commands [#3456](jfrog/jfrog-cli#3456) (@ehl-jf)
- **[jfrog-cli]** Add usage report for `jf api` [#3479](jfrog/jfrog-cli#3479) (@ehl-jf)
- **[jfrog-cli]** RTECO-1017 - Enrich User-Agent with agent/CI context and reuse Cursor… [#3468](jfrog/jfrog-cli#3468) (@fluxxBot)
- **[jfrog-cli]** RTECO-1035 - Added Support for yarn v4 [#3440](jfrog/jfrog-cli#3440) (@fluxxBot)
- **[jfrog-cli-artifactory]** Add UV package manager setup support [#437](jfrog/jfrog-cli-artifactory#437) (@sverdlov93)
- **[jfrog-cli-artifactory]** RTECO-1015 - Implement jf skills list command [#432](jfrog/jfrog-cli-artifactory#432) (@udaykb2)
- **[jfrog-cli-artifactory]** RTECO-1016 - Implement skills update command [#434](jfrog/jfrog-cli-artifactory#434) (@udaykb2)
- **[jfrog-cli-artifactory]** RTECO-1007 - Collect build-info on jf skills publish [#441](jfrog/jfrog-cli-artifactory#441) (@udaykb2)
- **[jfrog-cli-artifactory]** Add --format flag support to artifactory commands [#435](jfrog/jfrog-cli-artifactory#435) (@ehl-jf)
- **[jfrog-cli-artifactory]** RTECO-1035 - Added Support for yarn v4 [#422](jfrog/jfrog-cli-artifactory#422) (@fluxxBot)
- **[jfrog-cli-core]** Add UV package manager support [#1549](jfrog/jfrog-cli-core#1549) (@sverdlov93)
- **[jfrog-cli-core]** Add common --format flag support [#1547](jfrog/jfrog-cli-core#1547) (@ehl-jf)
- **[jfrog-cli-core]** RTECO-1017 - Detect agent + CI invocation context, enrich metrics wit… [#1555](jfrog/jfrog-cli-core#1555) (@fluxxBot)
- **[jfrog-cli-security]** Add cache and parallel run to Git Count Contributors [#701](jfrog/jfrog-cli-security#701) (@attiasas)
- **[jfrog-client-go]** Add `SAST Fast Diff Mode` option to configuration profile [#1342](jfrog/jfrog-client-go#1342) (@attiasas)
- **[jfrog-client-go]** RTECO-1015 - Implement ListSkills method to fetch skills [#1341](jfrog/jfrog-client-go#1341) (@udaykb2)

### 🐛 Bug Fixes

- **[build-info-go]** RTECO-1265: fix(dotnet): preserve all per-TFM package versions in build-info [#381](jfrog/build-info-go#381) (@Edenb2131)
- **[build-info-go]** RTECO-1265 - Fixed Nuget bracket based dependency resolution [#385](jfrog/build-info-go#385) (@fluxxBot)
- **[jfrog-cli]** RTECO-992 - Fix uv build command build-info and update jfrog-cli-artifactory dependency [#3485](jfrog/jfrog-cli#3485) (@agrasth)
- **[jfrog-cli]** RTECO-1263 - Fixed Content Reader race panic [#3502](jfrog/jfrog-cli#3502) (@fluxxBot)
- **[jfrog-cli-artifactory]** Fix duplicate dependency entries in build-info for jf uv build and publish [#438](jfrog/jfrog-cli-artifactory#438) (@agrasth)
- **[jfrog-cli-artifactory]** RTECO-992 - Restore build-info for jf uv build, clear artifacts only [#449](jfrog/jfrog-cli-artifactory#449) (@agrasth)
- **[jfrog-cli-core]** JGC-471 - Fix npm output format parsing [#1551](jfrog/jfrog-cli-core#1551) (@ehl-jf)
- **[jfrog-cli-core]** Fix #delayed multiarch image list.manifest files are not getting migr… [#1552](jfrog/jfrog-cli-core#1552) (@amithins)
- **[jfrog-client-go]** Fix race in ContentReader causing 'send on closed channel' panic [#1347](jfrog/jfrog-client-go#1347) (@fluxxBot)

### 🔧 Internal Changes

- **[build-info-go]** Bump Maven extractor to 2.43.9 and Gradle4 extractor to 4.35.9 [#383](jfrog/build-info-go#383) (@agrasth)
- **[jfrog-cli-artifactory]** RTECO-1048 - Improve skills install command [#446](jfrog/jfrog-cli-artifactory#446) (@udaykb2)
- **[jfrog-cli-artifactory]** RTECO-1011 - Improve skill commands [#448](jfrog/jfrog-cli-artifactory#448) (@udaykb2)
- **[jfrog-cli-security]** Update AnalyzerManager version to 1.33.0 [#748](jfrog/jfrog-cli-security#748) (@attiasas)

### 📦 Other Changes

- **[jfrog-cli]** RTECO-1003 - Updated branch name for jfrog-cli [#3467](jfrog/jfrog-cli#3467) (@naveenku-jfrog)
- **[jfrog-cli]** Remove the `how` command [#3494](jfrog/jfrog-cli#3494) (@ehl-jf)
- **[jfrog-cli-artifactory]** Show list and update in jf skills help [#451](jfrog/jfrog-cli-artifactory#451) (@udaykb2)
- **[jfrog-client-go]** CVE-2025-11579 [#1289](jfrog/jfrog-client-go#1289) (@saya-entro)

---

### 📊 Summary

| Repository | Changes |
|---|---|
| [jfrog-cli-artifactory](https://github.com/jfrog/jfrog-cli-artifactory) | 11 |
| [jfrog-cli](https://github.com/jfrog/jfrog-cli) | 9 |
| [jfrog-cli-core](https://github.com/jfrog/jfrog-cli-core) | 5 |
| [build-info-go](https://github.com/jfrog/build-info-go) | 4 |
| [jfrog-client-go](https://github.com/jfrog/jfrog-client-go) | 4 |
| [jfrog-cli-security](https://github.com/jfrog/jfrog-cli-security) | 2 |
| **Total** | **35** |

### 🔗 Module Version Changes

| Module | From | To |
|---|---|---|
| [build-info-go](https://github.com/jfrog/build-info-go) | `v1.13.1-0.20260429070557-93b98034d295` | `v1.13.1-0.20260521104402-1e35b9b5b0c6` |
| [jfrog-cli-artifactory](https://github.com/jfrog/jfrog-cli-artifactory) | `v0.8.1-0.20260429074430-a5871f2898b5` | `v0.8.1-0.20260520131142-ef80a14dd499` |
| [jfrog-cli-core](https://github.com/jfrog/jfrog-cli-core) | `v2.60.1-0.20260429073430-5723b4f21705` | `v2.60.1-0.20260520130103-75be6a23c54b` |
| [jfrog-cli-security](https://github.com/jfrog/jfrog-cli-security) | `v1.28.0` | `v1.29.0` |
| [jfrog-client-go](https://github.com/jfrog/jfrog-client-go) | `v1.55.1-0.20260428070955-750b933dc5c7` | `v1.55.1-0.20260521115926-32f082854b39` |
</pre>
  <p>View the full release notes at <a href="https://github.com/jfrog/jfrog-cli/releases/tag/v2.104.1">https://github.com/jfrog/jfrog-cli/releases/tag/v2.104.1</a>.</p>
</details>
<hr>

See merge request: Harmonybrew/homebrew-core!5774

This branch had an error being deployed

1 failed deployment
frogbot — faa87c17 Deployed May 19, 2026 by fluxxBot via scan-pull-request #4265
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

new feature Automatically generated release notes safe to test Approve running integration tests on a pull request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants