Repository navigation
Conversation
Signed-off-by: Rudy Celekli <rudy@gradiahq.com>
12 tasks done
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
Workbook keyboard copy emits raw tabs/newlines, and paste splits every tab/newline. Copying multiline notes or pasting a quoted spreadsheet cell therefore changes cell boundaries and can write parts of a note into neighboring rows or columns.
Use a shared TSV serializer/parser: quote separators and double embedded quotes on copy; retain quoted cell contents on paste. Plain TSV, CRLF record endings, empty cells and trailing record separators remain supported. Malformed quoted text is rejected before a mutation.
Validation
WorkbookEditor, React Query and an owned HTTP API fixture: 1 failure before / 1 pass after. Keyboard copy and three paste cases cover multiline notes, tabs/escaped quotes, ordinary CRLF text and a trailing blank column. Before, the captured real PATCH moved the second line into row 2; after, only the intended row receives the multiline note and adjacent company./notificationsroute. Full monorepo lint is unavailable in the filtered web installation (turboabsent); full hosted frontend and PostgreSQL gates are pending.The browser fixture captures actual editor requests; it does not exercise authentication or backend persistence. Clipboard writes are intercepted within the page, without reading or changing the host clipboard. No live provider or paid calls.
Prepared with AI assistance; source and native regression evidence were reviewed before submission. Signed-off commit included.