summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-06-29 19:43:03 -0400
committerDax Raad <[email protected]>2025-06-29 19:43:03 -0400
commit248325925fda66c116b7bc40d292f66f2a550c16 (patch)
tree84daa6ed601add9f46ba6766ee6e1da18520e695
parentca48a4f0fb76700f18fac71eb426421c6be6237c (diff)
downloadopencode-248325925fda66c116b7bc40d292f66f2a550c16.tar.gz
opencode-248325925fda66c116b7bc40d292f66f2a550c16.zip
fix issue with costs resetting once chat is completed
-rw-r--r--packages/opencode/src/session/index.ts13
1 files changed, 2 insertions, 11 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 7319f5ab1..e5dbffacc 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -502,15 +502,6 @@ export namespace Session {
}
text = undefined
},
- async onFinish(input) {
- log.info("message finish", {
- reason: input.finishReason,
- })
- const assistant = next.metadata!.assistant!
- const usage = getUsage(model.info, input.usage, input.providerMetadata)
- assistant.cost = usage.cost
- await updateMessage(next)
- },
onError(err) {
log.error("callback error", err)
switch (true) {
@@ -681,7 +672,7 @@ export namespace Session {
value.usage,
value.providerMetadata,
)
- assistant.cost = usage.cost
+ assistant.cost += usage.cost
await updateMessage(next)
if (value.finishReason === "length")
throw new Message.OutputLengthError({})
@@ -830,7 +821,7 @@ export namespace Session {
async onFinish(input) {
const assistant = next.metadata!.assistant!
const usage = getUsage(model.info, input.usage, input.providerMetadata)
- assistant.cost = usage.cost
+ assistant.cost += usage.cost
assistant.tokens = usage.tokens
next.metadata!.time.completed = Date.now()
await updateMessage(next)