Skip to content

Workspace header reads "Finished" for a rejected/expired gated request notice (_portal_body) #3688

Closed

Description

@vybe

Problem

After #3657 (#3653), a gated request's ending is reported back in the requester's own chat. When that chat is a Workspace thread, the notice goes through channel_completion_report._portal_body, whose header is chosen only by whether the wake-up row ran to completion:

head = f"**Finished{who}**" if done else f"**Didn't finish{who}** — {status}"

A wake-up row that reports a rejected, expired or not-run gate outcome completes normally, so the Workspace reader sees:

**Finished** | | Your request was rejected.

with the "done" pill — the first word the requester reads says the opposite of what happened. The PR body for #3657 discloses this; the merge-train validator executed the delivery leg (report_completion → _resolve_portal → add_portal_message) and confirmed the rendered body.

Expected

A skill_gate-triggered wake-up row (the ending notice, not the approved run itself) gets a neutral header in _portal_body — the outcome sentence already carries the verdict — or the header is derived from the gate outcome, not from the row's run status.

Where

Acceptance

  • A rejected / expired / not-run gate notice in a Workspace thread does not read "Finished".
  • The approved-run's own completion notice is unchanged.
  • A test drives a skill_gate wake-up row through the real report_completion → portal path and asserts the header.

Found during the 2026-10-14 merge-train validation of #3657 (non-blocking there).

Activity

  1. self-assigned this
    on Oct 15, 2026
  2. dolho commented on Oct 15, 2026

    @dolho
    Contributor

    /claim

  3. github-actions commented on Oct 15, 2026

    @github-actions

    @dolho This issue is already assigned to dolho. Use /unclaim first if you want to take over.

  4. added
    status-in-devMerged to dev, awaiting release cut to main
    and removed on Oct 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions