╭ changed ──────╮ │src/ui/Fork.zig│ ╰───────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │47 @memcpy(&target_id, fork_record.event.repo_id); │ │48 const owner_id = fork_record.event.repo_user_id[0..evt.event_id_size]; │ │49 │ │50 - const target_record = (try evt.readRepoById(io, gpa, arena, users_dir, owner_id, fork_record.event.repo_id)) orelse return error.NotFound;│ │50 + const target = (try evt.readRepoById(io, gpa, arena, users_dir, owner_id, &target_id, session.userId())) orelse return error.NotFound; │ │51 // a draft is as readable as the repo it targets │ │52 - if (evt.Repo.roleOf(target_record, session.userId()) == .none) return error.NotFound; │ │52 + if (target.role == .none) return error.NotFound; │ │53 + const target_record = target.repo; │ │54 const owner = (try evt.User.readById(evt.AdminDB, evt.admin_repo_opts.hash, haxy_moment, arena, owner_id)) orelse return error.NotFound; │ │55 if (!std.mem.eql(u8, target_record.event.name, identity.name)) return error.NotFound; │ │56 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────╮ │60 // the fork's viewer is the target repo's │ │61 const handle = ui.RepoHandle{ │ │62 .location = .{ .fork = .{ .identity = identity.identity, .id = &id_hex } },│ │62 - .viewer = try ui.Viewer.init(session, arena, target_record), │ │63 + .viewer = try ui.Viewer.init(session, arena, target.role), │ │64 }; │ │65 const fork_path = try fork.forkPath(aa, users_dir, &forker_id, &id); │ │66 // a fork shares its target's hash kind │ ╰───────────────────────────────────────────────────────────────────────────────────────╯