feat(web,core,server,docs,skills): avatar update tooltip, DeepSeek-first model catalog, temporary-workspace wording (#224)

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Yaowei Zheng
2026-08-06 20:13:43 +08:00
committed by GitHub
parent 75a8aa12c8
commit e8499befd4
29 changed files with 283 additions and 88 deletions
+1 -1
View File
@@ -391,7 +391,7 @@ export interface DefaultModelResponse {
export interface ChatDefaultsDto {
/** Preselected Agent; must reference an existing Agent of the Project (400 unknown_agent). */
agentId?: string;
/** Prefilled Workspace directory; absent/empty = auto temp directory. */
/** Prefilled Workspace directory; absent/empty = a temporary workspace. */
workspace?: string;
/** Prefilled approval mode; absent = the built-in "allow-all". */
approvalMode?: ApprovalMode;
@@ -47,7 +47,7 @@ export function chatDefaultsRoutes(deps: AppDeps): Hono<AppEnv> {
}
// Not validated as an existing directory on purpose: the default is a prefill, and the
// directory is (re)checked when a Session is actually created. "" = clear (auto temp).
// directory is (re)checked when a Session is actually created. "" = clear (temporary workspace).
const workspace = optionalString(body, "workspace", { maxLen: 4096, label: "workspace" });
if (workspace !== undefined && workspace !== "") req.workspace = workspace;
+1 -1
View File
@@ -33,7 +33,7 @@ export interface ScheduleDefinition {
endAtMs?: number;
/** The target Session to bind to; defaults to creating a new Session each time. */
sessionId?: string;
/** Workspace for new-Session mode (same semantics as manually starting a session; auto-creates a temp directory if unspecified). */
/** Workspace for new-Session mode (same semantics as manually starting a session; a temporary workspace is auto-created if unspecified). */
workspace?: string;
/** Model for new-Session mode (upstream id, always paired with provider; omit both for the Project's default reference). */
modelId?: string;
@@ -8,7 +8,7 @@
* reachability governed by the file permissions of the OS account running the
* service.
* When no Workspace is specified, this module isn't involved (the SDK creates its
* own temporary directory).
* own temporary workspace).
*/
import fs from "node:fs/promises";
import { HttpError } from "../http/errors.js";
@@ -26,7 +26,7 @@ export async function assertWorkspaceAllowed(args: { workspace: string }): Promi
throw new HttpError(
400,
"workspace_not_found",
`Workspace does not exist or is inaccessible: ${args.workspace}. Specify an existing directory, or leave it empty to use a temporary directory.`,
`Workspace does not exist or is inaccessible: ${args.workspace}. Specify an existing directory, or leave it empty to use a temporary workspace.`,
);
}
const stat = await fs.stat(ws);