╭ changed ────╮ │src/serve.zig│ ╰─────────────╯ ╭───────────╮ │← all files│ ╰───────────╯ ╭──────────────────────────────────────────────────────────────────╮ │86 web.run(io, allocator, &wui_server, &tasks, err); │ │87 │ │88 if (options.tui) { │ │89 - runTui(io, allocator, &tasks, err); │ │90 - │ │91 - while (!xit.xitui.terminal.quit) { │ │92 - try std.Io.sleep(io, .fromMilliseconds(5), .real);│ │93 - } │ │89 + try ui.run(io, allocator); │ │90 } else { │ │91 try tasks.await(io); │ │92 } │ ╰──────────────────────────────────────────────────────────────────╯ ╭──────────────────────────────────────────────────────────────────────────────────╮ │ 97 -} │ │ 98 - │ │ 99 -fn runTui( │ │100 - io: std.Io, │ │101 - allocator: std.mem.Allocator, │ │102 - tasks: *std.Io.Group, │ │103 - err: *std.Io.Writer, │ │104 -) void { │ │105 - const TuiTask = struct { │ │106 - io: std.Io, │ │107 - allocator: std.mem.Allocator, │ │108 - err: *std.Io.Writer, │ │109 - │ │110 - fn run(ctx: @This()) void { │ │111 - ui.run(ctx.io, ctx.allocator) catch |ui_err| { │ │112 - if (ui_err == error.Canceled) return; │ │113 - logError(ctx.err, "ui failed: {s}\n", .{@errorName(ui_err)});│ │114 - }; │ │115 - } │ │116 - }; │ │117 - │ │118 - tasks.async(io, TuiTask.run, .{TuiTask{ │ │119 - .io = io, │ │120 - .allocator = allocator, │ │121 - .err = err, │ │122 - }}); │ │ 93 } │ │ 94 │ │ 95 fn runHttpListener( │ ╰──────────────────────────────────────────────────────────────────────────────────╯