Summary
Variables defined in the auto-loaded variables store (~/.testmuai/kaneai/variables/*.json) only resolve at runtime when marked "secret": true. A non-secret ("secret": false) variable in the same file does not resolve — the field is left blank — while a secret variable in the same file resolves fine.
Severity
S2 — silent, and the failure is asymmetric (some vars work, some don't, from the same file).
kane-cli version
0.4.0
Repro
~/.testmuai/kaneai/variables/dogfood.json:
{
"KANE_TEST_USER": { "value": "user@example.com", "secret": false },
"KANE_TEST_PASSWORD": { "value": "s3cret", "secret": true }
}
- A test that types
{{KANE_TEST_USER}} into one field and {{KANE_TEST_PASSWORD}} into another.
- Run via the TUI (or
testmd run).
Actual
{{KANE_TEST_PASSWORD}} (secret) → resolves and is typed. ✅
{{KANE_TEST_USER}} (non-secret) → does not resolve; field left blank. ❌
- Changing
KANE_TEST_USER to "secret": true fixes it.
Expected
Non-secret store variables should resolve at runtime just like secret ones. Per the docs the secret flag should only affect masking/routing, not whether a value resolves at all.
Likely cause / note
Docs say secret values route to the secrets store while non-secret ones "sync as plain variables" — that plain-variable sync (ATMS) appears to fail/no-op locally, so only secret-routed values are available at run time. Related: #69 (variables-file not feeding the resolver), #20.
Summary
Variables defined in the auto-loaded variables store (
~/.testmuai/kaneai/variables/*.json) only resolve at runtime when marked"secret": true. A non-secret ("secret": false) variable in the same file does not resolve — the field is left blank — while a secret variable in the same file resolves fine.Severity
S2 — silent, and the failure is asymmetric (some vars work, some don't, from the same file).
kane-cli version
0.4.0
Repro
~/.testmuai/kaneai/variables/dogfood.json:{ "KANE_TEST_USER": { "value": "user@example.com", "secret": false }, "KANE_TEST_PASSWORD": { "value": "s3cret", "secret": true } }{{KANE_TEST_USER}}into one field and{{KANE_TEST_PASSWORD}}into another.testmd run).Actual
{{KANE_TEST_PASSWORD}}(secret) → resolves and is typed. ✅{{KANE_TEST_USER}}(non-secret) → does not resolve; field left blank. ❌KANE_TEST_USERto"secret": truefixes it.Expected
Non-secret store variables should resolve at runtime just like secret ones. Per the docs the
secretflag should only affect masking/routing, not whether a value resolves at all.Likely cause / note
Docs say secret values route to the secrets store while non-secret ones "sync as plain variables" — that plain-variable sync (ATMS) appears to fail/no-op locally, so only secret-routed values are available at run time. Related: #69 (variables-file not feeding the resolver), #20.