╭ changed ───────────╮ │src/ui/Repo/Undo.zig│ ╰────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │375 const admin_repo = session.admin_repo orelse return error.NotFound; │ │376 const moment = try evt.currentMoment(evt.admin_repo_opts, admin_repo); │ │377 const pair = ui.RoutablePage.RepoIdentity.parse(identity) orelse return error.NotFound; │ │378 - const found = try evt.Repo.readByOwnerAndName(evt.AdminDB, evt.admin_repo_opts.hash, moment, session.page_arena, pair.owner, pair.name) orelse return error.NotFound; │ │378 + const io = session.io orelse return error.NotFound; │ │379 + const repos_dir = session.repos_dir orelse return error.NotFound; │ │380 + const found = try evt.readRepoByOwnerAndName(io, session.page_arena.child_allocator, session.page_arena, moment, repos_dir, pair.owner, pair.name) orelse return error.NotFound;│ │381 const hex = std.fmt.bytesToHex(found.event_id, .lower); │ │380 - return .{ .path = try std.fs.path.join(session.page_arena.allocator(), &.{ session.repos_dir orelse return error.NotFound, &hex }), .repo_kind = .xit }; │ │382 + return .{ .path = try std.fs.path.join(session.page_arena.allocator(), &.{ repos_dir, &hex }), .repo_kind = .xit }; │ │383 } │ │384 │ │385 pub const View = struct { │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯