Conversation
…ive activity line (#3001) The Work card's steps sentence was ruled for ent#525, before #620 put the agent's live activity line on the same card. An agent that publishes no #919 pipeline (steps `none`) therefore showed "Thinking" / "Reading …" with "<agent> doesn't report steps." directly beneath it — the card contradicting itself. stepsLine gains `{ activitySeen }`: once PortalWorkCard has shown a live line on this run the `none` sentence is withheld (kind 'activity', nothing rendered), sticky across the 15 s beat gaps and reset for a new run. "Could not be read right now" is unchanged — it stays true either way. The sentence still shows for an agent reporting neither stages nor activity. workStepsActivity.spec.js (mounted) went red before the fix: 3 failed — the activity rule, a live line beside the sentence, and suppression between beats — and green after. Fixes #3001 Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
4 tasks done
vybe
pushed a commit
that referenced
this pull request
Oct 2, 2026
…ard (#3001) (#3148) * fix(workspace): don't say "<agent> doesn't report steps" beside its live activity line (#3001) The Work card's steps sentence was ruled for ent#525, before #620 put the agent's live activity line on the same card. So an agent that publishes no pipeline showed "Thinking" / "Reading …" with "<agent> doesn't report steps." directly beneath it, and the card contradicted itself. stepsLine() gains `{ activitySeen }`. Once PortalWorkCard has shown a live line on this run, the `none` sentence is withheld (kind `activity`, no text). This is sticky across the 15 s beat gaps and resets for a new run. "Could not be read right now" is unchanged, since it stays true either way, and the sentence still shows for an agent that reports neither stages nor activity. This re-lands the closed #3002 on top of #2972, which rewrote the same row for the chat's one-line card (`reserveLiveRows`, #2964). There, `activity` is silent like `pending`: the reserved row stays, blank and aria-hidden, so the card keeps its shape. stepsLine still returns `who` for the `none` sentence. workStepsActivity.spec.js (mounted): 4 of 8 fail on dev and all pass with the fix. It covers the rule, a live line beside the sentence, suppression between beats with a reset for the next run, and the chat card's reserved row staying blank at h-4. Fixes #3001 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * fix(workspace): remove "<agent> doesn't report steps" entirely (#3001) Ruled 2026-10-01: the sentence goes, not only beside a live activity line. Before the first line it read as a fault, and beside "Thinking" / "Reading …" as the card contradicting itself. A running card now shows the live activity line, or the stages when the agent publishes them, or nothing. - stepsLine(steps) returns { kind: 'none', text: '' } for an agent with no stages. The `activitySeen` option and the name/claim split (`who`), which existed only for the sentence, are gone. - PortalWorkCard treats `none` like `pending`. It renders nothing outside the chat. In the chat's one-line card (`reserveLiveRows`, #2964) the reserved row stays, blank and aria-hidden, so the card keeps its shape. - "Steps could not be read right now." stays, since it reports a real failure. Tests: workStepsActivity.spec.js covers the card before the first line, beside a live line, between heartbeats, the unknown sentence, and the chat card's blank h-4 row. Four #2964 and ent#525 tests that asserted the sentence now assert its absence, with the shape guarantees they protect kept. Restoring the sentence in stepsLine turns the spec red. Full suite: 244 files, 4,484 tests. Docs: architecture, feature flow, requirement and user doc updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * docs(workspace): drop stale "doesn't report steps" references (#3001) The feature-flow and three code comments still described the removed sentence (the agent-name truncation, "the card says ..."). Comment and doc text only; no behaviour change. merge-train: mechanical, per the merge-train note on the PR. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: trinity-ability <309458136+trinity-ability@users.noreply.github.com>
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.
Summary
A live Work card could show the agent's activity line ("Thinking", "Reading …", #620) and, right beneath it, " doesn't report steps." The detection is correct:
nonemeans the agent publishes no #919 pipeline. But that sentence was ruled for ent#525, before the activity row existed on the same card.stepsLine(steps, agent, { activitySeen }): once the card has shown a live line on this run,nonerenders nothing (kind: 'activity').PortalWorkCard:activitySeenis sticky for the run, so the sentence doesn't flicker back between beats (a beat expires every 15 s). It resets when the card shows a different run.Changes
src/frontend/src/components/portal/portalWork.js: thestepsLineoption.src/frontend/src/components/portal/PortalWorkCard.vue: theactivitySeentracking.src/frontend/tests/unit/workStepsActivity.spec.js: new, mounted.requirements/core-agent.md,feature-flows/workspace-work.md,architecture/workspace.mdanduser-docs/operations/executions.md.Test Plan
portalWork.spec.js,workActivity.spec.jsandroomStopWork.spec.js: green, with existing sentences unchanged.npm run test:unit: 166 files, 3,566 passed.acme-analyst, no pipelines). The demo runs feat(workspace): suggestions — what you can do with this agent, and what is waiting (abilityai/trinity-enterprise#465) #3000's branch, so it shows the fix only once both are ondev.Fixes #3001
🤖 Generated with Claude Code