Skip to content

Commit d6371f2

Browse files
fix(session): update activity on prompt (#39539)
Co-authored-by: James Long <17031+jlongster@users.noreply.github.com>
1 parent 7625cbd commit d6371f2

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

packages/core/src/session/projector.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -657,6 +657,12 @@ const layer = Layer.effectDiscard(
657657
input: event.data.input,
658658
timeCreated: event.created,
659659
})
660+
yield* db
661+
.update(SessionTable)
662+
.set({ time_updated: DateTime.toEpochMillis(event.created) })
663+
.where(eq(SessionTable.id, event.data.sessionID))
664+
.run()
665+
.pipe(Effect.orDie)
660666
}),
661667
)
662668
yield* bus.project(SessionEvent.Compaction.Admitted, (event) =>

packages/core/test/session-create.test.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,30 @@ describe("Session.create", () => {
171171
}),
172172
)
173173

174+
it.effect("orders sessions by their latest prompt", () =>
175+
Effect.gen(function* () {
176+
const session = yield* Session.Service
177+
const { db } = yield* Database.Service
178+
const active = yield* session.create({ location, title: "active" })
179+
const newer = yield* session.create({ location, title: "newer" })
180+
181+
yield* db
182+
.update(SessionTable)
183+
.set({ time_created: -2, time_updated: -2 })
184+
.where(eq(SessionTable.id, active.id))
185+
.run()
186+
yield* db
187+
.update(SessionTable)
188+
.set({ time_created: -1, time_updated: -1 })
189+
.where(eq(SessionTable.id, newer.id))
190+
.run()
191+
192+
yield* session.prompt({ sessionID: active.id, text: "continue", resume: false })
193+
194+
expect((yield* session.list()).data.map((item) => item.id)).toEqual([active.id, newer.id])
195+
}),
196+
)
197+
174198
it.effect("filters direct child sessions by parent ID", () =>
175199
Effect.gen(function* () {
176200
const session = yield* Session.Service

0 commit comments

Comments
 (0)