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

@ -18,7 +18,7 @@ interface UseDocumentsProcessingOptions {
}
/**
* Returns the processing status of documents in the search space:
* Returns the processing status of documents in the workspace:
* - "processing" docs are queued or actively being prepared for search
* - "background_sync" existing docs are being refreshed in the background
* - "error" nothing processing, but failed docs exist (show red icon)
@ -26,17 +26,17 @@ interface UseDocumentsProcessingOptions {
* - "idle" nothing noteworthy (show normal icon)
*/
export function useDocumentsProcessing(
searchSpaceId: number | null,
workspaceId: number | null,
{ hasPeriodicSyncEnabled = false }: UseDocumentsProcessingOptions = {}
): DocumentsProcessingStatus {
const [status, setStatus] = useState<DocumentsProcessingStatus>("idle");
const wasProcessingRef = useRef(false);
const successTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
const [documents] = useQuery(queries.documents.bySpace({ searchSpaceId: searchSpaceId ?? -1 }));
const [documents] = useQuery(queries.documents.bySpace({ workspaceId: workspaceId ?? -1 }));
useEffect(() => {
if (!searchSpaceId || !documents) return;
if (!workspaceId || !documents) return;
const clearSuccessTimer = () => {
if (successTimerRef.current) {
@ -95,7 +95,7 @@ export function useDocumentsProcessing(
} else {
setStatus("idle");
}
}, [searchSpaceId, documents, hasPeriodicSyncEnabled]);
}, [workspaceId, documents, hasPeriodicSyncEnabled]);
useEffect(() => {
return () => {