╭ changed ──╮ │src/web.zig│ ╰───────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────╮ │← previous│ ╰──────────╯ ╭───────────────────────────────────────────────────────╮ │270 .form_feedback = form_feedback, │ │271 .sync_failure = sync_failure, │ │272 .current_page = current_page, │ │273 - .is_local = host == .local, │ │273 + .host_kind = std.meta.activeTag(host),│ │274 .git_http_port = git_http_port, │ │275 .git_ssh_port = git_ssh_port, │ │276 .git_ssh_prefix = git_ssh_prefix, │ ╰───────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │383 │ │384 fn respondThreadFormFailure(request: *std.http.Server.Request, allocator: std.mem.Allocator, host: Host, location: []const u8, feedback: ui.Session.FormFeedback) !void {│ │385 return switch (host) { │ │386 - .remote => |remote| respondFormFailure(request, allocator, remote.session_store, location, feedback), │ │386 + .server => |server| respondFormFailure(request, allocator, server.session_store, location, feedback), │ │387 .local => { │ │388 const tag = std.meta.activeTag(feedback); │ │389 const required_title = switch (feedback) { │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────╮ │508 request: *std.http.Server.Request, │ │509 host: Host, │ │510 ) !?RequestAuthor { │ │511 - const remote = switch (host) { │ │512 - .remote => |remote| remote, │ │511 + const server = switch (host) { │ │512 + .server => |server| server, │ │513 .local => |src| return .{ .author = try ui.localAuthor(src, io, allocator, arena) },│ │514 }; │ │515 const token = getCookieValue(request, cookie_name) orelse return null; │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │516 var user_id: [evt.event_id_size]u8 = undefined; │ │517 - if (!remote.session_store.lookup(token, &user_id)) return null; │ │517 + if (!server.session_store.lookup(token, &user_id)) return null; │ │518 │ │519 - var repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = remote.admin_repo_path }); │ │519 + var repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = server.admin_repo_path }); │ │520 defer repo.deinit(io, allocator); │ │521 const moment = try evt.currentMoment(evt.admin_repo_opts, &repo); │ │522 const user = (try evt.User.readById(evt.AdminDB, evt.admin_repo_opts.hash, moment, arena, &user_id)) orelse return null;│ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────╮ │622 const event_id_hex = std.fmt.bytesToHex(id_bytes, .lower); │ │623 │ │624 if (kind == .patch) { │ │625 - const remote = switch (host) { │ │626 - .remote => |remote| remote, │ │625 + const server = switch (host) { │ │626 + .server => |server| server, │ │627 .local => return respondRemoveNotFound(request), │ │628 }; │ │629 const user_id = request_author.user_id orelse return respondLoginRequired(request);│ ╰────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │635 return respondThreadFormFailure(request, allocator, host, form_location, invalidTargetBranchFeedback(title, tags, description, target_branch));│ │636 } │ │637 const repo_id = evt.parseEventId(std.fs.path.basename(request_repo.source.path)) catch return respondRemoveNotFound(request); │ │638 - var admin_repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = remote.admin_repo_path }); │ │638 + var admin_repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = server.admin_repo_path }); │ │639 defer admin_repo.deinit(io, allocator); │ │640 - const repos_dir = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(remote.admin_repo_path) orelse ".", "repos" }); │ │640 + const repos_dir = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(server.admin_repo_path) orelse ".", "repos" }); │ │641 defer allocator.free(repos_dir); │ │642 const fork_path = try fork.create(.{}, io, allocator, repos_dir, &admin_repo, .{ │ │643 .id = event_id_hex, │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │684 var any_repo = try rp.AnyRepo(repo_kind, .{}).open(io, allocator, source.localInitOpts()); │ │685 defer any_repo.deinit(io, allocator); │ │686 switch (any_repo) { │ │687 - inline else => |*repo| try evt.consume(.repo, repo_kind, repo.self_repo_opts, io, allocator, repo, evt.events_ref, &[_]evt.EventWithId{event}), │ │687 + inline else => |*repo| try evt.consume(std.meta.activeTag(host), .repo, repo_kind, repo.self_repo_opts, io, allocator, repo, evt.events_ref, &[_]evt.EventWithId{event}),│ │688 } │ │689 }, │ │690 } │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │727 ) !void { │ │728 const parts = commentBaseParts(base) orelse return respondRemoveNotFound(request); │ │729 if (parts.thread_kind != .patch or parts.comment_id != null) return respondRemoveNotFound(request);│ │730 - const remote = switch (host) { │ │731 - .remote => |remote| remote, │ │730 + const server = switch (host) { │ │731 + .server => |server| server, │ │732 .local => return respondRemoveNotFound(request), │ │733 }; │ │734 var author_arena = std.heap.ArenaAllocator.init(allocator); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │742 const repo_id = evt.parseEventId(std.fs.path.basename(request_repo.source.path)) catch return respondRemoveNotFound(request);│ │743 var target_repo = try rp.Repo(.xit, .{}).open(io, allocator, request_repo.source.localInitOpts()); │ │744 defer target_repo.deinit(io, allocator); │ │745 - var admin_repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = remote.admin_repo_path }); │ │745 + var admin_repo = try rp.Repo(.xit, evt.admin_repo_opts).open(io, allocator, .{ .path = server.admin_repo_path }); │ │746 defer admin_repo.deinit(io, allocator); │ │747 const id = std.fmt.bytesToHex(parts.thread_id, .lower); │ │748 - const repos_dir = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(remote.admin_repo_path) orelse ".", "repos" }); │ │748 + const repos_dir = try std.fs.path.join(allocator, &.{ std.fs.path.dirname(server.admin_repo_path) orelse ".", "repos" }); │ │749 defer allocator.free(repos_dir); │ │750 const fork_path = try fork.forkPath(allocator, repos_dir, &id); │ │751 defer allocator.free(fork_path); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │772 ) !void { │ │773 const parts = commentBaseParts(base) orelse return respondRemoveNotFound(request); │ │774 if (parts.thread_kind != .patch or parts.comment_id != null) return respondRemoveNotFound(request);│ │775 - const remote = switch (host) { │ │776 - .remote => |remote| remote, │ │775 + const server = switch (host) { │ │776 + .server => |server| server, │ │777 .local => return respondRemoveNotFound(request), │ │778 }; │ │779 var author_arena = std.heap.ArenaAllocator.init(allocator); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯