╭──────────╮ │← previous│ ╰──────────╯ ╭ changed ─────────╮ │src/event/User.zig│ ╰──────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │264 │ │265 var updated = user.event; │ │266 updated.enable_ansi = !updated.enable_ansi; │ │266 - try evt.consume(.server, .admin, .xit, repo_opts, io, allocator, repo, evt.events_ref, &[_]evt.EventWithId{.{ │ │267 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .admin, .xit, repo_opts, io, allocator, repo, evt.events_ref, &[_]evt.EventWithId{.{│ │268 .id = std.fmt.bytesToHex(user_id[0..evt.event_id_size].*, .lower), │ │269 .timestamp = @intCast(std.Io.Timestamp.now(io, .real).toSeconds()), │ │270 .author = .{ .name = user.event.name, .email = user.event.email }, │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ───╮ │src/fork.zig│ ╰────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │204 } │ │205 │ │206 // create the patch event │ │207 - try evt.consume(.server, .fork, .xit, repo_opts, io, allocator, &fork_repo, evt.events_ref, &.{.{ │ │207 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .fork, .xit, repo_opts, io, allocator, &fork_repo, evt.events_ref, &.{.{│ │208 .id = input.id, │ │209 .timestamp = input.timestamp, │ │210 .author = input.author, │ ╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │217 }}); │ │218 │ │219 // create the fork event │ │220 - try evt.consume(.server, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, evt.events_ref, &.{.{ │ │220 + try evt.consume(.{ .server = .{ .users_dir = users_dir } }, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, evt.events_ref, &.{.{│ │221 .id = input.id, │ │222 .timestamp = input.timestamp, │ │223 .author = input.author, │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │246 defer arena.deinit(); │ │247 const moment = (try evt.userMoment(&user_repo)) orelse return error.InvalidPatchDraft; │ │248 const record = (try evt.Fork.readById(evt.UserDB, evt.user_repo_opts.hash, moment, &arena, &fork_id)) orelse return error.InvalidPatchDraft; │ │249 - if (!record.removed) try evt.remove(.server, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, &fork_id, .fork, author); │ │249 + if (!record.removed) try evt.remove(.{ .server = .{ .users_dir = users_dir } }, .user, .xit, evt.user_repo_opts, io, allocator, &user_repo, &fork_id, .fork, author);│ │250 │ │251 const path = try forkPath(allocator, users_dir, forker_id, &fork_id); │ │252 defer allocator.free(path); │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭ changed ────╮ │src/patch.zig│ ╰─────────────╯ ╭─────────────────────────────────────────────────────────╮ │29 │ │30 // capture an existing branch without creating a fork│ │31 pub fn writeBranchPatch( │ │32 - host_kind: evt.HostKind, │ │32 + host: evt.Host, │ │33 comptime repo_kind: rp.RepoKind, │ │34 comptime repo_opts: rp.RepoOpts(repo_kind), │ │35 io: std.Io, │ ╰─────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │53 │ │54 // capture the branch revision and consume its events │ │55 const events = try branchEvents(repo_kind, repo_opts, .{ .core = &repo.core, .extra = .{} }, io, &arena, id, patch, author);│ │56 - try evt.consume(host_kind, .repo, repo_kind, repo_opts, io, allocator, repo, evt.events_ref, &events); │ │56 + try evt.consume(host, .repo, repo_kind, repo_opts, io, allocator, repo, evt.events_ref, &events); │ │57 } else { │ │58 const DB = evt.EventDB(repo_opts.hash); │ │59 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │86 // a branch patch has no fork, so this only names the patch to check │ │87 var checks: MergeCheckInputs(repo_opts) = .{}; │ │88 defer checks.deinit(io, allocator); │ │89 - if (host_kind == .server) try checks.add(io, allocator, &repo.core, try evt.parseEventId(&id), patch); │ │89 + if (host == .server) try checks.add(io, allocator, &repo.core, host.server.users_dir, try evt.parseEventId(&id), patch);│ │90 │ │91 try repo.core.db_file.lock(io, .exclusive); │ │92 defer repo.core.db_file.unlock(io); │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────────────╮ │200 state: rp.Repo(repo_kind, repo_opts).State(.read_only), │ │201 moment: evt.EventDB(repo_opts.hash).HashMap(.read_only), │ │202 updates: ?[]const xit.net_server_receive_pack.AppliedRefUpdate, │ │203 - host_kind: evt.HostKind, │ │203 + host: evt.Host, │ │204 patches: *std.AutoArrayHashMapUnmanaged([evt.event_id_size]u8, evt.Patch.Record),│ │205 ) !void { │ │206 const DB = evt.EventDB(repo_opts.hash); │ ╰──────────────────────────────────────────────────────────────────────────────────────────╯ ╭────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮ │218 │ │219 // read the source tip before comparing stored revisions │ │220 const source = (try rf.readRecur(repo_kind, repo_opts, state, io, .{ .ref = .{ .kind = .head, .name = branch } })) orelse {│ │221 - if (host_kind == .server) std.log.warn("patch source branch missing: {s}", .{branch}); │ │221 + if (host == .server) std.log.warn("patch source branch missing: {s}", .{branch}); │ │222 continue; │ │223 }; │ │224 │ ╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯ ╭─────────────────────────────────────────────────────────────────────────────────╮ │244 // transaction can cancel it. mergeability is only saved for branch patches:│ │245 // a fork's lock has to be taken before this transaction opened │ │246 pub fn refreshBranchesInTransaction( │ │247 - host_kind: evt.HostKind, │ │247 + host: evt.Host, │ │248 comptime repo_opts: rp.RepoOpts(.xit), │ │249 state: rp.Repo(.xit, repo_opts).State(.read_write), │ │250 moment: *evt.EventDB(repo_opts.hash).HashMap(.read_write), │ ╰─────────────────────────────────────────────────────────────────────────────────╯ ╭──────╮ │next →│ ╰──────╯