Environment: kane-cli 0.4.10 (verified latest on npm) · Node 24 · Windows 11 · account toddl
Summary
A _test.md step that issues a direct API call via @v16_api / execute_api fires the tool, but silently drops the URL given in the step — the request goes to a LambdaTest default host and returns 404, instead of hitting the target URL.
Steps to reproduce
_test.md step:
Using a direct HTTP API call (not the browser UI), send a GET request to
`{{base_url}}/api/loans/L2001` and store the JSON response body as {{api_loan}}.
Assert that {{api_loan.status}} is 200.
Run with {{base_url}} resolved to a public, reachable URL (https://everdemo.onrender.com, verified 200 via curl).
Actual
- The tool fires:
Call external tool: execute_api → execute_api with parameters: {'name': 'api_loan'} — the parameters carry only name, no URL.
- The captured response is a 404 from a LambdaTest host, not the target:
{
"status": 404,
"headers": [
{"server": "cloudflare"},
{"set-cookie": "__cf_bm=...; Domain=lambdatest.com; ..."}
],
"response_body": "<html>...<title>404 Not Found</title>...<center>nginx/1.18.0 (Ubuntu)</center>..."
}
{{api_loan.status}} resolves to 404; the assertion fails. Reproduced against both http://localhost:3000 and https://everdemo.onrender.com — the base URL is correctly resolved in variables (global.base_url = https://everdemo.onrender.com) but is not used by the request.
Two problems
- The inline URL is dropped silently.
execute_api appears to require the request (URL / method / headers) to be pre-defined and named in KaneAI web, then referenced by name — there is no way to issue an ad-hoc API call to an arbitrary URL from a _test.md. The URL in the step is ignored rather than used or errored on.
- No loud failure. Instead of erroring "no URL resolved for
api_loan", the runtime calls a default host and returns a misleading 404, which reads like a real API failure.
Note: execute_api runs server-side on the KaneAI cloud, so it also cannot reach localhost — the target must be network-reachable from the cloud (a QA/dev/deployed env). That part is expected; the URL-dropping is not.
Expected
- Honor the URL and method specified in the step (or provide an explicit inline API-definition surface for
_test.md).
- If no URL resolves, fail loudly ("no endpoint for
execute_api[api_loan]") rather than calling a default host.
Relationship to #121
#121's "confirmation the runtime supports it" note states a step "fetched GET /api/loans/LOAN-2001/schedule and returned status 200 + the JSON body." That success is only reproducible when the API request is pre-defined/named in KaneAI web — an inline URL in the step does not reach the target (this issue). The execute_api mechanism works; sourcing the URL from the step does not.
Environment: kane-cli 0.4.10 (verified latest on npm) · Node 24 · Windows 11 · account
toddlSummary
A
_test.mdstep that issues a direct API call via@v16_api/execute_apifires the tool, but silently drops the URL given in the step — the request goes to a LambdaTest default host and returns404, instead of hitting the target URL.Steps to reproduce
_test.mdstep:Run with
{{base_url}}resolved to a public, reachable URL (https://everdemo.onrender.com, verified 200 via curl).Actual
Call external tool: execute_api→execute_api with parameters: {'name': 'api_loan'}— the parameters carry onlyname, no URL.{ "status": 404, "headers": [ {"server": "cloudflare"}, {"set-cookie": "__cf_bm=...; Domain=lambdatest.com; ..."} ], "response_body": "<html>...<title>404 Not Found</title>...<center>nginx/1.18.0 (Ubuntu)</center>..." }{{api_loan.status}}resolves to404; the assertion fails. Reproduced against bothhttp://localhost:3000andhttps://everdemo.onrender.com— the base URL is correctly resolved invariables(global.base_url = https://everdemo.onrender.com) but is not used by the request.Two problems
execute_apiappears to require the request (URL / method / headers) to be pre-defined and named in KaneAI web, then referenced by name — there is no way to issue an ad-hoc API call to an arbitrary URL from a_test.md. The URL in the step is ignored rather than used or errored on.api_loan", the runtime calls a default host and returns a misleading 404, which reads like a real API failure.Note:
execute_apiruns server-side on the KaneAI cloud, so it also cannot reachlocalhost— the target must be network-reachable from the cloud (a QA/dev/deployed env). That part is expected; the URL-dropping is not.Expected
_test.md).execute_api[api_loan]") rather than calling a default host.Relationship to #121
#121's "confirmation the runtime supports it" note states a step "fetched
GET /api/loans/LOAN-2001/scheduleand returned status 200 + the JSON body." That success is only reproducible when the API request is pre-defined/named in KaneAI web — an inline URL in the step does not reach the target (this issue). Theexecute_apimechanism works; sourcing the URL from the step does not.