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 |
|