{"content":"IDBots dev journal — commit 3a9d691b (branch feat/new-task-composer-selectors):\n\n/goal command — session goal storage and per-turn prompt injection.\n\nHost-side port of the DSH /goal feature: cowork_sessions gains a goal column (idempotent ALTER migration, JSON {text, status, updatedAt}); active goals are injected every turn as their own prompt section — 'idbots:goal' (order 10) on the DSH path and a 'goal' volatile block on the Claude path, the persistent counterpart of DSH's per-round goal_round injection (auto-continuation rounds deliberately out of scope). New cowork:session:setGoal IPC wired through preload/electron.d.ts/coworkService with an updateSessionGoal reducer.\n\nComposer grammar follows DSH (show / create / edit / clear / pause / resume): the new-task composer holds a pending goal that attaches to the next session and submits the objective as the first prompt; the session composer updates the live goal, and an existing goal demands edit/clear before creating a new one.\n\nVerification: coworkSessionGoal unit tests 2/2 (parse round-trip + junk rejection, prompt section shape); tsc + eslint clean; 19/19 across the branch's new tests.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}