╭ changed ────╮ │src/patch.zig│ ╰─────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────╮ │212 const history = try DB.ArrayList(.read_write).init(target_repo.core.db.rootCursor());│ │213 history.appendContext(.{ .slot = try history.getSlot(-1) }, Ctx{ │ │214 .repo = target_repo, │ │215 - .fork_repo = &fork_repo_maybe.?, │ │215 + .fork_repo = if (fork_repo_maybe) |*repo| repo else unreachable, │ │216 .io = io, │ │217 .allocator = allocator, │ │218 .check = &check, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │464 defer check_arena.deinit(); │ │465 │ │466 // require the fork's newest revision while both repos are locked │ │467 - const selected_revision = ctx.expected_patch.revision.?; │ │467 + const selected_revision = ctx.expected_patch.revision orelse unreachable; │ │468 const revision_id = try evt.parseEventId(&selected_revision.id); │ │469 const fork_moment = try evt.currentMoment(repo_opts, ctx.fork_repo); │ │470 const newest = (try evt.PatchRev.readNewest(evt.EventDB(repo_opts.hash), repo_opts.hash, fork_moment, &check_arena)) orelse return error.PatchDataUnavailable;│ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ────────╮ │src/serve_ssh.zig│ ╰─────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────╮ │248 try ui.inputKey(allocator, &nav.root, key, &ui_session); │ │249 } │ │250 } else { │ │251 - switch (event.?) { │ │251 + switch (event orelse unreachable) { │ │252 .data => |payload| { │ │253 defer allocator.free(payload); │ │254 if (std.mem.indexOfAny(u8, payload, "\r\n") == null) continue;│ ╰───────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ────────╮ │src/ui/widget.zig│ ╰─────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │1252 const wide = x + 1 < art_grid.size.width and (try art_grid.cell(x + 1, y)).continuation;│ │1253 const next_dst = if (wide) try out.cell(anchor_x + x + 1, y) else null; │ │1254 // blank cells take the art; occupied cells take its background │ │1255 - if (cellIsBlank(dst.*) and (next_dst == null or cellIsBlank(next_dst.?.*))) { │ │1255 + if (cellIsBlank(dst.*) and (if (next_dst) |next| cellIsBlank(next.*) else true)) { │ │1256 dst.style = src.style; │ │1257 dst.style.fg = sgrSafe(dst.style.fg); │ │1258 dst.style.bg = sgrSafe(dst.style.bg); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────╯