╭ changed ──╮ │src/try.zig│ ╰───────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │167 .{ .user_index = 1, .name = "vim", .description = "The ubiquitous text editor" }, │ │168 // private, so only bobby and admin can see it │ │169 .{ .user_index = 2, .name = "neovim", .description = "Hyperextensible Vim-based text editor", .read_access = .private }, │ │170 + // private and owned by admin │ │171 + .{ .user_index = 0, .name = "dotfiles", .description = "Shell, editor, and terminal configuration", .read_access = .private },│ │172 .{ .user_index = 3, .name = "emacs", .description = "GNU Emacs source code mirror" }, │ │173 .{ .user_index = 4, .name = "tmux", .description = "Terminal multiplexer" }, │ │174 .{ .user_index = 5, .name = "zsh", .description = "Mirror of the Z shell source code repository" }, │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │197 .{ .user_index = 18, .name = "prometheus", .description = "The Prometheus monitoring system and time series database" }, │ │198 .{ .user_index = 19, .name = "grafana", .description = "The open and composable observability and data visualization platform" },│ │199 .{ .user_index = 20, .name = "ansible", .description = "Simple, agentless IT automation" }, │ │200 + // public and owned by admin. the last repo is the one given patches │ │201 + .{ .user_index = 0, .name = "toolbox", .description = "Command line tools for inspecting and building workspaces" }, │ │202 }; │ │203 │ │204 var user_ids: [user_data.len][evt.event_id_size]u8 = undefined; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │275 for (repo_data, repo_events, grant_events) |r, repo_event, grant_event| { │ │276 if (r.user_index != user_index) continue; │ │277 try owned.append(arena.allocator(), repo_event); │ │274 - try owned.append(arena.allocator(), grant_event); │ │278 + // admin already owns its own repos │ │279 + if (r.user_index != 0) try owned.append(arena.allocator(), grant_event); │ │280 } │ │281 if (owned.items.len > 0) try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, evt.events_ref, owned.items);│ │282 } │ ╰───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ─────────────╮ │src/ui/Repo/Header.zig│ ╰──────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │ 94 const text = try std.fmt.bufPrint(&text_buf, "{s}/", .{data.owner_name}); │ │ 95 const link = try aa.print("a:/{s}", .{data.owner_name}); │ │ 96 │ │ 97 - var text_box = try wgt.TextBox.init(allocator, text, .{ .border = .hidden, .wrap_kind = .none }); │ │ 97 + const private_label = if (page.repo.event.read_access == .private) "(private)" else ""; │ │ 98 + var text_box = try wgt.TextBox.init(allocator, text, .{ .border = .hidden, .wrap_kind = .none, .bottom_label = .{ .text = private_label } });│ │ 99 errdefer text_box.deinit(allocator); │ │100 text_box.getFocus().mode = .all; │ │101 text_box.getFocus().kind = .{ .custom = link }; │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────╮ │101 - first_group_width += try xitui.width.displayWidth(text) + 2; │ │102 + first_group_width += @max(try xitui.width.displayWidth(text), private_label.len) + 2;│ │103 try title_box.children.put(allocator, text_box.getFocus().id, .{ │ │104 .widget = .{ .text_box = text_box }, │ │105 .rect = null, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────╯