enhance: record whether agent session has been created

This commit is contained in:
Tienson Qin
2026-02-27 21:35:42 +08:00
parent 280d02f142
commit ed5da54214
5 changed files with 23 additions and 4 deletions

View File

@@ -425,6 +425,12 @@
[[:logseq.property/agent.codex "Codex"]
[:logseq.property/agent.claude-code "Claude Code"]])
:queryable? true}
:logseq.property/agent-session-created?
{:title "Agent session created?"
:schema {:type :checkbox
:public? false
:hide? true}
:queryable? false}
:logseq.property/git-repo
{:title "Git Repo"
:schema {:type :url

View File

@@ -30,7 +30,7 @@
(map (juxt :major :minor)
[(parse-schema-version x) (parse-schema-version y)])))
(def version (parse-schema-version "65.23"))
(def version (parse-schema-version "65.24"))
(defn major-version
"Return a number.

View File

@@ -2520,8 +2520,10 @@
ready? (agent-handler/task-ready? block)
running? (contains? #{"running" "paused"} status)
session-started? (boolean (:session-id session))
session-created? (or session-started?
(true? (pu/get-block-property-value block :logseq.property/agent-session-created?)))
btn-title (if ready?
(if session-started? "Open chat" "Run agent")
(if session-created? "Open chat" "Run agent")
"Set Project + Agent + Git Repo")]
[:div.flex.flex-row.items-center.gap-1
(shui/button
@@ -2535,7 +2537,7 @@
(agent-chat/open-agent-chat-dialog! block))}
(cond
running? "Running"
session-started? "Thread"
session-created? "Thread"
:else "Run"))])))
(rum/defc ^:large-vars/cleanup-todo block-content < rum/reactive

View File

@@ -211,6 +211,7 @@
"completed" :logseq.property/status.done
"failed" :logseq.property/status.canceled
"canceled" :logseq.property/status.canceled})
(def ^:private task-session-created-property :logseq.property/agent-session-created?)
(defn- terminal-status? [status]
(contains? #{"completed" "failed" "canceled"} status))
@@ -246,6 +247,12 @@
(when (and desired (not= current desired))
(property-handler/set-block-property! block-uuid :logseq.property/status status-ident))))))
(defn- mark-task-session-created!
[block-uuid]
(when-let [block (db/entity [:block/uuid block-uuid])]
(when-not (true? (pu/get-block-property-value block task-session-created-property))
(property-handler/set-block-property! block-uuid task-session-created-property true))))
(defn- update-session!
[block-uuid f]
(state/update-state! :agent/sessions
@@ -475,6 +482,7 @@
(:session-id session)
(do
(mark-task-session-created! block-uuid)
(when-not (:streaming? session)
(<connect-session-stream! block-uuid (or (:stream-url session)
(session-stream-url base session-id))))
@@ -493,6 +501,7 @@
:terminal-enabled (true? (:terminal-enabled resp))
:stream-url stream-url
:loading? false})
(mark-task-session-created! block-uuid)
(maybe-update-task-status! block-uuid (:status resp))
(<connect-session-stream! block-uuid stream-url)
resp)
@@ -550,6 +559,7 @@
:terminal-enabled (true? (:terminal-enabled resp))
:stream-url stream-url
:started-at (util/time-ms)})
(mark-task-session-created! block-uuid)
(<connect-session-stream! block-uuid stream-url)
resp)))))))

View File

@@ -82,7 +82,8 @@
:logseq.property/agent
:logseq.property/git-repo
:logseq.property/agent-api-token
:logseq.property/agent-auth-json]}]])
:logseq.property/agent-auth-json]}]
["65.24" {:properties [:logseq.property/agent-session-created?]}]])
(let [[major minor] (last (sort (map (comp (juxt :major :minor) db-schema/parse-schema-version first)
schema-version->updates)))]