feat(FN-3567): sync allowParallelExecution runtime toggle
Fixes FN-3567 by synchronizing the `allowParallelExecution` runtime toggle in the AgentDetailView component, adding one line to keep the setting in sync. Fusion-Task-Id: FN-3567
This commit is contained in:
@@ -3306,6 +3306,7 @@ function ConfigTab({
|
||||
setHeartbeatEnabled(deriveHeartbeatEnabled(agent.runtimeConfig));
|
||||
setAutoClaimRelevantTasksEnabled(deriveAutoClaimRelevantTasksEnabled(agent.runtimeConfig));
|
||||
setRunMissedHeartbeatOnStartup(deriveRunMissedHeartbeatOnStartup(agent.runtimeConfig));
|
||||
setAllowParallelExecution(deriveAllowParallelExecution(agent.runtimeConfig));
|
||||
setBudgetValues(deriveBudgetValues(agent.runtimeConfig));
|
||||
setModelValue(initialModelValue);
|
||||
setSelectedRuntimeId(initialRuntimeHint);
|
||||
|
||||
@@ -1473,17 +1473,6 @@ export function Header({
|
||||
</button>
|
||||
)}
|
||||
|
||||
{!isCompact && todosEnabled && onOpenTodos && (
|
||||
<button
|
||||
className={`btn-icon${todosOpen ? " btn-icon--active" : ""}`}
|
||||
onClick={onOpenTodos}
|
||||
title="Open todos"
|
||||
data-testid="todos-toggle-btn"
|
||||
>
|
||||
<CheckSquare size={16} />
|
||||
</button>
|
||||
)}
|
||||
|
||||
{/* Git Manager button - desktop only (moved to overflow on mobile/tablet) */}
|
||||
{!isCompact && onOpenGitManager && (
|
||||
<button
|
||||
|
||||
@@ -1687,10 +1687,11 @@ describe("App view switching", () => {
|
||||
render(<App />);
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByTestId("todos-toggle-btn")).toBeInTheDocument();
|
||||
expect(screen.getByTestId("view-toggle-overflow-trigger")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
fireEvent.click(screen.getByTestId("todos-toggle-btn"));
|
||||
fireEvent.click(screen.getByTestId("view-toggle-overflow-trigger"));
|
||||
fireEvent.click(screen.getByTestId("view-overflow-todos"));
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByTestId("todo-view")).toBeInTheDocument();
|
||||
|
||||
@@ -381,21 +381,27 @@ describe("Header", () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe("todos button", () => {
|
||||
it("renders todos button on desktop when enabled", () => {
|
||||
renderHeader({ onOpenTodos: vi.fn(), todosEnabled: true }, "desktop");
|
||||
expect(screen.getByTitle("Open todos")).toBeDefined();
|
||||
describe("todos navigation", () => {
|
||||
it("shows Todos only in More views on desktop when enabled", () => {
|
||||
renderHeader({ onChangeView: noop, onOpenTodos: vi.fn(), todosEnabled: true }, "desktop");
|
||||
expect(screen.queryByTestId("todos-toggle-btn")).toBeNull();
|
||||
|
||||
fireEvent.click(screen.getByTestId("view-toggle-overflow-trigger"));
|
||||
expect(screen.getAllByText("Todos")).toHaveLength(1);
|
||||
expect(screen.getByTestId("view-overflow-todos")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("does not render todos button when disabled", () => {
|
||||
renderHeader({ onOpenTodos: vi.fn(), todosEnabled: false }, "desktop");
|
||||
expect(screen.queryByTitle("Open todos")).toBeNull();
|
||||
it("does not show Todos entry in More views when disabled", () => {
|
||||
renderHeader({ onChangeView: noop, onOpenTodos: vi.fn(), todosEnabled: false }, "desktop");
|
||||
fireEvent.click(screen.getByTestId("view-toggle-overflow-trigger"));
|
||||
expect(screen.queryByTestId("view-overflow-todos")).toBeNull();
|
||||
});
|
||||
|
||||
it("calls onOpenTodos when clicked", () => {
|
||||
it("calls onOpenTodos from More views", () => {
|
||||
const onOpenTodos = vi.fn();
|
||||
renderHeader({ onOpenTodos, todosEnabled: true }, "desktop");
|
||||
fireEvent.click(screen.getByTitle("Open todos"));
|
||||
renderHeader({ onChangeView: noop, onOpenTodos, todosEnabled: true }, "desktop");
|
||||
fireEvent.click(screen.getByTestId("view-toggle-overflow-trigger"));
|
||||
fireEvent.click(screen.getByTestId("view-overflow-todos"));
|
||||
expect(onOpenTodos).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -105,6 +105,22 @@ describe("MobileNavBar", () => {
|
||||
expect(screen.queryByTestId("mobile-nav-tab-skills")).toBeNull();
|
||||
});
|
||||
|
||||
it("keeps Todos in the mobile More sheet when todoView is enabled", () => {
|
||||
const onOpenTodos = vi.fn();
|
||||
render(
|
||||
<MobileNavBar
|
||||
{...createDefaultProps()}
|
||||
onOpenTodos={onOpenTodos}
|
||||
experimentalFeatures={{ todoView: true }}
|
||||
/>,
|
||||
);
|
||||
|
||||
fireEvent.click(screen.getByTestId("mobile-nav-tab-more"));
|
||||
fireEvent.click(screen.getByTestId("mobile-more-item-todos"));
|
||||
|
||||
expect(onOpenTodos).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it("renders dependency graph as a top-level tab and keeps additional plugin views in More", () => {
|
||||
const props = createDefaultProps();
|
||||
render(
|
||||
|
||||
Reference in New Issue
Block a user