@markjaquith/agency 2.71.15 → 2.71.16

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.15",
3
+ "version": "2.71.16",
4
4
  "description": "Manage agentic work across repositories with durable workbases",
5
5
  "keywords": [
6
6
  "agents",
@@ -75,6 +75,7 @@
75
75
  "benchmark:context": "bun scripts/benchmark-context.ts",
76
76
  "benchmark:claim": "bun scripts/benchmark-claim.ts",
77
77
  "benchmark:finish": "bun scripts/benchmark-finish.ts",
78
+ "benchmark:phase": "bun scripts/benchmark-phase.ts",
78
79
  "benchmark:push": "bun scripts/benchmark-push.ts",
79
80
  "benchmark:sync": "bun scripts/benchmark-sync.ts",
80
81
  "benchmark:task": "bun scripts/benchmark-task.ts",
@@ -1,7 +1,7 @@
1
1
  import { afterEach, beforeEach, describe, expect, test } from "bun:test"
2
2
  import { mkdir } from "node:fs/promises"
3
3
  import { join } from "node:path"
4
- import { Effect } from "effect"
4
+ import { Effect, Layer } from "effect"
5
5
  import {
6
6
  captureLogs,
7
7
  cleanupTempDir,
@@ -10,6 +10,10 @@ import {
10
10
  } from "../test-utils"
11
11
  import { phase } from "./phase"
12
12
  import { task } from "./task"
13
+ import { FileSystemService } from "../services/FileSystemService"
14
+ import { PhaseService } from "../services/PhaseService"
15
+ import { TaskService } from "../services/TaskService"
16
+ import { WorkbaseService } from "../services/WorkbaseService"
13
17
 
14
18
  describe("task and phase command JSON output", () => {
15
19
  let root: string
@@ -186,6 +190,45 @@ describe("task and phase command JSON output", () => {
186
190
  })
187
191
  })
188
192
 
193
+ test("shows one phase without reading sibling phase documents", async () => {
194
+ await runTestEffect(
195
+ phase({
196
+ subcommand: "create",
197
+ args: ["multi", "second"],
198
+ repo: "agency",
199
+ branch: "task/second",
200
+ base: "main",
201
+ cwd: root,
202
+ silent: true,
203
+ }),
204
+ )
205
+ const fs = await Effect.runPromise(
206
+ FileSystemService.pipe(Effect.provide(FileSystemService.Default)),
207
+ )
208
+ const readPaths: string[] = []
209
+ const countingFs = {
210
+ ...fs,
211
+ readFile: (path: string) => {
212
+ readPaths.push(path)
213
+ return fs.readFile(path)
214
+ },
215
+ }
216
+ const program = PhaseService.pipe(
217
+ Effect.flatMap((service) => service.show("multi", "second", root)),
218
+ Effect.provide(PhaseService.Default),
219
+ Effect.provide(TaskService.Default),
220
+ Effect.provide(WorkbaseService.Default),
221
+ Effect.provide(Layer.succeed(FileSystemService, countingFs)),
222
+ )
223
+
224
+ const record = await Effect.runPromise(program)
225
+
226
+ expect(record.id).toBe("second")
227
+ expect(readPaths.filter((path) => path.endsWith("PHASE.md"))).toEqual([
228
+ join(root, "tasks/multi/phases/second/PHASE.md"),
229
+ ])
230
+ })
231
+
189
232
  test("renders task and phase operational tables", async () => {
190
233
  const taskLogs = await captureLogs(() =>
191
234
  runTestEffect(task({ subcommand: "list", args: [], cwd: root })),