[Improve] Make guided agent interactions reliable - #2475
[Improve] Make guided agent interactions reliable#2475roomote-roomote[bot] wants to merge 132 commits into
Conversation
Promote v0.0.2 to production
Promote v0.0.3 to production
Promote v0.0.4 to production
Promote v0.1.0 to production
Promote v0.1.1 to production
Promote v0.2.0 to production
Promote v0.3.0 to production
Promote v0.3.1 to production
Promote v0.4.0 to production
Promote v0.4.1 to production
SlackSetupExperience's intro screen owns the step action buttons, and it is skipped when the Slack config is already saved (savedSatisfied). But StepAuthEnvVars's providerOwnsActions check was missing the matching !savedSatisfied clause, so revisiting the auth step with saved Slack credentials rendered the value form with no action button at all, stranding the user on the page. Align providerOwnsActions with the intro guard and add a regression test for the saved-Slack revisit path. Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
Hotfix-only cut from main with the #299 Slack setup Continue fix.
[Chore] Release Roomote 0.4.2 hotfix for saved Slack continue
Drop the reverted analytics Model group-by line and document notification destination and homepage dump-flash fixes now included on release/v0.5.0.
Promote v0.5.0 to production
Promote v0.6.0 to production
Promote v0.7.0 to production
Promote v0.7.1 to production
Promote v0.8.0 to production
Promote v0.8.1 to production
Promote v0.9.0 to production
…ma-v1.3.2 [Fix] Release Roomote 1.3.2 for Fast integration schema failures
Promote v1.4.0 to production
….4.1 [Fix] Release Roomote 1.4.1 for failing GPT-5.x integration lookups
Promote v1.5.0 to production
Promote v1.5.1 to production
Promote v1.6.0 to production
|
All findings from the linked review task are addressed in the current branch; the final thread was resolved after the check completed.
Fixed through 006ca45 |
| .where(eq(deploymentSettings.id, 'default')) | ||
| .limit(1); | ||
| if (settings?.setupCompletedAt) { | ||
| const row = await findSetupSessionConversationRecord(); |
There was a problem hiding this comment.
The fallback lets a collaborator persist a pending preset response, but its callback still calls reconcileSetupPlatformEvents(auth) with that collaborator. That function immediately returns when findSetupSessionConversation(auth) rejects the non-owner, and preset submissions return before submitFastSessionUserInputCommand schedules an input-response turn. A post-completion collaborator selecting a pending starter-task card therefore records the selection but never schedules the setup turn that launches the chosen work. Reconcile using the setup conversation owner (or otherwise schedule the continuation independently of the submitter).
What changed
request_user_inputtool rows only when a card exists, keep failed tool calls visible, and leave the composer available beside optional questions.This standalone draft contains and supersedes the relevant implementation from PR #2402. It does not depend on #2402 landing; #2402 remains open and unchanged.
The source branch itself is based directly on
main. The PR base still needs to be retargeted tomain: the provider-neutral update operation created duplicate draft #2473 instead of changing #2470, and the current task API exposes no retarget or close operation. Do not merge either draft until #2470 is retargeted and #2473 is closed.Why this change was made
Setup Sessions could require several attempts because tool plumbing appeared before cards, human choices disappeared or showed internal values, asynchronous setup events produced incoherent ordering, and a saved answer could be stranded before model continuation. Connection state and chat interaction guarantees also differed across surfaces.
Impact
Guided interactions now read as one coherent conversation and remain correct across reloads, retries, concurrent submissions, and supported chat adapters. The prompt keeps a deliberately designed setup progression while users can skip or reorder optional steps and the backend enforces reliable conversation-wide behavior.
Validation and local testing
Passed against the standalone
mainancestry:pnpm check-types:fastpnpm lint:fastpnpm knip(only the existing Mint configuration hint)Branch ancestry is exactly four commits ahead of
origin/main: the two setup-discovery commits, the guided-interactions implementation, and the review-fix commit. Its merge base equals the currentorigin/main; unrelated post-releasedevelopcommits are excluded.The preview browser was unauthenticated and further login/browser verification was explicitly canceled. No authenticated browser result, screenshot, ordinary-session live smoke, or external OAuth completion is claimed.
Local verification:
git fetch origingit switch feature/guided-interactions-2hkp457mhpgozmise install && pnpm installpnpm dev.