Skip to content

[Fix] Fast ignores emoji answers to its questions - #1874

Draft
roomote-roomote[bot] wants to merge 6 commits into
developfrom
fix/fast-reaction-direct-answer-262cp77d5joqd
Draft

[Fix] Fast ignores emoji answers to its questions#1874
roomote-roomote[bot] wants to merge 6 commits into
developfrom
fix/fast-reaction-direct-answer-262cp77d5joqd

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

​Opened on behalf of @daniel-lxs. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

  • Introduce one provider-neutral FastAgentHumanInput discriminator for ordinary messages and reactions instead of routing reactions as platform events.
  • Derive transcript visibility, initial substantive-turn ownership, title refresh, prompt wrapping, silence eligibility, and reaction capability from the reaction variant in one service path.
  • Keep reaction payloads canonical while excluding synthetic envelopes from visible and rollback-compatible conversation history, including cold rebuilds.
  • Use the same minimal reaction input from Slack and the shared Discord, Teams, and Telegram continuation path, with concise provider-neutral prompt guidance and normal destructive-action safeguards.

Why this change was made

Reaction payloads are intentional user responses, but Fast treated them as optional platform lifecycle events. The previous draft fixed that behavior with several independent policy knobs; this rework keeps the semantic distinction while making message-versus-reaction the single source of truth.

Impact

Fast can interpret emoji answers in context across supported chat providers without exposing reaction envelopes as normal messages or weakening confirmation requirements. Ordinary messages and platform events retain their existing behavior, and current activity/title synchronization remains intact.

@roomote-community

roomote-community Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

  • Keep synthetic reaction envelopes out of compatibility history so cold rebuilds and initial-human-turn classification remain correct.

Reviewed e3926c9

Comment thread packages/cloud-agents/src/server/fast-agent/fast-agent-service.ts Outdated
@roomote-roomote

roomote-roomote Bot commented Aug 30, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the compatibility-history regression in 31a9ffcb: synthetic reaction envelopes no longer enter the N-1 mirror, while canonical reaction payload persistence remains intact. The regression now verifies the next cold rebuild contains no <external_input> history and still classifies the next real message as the initial human turn.

Focused Fast suites (133 tests), cloud-agent typecheck, targeted lint, diff checks, fixer re-review, and the pre-push suite passed. The addressed review thread is resolved, and the automatic Roomote review completed with no code issues.

@roomote-roomote

Copy link
Copy Markdown
Contributor Author

PR #1906’s competing Slack-only external_input workaround has been fully reverted and now has an empty net diff. #1906 is marked superseded by this provider-neutral turnSource: human / inputKind: reaction implementation. Recommendation: close #1906, resolve this PR’s current merge conflicts with develop, and continue review here as the sole reaction-semantics fix.

@roomote-roomote

roomote-roomote Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

Reworked in e3926c90. The draft now uses one discriminated message-versus-reaction input and derives transcript/title/initial-turn behavior, prompt wrapping, silence eligibility, and reaction capability centrally. The independent visibility/reactability/transcript-payload knobs and unmerged compatibility aliases were removed.

Current develop was merged with activity/title behavior preserved. Focused cloud-agent tests (138), Slack reaction tests (2), shared surface tests (9), API/cloud-agent/SDK typechecks, formatting, lint, and the full pre-push suite pass. Browser proof is not applicable to this internal prompt and event contract. The PR remains draft and unmerged pending automatic re-review and human approval.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant