╭ changed ──────╮ │src/ui/Repo.zig│ ╰───────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────╮ │23 const Array = ui.RoutablePage.Array(ui.RoutablePage.repo_identity_max_len);│ │24 │ │25 header: Header, │ │26 -repo: evt.Repo, │ │26 +repo: evt.Repo.Record, │ │27 files: Files, │ │28 commits: Commits, │ │29 refs: Refs, │ ╰───────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │124 // the repo and owner-name metadata the header shows. local mode already│ │125 // knows all three; the server paths resolve them from the admin db. │ │126 var source: ?ui.RepoSource = null; │ │127 - var repo: evt.Repo = undefined; │ │127 + var repo: evt.Repo.Record = undefined; │ │128 var owner_name: []const u8 = undefined; │ │129 if (session.local) |local| { │ │130 source = local; │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │131 // local routes elide the identity, so the display name comes from the │ │132 // repo's directory rather than the route. │ │133 - repo = .{ │ │133 + repo = .{ .event = .{ │ │134 .user_id = "", │ │135 .name = try arena.allocator().dupe(u8, std.fs.path.basename(local.path)),│ │136 .description = "", │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │137 - }; │ │137 + } }; │ │138 owner_name = ""; │ │139 } else { │ │140 const haxy_moment = session.haxy_moment orelse return error.NoMoment;│ ╰──────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │143 │ │144 // resolve the creating user so the header can show their name to the left │ │145 // of the repo title. │ │146 - const owner = (try evt.User.readById(DB, hash_kind, haxy_moment, arena, repo.user_id)) orelse return error.NotFound; │ │147 - owner_name = owner.name; │ │146 + const owner = (try evt.User.readById(DB, hash_kind, haxy_moment, arena, repo.event.user_id)) orelse return error.NotFound;│ │147 + owner_name = owner.event.name; │ │148 │ │149 // the repo's working copy lives at <repos_dir>/<hex event id>. │ │150 if (session.repos_dir) |repos_dir| { │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │214 return .{ │ │215 // files and commits resolve the same ref, so either's serves the header, │ │216 // which points both tabs at it. │ │217 - .header = try Header.init(arena, repo.name, owner_name, files.ref_or_oid, files.ref_or_oid_value, issues_tag), │ │217 + .header = try Header.init(arena, repo.event.name, owner_name, files.ref_or_oid, files.ref_or_oid_value, issues_tag),│ │218 .repo = repo, │ │219 .files = files, │ │220 .commits = commits, │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯