╭ changed ────────╮ │src/serve_ssh.zig│ ╰─────────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭────────────────────────────────────────────────────────────────────────────────╮ │49 .height_cells = if (pty.height_cells == 0) 24 else pty.height_cells,│ │50 }; │ │51 │ │52 - // build the UsersAndRepos page in a session-scoped arena. same fallback│ │53 - // pattern as web.zig — if the admin repo doesn't exist yet, render an │ │54 - // empty page rather than refusing the connection. │ │52 + // build the Home page in a session-scoped arena. │ │53 var page_arena = std.heap.ArenaAllocator.init(allocator); │ │54 defer page_arena.deinit(); │ │55 │ ╰────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────╮ │56 const repo_opts: rp.RepoOpts(.xit) = .{}; │ │57 const Repo = rp.Repo(.xit, repo_opts); │ │60 - var repo_or_err = Repo.open(io, allocator, .{ .path = handler.admin_repo_path });│ │61 - const page: ui.Page = if (repo_or_err) |*repo| blk: { │ │62 - defer repo.deinit(io, allocator); │ │63 - break :blk .{ .users_and_repos = try .init(repo_opts, &page_arena, repo) }; │ │64 - } else |_| .{ .users_and_repos = .empty() }; │ │58 + var repo = try Repo.open(io, allocator, .{ .path = handler.admin_repo_path }); │ │59 + defer repo.deinit(io, allocator); │ │60 + const page: ui.Page = .{ .home = try .init(repo_opts, &page_arena, &repo) }; │ │61 │ │62 var root = try ui.initRoot(allocator, &page); │ │63 defer root.deinit(); │ ╰─────────────────────────────────────────────────────────────────────────────────────────╯