╭ changed ──────╮ │src/ui/Repo.zig│ ╰───────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────╮ │108 .repo_refs => |r| r.after, │ │109 else => 0, │ │110 }; │ │111 - // the issue the issues tab's window is rooted at ("" = the first window).│ │111 + // the issues tab's tag filter and the issue its window is rooted at. │ │112 + const issues_tag: []const u8 = switch (route) { │ │113 + .repo_issues => |i| i.tag.slice(), │ │114 + else => "", │ │115 + }; │ │116 const issues_selected: []const u8 = switch (route) { │ │117 .repo_issues => |i| i.selected.slice(), │ │118 else => "", │ ╰───────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │146 return .{ │ │147 // files and commits resolve the same ref, so either's serves the header, │ │148 // which points both tabs at it. │ │145 - .header = try Header.init(arena, repo.name, owner.name, files.ref_or_oid, files.ref_or_oid_value), │ │149 + .header = try Header.init(arena, repo.name, owner.name, files.ref_or_oid, files.ref_or_oid_value, issues_tag),│ │150 .repo = repo, │ │151 .files = files, │ │152 .commits = commits, │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │153 .refs = try Refs.init(arena, session, &found.event_id, rf.identity, refs_kind, refs_after), │ │150 - .issues = try Issues.init(arena, session, &found.event_id, rf.identity, issues_selected), │ │154 + .issues = try Issues.init(arena, session, &found.event_id, rf.identity, issues_tag, issues_selected),│ │155 .settings = Settings.init(), │ │156 .auth = Auth.init(), │ │157 .quit = Quit.init(), │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │264 .repo_commits => self.session.data.current_page = .{ .repo_commits = .{ .name = self.data.commits_route_name, .after = self.data.commits_after } }, │ │265 // the refs tab mirrors this page's paginated column + offset. │ │266 .repo_refs => self.session.data.current_page = .{ .repo_refs = .{ .name = self.data.identity, .kind = self.data.refs.kind, .after = self.data.refs.after } }, │ │263 - // the issues tab mirrors the issue this page's window is rooted at. │ │264 - .repo_issues => self.session.data.current_page = ui.RoutablePage.repoIssuesRoute(self.data.identity.slice(), self.data.issues.selected_id) orelse self.session.data.current_page,│ │267 + // the issues tab mirrors this page's tag filter (issue urls │ │268 + // themselves never carry the tag). │ │269 + .repo_issues => self.session.data.current_page = ui.RoutablePage.repoIssuesRoute(self.data.identity.slice(), self.data.issues.tag, "") orelse self.session.data.current_page, │ │270 .home_settings => self.session.data.current_page = .{ .repo_settings = self.data.identity }, │ │271 .home_auth => self.session.data.current_page = .{ .repo_auth = self.data.identity }, │ │272 // the quit tab is tty-only and not a route, so leave current_page │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯