Testing Center custom `string_comparison` evaluation errors on the JSONPath the server itself generates from `$.generatedData.outcome`
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Active
- Domain
- cli, testing-qa
Research direction
No source files or tests are named. Start by reproducing the custom string_comparison evaluation with the documented $.generatedData.outcome reference and inspect how the server rewrites and parses that path. Done means the reference evaluates successfully, maps to a parseable path, or is rejected at creation with a clear error.
Written by the indexing model from the issue text.
Description
CLI Version:
@salesforce/cli/2.149.9
Architecture:
win32-arm64
Node Version:
node-v24.14.1
Plugin Version:
@oclif/plugin-autocomplete 3.2.56 (core)
@oclif/plugin-commands 4.1.63 (core)
@oclif/plugin-help 6.2.58 (core)
@oclif/plugin-not-found 3.2.93 (core)
@oclif/plugin-plugins 5.4.87 (core)
@oclif/plugin-search 1.2.54 (core)
@oclif/plugin-update 4.7.59 (core)
@oclif/plugin-version 2.2.57 (core)
@oclif/plugin-warn-if-update-available 3.1.73 (core)
@oclif/plugin-which 3.2.61 (core)
@salesforce/cli 2.149.9 (core)
agent 2.0.5 (user)
apex 4.1.0 (core)
api 2.0.9 (core)
auth 5.0.6 (core)
code-analyzer 5.12.0 (user)
data 5.1.5 (core)
deploy-retrieve 4.1.2 (core)
info 4.0.9 (core)
limits 4.0.3 (core)
marketplace 2.0.5 (core)
org 6.0.9 (core)
packaging 3.0.5 (core)
schema 4.0.5 (core)
settings 3.0.5 (core)
sobject 2.0.5 (core)
telemetry 4.0.5 (core)
templates 57.0.9 (core)
trust 4.0.9 (core)
user 5.0.1 (core)
OS and Version:
Windows_NT 10.0.26200
Shell:
powershell
Summary
A custom evaluation asserting on the agent's response text is unusable: the
server rewrites the documented $.generatedData.outcome reference into a
filter-expression JSONPath and then fails to parse its own rewrite.
Test case YAML (per the documented shape):
customEvaluations:
- label: "response contains estimat"
name: string_comparison
parameters:
- name: operator
value: contains
isReference: false
- name: actual
value: "$.generatedData.outcome"
isReference: true
- name: expected
value: "estimat"
isReference: false
Actual result
The evaluation returns status: ERROR on every case:
"errorMessage": "Error parsing JSONPath
'$.outputs[?(@.type == 'general.echo')].payload.planner_response.lastExecution.outcome'"
i.e. the server maps $.generatedData.outcome to a path containing a
filter expression [?(@.type == '...')], and the JSONPath implementation
evaluating it rejects filter syntax. The author's input is well-formed; the
failing path is generated internally.
Expected result
Either the generated path parses, or $.generatedData.outcome maps to a
filter-free path, or the reference is rejected at test-create time with a
clear message. An ERROR status at run time on the documented reference makes
deterministic response-text assertions impossible in Testing Center.
Why it matters
The LLM-judged expectedOutcome is lenient (see reproduction context in the
related issues: an agent whose instruction clause was removed still passed a
judge rubric that named the missing behavior). string_comparison is the
platform's only deterministic assertion over response text — precisely the
tool needed when the judge is too soft — and it errors as documented.
Environment
- sf CLI: <paste
sf version --verbose> - Org: Agentforce Developer Edition (
orgfarm-*.develop.my.salesforce.com)
- Dominant language
- No language data
- Stars
- 571
- Forks
- 80
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 3
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from forcedotcom/cli
-
investigating validated
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
forcedotcom/cli#3657 · 2 comments ·
-
area:afdx owned by another team
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
forcedotcom/cli#3645 · 2 comments ·
-
bug investigating validated
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
forcedotcom/cli#3644 · 6 comments ·
-
area:afdx bug investigating owned by another team validated
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
forcedotcom/cli#3625 · 4 comments ·
-
area:afdx bug owned by another team
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
forcedotcom/cli#3608 · 2 comments ·
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Doist/todoist-cli#576 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
Maintainers usually reply within 1 day
-
🐛 Bug supabase/cli
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
EverMind-AI/Raven#845 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BasedHardware/omi#20401 · 1 comment ·
Maintainers usually reply within 1 day