REJECTED
aws-cloudformation__cfn-python-lint-2006
REJECTED
2 attempts, 1 appeal. Final attempted patch: 1 file, 1 added and 1 removed lines. No patch shipped. Tokens: 1,402,213 tokens. Model cost: $0.43. Sandbox time: 4 min 5 s.
The plan
- Repository
- aws-cloudformation/cfn-python-lint
- Base commit
- 490e75c (image tag)
- Issue
- cfn-lint 0.49.1 does not catch `/` as an invalid character in a Mapping element name *cfn-lint version: cfn-lint 0.49.1* *cfn-lint did not catch `/` as an invalid character in a Mapping element name* cfn-lint passed successfully with this mapping included in the template: ```yaml Mappings:
- Files to edit
src/cfnlint/helpers.py
- Approach
- Update the REGEX_ALPHANUMERIC constant in helpers.py to include hyphens and dots so that validation passes for valid characters like '-', '.', while still rejecting invalid ones like '/'. Ensure the regex allows alphanumerics plus '-' and '.' characters only.
Attempt 1
REJECTEDAgent branch
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | git ls-files -zexact commandgit ls-files -z | 0 | 0.004s | 2fd3ef0d |
| command | find . -name "*.py" -exec grep -l "Mapping.*key\|mapping.*name" {} \;exact commandfind . -name "*.py" -exec grep -l "Mapping.*key\|mapping.*name" {} \; | 0 | 0.549s | fa0eec05 |
| command | pytest test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negativeexact command/opt/receipts-1c29653fe1cb4abc8e3848c2fc664d3e/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-1c29653fe1cb4abc8e3848c2fc664d3e/receipts_pytest.py test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-3.xml | 1 | 2.781s | fa07b90b2c90 |
| command | pytest test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_positiveexact command/opt/receipts-5a19de5cc1de4ada9592b2b177219ad1/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-5a19de5cc1de4ada9592b2b177219ad1/receipts_pytest.py test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_positive --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-4.xml | 0 | 2.736s | fa07b90b2c90 |
| write | write /tmp/debug_test.pyexact command/opt/receipts-e89581eb607245b5b16ee75ffc77606a/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-e89581eb607245b5b16ee75ffc77606a/incoming/a450625c92585d4fa0878b9bc7a65492b478eac09b436c995b7b52fec81ff156 /tmp/debug_test.py' | 0 | 0.005s | 66fa2a93 |
| command | cd /cfn-python-lint && python /tmp/debug_test.pyexact commandcd /cfn-python-lint && python /tmp/debug_test.py | 1 | 0.014s | d242dec7 |
| write | write /tmp/debug_test.pyexact command/opt/receipts-4f1e46f91fc64017b7e50e0677dae61b/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-4f1e46f91fc64017b7e50e0677dae61b/incoming/d79065a6b6da79365cac74ac9c508dfb2f9e5f6fc464bb039d06e869037ba972 /tmp/debug_test.py' | 0 | 0.005s | c8c13e4e |
| command | cd /cfn-python-lint && python /tmp/debug_test.pyexact commandcd /cfn-python-lint && python /tmp/debug_test.py | 1 | 1.291s | 5cc76539 |
show all 41 steps
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | find . -name "*BaseRuleTestCase*" -type fexact commandfind . -name "*BaseRuleTestCase*" -type f | 0 | 0.010s | 6221e003 |
| command | find . -name "BaseRuleTestCase.py" -type fexact commandfind . -name "BaseRuleTestCase.py" -type f | 0 | 0.012s | 777df3bb |
| command | find . -name "*.py" -exec grep -l "BaseRuleTestCase" {} \;exact commandfind . -name "*.py" -exec grep -l "BaseRuleTestCase" {} \; | 0 | 0.530s | 3b7ebc0e |
| command | find . -name "BaseTestCase" -type fexact commandfind . -name "BaseTestCase" -type f | 0 | 0.012s | 3e08139b |
| command | find . -name "testcase.py" -type f | head -5exact commandfind . -name "testcase.py" -type f | head -5 | 0 | 0.012s | db184b81 |
| write | write /tmp/debug_simple.pyexact command/opt/receipts-30019cc03b674525bd74e6f3bee258fc/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-30019cc03b674525bd74e6f3bee258fc/incoming/11c2c4aef016e0840116633b65cb0a8bcb3c977b8b6e8d9013c7617109c35f30 /tmp/debug_simple.py' | 0 | 0.005s | 0e86afaf |
| command | cd /cfn-python-lint && python /tmp/debug_simple.pyexact commandcd /cfn-python-lint && python /tmp/debug_simple.py | 1 | 1.176s | 8f6efa88 |
| write | write /tmp/debug_exact.pyexact command/opt/receipts-b2adf5f90946468599ad6ee880686da6/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-b2adf5f90946468599ad6ee880686da6/incoming/5b0d78f1b5d979d21a152f2a74683462c491c316bab9ff186c4893b87ce6d93f /tmp/debug_exact.py' | 0 | 0.005s | 8101a318 |
| command | cd /cfn-python-lint && python /tmp/debug_exact.pyexact commandcd /cfn-python-lint && python /tmp/debug_exact.py | 1 | 1.403s | d7db23da |
| command | find /cfn-python-lint/src -name "*helper*" -type fexact commandfind /cfn-python-lint/src -name "*helper*" -type f | 0 | 0.006s | e598db0e |
| write | write /tmp/debug_exact.pyexact command/opt/receipts-51a68544bb2c4d599ee4d289b3437a15/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-51a68544bb2c4d599ee4d289b3437a15/incoming/ed9e4581588859e43de79828799e3bf0a7e094df8fb291830761f6cbe5b4e2f1 /tmp/debug_exact.py' | 0 | 0.004s | b3f879c8 |
| command | cd /cfn-python-lint && python /tmp/debug_exact.pyexact commandcd /cfn-python-lint && python /tmp/debug_exact.py | 1 | 1.200s | 89be8629 |
| command | grep -n "class Template" /cfn-python-lint/src/cfnlint/template.pyexact commandgrep -n "class Template" /cfn-python-lint/src/cfnlint/template.py | 0 | 0.003s | 2323bf8d |
| command | pytest test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative -vexact command/opt/receipts-13b150ea9f7344129c8df5c02ba0c0b9/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-13b150ea9f7344129c8df5c02ba0c0b9/receipts_pytest.py test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative -v -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-22.xml | 1 | 2.763s | fa07b90b2c90 |
| command | grep -n "check_key" /cfn-python-lint/src/cfnlint/rules/mappings/KeyName.pyexact commandgrep -n "check_key" /cfn-python-lint/src/cfnlint/rules/mappings/KeyName.py | 0 | 0.003s | 60c83a7e |
| write | write /tmp/debug_regex.pyexact command/opt/receipts-f75a6fa50bb04a13b0c8cb4b9beba81d/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-f75a6fa50bb04a13b0c8cb4b9beba81d/incoming/42afcd2eac9456462e9dd72e042544c5055305a857e1e073065b4bc8286c2c20 /tmp/debug_regex.py' | 0 | 0.005s | 447fbde5 |
| command | cd /cfn-python-lint && python /tmp/debug_regex.pyexact commandcd /cfn-python-lint && python /tmp/debug_regex.py | 0 | 0.018s | 9d3ebb0b |
| command | grep -n "REGEX_ALPHANUMERIC" /cfn-python-lint/src/cfnlint/helpers.pyexact commandgrep -n "REGEX_ALPHANUMERIC" /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | f810f211 |
| command | grep -A2 -B2 "REGEX_ALPHANUMERIC = re.compile" /cfn-python-lint/src/cfnlint/helpers.pyexact commandgrep -A2 -B2 "REGEX_ALPHANUMERIC = re.compile" /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | 011747bc |
| command | sed -n '69,70p' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -n '69,70p' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | 1be3a310 |
| command | printf '%s\n' "$(sed -n '69,70p' /cfn-python-lint/src/cfnlint/helpers.py | cat -A)"exact commandprintf '%s\n' "$(sed -n '69,70p' /cfn-python-lint/src/cfnlint/helpers.py | cat -A)" | 0 | 0.005s | 73b572e6 |
| command | sed -n '69p' /cfn-python-lint/src/cfnlint/helpers.py | od -cexact commandsed -n '69p' /cfn-python-lint/src/cfnlint/helpers.py | od -c | 0 | 0.004s | 3d344dbb |
| command | sed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | od -cexact commandsed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | od -c | 0 | 0.004s | a6ac1c81 |
| command | sed -n '70p' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | d02f4f21 |
| command | sed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | cat -Aexact commandsed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | cat -A | 0 | 0.005s | 2aab7603 |
| write | write /tmp/helpers_fixed.pyexact command/opt/receipts-f747ccf332f74c05a6a5297b2d76ef78/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-f747ccf332f74c05a6a5297b2d76ef78/incoming/95f56f58d104e32a16e653fbc04fd98b8adb93153de90925a9218b242a347b5a /tmp/helpers_fixed.py' | 0 | 0.005s | 81e4f9dc |
| command | cp /tmp/helpers_fixed.py /cfn-python-lint/src/cfnlint/helpers.pyexact commandcp /tmp/helpers_fixed.py /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | 4ed657e0 |
| command | pytest test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negativeexact command/opt/receipts-9284568a344c4ccf854f62723dc5efff/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-9284568a344c4ccf854f62723dc5efff/receipts_pytest.py test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-36.xml | 4 | 1.578s | 911722819879 |
| command | git checkout /cfn-python-lint/src/cfnlint/helpers.pyexact commandgit checkout /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.005s | db8fb3cd |
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | sed -i '70s/[$]/\[\-\.\]$/' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -i '70s/[$]/\[\-\.\]$/' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.004s | 80791f73 |
| command | sed -n '70p' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | 1597941e |
| command | sed -i '70s/\^\[a-zA-Z0-9\]\*$/^[a-zA-Z0-9\-\.]*/' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -i '70s/\^\[a-zA-Z0-9\]\*$/^[a-zA-Z0-9\-\.]*/' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | 32b83be5 |
| diff | capture patchexact commandcompute patch in executor staging agent1-6be73e722c5c4010b15bb81f9144847e: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames ace7ac886fc28f38d3d515db8ccef02a431966d0 | 0 | 0.417s | fd5e86350c2f |
- Finish summary
- turn budget exhausted after 60 turn(s)
- Worker outcome
- budget_exhausted
Claims not recorded
Witness branch w1
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| apply | apply patch b5adbf4de08bexact commandgit update-index -q --refresh; git apply -v --3way --recount --ignore-space-change --whitespace=nowarn /opt/receipts-ca83bd31a01043a7bc83d2f5349de73c/incoming/b5adbf4de08b3c21326632b57da27383ccfd961df1890eb4dccf659f4e525347.diff | 0 | 0.014s | fd5e86350c2f |
| verification | pytest (witness) test/unit/rules/mappings/test_key_name.pyexact command/opt/receipts-e6b5f310dbdb4add88c50aab1b552db2/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-e6b5f310dbdb4add88c50aab1b552db2/receipts_pytest.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning test/unit/rules/mappings/test_key_name.py -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/w1-2.xml | 1 | 2.848s | fd5e86350c2f |
Gate predicate checklist
| Predicate | Name | Status | Evidence |
|---|---|---|---|
R1_fail_to_pass | Failing specification tests now pass | FAIL | test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative failed |
R2_pass_to_pass | Previously passing tests kept | FAIL | regressed: test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_positive (failed) |
R3_no_shrink | No removed tests or new skips | PASS | all 2 baseline tests collected; skips unchanged (0) |
R4_patch_scope | Patch scope | PASS | patch touches 1 file(s), all in scope |
R5_provenance | Witness chain and patch digest | PASS | agent chain f9980b4e -> 32b83be5 unbroken over 41 receipt(s); witness chain f9980b4e -> 139ce62c unbroken over 2 receipt(s); applied digest matches |
R6_claim_audit | Agent claim audit (advisory) | FAIL | branch ended without a finish call |
What it said
- Finish summary
- turn budget exhausted after 60 turn(s)
- Worker outcome
- budget_exhausted
Claims not recorded
What the record shows
no claim: branch ended without a finish call
SWE-rebench's official grader: not resolved
Agrees with the gate
Attempt 2, on appeal
REJECTEDAppeal evidence sent to the agent
R1_fail_to_pass: test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative failed R2_pass_to_pass: regressed: test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_positive (failed) Claim audit: branch ended without a finish call Fix the source so these checks pass. Tests and pytest configuration are read-only.
Agent branch
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | sed -i '70s/.*/REGEX_ALPHANUMERIC = re.compile('"'^[a-zA-Z0-9\-\.]*$'"')/' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -i '70s/.*/REGEX_ALPHANUMERIC = re.compile('"'^[a-zA-Z0-9\-\.]*$'"')/' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.005s | ae718462 |
| command | sed -n '70p' /cfn-python-lint/src/cfnlint/helpers.pyexact commandsed -n '70p' /cfn-python-lint/src/cfnlint/helpers.py | 0 | 0.003s | bfde1b97 |
| command | pytest test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negativeexact command/opt/receipts-f0fd9a2d29c44842a011ba98932c34a8/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-f0fd9a2d29c44842a011ba98932c34a8/receipts_pytest.py test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-44.xml | 1 | 2.798s | c06dd70d2254 |
| command | pytest test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_positiveexact command/opt/receipts-db2009c4999f41b791f762a558783bdc/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-db2009c4999f41b791f762a558783bdc/receipts_pytest.py test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_positive --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-45.xml | 0 | 2.730s | c06dd70d2254 |
| write | write /tmp/debug_current.pyexact command/opt/receipts-6fc9914d0ee844acbeb18c1fc5a6e7ea/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-6fc9914d0ee844acbeb18c1fc5a6e7ea/incoming/98958487aba779c0cf0a89f97e17b410587f287d4b1c3846ee8a65bf6f09405a /tmp/debug_current.py' | 0 | 0.005s | 0fc7c059 |
| command | cd /cfn-python-lint && python /tmp/debug_current.pyexact commandcd /cfn-python-lint && python /tmp/debug_current.py | 1 | 1.199s | 93bf9db6 |
| command | find /cfn-python-lint/test -name "*.yaml" -exec grep -l "/" {} \;exact commandfind /cfn-python-lint/test -name "*.yaml" -exec grep -l "/" {} \; | 0 | 0.302s | f8588b4f |
| command | find /cfn-python-lint/test -name "*key_name*" -type fexact commandfind /cfn-python-lint/test -name "*key_name*" -type f | 0 | 0.007s | 231ebd82 |
show all 16 steps
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| write | write /tmp/test_slash.yamlexact command/opt/receipts-c1e578f1eb014f5faaccb39dd7705592/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-c1e578f1eb014f5faaccb39dd7705592/incoming/78923d78830338cb0b2397e75ecdac1c740c3ac6afb0ba159a9ba75e626260da /tmp/test_slash.yaml' | 0 | 0.005s | 886976ac |
| write | write /tmp/test_slash_check.pyexact command/opt/receipts-db9c4a4e92c3461599527cd9b3faeaac/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-db9c4a4e92c3461599527cd9b3faeaac/incoming/ff6a976252d754e02d1b57c6d0a0f51c34dcb1f2f8e4838d99f0e31a42ef1023 /tmp/test_slash_check.py' | 0 | 0.005s | b6587ce9 |
| command | cd /cfn-python-lint && python /tmp/test_slash_check.pyexact commandcd /cfn-python-lint && python /tmp/test_slash_check.py | 1 | 1.211s | 632c264a |
| write | write /tmp/test_regex_direct.pyexact command/opt/receipts-c726960445b0448ba8248ad1e9077e27/bin/busybox sh -c 'mkdir -p /tmp && cp /opt/receipts-c726960445b0448ba8248ad1e9077e27/incoming/e3b586d4c9e65ddc5c5918aec1ad086abb952942977eb16accec2bd0501dd4cd /tmp/test_regex_direct.py' | 0 | 0.004s | 9905913f |
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| command | cd /cfn-python-lint && python /tmp/test_regex_direct.pyexact commandcd /cfn-python-lint && python /tmp/test_regex_direct.py | 0 | 1.236s | b964ae39 |
| command | pytest test/unit/rules/mappings/test_key_name.pyexact command/opt/receipts-87e0f30e5e244581b9f21e201cfe31ff/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-87e0f30e5e244581b9f21e201cfe31ff/receipts_pytest.py test/unit/rules/mappings/test_key_name.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/agent1-55.xml | 1 | 2.748s | c06dd70d2254 |
| command | cd /cfn-python-lint && git diff src/cfnlint/helpers.pyexact commandcd /cfn-python-lint && git diff src/cfnlint/helpers.py | 0 | 0.005s | 253ab234 |
| diff | capture patchexact commandcompute patch in executor staging agent1-72c8f906138145d29068c9a2a71bf080: /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false add -A && /opt/homebrew/Cellar/git/2.53.0/bin/git -c core.hooksPath=/dev/null -c core.attributesFile=/dev/null -c diff.external= -c core.quotePath=false diff --cached --binary --no-ext-diff --no-textconv --no-renames ace7ac886fc28f38d3d515db8ccef02a431966d0 | 0 | 0.376s | c06dd70d2254 |
- Finish summary
- Fixed the regex pattern for validating mapping keys in CloudFormation templates. Updated REGEX_ALPHANUMERIC in src/cfnlint/helpers.py from '^[a-zA-Z0-9]*$' to '^[a-zA-Z0-9\-\.]*$' to properly allow hyphens and dots as valid characters in mapping element names, while still rejecting invalid characters like '/'.
- Worker outcome
- finished
- Target tests pass: no
- Full suite passes: no
- Files changed: src/cfnlint/helpers.py
- Ran tests: yes
Witness branch w2
| Kind | Command | Exit | Duration | Digest |
|---|---|---|---|---|
| apply | apply patch e5d82c04af15exact commandgit update-index -q --refresh; git apply -v --3way --recount --ignore-space-change --whitespace=nowarn /opt/receipts-f6a4c1f590244508a3e9cb7b27b0450c/incoming/e5d82c04af15a1af670e46a5946a4545c470f6cbcba034fa0e3538193fb893fc.diff | 0 | 0.016s | c06dd70d2254 |
| verification | pytest (witness) test/unit/rules/mappings/test_key_name.pyexact command/opt/receipts-c0a4c5b86c044aca998c93c8c6c6ad62/bin/busybox mkdir -p /opt/receipts/reports && python -I /opt/receipts-c0a4c5b86c044aca998c93c8c6c6ad62/receipts_pytest.py --no-header -rA --tb=line --color=no -p no:cacheprovider -W ignore::DeprecationWarning test/unit/rules/mappings/test_key_name.py -o junit_family=xunit1 -p no:cacheprovider -rA --continue-on-collection-errors --junitxml=/opt/receipts/reports/w2-2.xml | 1 | 2.719s | c06dd70d2254 |
Gate predicate checklist
| Predicate | Name | Status | Evidence |
|---|---|---|---|
R1_fail_to_pass | Failing specification tests now pass | FAIL | test/unit/rules/mappings/test_key_name.py::TestKeyName::test_file_negative failed |
R2_pass_to_pass | Previously passing tests kept | PASS | 1 baseline-passing tests still pass |
R3_no_shrink | No removed tests or new skips | PASS | all 2 baseline tests collected; skips unchanged (0) |
R4_patch_scope | Patch scope | PASS | patch touches 1 file(s), all in scope |
R5_provenance | Witness chain and patch digest | PASS | agent chain f9980b4e -> 253ab234 unbroken over 57 receipt(s); witness chain f9980b4e -> 70f7d352 unbroken over 2 receipt(s); applied digest matches |
R6_claim_audit | Agent claim audit (advisory) | PASS | did not claim green; verification did not pass |
What it said
- Finish summary
- Fixed the regex pattern for validating mapping keys in CloudFormation templates. Updated REGEX_ALPHANUMERIC in src/cfnlint/helpers.py from '^[a-zA-Z0-9]*$' to '^[a-zA-Z0-9\-\.]*$' to properly allow hyphens and dots as valid characters in mapping element names, while still rejecting invalid characters like '/'.
- Worker outcome
- finished
- Target tests pass: no
- Full suite passes: no
- Files changed: src/cfnlint/helpers.py
- Ran tests: yes
What the record shows
honest: did not claim green; verification did not pass
SWE-rebench's official grader: not resolved
Agrees with the gate
Shipped patch
No patch shipped.
Model and costs
- Model
- NVIDIA Nemotron 3 Super thinking off · temperature 1.0 · top_p 0.95
- Tokens
- 1,402,213 tokens
- Model cost
- $0.43
- Sandbox time
- 4 min 5 s
- Sandbox cost
- Token Factory reported cost: 0.492 (unit not published)
Full environment disclosure
{
"executor_kind": "tokenfactory",
"lock_sha256": "e80a60cd7cbae2906ad1d18c27fbcc228efa447b229a81fcb39622e7929307b1",
"model": {
"base_url": "https://api.tokenfactory.nebius.com/v1/",
"client": "TokenFactoryClient",
"max_tokens": null,
"model": "nvidia/nemotron-3-super-120b-a12b",
"temperature": 1.0,
"thinking": false,
"top_p": 0.95
},
"pytest_config_digests": {
"setup.cfg": "feddccd8464c658ed34ffb9686188ac1854f2fbf6710491354084c6debd28aad",
"tox.ini": "76de4bd9a9f0960fad66ac9b343cdbaceadfcfacdd3b0dd7bdb78df2806ac3e2"
},
"receipts_version": "0.0.1",
"test_digests": {
"test/unit/rules/mappings/__init__.py": "86d47df917edc4eb868029ddb0594698140eaa75c88831e804fdaac16313e212",
"test/unit/rules/mappings/test_configuration.py": "e705b0c38ad8583851333777a3df30b3748e1b5792dc28cb0c880523e19be5d6",
"test/unit/rules/mappings/test_key_name.py": "62d91cd72416fcdff872fbb33e919925dbb621d256e017c519db4d53b96909af",
"test/unit/rules/mappings/test_limitattributes.py": "f0953aeb943c758e15a7df71a09410a7cf5ad2ceea7e0979c47796e028e0b06a",
"test/unit/rules/mappings/test_limitname.py": "7f88635de7ced7f716615bbe8d656c78f985c996dba8e265e60ea75338425690",
"test/unit/rules/mappings/test_limitnumber.py": "9840bd18112ab49473e425c4e6b6765351d5607a39b1b35bfcc9358dabcbc0c8",
"test/unit/rules/mappings/test_name.py": "661aa5065a4761c994647d8755c3e4e33e73df94cad299a4abb5342fe6db57f7",
"test/unit/rules/mappings/test_used.py": "0128951c7cfecfecb1bac769c79a7f7af00931f0fde97e754388640187649de3"
}
}The bundle
Recorded JSON and patches. In these copies the local checkout path is removed from file paths, and the home directory is shown as ~.
- attempts/1/filtered.diff
- attempts/1/patch.diff
- attempts/1/verdict.json
- attempts/1/witness/receipts.jsonl
- attempts/2/filtered.diff
- attempts/2/patch.diff
- attempts/2/verdict.json
- attempts/2/witness/receipts.jsonl
- baseline.json
- branches/agent1/receipts.jsonl
- branches/base/receipts.jsonl
- branches/official1/receipts.jsonl
- branches/official2/receipts.jsonl
- branches/w1/receipts.jsonl
- branches/w2/receipts.jsonl
- cost.json
- disclosure.json
- input.json
- lock.txt
- plan.json
- record.json
- result.json