Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
182 commits
Select commit Hold shift + click to select a range
822f5a5
feat(web): establish redesign primitives and shell
maria-rcks Oct 31, 2026
1f1e003
refactor(web): remove unused toggle pressed tokens
maria-rcks Oct 31, 2026
e30c0f0
fix(web): match catalog button and type specimens
maria-rcks Oct 31, 2026
43bc25f
fix(web): honor reduced motion in overlay primitives
maria-rcks Oct 31, 2026
69e39fd
fix(web): match shell and overlay design geometry
maria-rcks Oct 31, 2026
99c0982
fix(web): align project search and sidebar badge sizes
maria-rcks Oct 31, 2026
3fc5fb8
fix(web): preserve shell type role and titlebar spacing
maria-rcks Oct 31, 2026
3cc0228
fix(web): give provider tiles room for icons and labels
maria-rcks Oct 31, 2026
2305eba
fix(web): match browser address toolbar spacing to design
maria-rcks Oct 31, 2026
fcd63e6
fix(chat): match inline request cards to the timeline design
maria-rcks Oct 31, 2026
6aa5a7a
feat(ui): add relaxed picker spacing and compact key hints
maria-rcks Oct 31, 2026
0b10dde
fix(ui): use the inset field surface and format picker variants
maria-rcks Oct 31, 2026
278622f
fix(ui): preserve web context menu widths
maria-rcks Oct 31, 2026
53b7556
fix(ui): keep palette actions above provider notices
maria-rcks Oct 31, 2026
e28f072
fix(ui): fit browser previews inside a landscape floating frame
maria-rcks Oct 31, 2026
3b01fa6
fix(web): restore compact panel controls and touch targets
maria-rcks Oct 31, 2026
1f3b48a
fix(web): home screen project rows show the project they open (#29085)
flamboh Nov 2, 2026
8b45537
fix(web): Snoozed and Settled rows drop the PR badge, and snooze time…
flamboh Nov 2, 2026
1b6d43e
fix(web): snoozed rows show the snooze time like main
maria-rcks Nov 2, 2026
715e809
fix(web): project groups show an icon if any checkout has one (#29199)
flamboh Nov 2, 2026
4e2b126
fix(web): open pull requests show the arrow icon again (#29213)
flamboh Nov 2, 2026
6080bd8
fix(web): restore main sidebar thread rows
maria-rcks Nov 3, 2026
ee2e83c
fix(web): new-thread project rows inset their environment icon (#29985)
flamboh Nov 3, 2026
e39323c
fix(web): palette project rows show the location under the name (#29980)
flamboh Nov 3, 2026
9ee815d
fix(web): sidebar New thread skips the project dialog (#29973)
flamboh Nov 3, 2026
96214ab
fix(web): preserve rebased server text and shortcut expectations
maria-rcks Nov 3, 2026
8f2a569
feat(web): redesign composer and conversation timeline
maria-rcks Oct 31, 2026
5a2a9dd
refactor(chat): remove unused work log helpers
maria-rcks Oct 31, 2026
91f02e7
fix(chat): stop tool shine while waiting for input
maria-rcks Oct 31, 2026
8790cd5
fix(chat): keep paused timer clear of question text
maria-rcks Oct 31, 2026
2763f43
fix(chat): keep approval decisions together on narrow screens
maria-rcks Oct 31, 2026
78196bf
fix(chat): match composer corner and send slot dimensions
maria-rcks Oct 31, 2026
d038c89
fix(chat): match the collapsed working window dimensions
maria-rcks Oct 31, 2026
93d8d06
fix(chat): acknowledge custom question answers in the footer
maria-rcks Oct 31, 2026
43e7d1c
style(chat): format grouped approval actions
maria-rcks Oct 31, 2026
f71b899
fix(chat): summarize wake-ups and retain the latest answer
maria-rcks Oct 31, 2026
1bfe46b
fix(chat): use the pill radius token and accessible wake-up label
maria-rcks Oct 31, 2026
ed511d2
style(chat): format the composer surface
maria-rcks Oct 31, 2026
88a4dd1
fix(chat): align timeline rows and attachment layouts with design
maria-rcks Oct 31, 2026
fae58f7
fix(chat): keep row class helper compiler eligible
maria-rcks Oct 31, 2026
0a574fa
fix(chat): expose the existing interrupt action on live work rows
maria-rcks Oct 31, 2026
71752c3
fix(chat): keep interrupt available in grouped live rows
maria-rcks Oct 31, 2026
2ae71fd
fix(chat): keep turn interrupt off task summary rows
maria-rcks Oct 31, 2026
56e8a7b
fix(chat): match composer suggestion and picker menus to the design
maria-rcks Oct 31, 2026
f36ba48
fix(chat): keep branch picker separators stable
maria-rcks Oct 31, 2026
79f9fde
fix(chat): let the picker text role own its weight
maria-rcks Oct 31, 2026
f89fcc8
fix(chat): match the option c composer and integrated tray
maria-rcks Oct 31, 2026
15bbae0
fix(chat): validate plan actions and queued reorder commands
maria-rcks Oct 31, 2026
3824128
fix(chat): keep work and notices in the composer tray
maria-rcks Oct 31, 2026
d042c3b
fix(chat): reserve the machine chip for remote threads
maria-rcks Oct 31, 2026
f5a69cf
fix(chat): wire approval shortcuts in the composer tray
maria-rcks Oct 31, 2026
26d03ee
fix(chat): settle completed tasks and cap the prompt at eight lines
maria-rcks Oct 31, 2026
e3f02c7
fix(chat): keep tray work bound to the active run
maria-rcks Oct 31, 2026
19404e8
fix(chat): accept approval keys from the focused workspace
maria-rcks Oct 31, 2026
e8aecf1
fix(chat): collapse composer controls on narrow panes
maria-rcks Oct 31, 2026
dfb6c70
fix(chat): keep picked attachments above the prompt
maria-rcks Oct 31, 2026
89e5a2c
fix(chat): preview queue order while dragging
maria-rcks Oct 31, 2026
b448268
fix(chat): show the branch picker chevron in the tray
maria-rcks Oct 31, 2026
5933155
fix(chat): stage file rows without an automatic reference
maria-rcks Oct 31, 2026
02d7366
fix(chat): keep question actions in the tray panel
maria-rcks Oct 31, 2026
eb76267
fix(chat): align composer and requests with final design
maria-rcks Oct 31, 2026
40ef285
fix(chat): anchor composer and branch popup to design edges
maria-rcks Oct 31, 2026
ee50a60
fix(chat): keep approval actions together and remove unused drop overlay
maria-rcks Oct 31, 2026
a309737
fix(chat): keep tray border inside composer dimensions
maria-rcks Oct 31, 2026
08e87ad
fix(chat): reconcile node views outside React lifecycle
maria-rcks Oct 31, 2026
b704d30
fix(chat): preserve synchronous caret updates and popup width
maria-rcks Oct 31, 2026
84a7ac8
fix(web): steered turns' fold rows each show their own time and edits…
flamboh Nov 2, 2026
fb0eb9f
fix(web): a finished turn's label stays readable next to still-runnin…
flamboh Nov 2, 2026
617185a
fix(web): steered turns read like a chat with one fold at the end (#2…
flamboh Nov 2, 2026
36f3de4
test(web): drop the removed assistant timestamp assertion
maria-rcks Nov 3, 2026
eef9f50
fix(web): the working window expands downward without moving the bar …
flamboh Nov 2, 2026
33cc336
refactor(chat): remove obsolete thinking interrupt flag
maria-rcks Nov 3, 2026
ac84e96
fix(web): keep background work off turn fold rows
maria-rcks Nov 2, 2026
1935b5e
feat(web): context chips drop the pill and read as colored text, in r…
flamboh Nov 2, 2026
7f9f498
fix(web): narrow composers collapse the env and branch chips instead …
flamboh Nov 2, 2026
eee30b2
fix(web): scroll collapsed working history independently
maria-rcks Nov 3, 2026
0550c7e
fix(web): Limits opens the usage limits popover directly (#29222)
flamboh Nov 3, 2026
40bbd5e
fix(web): clarify account scope in the usage limits popover
maria-rcks Nov 3, 2026
a96543b
fix(web): the working bar shows its fold caret again (#29969)
flamboh Nov 3, 2026
f117454
fix(web): collapsing the working window keeps its top fade (#29972)
flamboh Nov 3, 2026
68159a4
fix(web): a running turn's answer streams below the fold, not inside …
flamboh Nov 3, 2026
d184e5f
fix(web): new wake-ups join their fold without shifting the timeline …
flamboh Nov 3, 2026
4dd626f
fix(web): retain composer compatibility after rebase
maria-rcks Nov 3, 2026
c6d2588
fix(web): collapsing the working window no longer nudges the timeline
flamboh Nov 3, 2026
1ed1453
feat(web): redesign composer and conversation timeline
maria-rcks Oct 31, 2026
c3291b6
refactor(chat): remove unused work log helpers
maria-rcks Oct 31, 2026
96ca6bb
fix(chat): stop tool shine while waiting for input
maria-rcks Oct 31, 2026
c0869e3
fix(chat): keep paused timer clear of question text
maria-rcks Oct 31, 2026
8b0c60e
fix(chat): keep approval decisions together on narrow screens
maria-rcks Oct 31, 2026
866c5f0
fix(chat): match composer corner and send slot dimensions
maria-rcks Oct 31, 2026
6e61ddc
fix(chat): match the collapsed working window dimensions
maria-rcks Oct 31, 2026
b9d42c0
fix(chat): acknowledge custom question answers in the footer
maria-rcks Oct 31, 2026
ffa3adc
style(chat): format grouped approval actions
maria-rcks Oct 31, 2026
f35dbf5
fix(chat): summarize wake-ups and retain the latest answer
maria-rcks Oct 31, 2026
4d8ef8b
fix(chat): use the pill radius token and accessible wake-up label
maria-rcks Oct 31, 2026
b9480aa
style(chat): format the composer surface
maria-rcks Oct 31, 2026
cab152d
fix(chat): align timeline rows and attachment layouts with design
maria-rcks Oct 31, 2026
456f2b4
fix(chat): keep row class helper compiler eligible
maria-rcks Oct 31, 2026
b303a47
fix(chat): expose the existing interrupt action on live work rows
maria-rcks Oct 31, 2026
0a13a9a
fix(chat): keep interrupt available in grouped live rows
maria-rcks Oct 31, 2026
c53572e
fix(chat): keep turn interrupt off task summary rows
maria-rcks Oct 31, 2026
604678d
fix(chat): match composer suggestion and picker menus to the design
maria-rcks Oct 31, 2026
f10bf95
fix(chat): keep branch picker separators stable
maria-rcks Oct 31, 2026
cef3873
fix(chat): let the picker text role own its weight
maria-rcks Oct 31, 2026
65b3270
fix(chat): match the option c composer and integrated tray
maria-rcks Oct 31, 2026
13dfb9a
fix(chat): validate plan actions and queued reorder commands
maria-rcks Oct 31, 2026
5a2b515
fix(chat): keep work and notices in the composer tray
maria-rcks Oct 31, 2026
2ab3d49
fix(chat): reserve the machine chip for remote threads
maria-rcks Oct 31, 2026
d911504
fix(chat): wire approval shortcuts in the composer tray
maria-rcks Oct 31, 2026
d1a181b
fix(chat): settle completed tasks and cap the prompt at eight lines
maria-rcks Oct 31, 2026
80454a4
fix(chat): keep tray work bound to the active run
maria-rcks Oct 31, 2026
4a08caa
fix(chat): accept approval keys from the focused workspace
maria-rcks Oct 31, 2026
450ad0e
fix(chat): collapse composer controls on narrow panes
maria-rcks Oct 31, 2026
d866c09
fix(chat): align composer and requests with final design
maria-rcks Oct 31, 2026
b5a0227
fix(chat): anchor composer and branch popup to design edges
maria-rcks Oct 31, 2026
46feede
fix(chat): keep approval actions together and remove unused drop overlay
maria-rcks Oct 31, 2026
af6b5a5
fix(chat): keep tray border inside composer dimensions
maria-rcks Oct 31, 2026
39784f3
fix(chat): reconcile node views outside React lifecycle
maria-rcks Oct 31, 2026
5ebe923
fix(chat): preserve synchronous caret updates and popup width
maria-rcks Oct 31, 2026
bb00468
fix(web): steered turns' fold rows each show their own time and edits…
flamboh Nov 2, 2026
625644c
fix(web): a finished turn's label stays readable next to still-runnin…
flamboh Nov 2, 2026
fc643bb
fix(web): steered turns read like a chat with one fold at the end (#2…
flamboh Nov 2, 2026
a186af1
fix(chat): keep picked attachments above the prompt
maria-rcks Oct 31, 2026
6fbd6fa
test(web): drop the removed assistant timestamp assertion
maria-rcks Nov 3, 2026
351d598
fix(chat): preview queue order while dragging
maria-rcks Oct 31, 2026
582c250
fix(web): the working window expands downward without moving the bar …
flamboh Nov 2, 2026
9252534
fix(chat): show the branch picker chevron in the tray
maria-rcks Oct 31, 2026
445fd8e
refactor(chat): remove obsolete thinking interrupt flag
maria-rcks Nov 3, 2026
0d33321
fix(chat): stage file rows without an automatic reference
maria-rcks Oct 31, 2026
6fc750b
fix(web): keep background work off turn fold rows
maria-rcks Nov 2, 2026
9e350c0
fix(chat): keep question actions in the tray panel
maria-rcks Oct 31, 2026
8641493
feat(web): context chips drop the pill and read as colored text, in r…
flamboh Nov 2, 2026
890a685
fix(web): narrow composers collapse the env and branch chips instead …
flamboh Nov 2, 2026
3f6231c
fix(web): scroll collapsed working history independently
maria-rcks Nov 3, 2026
daddb6b
fix(web): Limits opens the usage limits popover directly (#29222)
flamboh Nov 3, 2026
048dd65
fix(web): clarify account scope in the usage limits popover
maria-rcks Nov 3, 2026
3763a51
fix(web): the working bar shows its fold caret again (#29969)
flamboh Nov 3, 2026
2f4382d
fix(web): collapsing the working window keeps its top fade (#29972)
flamboh Nov 3, 2026
f5d87b9
fix(web): a running turn's answer streams below the fold, not inside …
flamboh Nov 3, 2026
59e759a
fix(web): new wake-ups join their fold without shifting the timeline …
flamboh Nov 3, 2026
9652e22
fix(web): retain composer compatibility after rebase
maria-rcks Nov 3, 2026
b76f8e6
merge: integrate main into working window collapse fix
maria-rcks Nov 4, 2026
7de374b
merge: reconcile current redesign base
maria-rcks Nov 4, 2026
5ad5ab1
fix(web): preserve current redesign panel defaults
maria-rcks Nov 4, 2026
d51bc58
fix(tools): show images from MCP and OpenCode outputs (#30389)
Yash-Singh1 Nov 4, 2026
7ccd02c
fix(mobile): smoother Settings and composer transitions on wide Andro…
juliusmarminge Nov 4, 2026
eb1db29
fix(mobile): the Android split slides as one strip, so sidebar and de…
juliusmarminge Nov 4, 2026
737afe2
fix(server): retry unstarted runs after recovery (#30560)
Yash-Singh1 Nov 4, 2026
b3011e9
perf(server): narrow agent awareness startup reads (#30561)
Yash-Singh1 Nov 4, 2026
059804d
fix(web): validate terminal links against filesystem metadata (#30526)
Yash-Singh1 Nov 4, 2026
647bd14
fix(server): avoid message ordering scans during recovery and settlem…
Yash-Singh1 Nov 4, 2026
567a105
fix(client-runtime): expire missing file metadata per thread (#30606)
Yash-Singh1 Nov 4, 2026
3368dd7
fix(web): align usage table padding and thread status rows
Yash-Singh1 Nov 4, 2026
e68e19d
fix(mobile): every Android content pane gets its rounded card from Sc…
juliusmarminge Nov 4, 2026
5ea6556
fix(chat): align composer and requests with final design
maria-rcks Oct 31, 2026
27e50aa
fix(chat): anchor composer and branch popup to design edges
maria-rcks Oct 31, 2026
7327609
fix(chat): keep approval actions together and remove unused drop overlay
maria-rcks Oct 31, 2026
fa38c14
fix(chat): keep tray border inside composer dimensions
maria-rcks Oct 31, 2026
6a11a27
fix(chat): reconcile node views outside React lifecycle
maria-rcks Oct 31, 2026
4018ae7
fix(chat): preserve synchronous caret updates and popup width
maria-rcks Oct 31, 2026
0fdc587
fix(web): steered turns' fold rows each show their own time and edits…
flamboh Nov 2, 2026
029112c
fix(web): a finished turn's label stays readable next to still-runnin…
flamboh Nov 2, 2026
b87107f
fix(web): steered turns read like a chat with one fold at the end (#2…
flamboh Nov 2, 2026
7958ba5
test(web): drop the removed assistant timestamp assertion
maria-rcks Nov 3, 2026
dba8d89
fix(web): the working window expands downward without moving the bar …
flamboh Nov 2, 2026
041350d
refactor(chat): remove obsolete thinking interrupt flag
maria-rcks Nov 3, 2026
25625d8
fix(web): keep background work off turn fold rows
maria-rcks Nov 2, 2026
8db9595
feat(web): context chips drop the pill and read as colored text, in r…
flamboh Nov 2, 2026
a3251f9
fix(web): narrow composers collapse the env and branch chips instead …
flamboh Nov 2, 2026
f2b02bc
fix(web): scroll collapsed working history independently
maria-rcks Nov 3, 2026
ef68232
fix(web): Limits opens the usage limits popover directly (#29222)
flamboh Nov 3, 2026
ca07762
fix(web): clarify account scope in the usage limits popover
maria-rcks Nov 3, 2026
498a51f
fix(web): the working bar shows its fold caret again (#29969)
flamboh Nov 3, 2026
c507d9e
fix(web): collapsing the working window keeps its top fade (#29972)
flamboh Nov 3, 2026
27a714b
fix(web): a running turn's answer streams below the fold, not inside …
flamboh Nov 3, 2026
d58e838
fix(web): new wake-ups join their fold without shifting the timeline …
flamboh Nov 3, 2026
e908088
fix(web): retain composer compatibility after rebase
maria-rcks Nov 3, 2026
bb4afa5
chore(release): prepare v0.1.7
t3-code-bot[bot] Nov 4, 2026
8b44f42
fix(web): load selected diff metadata before file patches (#30567)
Yash-Singh1 Nov 4, 2026
70c6017
merge: sync working window fix with redesign target
maria-rcks Nov 4, 2026
633a668
merge: sync working window fix with main
maria-rcks Nov 4, 2026
c2494a1
Merge maria/redesign/2-composer-timeline into t3/redesign-fix-working…
maria-rcks Nov 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions apps/web/src/components/chat/MessagesTimeline.browser.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -449,6 +449,57 @@ describe("MessagesTimeline work rows", () => {
.toBeInTheDocument();
});

it("keeps the bar still when work arrives while the history collapses at the bottom", async () => {
const runId = RunId.make("collapse-run");
const props = {
...baseProps(),
isWorking: true,
activeTurnStartedAt: CREATED_AT,
latestRun: { runId, status: "running" as const, startedAt: CREATED_AT, completedAt: null },
};
const entries = (steps: number) => [
...Array.from({ length: 40 }, (_, index) =>
message(`Earlier ${index}`, {}, `earlier-${index}`),
),
message("Build it", { runId }),
...Array.from({ length: steps }, (_, index) =>
message(`Step ${index}`, { runId, role: "assistant" }, `step-${index}`),
),
];
await using screen = await renderElement(
<MessagesTimeline {...props} timelineEntries={entries(30)} />,
);
const bar = screen.getByRole("button", { name: "Open work history" });
await expect.element(bar).toBeVisible();
const viewport = props.listRef.current!.getScrollableNode()!;
await vi.waitFor(() =>
expect(viewport.scrollHeight - viewport.clientHeight - viewport.scrollTop).toBeLessThan(2),
);
const barElement = bar.element();
await bar.click();
const history = screen.getByRole("region", { name: "Work history" }).element();
await expect.element(screen.getByText("Step 0", { exact: true })).toBeInTheDocument();
await Promise.all(history.getAnimations().map((animation) => animation.finished));
const barTop = barElement.getBoundingClientRect().top;
const expandedHeight = history.clientHeight;
const barTops = new Set<number>();
const resizes = new ResizeObserver(() => barTops.add(barElement.getBoundingClientRect().top));
resizes.observe(history);
using _resizes = { [Symbol.dispose]: () => resizes.disconnect() };
history.style.transitionDuration = "10s";

await screen.getByRole("button", { name: "Close work history" }).click();
await vi.waitFor(() => expect(history.clientHeight).toBeLessThan(expandedHeight - 20));
await screen.rerender(<MessagesTimeline {...props} timelineEntries={entries(31)} />);
const arrivedHeight = history.clientHeight;
await vi.waitFor(() => expect(history.clientHeight).toBeLessThan(arrivedHeight - 60));
for (const animation of history.getAnimations()) animation.finish();
await vi.waitFor(() =>
expect(history.querySelector('[data-slot="scroll-area-viewport"]')).not.toBeNull(),
);
expect([...barTops]).toEqual([barTop]);
});

it.each(["delegated", "legacy", "missing"] as const)(
"uses the reported task for %s completion notifications",
async (source) => {
Expand Down
5 changes: 4 additions & 1 deletion apps/web/src/components/chat/MessagesTimeline.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -499,6 +499,7 @@ const ConversationTimeline = memo(function ConversationTimeline({
// The open history belongs to the prompt that opened it; sending closes it.
const [workingHistoryKey, setWorkingHistoryKey] = useState<string | null>(null);
const [disclosureToggleSettling, setDisclosureToggleSettling] = useState(false);
const [workingHistoryCollapsing, setWorkingHistoryCollapsing] = useState(false);
const disclosureAnchorKeyRef = useRef<string | null>(null);
const disclosureSettleFrameRef = useRef<number | null>(null);
const disclosureSettleSecondFrameRef = useRef<number | null>(null);
Expand Down Expand Up @@ -1137,6 +1138,7 @@ const ConversationTimeline = memo(function ConversationTimeline({
onWorktreeSetupWorkLocally: onWorktreeSetupWorkLocally ?? null,
onOpenWorktreeSetupTerminal: onOpenWorktreeSetupTerminal ?? null,
onToggleWorkingHistory,
onWorkingHistoryCollapsing: setWorkingHistoryCollapsing,
onFocusComposer: onFocusComposer ?? null,
workGroupViewState,
};
Expand Down Expand Up @@ -1431,7 +1433,8 @@ const ConversationTimeline = memo(function ConversationTimeline({
!liveFollowEnabled ||
fullscreenAppRowId !== null ||
disclosureToggleSettling ||
workingHistoryOpen
workingHistoryOpen ||
workingHistoryCollapsing
? false
: isWorking && !prefersReducedMotion && settlingListIdentity === null
? TIMELINE_MAINTAIN_SCROLL_AT_END_SMOOTH
Expand Down
7 changes: 5 additions & 2 deletions apps/web/src/components/chat/TimelineWorkGroupRows.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -898,17 +898,20 @@ function WorkingWindowView({ window, itemKey }: { window: WorkingWindow; itemKey
if (open) return;
setCollapseClips((windowRef.current?.scrollHeight ?? 0) > WORKING_WINDOW_COLLAPSED_HEIGHT);
}, [open]);
// oxlint-disable-next-line t3code/no-unreasoned-state-sync -- older items stay mounted until the collapse transition finishes clipping them
const { onWorkingHistoryCollapsing } = ctx;
// oxlint-disable-next-line t3code/no-unreasoned-state-sync -- older items stay mounted, and the timeline stops following its end, until the collapse transition finishes
useEffect(() => {
if (open || history === null) return;
onWorkingHistoryCollapsing(true);
let cancelled = false;
void transitionsSettled(windowRef.current).then(() => {
if (!cancelled) setHistory(null);
});
return () => {
cancelled = true;
onWorkingHistoryCollapsing(false);
};
}, [open, history]);
}, [open, history, onWorkingHistoryCollapsing]);
const head = history?.head;
// oxlint-disable-next-line t3code/no-unreasoned-state-sync -- mounts older items as the timeline scroll brings them near the viewport
useEffect(() => {
Expand Down
1 change: 1 addition & 0 deletions apps/web/src/components/chat/timelineRowContext.ts
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ export interface TimelineRowSharedState {
onWorktreeSetupWorkLocally: (() => void) | null;
onOpenWorktreeSetupTerminal: ((terminalId: string) => void) | null;
onToggleWorkingHistory: (key: string) => void;
onWorkingHistoryCollapsing: (collapsing: boolean) => void;
onFocusComposer: (() => void) | null;
workGroupViewState: WorkGroupViewState;
}
Expand Down
Loading