diff --git a/frontend/components/sections/AgentsSection.tsx b/frontend/components/sections/AgentsSection.tsx
index d8661da..be18a88 100644
--- a/frontend/components/sections/AgentsSection.tsx
+++ b/frontend/components/sections/AgentsSection.tsx
@@ -2,10 +2,10 @@
* Spawning enqueues a control command that the worker turns into a tmux + claude process. */
"use client";
-import { useMemo, useState } from "react";
+import { Fragment, useMemo, useState } from "react";
import { useDashboard } from "@/components/store";
import { Badge, Button, Card, Input, Select, StatusBadge, Textarea } from "@/components/ui";
-import { fmtFull } from "@/lib/format";
+import { fmtFull, timeAgo } from "@/lib/format";
const ROLE_OPTS = [
{ value: "", label: "Role — none" },
@@ -121,28 +121,55 @@ export function AgentsSection() {
{agents.map((a) => (
-
- | {a.name} |
- {a.role ? {a.role} : "—"} |
-
-
- |
- {a.working_dir} |
- {fmtFull(a.created_at)} |
-
-
-
-
-
-
- |
-
+
+
+ | {a.name} |
+ {a.role ? {a.role} : "—"} |
+
+
+ |
+ {a.working_dir} |
+ {fmtFull(a.created_at)} |
+
+
+
+
+
+
+ |
+
+ {a.status === "working" && a.last_output?.trim() && (
+
+ |
+
+ live output{a.output_at ? ` · ${timeAgo(a.output_at)}` : ""}
+
+
+ {a.last_output}
+
+ |
+
+ )}
+
))}
diff --git a/frontend/components/sections/RepositoriesSection.tsx b/frontend/components/sections/RepositoriesSection.tsx
index 8479e06..c847fdf 100644
--- a/frontend/components/sections/RepositoriesSection.tsx
+++ b/frontend/components/sections/RepositoriesSection.tsx
@@ -22,6 +22,7 @@ const empty: NewProjectBody = {
root_dir: "",
git_remote: "",
credential_ref: "",
+ init_mise: false,
};
export function RepositoriesSection() {
@@ -163,6 +164,28 @@ export function RepositoriesSection() {
>
)}
+ {!editing && (
+
+ )}
+ {!editing && form.init_mise && form.mode === "manual" && !form.git_remote.trim() && (
+
+ A git remote is required to push the new .mise.toml —
+ add one above, or mise won’t be initialized.
+
+ )}
+