Commit Graph

1536 Commits

Author SHA1 Message Date
Aiden Bai 19f2148e00 FPFNFIX82 Fix CSS-reserved image dimensions (#1550)
* fix(rule): recognize CSS-reserved image layout

* fix(rule): scope static CSS image evidence

* fix(no-img-without-dimensions): compose CSS with classes

* fix(no-img-without-dimensions): parse layered CSS

* fix(no-img-without-dimensions): ignore interaction-only CSS

* fix(no-img-without-dimensions): expand selector functions

* fix(no-img-without-dimensions): parse CSS with Lightning CSS

* fix(no-img-without-dimensions): model flex axes

* test(evals): stabilize manifest verification timeout

* test(evals): reset manifest operation deadlines

* fix(no-img-without-dimensions): honor nested CSS cascade

* fix(no-img-without-dimensions): compose Tailwind with CSS

* fix(no-img-without-dimensions): resolve same-layer cascade
2026-08-02 21:48:52 -07:00
Aiden Bai 91ebe85fdc FPFNFIX82 Fix symbol-only control names (#1554) 2026-08-02 17:30:49 -07:00
Aiden Bai b02bc694f1 FPFNFIX82: RDFPFN82026: preserve mixed effect chains (#1545)
* fix(rules): detect mixed effect chains

* fix(no-effect-chain): preserve channel lifecycles

* fix(no-effect-chain): preserve external sync boundaries

* fix(no-effect-chain): ignore setter value helpers in cleanup
2026-08-02 07:48:32 -07:00
Aiden Bai f7dbdfa399 FPFNFIX82: RDFPFN82026: exclude media latches from all-state resets (#1547)
* fix(rules): exclude media latches from all-state resets

* test(rules): retain editable reset finding
2026-08-02 03:27:12 -07:00
Aiden Bai 7f29ecaa32 FPFNFIX82: RDFPFN82026: recognize media failure latches (#1546)
* fix(rules): recognize media failure latches

* fix(rules): tighten media lifecycle proof
2026-08-02 03:14:02 -07:00
Aiden Bai 8a22de1263 fix(rules): ignore empty ref registries (#1544) 2026-08-02 03:13:59 -07:00
Aiden Bai c3683a2850 feat(cli): make the interactive report the default (#1542)
Co-authored-by: Rayhan Noufal Arayilakath <me@rayhanadev.com>
2026-08-02 01:09:19 -07:00
github-actions[bot] 0b673ccb76 chore: version packages (#1462) 2026-07-31 22:57:26 -07:00
Skosh 5268cb4c5d fix: [server-auth-actions] skip credential-establishing endpoints (#1540)
* fix(server-auth-actions): skip credential-establishing actions

The server-auth-actions rule now correctly skips server actions that
perform credential-establishing operations (signup, signin, OTP
verification, password reset) by detecting calls to auth SDK methods
like supabase.auth.signUp(), auth.signInWithPassword(), and
auth.verifyOtp().

These actions legitimately run for anonymous callers, so requiring
authentication would be incorrect. This resolves the documented false
positive where credential-establishing endpoints were incorrectly
flagged as unauthenticated privileged operations.

Closes #1538

Co-authored-by: Skosh <skoshx@users.noreply.github.com>

* test(server-auth-actions): cover credential SDK boundaries

* fix(server-auth-actions): verify auth provider receivers

* fix(server-auth-actions): require credential action intent

* fix(server-auth-actions): recognize direct auth namespaces

* fix(server-auth-actions): require leading credential intent

* fix(server-auth-actions): cover credential action aliases

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Skosh <skoshx@users.noreply.github.com>
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-07-31 21:01:31 -07:00
Skosh a9a1f40c8b fix(effect-needs-cleanup): recognize Supabase channel cleanup (#1541)
* fix(effect-needs-cleanup): recognize removeChannel/removeAllChannels/dispose cleanup

- Add removeChannel and removeAllChannels to GLOBAL_RELEASE_METHOD_NAMES
- Add cleanup verbs to .on() paired release verbs for Supabase chains
- Add special case for .on() calls without handles in chains
- Add comprehensive unit tests for Supabase and Jitsi patterns

Fixes #1539

Co-authored-by: Skosh <skoshx@users.noreply.github.com>

* chore: add changeset for #1539 fix

Co-authored-by: Skosh <skoshx@users.noreply.github.com>

* refactor(rule): localize Supabase cleanup verbs

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Skosh <skoshx@users.noreply.github.com>
Co-authored-by: Aiden Bai <aiden.bai05@gmail.com>
2026-07-31 20:50:25 -07:00
Aiden Bai 19387631f2 fix(rule): resolve useCallback pointer capture handlers (#1524) 2026-07-31 20:27:27 -07:00
Aiden Bai 992205a31b fix(rule): detect default clobbers reaching JSX (#1526) 2026-07-31 17:12:25 -07:00
Aiden Bai 9418a1c01f RDFPFN792026: recognize external effect synchronization (#1523)
* fix: recognize external effect synchronization

* test: preserve mixed deferred effect work
2026-07-31 17:12:09 -07:00
Aiden Bai b479d7d777 RDFPFN792026: prove ref-owned timer cleanup (#1522)
* fix(rule): prove ref-owned timer cleanup

* fix(rule): preserve local resource cleanup aliases

* fix(rule): prove socket owner listener cleanup
2026-07-31 17:11:53 -07:00
Aiden Bai c672551e42 fix(exhaustive-deps): gate custom hook analysis (#1509) 2026-07-31 17:11:38 -07:00
Aiden Bai a8115b8257 fix(no-flush-sync): allow awareness selection integrations (#1508) 2026-07-31 17:11:22 -07:00
Aiden Bai 0cc5efbf21 RDFPFN792026: recognize compound stale-request guards (#1499)
* fix(rule): recognize compound stale-request guards

* fix(rule): continue cleanup scans after safe try blocks

* fix(rule): allow loose compound sequence guards

* fix(rules): accept equivalent cleanup returns

* fix(rule): scope cleanup proof to async invocation paths

* fix(rule): prove conditional cleanup coverage

* fix(rule): bound conditional invocation proofs

* fix(rule): resolve initialized mutable effect helpers
2026-07-31 17:11:04 -07:00
Aiden Bai adcee586ad RDFPFN792026: recognize settling componentDidUpdate guards (#1495)
* fix(oxlint-plugin): recognize settling did-update guards

* fix(oxlint-plugin): preserve state convergence sources

* fix(oxlint-plugin): reject unstable did-update guards

* fix(oxlint-plugin): close did-update guard review gaps
2026-07-31 17:10:46 -07:00
Aiden Bai 3d67ca13a2 RDFPFN792026: recognize default HoC feature exports (#1489)
* fix(oxlint): recognize default HoC feature exports

* fix(oxlint): reject mutable HoC export aliases

* fix(oxlint): unwrap typed HoC export arguments

* fix(oxlint): trace HoC export specifiers

* fix(oxlint): trace composed HoC exports

* fix(oxlint): recognize default HoC export records

* fix(no-multi-comp): trace CommonJS feature exports

* fix(no-multi-comp): trace exported component identity

* fix(rules): preserve compound component members
2026-07-31 17:10:27 -07:00
Aiden Bai 6b64dfaf9e RDFPFN792026: detect state updater side effects (#1525)
* RDFPFN792026: detect state updater side effects

* fix: accept nullish local collection initialization

* fix: preserve updater-local mutable builders

* fix: detect setter callback prop variants

* fix(rule): preserve updater-local mutable receivers

* fix(rule): tighten updater assignment provenance

* fix(rule): detect external platform append mutations

* fix(rule): close state updater parity gaps

* fix(rule): preserve local updater values

* fix(rule): narrow lazy initializer functions

* fix(rule): prove updater property factories

* fix(rule): prove immutable updater dates

* fix(rule): tighten immutable date provenance

* fix(rule): prove immutable date receiver chains

* fix(rule): replay updater property overwrites

* fix(rule): honor dayjs wrapper depth

* fix(cache): fingerprint dayjs mutation graph

* fix: track deep Day.js configuration dependencies

* fix: preserve module service side effects

* fix(cache): bound dependency graph traversal

* fix(rule): ignore unreachable prior state setters

* fix(rule): keep nested component helpers local

* fix(rule): keep unresolved nested helpers conservative

* fix(rule): ignore dead ternary updater branches

* fix(rule): fail closed at dayjs config frontier
2026-07-31 08:18:35 -07:00
Aiden Bai a81b3d6573 fix(js-hoist-intl): respect dynamic utility inputs (#1507) 2026-07-31 06:45:41 -07:00
Aiden Bai 57743f827d RDFPFN792026: recognize mounted callback-ref state (#1506)
* fix(react): recognize mounted callback-ref state

* fix(react): trace callback ref mount sources

* fix(react): reject computed callback ref writers

* fix(react): detect indirect callback ref writers

* fix(react): inspect only setState payload sources

* fix(react): constrain post-mount source execution

* fix(react): trace invoked post-mount helpers

* fix(rules): harden callback ref field discovery

* fix(rules): share mutation receiver alias tracking

* fix(rules): require fully post-mount state payloads

* fix(rules): reject impure callback ref writers

* fix(rules): prove callback ref value provenance

* fix(rules): track callback ref handler aliases

* fix(rules): inspect nested mutation call writers

* fix(rules): preserve measured mount state provenance

* fix(rules): harden mounted ref provenance

* fix(rules): harden mounted ref execution proofs
2026-07-31 06:45:08 -07:00
Aiden Bai 075865fc25 feat(evals): batch parity treatments in matrix (#1537)
* feat(evals): batch parity treatments in matrix

* fix(evals): close matrix evidence trust gaps

* fix(evals): bind matrix comparison evidence

* fix(parity): validate matrix artifact contents

* fix(parity): bundle matrix corpus evidence

* fix(parity): require lowercase matrix commits

* fix(evals): bound Daytona control-plane cleanup

* fix(evals): close matrix artifact review gaps

* fix(evals): align matrix verifier project hashing

* fix(evals): schedule matrix treatments together

* fix(evals): finalize matrix artifacts safely

* fix(evals): clean partial base publication

* fix(evals): preserve matrix retry batching
2026-07-31 06:44:08 -07:00
Aiden Bai f023fb9aab feat(evals): pair parity scans in one sandbox (#1536)
* feat(evals): pair parity scans in one sandbox

* test(evals): compare paired git directories portably

* test(evals): verify shared git directory semantically

* fix(evals): commit paired output atomically
2026-07-31 03:47:31 -07:00
Aiden Bai 443082ae30 RDFPFN792026: preserve ordered shared receiver awaits (#1521)
* fix(rule): preserve ordered shared receiver awaits

* fix(rule): isolate nested await loops

* fix(rule): scope ordered await exemptions

* fix(async-await-in-loop): narrow ordered output proof
2026-07-31 03:21:59 -07:00
Aiden Bai 7bbc7561fd feat(evals): add incremental parity caching (#1535)
* feat(evals): add incremental parity caching

* fix(parity): fail closed on uncertain scopes
2026-07-31 03:05:12 -07:00
Aiden Bai b07af9db5f fix: preserve guarded createRef persistence (#1520) 2026-07-31 01:32:47 -07:00
Aiden Bai 8170ba24e8 RDFPFN792026: ignore focus-forwarding static wrappers (#1515)
* fix(a11y): ignore focus-forwarding static wrappers

* fix(a11y): preserve named forwarding handlers

* fix(a11y): preserve wrapped backdrop handlers

* fix(a11y): retain conditional blocker diagnostics
2026-07-30 23:51:15 -07:00
Aiden Bai 660200e54a RDFPFN792026: prove render callback prop provenance (#1514)
* fix(rule): prove custom hook callback origin

* fix(rule): scope options prop provenance

* fix(rule): trace chained hook prop callbacks

* test(rule): preserve defaulted prop options
2026-07-30 23:17:35 -07:00
Aiden Bai 29e35d59bd fix(security): ignore client secret metadata literals (#1513) 2026-07-30 22:27:05 -07:00
Aiden Bai de6d2802c4 RDFPFN792026: avoid local live-state helper false positives (#1512)
* fix(react): tighten live-state callback provenance

* fix(react): preserve nested callback provenance
2026-07-30 22:09:55 -07:00
Aiden Bai fb5f881e74 fix(rule): treat custom hook calls as opaque (#1511) 2026-07-30 21:12:23 -07:00
Aiden Bai 65539afe9b RDFPFN792026: preserve external callback synchronization (#1532)
* fix(rule): preserve external callback synchronization

* fix(rule): ignore callback registration payloads

* fix(rule): retain reducer state mirrors
2026-07-30 20:57:49 -07:00
Aiden Bai d81eedac8e RDFPFN792026 Fix prefer-use-effect-event capture listener matching (#1527)
* fix prefer-use-effect-event capture listeners

* fix(rule): harden listener argument matching
2026-07-30 20:43:11 -07:00
Aiden Bai 3a0b9a0c5e fix(rule): preserve copied external snapshots (#1510) 2026-07-30 20:39:25 -07:00
Aiden Bai 8402820411 fix only-export-components Vite config callbacks (#1531) 2026-07-30 20:32:08 -07:00
Aiden Bai 69d19b516f fix(rule): detect URLSearchParams external-store mirrors (#1528) 2026-07-30 20:32:05 -07:00
Aiden Bai bf470d50fe fix: detect helpers in compiled forwardRef components (#1529) 2026-07-30 20:31:26 -07:00
Aiden Bai 2db2a97283 perf: reduce scan startup and workspace contention (#1533) 2026-07-30 19:42:52 -07:00
Aiden Bai 1d01dd33d1 fix(ci): stabilize matrix-sensitive tests 2026-07-31 02:18:32 +00:00
Aiden Bai 5dc936e111 RDFPFN792026: recognize controlled local state fallbacks (#1503)
* fix(rules): allow controlled local state fallbacks

* test(rules): preserve wrapped prop reseeds

* fix: prune nested controlled fallback scans
2026-07-30 00:12:51 -07:00
Aiden Bai c126684f01 RDFPFN792026: suppress tiny js iteration chains (#1493)
* fix: suppress tiny js iteration chains

* fix: retain destructured iteration diagnostics
2026-07-30 00:05:27 -07:00
Aiden Bai 2992a03f2e RDFPFN792026: preserve Next.js page prop serialization (#1498)
* fix(rules): preserve Next.js page prop serialization

* fix(rule): preserve conditional page props returns

* fix(rule): prove page props binding flow

* fix(rule): trace literal props bindings

* fix(rule): preserve opacity in page props

* fix(rule): keep props shorthand occurrence-safe
2026-07-30 00:04:22 -07:00
Aiden Bai 1f6e181d38 RDFPFN792026: prove predictable ref initialization (#1497)
* fix(oxlint-plugin): prove predictable ref initialization

* fix(oxlint-plugin): distinguish deferred ref replacements

* fix(oxlint-plugin): reject nondeterministic ref initialization

* fix(no-ref-current-in-render): classify render initializers
2026-07-30 00:03:18 -07:00
Aiden Bai 16972aeb83 RDFPFN792026: recognize terminal promise recovery catches (#1496)
* fix(rule): recognize terminal promise recovery catches

* fix(rule): accept proven terminal catch returns

* fix(rule): accept fulfilled catch promises
2026-07-29 23:59:37 -07:00
Aiden Bai 5f23826cea RDFPFN792026: recognize guarded loading finalizers (#1494)
* fix(rules): recognize guarded loading finalizers

* fix(rules): enforce loading ownership claim order

* fix(rules): require loading snapshot ownership

* fix(rules): harden loading ownership scope

* fix(rules): clarify loading guard boundaries
2026-07-29 23:52:32 -07:00
Aiden Bai 9512488a5e fix: report zero-argument ref constructors (#1492) 2026-07-29 23:51:27 -07:00
Aiden Bai c6bdd2d42b fix(rule): prove guarded maybe-undefined lookups (#1491) 2026-07-29 23:49:25 -07:00
Aiden Bai 8715808c20 RDFPFN792026 Prove effect cleanup lifecycle ownership (#1490)
* fix(rule): prove effect cleanup ownership

* fix(rule): resolve conditional effect invocations
2026-07-29 23:48:32 -07:00
Aiden Bai d6f02bbcbf RDFPFN792026: trace hydration branches through rendered values (#1488)
* fix: trace hydration browser branches through render flow

* fix: require rendered hydration consumers

* fix: suppress stable hydration comparisons

* fix: evaluate hydration equality operands precisely

* fix: resolve hydration equality aliases

* fix: prove hydration render flow precisely

* fix: close hydration branch adversarials
2026-07-29 23:47:04 -07:00