╭ changed ──────╮ │src/ui/Repo.zig│ ╰───────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────╮ │227 var source: ?ui.RepoSource = null; │ │228 var repo_id_maybe: ?[evt.event_id_size]u8 = null;│ │229 var repo: evt.Repo.Record = undefined; │ │230 + // local mode owns its repo │ │231 + var role: evt.Repo.Role = .owner; │ │232 var owner_name: []const u8 = undefined; │ │233 if (session.local) |local| { │ │234 source = local; │ ╰──────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │244 const haxy_moment = session.haxy_moment orelse return error.NoMoment; │ │245 const io = session.io orelse return error.NoMoment; │ │246 const users_dir = session.users_dir orelse return error.NoMoment; │ │245 - const found = (try evt.readRepoByOwnerAndName(io, arena.child_allocator, arena, haxy_moment, users_dir, repo_identity.owner, repo_identity.name)) orelse return error.NotFound; │ │247 + const found = (try evt.readRepoByOwnerAndName(io, arena.child_allocator, arena, haxy_moment, users_dir, repo_identity.owner, repo_identity.name, session.userId())) orelse return error.NotFound;│ │248 // a repo the session can't read doesn't exist to it │ │247 - if (evt.Repo.roleOf(found.repo, session.userId()) == .none) return error.NotFound; │ │249 + if (found.role == .none) return error.NotFound; │ │250 repo = found.repo; │ │251 + role = found.role; │ │252 repo_id_maybe = found.event_id; │ │253 │ │254 // resolve the creating user so the header can show their name to the left │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────╮ │265 │ │266 const handle = ui.RepoHandle{ │ │267 .location = .{ .repo = try arena.allocator().dupe(u8, repo_identity.identity) },│ │265 - .viewer = try ui.Viewer.init(session, arena, repo), │ │268 + .viewer = try ui.Viewer.init(session, arena, role), │ │269 }; │ │270 │ │271 // open the repo once for every tab. files and changes share a ref or revision. │ ╰─────────────────────────────────────────────────────────────────────────────────────────────╯