feat(webui): add project workspaces and access controls (#4007)
* feat(webui): add project workspaces and access controls * feat(webui): add project workspaces and access controls * refactor(tools): centralize workspace access resolution * refactor(webui): remove unused workspace host state * fix(webui): hide estimated file edit label * fix(webui): clarify file edit deletion feedback * fix(webui): label deleted file activity * fix(webui): flatten file edit activity rows * fix(core): remove path-only patch deletion * fix(core): keep apply patch non-destructive * refactor(webui): trim workspace host plumbing * fix(tools): register exec with tools config
This commit is contained in:
@@ -15,6 +15,9 @@ import { Input } from "@/components/ui/input";
|
||||
interface RenameChatDialogProps {
|
||||
open: boolean;
|
||||
title: string;
|
||||
dialogTitle?: string;
|
||||
description?: string;
|
||||
placeholder?: string;
|
||||
onCancel: () => void;
|
||||
onConfirm: (title: string) => void;
|
||||
}
|
||||
@@ -22,6 +25,9 @@ interface RenameChatDialogProps {
|
||||
export function RenameChatDialog({
|
||||
open,
|
||||
title,
|
||||
dialogTitle,
|
||||
description,
|
||||
placeholder,
|
||||
onCancel,
|
||||
onConfirm,
|
||||
}: RenameChatDialogProps) {
|
||||
@@ -48,15 +54,15 @@ export function RenameChatDialog({
|
||||
}}
|
||||
>
|
||||
<DialogHeader className="text-left">
|
||||
<DialogTitle>{t("chat.renameTitle")}</DialogTitle>
|
||||
<DialogTitle>{dialogTitle ?? t("chat.renameTitle")}</DialogTitle>
|
||||
<DialogDescription>
|
||||
{t("chat.renameDescription")}
|
||||
{description ?? t("chat.renameDescription")}
|
||||
</DialogDescription>
|
||||
</DialogHeader>
|
||||
<Input
|
||||
value={value}
|
||||
onChange={(event) => setValue(event.target.value)}
|
||||
placeholder={t("chat.renamePlaceholder")}
|
||||
placeholder={placeholder ?? t("chat.renamePlaceholder")}
|
||||
autoFocus
|
||||
maxLength={160}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user