@markjaquith/agency 2.71.22 → 2.71.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@markjaquith/agency",
3
- "version": "2.71.22",
3
+ "version": "2.71.23",
4
4
  "description": "Manage agentic work across repositories with durable workbases",
5
5
  "keywords": [
6
6
  "agents",
@@ -83,6 +83,7 @@
83
83
  "benchmark:graph": "bun scripts/benchmark-graph.ts",
84
84
  "benchmark:push": "bun scripts/benchmark-push.ts",
85
85
  "benchmark:archive": "bun scripts/benchmark-archive.ts",
86
+ "benchmark:vcs": "bun scripts/benchmark-vcs.ts",
86
87
  "benchmark:sync": "bun scripts/benchmark-sync.ts",
87
88
  "benchmark:task": "bun scripts/benchmark-task.ts",
88
89
  "benchmark:validate": "bun scripts/benchmark-validate.ts",
@@ -263,15 +263,24 @@ const inspectMigration = (startPath: string, requestedTarget?: VcsKind) =>
263
263
  const repositoryRecords = yield* repositories.list(root)
264
264
  const repositoryPlans: RepositoryPlan[] = []
265
265
  const repositoryStatus: MigrationState["repositories"][number][] = []
266
- for (const repository of repositoryRecords) {
267
- const initialized = yield* fs.exists(
268
- join(
269
- repository.kind === "symlink"
270
- ? yield* fs.realPath(repository.path)
271
- : repository.path,
272
- ".jj",
273
- ),
274
- )
266
+ const repositoryInspections = yield* Effect.forEach(
267
+ repositoryRecords,
268
+ (repository) =>
269
+ Effect.gen(function* () {
270
+ const targetPath =
271
+ repository.kind === "symlink"
272
+ ? yield* fs.realPath(repository.path)
273
+ : repository.path
274
+ const initialized = yield* fs.exists(join(targetPath, ".jj"))
275
+ return { repository, initialized, targetPath }
276
+ }),
277
+ { concurrency: 8 },
278
+ )
279
+ for (const {
280
+ repository,
281
+ initialized,
282
+ targetPath,
283
+ } of repositoryInspections) {
275
284
  repositoryStatus.push({
276
285
  alias: repository.alias,
277
286
  path: repository.path,
@@ -297,10 +306,6 @@ const inspectMigration = (startPath: string, requestedTarget?: VcsKind) =>
297
306
  message: `Repository '${repository.alias}' is not initialized for the configured jj backend`,
298
307
  })
299
308
  }
300
- const targetPath =
301
- repository.kind === "symlink"
302
- ? yield* fs.realPath(repository.path)
303
- : repository.path
304
309
  repositoryPlans.push({
305
310
  alias: repository.alias,
306
311
  path: repository.path,
@@ -353,6 +358,23 @@ const inspectMigration = (startPath: string, requestedTarget?: VcsKind) =>
353
358
  }
354
359
 
355
360
  const workspacePlans: WorkspacePlan[] = []
361
+ const sourceWorkspaces = new Map<
362
+ string,
363
+ Effect.Effect<
364
+ readonly import("./VersionControlService").RegisteredWorkspace[],
365
+ unknown,
366
+ any
367
+ >
368
+ >()
369
+ const listSourceWorkspaces = (repositoryPath: string) => {
370
+ const existing = sourceWorkspaces.get(repositoryPath)
371
+ if (existing) return existing
372
+ const workspaces = sourceBackend
373
+ .listWorkspaces(repositoryPath)
374
+ .pipe(Effect.cached, Effect.flatten)
375
+ sourceWorkspaces.set(repositoryPath, workspaces)
376
+ return workspaces
377
+ }
356
378
  const inspected = yield* Effect.either(
357
379
  worktrees.list(root, {
358
380
  materializedOnly: !blockers.some(
@@ -400,7 +422,7 @@ const inspectMigration = (startPath: string, requestedTarget?: VcsKind) =>
400
422
  }
401
423
  const sourceName =
402
424
  source !== target && source === "jj"
403
- ? ((yield* sourceBackend.listWorkspaces(
425
+ ? ((yield* listSourceWorkspaces(
404
426
  join(root, "repos", checkout.repo),
405
427
  )).find((item) => item.path === checkout.registeredPath)
406
428
  ?.name ?? null)