╭ changed ──╮ │src/try.zig│ ╰───────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │387 const tz_p2 = "The tooltip on each entry repeats the same UTC value, so there is no way to see the local time without converting by hand.";│ │388 const tz_p3 = "A quick survey of other clients shows every one of them rendering local time by default."; │ │389 const tz_p4 = "Convert to local time and include the offset in tooltips."; │ │390 + │ │391 + // the sync issue's description, in paragraphs, so each side of its │ │392 + // seeded conflict can rework a different one │ │393 + const sync_p1 = "The sync engine only has unit tests with mocked transports."; │ │394 + const sync_p2 = "Failures seen in production involve reconnects and partial writes, which the mocks can't reproduce."; │ │395 + const sync_p3 = "Add end-to-end tests that run two instances against a real local server."; │ │396 │ │397 // seed issues so every repo's issue tracker has content │ │398 const issue_data = [_]struct { │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │516 }, │ │517 .{ │ │518 .title = "Add integration tests for the sync engine", │ │513 - .description = "The sync engine only has unit tests with mocked transports. Add end-to-end tests that run two instances against a real local server.",│ │519 + .description = sync_p1 ++ "\n\n" ++ sync_p2 ++ "\n\n" ++ sync_p3, │ │520 .tags = "testing sync", │ │521 }, │ │522 .{ │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │568 // two divergent edits per conflicted issue: ours on the events │ │569 // branch, theirs on a temp branch rooted at the seed tip, then a │ │570 // merge. the 4th-newest issue conflicts on title and tags; the │ │565 - // 2nd-newest on its description, with a deletion conflict (ours │ │566 - // removes a paragraph theirs rewords) and an insertion conflict │ │567 - // (each side appends a different closing paragraph). │ │571 + // 3rd-newest on its description with every hunk auto-resolving │ │572 + // (each side reworks a different paragraph); the 2nd-newest on │ │573 + // its description with a deletion conflict (ours removes a │ │574 + // paragraph theirs rewords) and an insertion conflict (each side │ │575 + // appends a different closing paragraph). │ │576 { │ │577 const other_ref: xit.ref.Ref = .{ .kind = .head, .name = "haxy/other" };│ │578 const title_issue = issue_data[issue_data.len - 4]; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────╮ │579 + const sync_issue = issue_data[issue_data.len - 3];│ │580 const desc_issue = issue_data[issue_data.len - 2];│ │581 │ │582 const ours = [_]evt.EventWithId{ .{ │ ╰───────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │589 .tags = "bug crash ui priority-high", │ │590 } }, │ │591 }, .{ │ │592 + .id = issue_events[issue_data.len - 3].id, │ │593 + .timestamp = 101, │ │594 + .author_email = user_data[1].email, │ │595 + .event = .{ .issue = .{ │ │596 + .title = sync_issue.title, │ │597 + .description = "The sync engine's coverage is unit tests only, with every transport mocked out." ++ "\n\n" ++│ │598 + sync_p2 ++ "\n\n" ++ sync_p3, │ │599 + .tags = sync_issue.tags, │ │600 + } }, │ │601 + }, .{ │ │602 .id = issue_events[issue_data.len - 2].id, │ │584 - .timestamp = 101, │ │603 + .timestamp = 102, │ │604 .author_email = user_data[1].email, │ │605 .event = .{ .issue = .{ │ │606 .title = desc_issue.title, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────╮ │611 } }; │ │612 const theirs = [_]evt.EventWithId{ .{ │ │613 .id = issue_events[issue_data.len - 4].id, │ │595 - .timestamp = 102, │ │614 + .timestamp = 103, │ │615 .author_email = user_data[2].email, │ │616 .event = .{ .issue = .{ │ │617 .title = "Segfault on early window resize",│ ╰────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │619 .tags = "bug crash rendering", │ │620 } }, │ │621 }, .{ │ │622 + .id = issue_events[issue_data.len - 3].id, │ │623 + .timestamp = 104, │ │624 + .author_email = user_data[2].email, │ │625 + .event = .{ .issue = .{ │ │626 + .title = sync_issue.title, │ │627 + .description = sync_p1 ++ "\n\n" ++ sync_p2 ++ "\n\n" ++ │ │628 + "Add end-to-end tests that drive two live instances against a local server on every CI run.",│ │629 + .tags = sync_issue.tags, │ │630 + } }, │ │631 + }, .{ │ │632 .id = issue_events[issue_data.len - 2].id, │ │604 - .timestamp = 103, │ │633 + .timestamp = 105, │ │634 .author_email = user_data[2].email, │ │635 .event = .{ .issue = .{ │ │636 .title = desc_issue.title, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯