╭ changed ─────────────╮ │src/ui/User/Header.zig│ ╰──────────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────╮ │64 │ │65 // every tab link is user-scoped so selecting one stays on this page — │ │66 // switching its stack and updating the url — instead of navigating to │ │67 - // the global settings or auth pages. allocated in the page arena so the │ │68 - // focus kinds that borrow them live as long as this page's widget tree. │ │67 + // the global settings or auth pages. the "ai:" prefix makes each an │ │68 + // in-page anchor: crossPageLink ignores it so a wasm click just switches │ │69 + // tabs (the page already holds every tab's content), while the href is │ │70 + // still followed with js off. allocated in the page arena so the focus │ │71 + // kinds that borrow them live as long as this page's widget tree. │ │72 const aa = session.page_arena.allocator(); │ │70 - const repos_link = try std.fmt.allocPrint(aa, "a:/user/{s}", .{data.name}); │ │71 - const settings_link = try std.fmt.allocPrint(aa, "a:/user/{s}/settings", .{data.name}); │ │72 - const auth_link = try std.fmt.allocPrint(aa, "a:/user/{s}/auth", .{data.name}); │ │73 + const repos_link = try std.fmt.allocPrint(aa, "ai:/user/{s}", .{data.name}); │ │74 + const settings_link = try std.fmt.allocPrint(aa, "ai:/user/{s}/settings", .{data.name});│ │75 + const auth_link = try std.fmt.allocPrint(aa, "ai:/user/{s}/auth", .{data.name}); │ │76 │ │77 // the tab matching the current page is focused initially; matching by │ │78 // link (rather than position) keeps this robust to tab changes. │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │124 }); │ │125 } │ │126 │ │124 - // auth tab (login / logout). AuthTab defaults to the global a:/auth link; │ │125 - // repoint its instance at this user's auth route so it stays local too. │ │127 + // auth tab (login / logout). AuthTab defaults to the global ai:/auth │ │128 + // link; repoint its instance at this user's auth route so it stays local. │ │129 { │ │130 var auth_tab = try AuthTab.View.init(allocator, &data.auth_tab, session);│ │131 errdefer auth_tab.deinit(allocator); │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯