fix(submit): make replayed history deterministic#444
Open
ShivamB25 wants to merge 6 commits intojunhoyeo:mainfrom
Open
fix(submit): make replayed history deterministic#444ShivamB25 wants to merge 6 commits intojunhoyeo:mainfrom
ShivamB25 wants to merge 6 commits intojunhoyeo:mainfrom
Conversation
Contributor
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
4 tasks
Author
|
This PR is intentionally stacked. If it were marked as a standalone ready-to-merge change, reviewers would be looking at a diff that conceptually depends on code still under review in the earlier PR(s). Reviewing it in order keeps the trust-boundary changes, replay semantics, and public-surface changes easier to reason about. |
Contributor
There was a problem hiding this comment.
1 issue found across 16 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="packages/frontend/src/lib/db/helpers.ts">
<violation number="1" location="packages/frontend/src/lib/db/helpers.ts:192">
P1: Incoming replay dates are not filtered by `replayWindow`, so out-of-scope days can still be inserted/updated if upstream input includes them.</violation>
</file>
Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.
| }: PlanSubmittedReplayArgs): PlannedReplayMutations { | ||
| const existingByDate = new Map(existingDays.map((day) => [day.date, day])); | ||
| const incomingByDate = new Map(incomingDays.map((day) => [day.date, day])); | ||
| const replayDates = new Set(incomingDays.map((day) => day.date)); |
Contributor
There was a problem hiding this comment.
P1: Incoming replay dates are not filtered by replayWindow, so out-of-scope days can still be inserted/updated if upstream input includes them.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At packages/frontend/src/lib/db/helpers.ts, line 192:
<comment>Incoming replay dates are not filtered by `replayWindow`, so out-of-scope days can still be inserted/updated if upstream input includes them.</comment>
<file context>
@@ -87,6 +148,132 @@ export function mergeClientBreakdowns(
+}: PlanSubmittedReplayArgs): PlannedReplayMutations {
+ const existingByDate = new Map(existingDays.map((day) => [day.date, day]));
+ const incomingByDate = new Map(incomingDays.map((day) => [day.date, day]));
+ const replayDates = new Set(incomingDays.map((day) => day.date));
+
+ for (const existingDay of existingDays) {
</file context>
Suggested change
| const replayDates = new Set(incomingDays.map((day) => day.date)); | |
| const replayDates = new Set( | |
| incomingDays | |
| .filter((day) => isDateWithinReplayWindow(day.date, replayWindow)) | |
| .map((day) => day.date) | |
| ); |
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.
Summary
Changes
Testing
Depends on #443
Refs #441