summaryrefslogtreecommitdiff
path: root/subagents/jobs.lua
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-08-18 14:18:14 -0600
committert <t@tjp.lol>2026-08-18 14:20:28 -0600
commitcc69a2e431779528578211a5cb3385bb23e076bf (patch)
tree8833171e25bb3dfb71fc4a2e0b8fe583782da764 /subagents/jobs.lua
parent372ef8ff40991644ec2654c61328f31779f4ad21 (diff)
Persist and replay subagent progress across sessions
Record durable child-turn metadata, restore bounded progress cards during startup replay, and keep settled cards attached to transcript entries. Add workflow-local Lua profiles and expose discovered agents and workflows in the session header.
Diffstat (limited to 'subagents/jobs.lua')
-rw-r--r--subagents/jobs.lua3
1 files changed, 2 insertions, 1 deletions
diff --git a/subagents/jobs.lua b/subagents/jobs.lua
index 3f9a8af..a774b27 100644
--- a/subagents/jobs.lua
+++ b/subagents/jobs.lua
@@ -28,7 +28,8 @@
-- `job:close()` frees it. Jobs are otherwise left open until close_all() ends
-- the turn, so a result can still be read after its coroutine resumed.
--
--- `job:close()` also JOINS the pump, and a pump parked in a tool batch is
+-- A settled consumer may close a job immediately after caching its result;
+-- otherwise close_all() handles it. `job:close()` also JOINS the pump, and a pump parked in a tool batch is
-- waiting on the owner thread to come back to the uv loop — the very thread
-- every entry point here runs on. Closing an unsettled job would therefore
-- deadlock, so nothing does: only settle() closes a job, once its pump has