@@ -7,6 +7,7 @@ const mocks = vi.hoisted(() => ({
|
7 | 7 | healthCommand: vi.fn(), |
8 | 8 | sessionsCommand: vi.fn(), |
9 | 9 | sessionsCleanupCommand: vi.fn(), |
| 10 | +sessionsTailCommand: vi.fn(), |
10 | 11 | exportTrajectoryCommand: vi.fn(), |
11 | 12 | commitmentsListCommand: vi.fn(), |
12 | 13 | commitmentsDismissCommand: vi.fn(), |
@@ -31,6 +32,7 @@ const statusCommand = mocks.statusCommand;
|
31 | 32 | const healthCommand = mocks.healthCommand; |
32 | 33 | const sessionsCommand = mocks.sessionsCommand; |
33 | 34 | const sessionsCleanupCommand = mocks.sessionsCleanupCommand; |
| 35 | +const sessionsTailCommand = mocks.sessionsTailCommand; |
34 | 36 | const exportTrajectoryCommand = mocks.exportTrajectoryCommand; |
35 | 37 | const commitmentsListCommand = mocks.commitmentsListCommand; |
36 | 38 | const commitmentsDismissCommand = mocks.commitmentsDismissCommand; |
@@ -88,6 +90,10 @@ vi.mock("../../commands/sessions-cleanup.js", () => ({
|
88 | 90 | sessionsCleanupCommand: mocks.sessionsCleanupCommand, |
89 | 91 | })); |
90 | 92 | |
| 93 | +vi.mock("../../commands/sessions-tail.js", () => ({ |
| 94 | +sessionsTailCommand: mocks.sessionsTailCommand, |
| 95 | +})); |
| 96 | + |
91 | 97 | vi.mock("../../commands/export-trajectory.js", () => ({ |
92 | 98 | exportTrajectoryCommand: mocks.exportTrajectoryCommand, |
93 | 99 | })); |
@@ -134,6 +140,7 @@ describe("registerStatusHealthSessionsCommands", () => {
|
134 | 140 | healthCommand.mockResolvedValue(undefined); |
135 | 141 | sessionsCommand.mockResolvedValue(undefined); |
136 | 142 | sessionsCleanupCommand.mockResolvedValue(undefined); |
| 143 | +sessionsTailCommand.mockResolvedValue(undefined); |
137 | 144 | exportTrajectoryCommand.mockResolvedValue(undefined); |
138 | 145 | commitmentsListCommand.mockResolvedValue(undefined); |
139 | 146 | commitmentsDismissCommand.mockResolvedValue(undefined); |
@@ -345,6 +352,31 @@ describe("registerStatusHealthSessionsCommands", () => {
|
345 | 352 | }); |
346 | 353 | }); |
347 | 354 | |
| 355 | +it("runs sessions tail with forwarded progress options", async () => { |
| 356 | +await runCli([ |
| 357 | +"sessions", |
| 358 | +"--store", |
| 359 | +"/tmp/sessions.json", |
| 360 | +"--agent", |
| 361 | +"work", |
| 362 | +"tail", |
| 363 | +"--session-key", |
| 364 | +"agent:main:telegram:direct:owner", |
| 365 | +"--tail", |
| 366 | +"5", |
| 367 | +"--follow", |
| 368 | +]); |
| 369 | + |
| 370 | +expectCommandOptions(sessionsTailCommand, { |
| 371 | +sessionKey: "agent:main:telegram:direct:owner", |
| 372 | +store: "/tmp/sessions.json", |
| 373 | +agent: "work", |
| 374 | +allAgents: false, |
| 375 | +follow: true, |
| 376 | +tail: "5", |
| 377 | +}); |
| 378 | +}); |
| 379 | + |
348 | 380 | it("runs sessions export-trajectory with owner-routable export options", async () => { |
349 | 381 | await runCli([ |
350 | 382 | "sessions", |
|