MCPcopy Create free account
hub / github.com/arctic-cli/interface / migrateFromGlobal

Function migrateFromGlobal

packages/arctic/src/project/project.ts:159–181  ·  view source on GitHub ↗
(newProjectID: string, worktree: string)

Source from the content-addressed store, hash-verified

157 }
158
159 async function migrateFromGlobal(newProjectID: string, worktree: string) {
160 const globalProject = await Storage.read<Info>(["project", "global"]).catch(() => undefined)
161 if (!globalProject) return
162
163 const globalSessions = await Storage.list(["session", "global"]).catch(() => [])
164 if (globalSessions.length === 0) return
165
166 log.info("migrating sessions from global", { newProjectID, worktree, count: globalSessions.length })
167
168 await work(10, globalSessions, async (key) => {
169 const sessionID = key[key.length - 1]
170 const session = await Storage.read<Session.Info>(key).catch(() => undefined)
171 if (!session) return
172 if (session.directory && session.directory !== worktree) return
173
174 session.projectID = newProjectID
175 log.info("migrating session", { sessionID, from: "global", to: newProjectID })
176 await Storage.write(["session", newProjectID, sessionID], session)
177 await Storage.remove(key)
178 }).catch((error) => {
179 log.error("failed to migrate sessions from global to project", { error, projectId: newProjectID })
180 })
181 }
182
183 export async function setInitialized(projectID: string) {
184 await Storage.update<Info>(["project", projectID], (draft) => {

Callers 1

fromDirectoryFunction · 0.85

Calls 3

workFunction · 0.90
listMethod · 0.45
removeMethod · 0.45

Tested by

no test coverage detected