Skip to content

Downgrade jqwik to 1.9.3 and document QuickTheories replacement plan#83

Merged
bernardladenthin merged 3 commits into
mainfrom
claude/gifted-edison-D99NS
May 31, 2026
Merged

Downgrade jqwik to 1.9.3 and document QuickTheories replacement plan#83
bernardladenthin merged 3 commits into
mainfrom
claude/gifted-edison-D99NS

Conversation

@bernardladenthin
Copy link
Copy Markdown
Owner

Summary

  • Downgrade jqwik from 1.10.0 to 1.9.3 to avoid the anti-AI prompt-injection string added in 1.10.0+
  • Add a comment to pom.xml explaining the downgrade and linking to the CLAUDE.md documentation
  • Update the URGENT TODO in CLAUDE.md to specify QuickTheories as the preferred replacement (with junit-quickcheck and hand-rolled @ParameterizedTest as fallbacks), including detailed rationale and implementation notes

Rationale

jqwik 1.10.0+ deliberately injects a prompt-injection string into test stdout targeting AI coding agents. This is incompatible with the AI-assisted workflow this project uses. Rather than upgrade to a hostile upstream, we downgrade to the last safe version (1.9.3) as an interim measure while planning the migration to QuickTheories, which offers:

  • Native JUnit Jupiter 5/6 support (no @RunWith, no JUnit Vintage engine)
  • Property-based generation with shrinking preserved
  • Fluent DSL covering all constraints used in current jqwik tests
  • MIT license and no anti-AI stance

The updated TODO provides clear guidance on the replacement strategy and implementation details to unblock future work.

Test plan

  • No code changes; configuration and documentation only
  • Existing jqwik tests (StreamBufferProperties) continue to pass with 1.9.3
  • CI remains green

Related issues / PRs

Addresses the URGENT TODO documented in CLAUDE.md regarding jqwik replacement.

Checklist

  • I have read CONTRIBUTING.md and CODE_OF_CONDUCT.md
  • My commits follow Conventional Commits
  • No security-sensitive changes

https://claude.ai/code/session_01XigFKHMf8r7HLsLHts1J1K

claude added 3 commits May 31, 2026 10:09
Avoid the anti-AI prompt-injection string added in jqwik 1.10.0 (and
the 1.10.1 release note declaring the library is not meant to be used
by AI coding agents). The 1.9.x line is the last release without that
behaviour. Long-term plan tracked in CLAUDE.md is to replace jqwik
entirely with junit-quickcheck or hand-rolled JUnit Jupiter
@ParameterizedTest.
QuickTheories (org.quicktheories:quicktheories, MIT) runs natively
on JUnit Jupiter 5/6 with plain @test methods - no @RunWith, no
JUnit Vintage engine - while still giving property-based generation
with shrinking. Demote junit-quickcheck and hand-rolled
@ParameterizedTest to fallback options.
Prevent future bumps to jqwik >= 1.10.0, which ships an anti-AI
prompt-injection string in test stdout. See CLAUDE.md for context;
replacement with QuickTheories is tracked as an urgent TODO.
@sonarqubecloud
Copy link
Copy Markdown

@bernardladenthin bernardladenthin merged commit 81b7c0d into main May 31, 2026
10 of 11 checks passed
@bernardladenthin bernardladenthin deleted the claude/gifted-edison-D99NS branch May 31, 2026 10:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants