Routine creation without an invited agent; /routine passes a visible preselection (CL-7357, CL-7356) - #556
Merged
Conversation
TheGreatAxios
force-pushed
the
cl-7357-routine-entry
branch
from
September 2, 2026 06:25
2664bcc to
f0f371f
Compare
TheGreatAxios
force-pushed
the
cl-7357-routine-entry
branch
from
September 2, 2026 07:44
f0f371f to
98ebc65
Compare
TheGreatAxios
force-pushed
the
cl-7357-routine-entry
branch
from
September 2, 2026 08:18
98ebc65 to
4e48681
Compare
TheGreatAxios
force-pushed
the
cl-7357-routine-entry
branch
from
September 2, 2026 08:31
4e48681 to
765025c
Compare
TheGreatAxios
force-pushed
the
cl-7357-routine-entry
branch
from
September 2, 2026 10:38
765025c to
0a07c8c
Compare
…-7356) Covers the routine panel honoring RoutinePanelSubject.preselectedAssetId (shown chosen, and freely replaceable) and ChatWorkspace computing that preselection from the conversation's own agent participants: none when there are zero or several, the single agent's definitionAssetId when there is exactly one.
CL-7355 already removed every invited-agent guard around routine creation (CL-7357): DefinitionTargetPicker never auto-selects, and the panel opens identically whether invoked from the routines page, the palette, or a chat with no agents — there was nothing left to delete. This wires DefinitionTargetPicker's existing preselectedAssetId prop end to end: ChatWorkspace resolves the active workbench's agent participants (already fetched for the failed-turn model picker) and, only when there is exactly one, hands its definitionAssetId through onCreateRoutineInSpace to RoutinePanelSubject.preselectedAssetId. The picker shows it chosen but never disables changing or clearing it, and only the person's final explicit selection is ever sent to POST /routines — unchanged from CL-7355.
TheGreatAxios
force-pushed
the
cl-7357-routine-entry
branch
from
September 2, 2026 10:46
0a07c8c to
5aedddf
Compare
TheGreatAxios
marked this pull request as ready for review
September 2, 2026 11:09
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Linear: https://linear.app/abklabs/issue/CL-7357, https://linear.app/abklabs/issue/CL-7356
CL-7357 — Allow routine creation without an invited chat agent
Already satisfied on this base branch (cl-7355-target-picker): CL-7355 deleted
resolveCreateTarget/listWorkbenchAgents(...)[0]and every "no agentinvited" guard around routine creation when it replaced target inference
with the explicit
DefinitionTargetPicker. Verified no guard remains at anyentry point (routines page, command palette
new-routine, composer/routine) — opening the panel with zero, one, or several agents in scopebehaves identically; empty-target messaging comes only from the picker's own
empty state. No code change was needed for this half.
CL-7356 —
/routinepasses only a visible, replaceable preselectionWires
DefinitionTargetPicker's existingpreselectedAssetIdprop end toend:
ChatWorkspaceresolves the active workbench's agent participants(already fetched for the failed-turn model picker) and, only when there is
exactly one, passes its
definitionAssetIdthroughonCreateRoutineInSpaceto
RoutinePanelSubject.preselectedAssetId. Zero or several participantsmeans no preselection. The picker shows the preselected target already
chosen but never disables changing or clearing it; only the person's final
explicit pick is ever sent to
POST /routines.Test plan
bunx tsc --noEmit -p apps/webbunx tsc --noEmit -p packages/chat-uibun test test/routine-panel.test.tsx(apps/web)bun test test/chat-workspace.test.tsx(packages/chat-ui)bunx eslinton touched filesResolves CL-7357
Resolves CL-7356