Repository navigation
Fix everything a full review of the plugin found - #4
Merged
Merged
Conversation
A complete review pass before submission: WordPress.org compliance, live end-to-end verification in wp-env, and a code review across every PHP include and TypeScript module, with each confirmed defect fixed and locked in by a regression test. 535 PHPUnit + 242 vitest tests pass; Plugin Check reports zero errors on the shipped tree. The headline fixes: a tampered client total could survive a formula failure; scientific notation broke formula substitution in both engines; the "Other" choice option was rejected by its own whitelist; every query-carrying REST path 404ed on plain-permalink sites, taking the Entries and Analytics screens down on a default install; and Analytics was only reachable inside OpenStation despite the readme's promise, so it is now an ordinary Forms submenu page too. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_0119U4sRRWGcTQdwYreTwpAp
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A full review of the plugin, top to bottom, done the way a WordPress.org reviewer and a security reviewer would each do it — and then every confirmed finding fixed, with a regression test standing behind each fix.
Scope of the review
Three questions were asked of the codebase:
1. WordPress.org compliance — clean
wp-admin/includes/image.phpfor attachment metadata — the documented, accepted pattern. No CDN assets, no shadowed core functions, nowp-load.phpshortcuts.bin/ships.mjskeepsvendor/,node_modules/,src/,tests/and every dotfile out of the zip.phpcs:ignorecomments inuninstall.phpnaming a sniff code that doesn't exist (directory_rmdirinstead offile_system_operations_rmdir), so the errors they were meant to acknowledge were never suppressed. Fixed. The readme title is aligned with the plugin header, clearing the name-mismatch warning. The shipped tree now reports zero errors.2. Functionality — verified live, one launch-blocking bug found
TypeScript compiles clean; all bundles build. But the live walk found what no suite had:
?rest_route=…, and every path that brought its own query string produced a second?— Core answeredrest_no_routeand the admin windows showed only an error. Fixed with a query-aware join inapi.ts, re-verified in the browser on plain permalinks.3. Code review — ~35 confirmed defects, all fixed
Money and trust
0.00001stringified to scientific notation, which the tokenizer rejects. Both the PHP and TS engines now substitute plain decimals; the shared conformance table has cases for both.Abuse resistance
atf_partial_rate_limitfilter, HTTP 429 past the cap), and a resume token can no longer overwrite another form's partial or be corrupted on update.Builder data loss
Quieter correctness
strtotime()/wp_kses_post()), and redirect confirmationsrawurlencode()d arrays from visitor-influenced query templates.Verification
tsc --noEmitdocs/hooks-reference.mdanddocs/architecture.mdare updated for the new public surface (atf_partial_rate_limit,atf_upload_overrides, the hour-bucketed challenge, the Analytics admin page), and the readme's test count now tells the truth (777).Product verdict
The pitch survives scrutiny: every headline claim in the readme has a working implementation behind it, and the builder is genuinely pleasant to use. The gaps worth closing next are adoption gaps, not correctness ones — importers from the plugins people are switching away from, a deliverability note in the FAQ, and friendlier entry-list rows.
🤖 Generated with Claude Code
https://claude.ai/code/session_0119U4sRRWGcTQdwYreTwpAp