feat(rename): complete searchSpace to workspace transition across frontend and backend

- Introduced a comprehensive specification for renaming `searchSpace` to `workspace` in `surfsense_web` and `surfsense_desktop`, ensuring all TypeScript identifiers, React props, and local data structures are updated.
- Implemented migration shims for persisted local state to prevent data loss during the transition.
- Updated observability metrics and IPC channels to reflect the new naming convention.
- Removed legacy `active-search-space` module and replaced it with `active-workspace` to maintain consistency.
- Ensured no behavioral changes or data loss for users during the renaming process.
This commit is contained in:
Anish Sarkar 2026-07-06 15:12:40 +05:30
parent 2a020629c5
commit a8c1fb660d
259 changed files with 5480 additions and 2285 deletions

View file

@ -24,10 +24,10 @@ interface MemoryReadResponse {
limits?: MemoryLimits;
}
function getMemoryPath(scope: MemoryScope, searchSpaceId?: number | null) {
function getMemoryPath(scope: MemoryScope, workspaceId?: number | null) {
if (scope === "user") return "/api/v1/users/me/memory";
if (!searchSpaceId) throw new Error("Missing search space context");
return `/api/v1/workspaces/${searchSpaceId}/memory`;
if (!workspaceId) throw new Error("Missing workspace context");
return `/api/v1/workspaces/${workspaceId}/memory`;
}
export function getMemoryLimitState(length: number, limits?: MemoryLimits | null) {
@ -53,16 +53,16 @@ export function getMemoryLimitState(length: number, limits?: MemoryLimits | null
export async function fetchMemoryEditorDocument({
scope,
searchSpaceId,
workspaceId,
title,
signal,
}: {
scope: MemoryScope;
searchSpaceId?: number | null;
workspaceId?: number | null;
title?: string | null;
signal?: AbortSignal;
}) {
const response = await authenticatedFetch(buildBackendUrl(getMemoryPath(scope, searchSpaceId)), {
const response = await authenticatedFetch(buildBackendUrl(getMemoryPath(scope, workspaceId)), {
method: "GET",
signal,
});
@ -87,14 +87,14 @@ export async function fetchMemoryEditorDocument({
export async function saveMemoryMarkdown({
scope,
searchSpaceId,
workspaceId,
markdown,
}: {
scope: MemoryScope;
searchSpaceId?: number | null;
workspaceId?: number | null;
markdown: string;
}) {
const response = await authenticatedFetch(buildBackendUrl(getMemoryPath(scope, searchSpaceId)), {
const response = await authenticatedFetch(buildBackendUrl(getMemoryPath(scope, workspaceId)), {
method: "PUT",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ memory_md: markdown }),