╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │85 │ │86 // every tab link is repo-scoped so selecting one stays on this page — │ │87 // switching its stack and updating the url — instead of navigating to │ │88 - // the global settings or auth pages │ │89 - const files_link = try std.fmt.allocPrint(aa, "a:/repo/{s}/{s}", .{ data.owner_name, data.name }); │ │88 + // the global settings or auth pages. the files tab routes through the │ │89 + // shared helper so the /repo/.../files url format lives in one place. │ │90 + const identity = try std.fmt.allocPrint(aa, "{s}/{s}", .{ data.owner_name, data.name }); │ │91 + const files_route = ui.RoutablePage.repoFilesRoute(identity, "") orelse return error.RouteTooLong; │ │92 + const files_link = try std.fmt.allocPrint(aa, "a:{s}", .{try files_route.urlAlloc(session.page_arena)}); │ │93 const settings_link = try std.fmt.allocPrint(aa, "a:/repo/{s}/{s}/settings", .{ data.owner_name, data.name });│ │94 const auth_link = try std.fmt.allocPrint(aa, "a:/repo/{s}/{s}/auth", .{ data.owner_name, data.name }); │ │95 │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯