New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Log when non-current version of main.json is replaced #20749
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 Looks good, looking forward to having this data.
@islemaster , I've added the tab id when replacing non-current versions, and it appears to be (1) unique between tabs and (2) consistent across reloads within the same tab. PTAL? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool. Tab ID implementation looks good.
if reverting, will also need to revert e748f05 . |
Background
The problem scenario
open project in tab A, write "// version 1", and press run
still in tab A, write "// version 2", and press run
open the same project in tab B, write "// version 3 with many changes", and press run
in tab A, write "// version 4" and press run
EXPECTED: warning that project is being edited in multiple places
ACTUAL: no warning
go back to tab B and refresh the page
EXPECTED: "version 3 ..." remains visible, or a warning is displayed with link to version history
ACTUAL: "version 3 ..." disappears, though still exists in version history
How project versions work
currentSourceVersionId
)Description
Start logging to Firehose when the problem sequence happens. Do this by detecting when the version of main.json being replaced is not the latest version of that file.
For each tab, remember the server timestamp from the first time it saved a copy of the current project (
firstSaveTimestamp
). Persist this timestamp only when logging to Firehose, in order toThis PR gathers logging information only, and does not fix the EXPECTED/ACTUAL discrepancies listed above.