fix(session): hide pending admission sequence
This commit is contained in:
parent
9554f9a16e
commit
2a85c861e0
17 changed files with 32 additions and 48 deletions
|
|
@ -407,7 +407,6 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({
|
|||
addPending({
|
||||
id: event.data.inputID,
|
||||
sessionID: event.data.sessionID,
|
||||
admittedSeq: event.durable.seq,
|
||||
timeCreated: event.created,
|
||||
...event.data.input,
|
||||
})
|
||||
|
|
@ -702,7 +701,6 @@ export const { use: useData, provider: DataProvider } = createSimpleContext({
|
|||
addPending({
|
||||
id: event.data.inputID,
|
||||
sessionID: event.data.sessionID,
|
||||
admittedSeq: event.durable.seq,
|
||||
timeCreated: event.created,
|
||||
type: "compaction",
|
||||
})
|
||||
|
|
|
|||
|
|
@ -186,7 +186,6 @@ function pendingPrompt(item: SessionPendingInfo): FooterQueuedPrompt | undefined
|
|||
messageID: item.id,
|
||||
prompt: { messageID: item.id, text: item.data.text, parts: [] },
|
||||
delivery: item.delivery,
|
||||
admittedSeq: item.admittedSeq,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -517,7 +516,7 @@ export async function createSessionTransport(input: StreamInput): Promise<Sessio
|
|||
}
|
||||
|
||||
const syncPending = () => {
|
||||
const prompts = [...state.pending.values()].toSorted((left, right) => left.admittedSeq - right.admittedSeq)
|
||||
const prompts = [...state.pending.values()]
|
||||
input.trace?.write("ui.patch", { pending: prompts.length })
|
||||
input.footer.event({ type: "queued.prompts", prompts })
|
||||
}
|
||||
|
|
@ -905,7 +904,6 @@ export async function createSessionTransport(input: StreamInput): Promise<Sessio
|
|||
if (event.type === "session.input.admitted") {
|
||||
if (event.data.input.type !== "user") return
|
||||
mergePending({
|
||||
admittedSeq: event.durable.seq,
|
||||
id: event.data.inputID,
|
||||
sessionID: event.data.sessionID,
|
||||
timeCreated: event.created,
|
||||
|
|
|
|||
|
|
@ -88,7 +88,6 @@ export type FooterQueuedPrompt = {
|
|||
messageID: string
|
||||
prompt: RunPrompt
|
||||
delivery: "steer" | "queue"
|
||||
admittedSeq: number
|
||||
}
|
||||
|
||||
export type RunAgent = {
|
||||
|
|
|
|||
|
|
@ -1346,14 +1346,12 @@ test("restores queued compaction from durable pending input", async () => {
|
|||
const sessionID = "session-compaction-queued"
|
||||
let pending = [
|
||||
{
|
||||
admittedSeq: 3,
|
||||
id: "message-compaction-queued",
|
||||
sessionID,
|
||||
timeCreated: 1,
|
||||
type: "compaction" as const,
|
||||
},
|
||||
{
|
||||
admittedSeq: 4,
|
||||
id: "message-compaction-later",
|
||||
sessionID,
|
||||
timeCreated: 2,
|
||||
|
|
@ -2474,7 +2472,6 @@ test("renders admitted prompts immediately and tracks them until promoted", asyn
|
|||
{
|
||||
id: messageID,
|
||||
sessionID,
|
||||
admittedSeq: 0,
|
||||
timeCreated: 0,
|
||||
type: "user",
|
||||
data: { text: "hello" },
|
||||
|
|
|
|||
|
|
@ -919,7 +919,6 @@ test("direct pending panel shows durable delivery without edit actions", async (
|
|||
messageID: "m-1",
|
||||
prompt: { text: "fix the auth test", parts: [] },
|
||||
delivery: "queue" as const,
|
||||
admittedSeq: 1,
|
||||
},
|
||||
])
|
||||
|
||||
|
|
@ -1284,7 +1283,6 @@ test("direct footer shows authoritative pending work while running", async () =>
|
|||
messageID: "m-queued",
|
||||
prompt: { text: "follow up", parts: [] },
|
||||
delivery: "queue",
|
||||
admittedSeq: 1,
|
||||
},
|
||||
]}
|
||||
theme={() => RUN_THEME_FALLBACK}
|
||||
|
|
|
|||
|
|
@ -77,7 +77,6 @@ function durable(sessionID: string, seq = 0, version: 1 | 2 = 1) {
|
|||
|
||||
function promptAdmission(input: Parameters<OpenCodeClient["session"]["prompt"]>[0], sessionID = "ses_1") {
|
||||
return {
|
||||
admittedSeq: 1,
|
||||
id: input.id ?? "msg_prompt",
|
||||
sessionID,
|
||||
type: "user" as const,
|
||||
|
|
@ -659,7 +658,6 @@ describe("V2 mini transport", () => {
|
|||
pending: {
|
||||
ses_1: [
|
||||
{
|
||||
admittedSeq: 1,
|
||||
id: "msg_queued",
|
||||
sessionID: "ses_1",
|
||||
timeCreated: 1,
|
||||
|
|
@ -680,9 +678,9 @@ describe("V2 mini transport", () => {
|
|||
const pending = () =>
|
||||
ui.events
|
||||
.findLast((item) => item.type === "queued.prompts")
|
||||
?.prompts.map((item) => [item.messageID, item.delivery, item.admittedSeq])
|
||||
?.prompts.map((item) => [item.messageID, item.delivery])
|
||||
|
||||
expect(pending()).toEqual([["msg_queued", "queue", 1]])
|
||||
expect(pending()).toEqual([["msg_queued", "queue"]])
|
||||
events.push({
|
||||
id: "evt_promoted",
|
||||
created: 2,
|
||||
|
|
@ -697,7 +695,7 @@ describe("V2 mini transport", () => {
|
|||
)
|
||||
expect(pending()).toEqual([])
|
||||
const prompt = spyOn(client.session, "prompt").mockImplementation(
|
||||
(request) => ok({ ...promptAdmission(request), admittedSeq: 2 }) as never,
|
||||
(request) => ok(promptAdmission(request)) as never,
|
||||
)
|
||||
await transport.queuePromptTurn({
|
||||
agent: "review",
|
||||
|
|
@ -726,8 +724,8 @@ describe("V2 mini transport", () => {
|
|||
await Bun.sleep(0)
|
||||
}
|
||||
expect(pending()).toEqual([
|
||||
["msg_earlier", "steer", 1],
|
||||
["msg_next", "queue", 2],
|
||||
["msg_next", "queue"],
|
||||
["msg_earlier", "steer"],
|
||||
])
|
||||
await transport.close()
|
||||
})
|
||||
|
|
@ -2694,7 +2692,6 @@ describe("V2 mini transport", () => {
|
|||
})
|
||||
})
|
||||
return ok({
|
||||
admittedSeq: 1,
|
||||
id: input.id ?? "msg_cmd",
|
||||
sessionID: "ses_1",
|
||||
type: "user" as const,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue