feat(webui): support document attachments with ingress safeguards (#4771)
* feat: support document attachments in webui * fix(webui): normalize document attachment MIME * refactor(webui): move attachment policy out of channel * fix(webui): reject oversized attachments before send * fix(webui): align Portuguese attachment errors * refactor(webui): separate ingress and transport limits * fix(webui): reject malformed attachment payloads
This commit is contained in:
@@ -1,11 +1,13 @@
|
||||
import { createContext, useContext, type ReactNode } from "react";
|
||||
|
||||
import type { NanobotClient } from "@/lib/nanobot-client";
|
||||
import type { WebUIIngressLimits } from "@/lib/types";
|
||||
|
||||
interface ClientContextValue {
|
||||
client: NanobotClient;
|
||||
token: string;
|
||||
modelName: string | null;
|
||||
ingressLimits: WebUIIngressLimits | null;
|
||||
}
|
||||
|
||||
const ClientContext = createContext<ClientContextValue | null>(null);
|
||||
@@ -14,15 +16,17 @@ export function ClientProvider({
|
||||
client,
|
||||
token,
|
||||
modelName = null,
|
||||
ingressLimits = null,
|
||||
children,
|
||||
}: {
|
||||
client: NanobotClient;
|
||||
token: string;
|
||||
modelName?: string | null;
|
||||
ingressLimits?: WebUIIngressLimits | null;
|
||||
children: ReactNode;
|
||||
}) {
|
||||
return (
|
||||
<ClientContext.Provider value={{ client, token, modelName }}>
|
||||
<ClientContext.Provider value={{ client, token, modelName, ingressLimits }}>
|
||||
{children}
|
||||
</ClientContext.Provider>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user