Repository navigation
Conversation
|
🦞👀 Pull request received. I will update this pull request when review starts. ClawSweeper review completeClawSweeper finished reviewing this revision. The review result is being finalized. |
|
Codex review: needs changes before merge. What this changesThis PR excludes inherited JavaScript properties from evaluation lookups while preserving explicitly supplied special keys. Example: Delete the constructor segment, then evaluate theme for beta-user.
Review scores
ProductKind: Bug fix · Worth it: Yes · Fix scope: Complete Merge readiness⛔ Needs changes before merge - 1 item remains This PR fixes a concrete evaluation defect still present on current main; no actionable code findings remain, but GitHub reports a merge conflict. Priority: P2 Before merge
FindingsNone. Agent review detailsHow this fits togetherThe shared core evaluator consumes flag configurations, segments, and caller attributes; the React SDK merges evaluation responses with application-defined defaults. flowchart TD
A[Stored flags and segments] --> C[Core evaluator]
B[Caller context] --> C
C --> D[Variation or default]
D --> E[Public evaluation response]
E --> G[SDK manifest merge]
F[Application defaults] --> G
G --> H[Application flag values]
Technical reviewBest possible solution: Land the focused shared lookup repair with its regression coverage and current-main changelog entries preserved. Do we have a high-confidence way to reproduce the issue? Current-main source deterministically exposes the missing-constructor segment crash and inherited-value lookups, corroborated by reported before-fix failures; this review executed no tests. Is this the best way to solve the issue? Own-property checks in the shared owners and safe dictionary construction directly restore existing contracts without changing evaluation order, public exports, or configuration. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning medium; reviewed against c6843b3efda4. Provenance checked
TestingProof path: shipped entry point. SecurityNone. EvidenceWhat I checked:
Likely related people:
Review metrics
LabelsLabel changes: No label changes. Label justifications:
Rating scale6/6 🦀 challenger crab · 5/6 🦞 diamond lobster · 4/6 🐚 platinum hermit · 3/6 🦐 gold shrimp · 2/6 🦪 silver shellfish · 1/6 🧂 unranked krab. Overall follows the weaker of proof and patch quality; ✨ marks media proof (a screenshot, video, or linked artifact) that directly shows the changed behavior. WorkflowClawSweeper edits this one comment on every review. Comment HistoryReview history (4 earlier review cycles)
Reviewed October 12, 2026, 11:52 AM ET / 15:52 UTC (Revision 5). |
What Problem This Solves
Fixes flag evaluation crashing after a segment named
constructoris deleted, and missing attributes or SDK flags with inherited JavaScript names producing unintended values.User Impact
Missing segments and attributes fall through to the next evaluation step, and missing SDK flags retain their code defaults. Explicitly supplied keys such as
constructor,toString, and__proto__still work. No configuration migration, dependency update, or SDK export change is needed.Why This Change Was Made
Dictionary lookups previously treated inherited JavaScript properties as supplied data. The evaluator and SDK now require explicit entries, and remote-value maps preserve special keys safely. The change keeps the existing evaluation order and missing-value contracts.
Evidence
All ten new regression cases failed before the fix: six core cases, three React cases, and a real Worker/D1 lifecycle that returned HTTP 500 after deleting the
constructorsegment. They now pass.The full local gate passed with Node 24.21.0 and pnpm 11.24.0: typecheck, tests (43 core, 36 React, 48 CLI, 129 Worker, 6 script tests), dashboard/demo/CLI builds, docs build, and packed SDK verification. Lint passed with six existing CSS warnings; Git-ignore integration excluded an unrelated ignored local proof artifact. The Worker suite printed two existing non-failing internal-error diagnostics.
The packed core SDK and public server-evaluator entry point were also loaded in a standalone consumer and exercised against a real synthetic local HTTP server:
Independent Codex autoreview is clean through P2. These checks use synthetic data; production services were not contacted.
Exact-head verification for
baa285b42f8ca961c007b5a7a8501d87aef7c1af: CI passed and CodeQL passed, with no reruns. All required checks are green. @vincentkoc has been requested for the required code-owner review; this PR remains open pending approval.