Skip to content

[Feat] Add recognizable robot icons to tasks - #2219

Open
roomote-roomote[bot] wants to merge 5 commits into
developfrom
feature/task-robot-icons-3si8i2mxtqdxn
Open

[Feat] Add recognizable robot icons to tasks#2219
roomote-roomote[bot] wants to merge 5 commits into
developfrom
feature/task-robot-icons-3si8i2mxtqdxn

Conversation

@roomote-roomote

@roomote-roomote roomote-roomote Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

​Created by Roomote. Follow up by mentioning @roomote-roomote, in the web UI, or in Slack.

What changed

  • Add 100 stable robot image assets and a reproducible Sharp-based generator from the supplied source sheet.
  • Detect each robot drawing, preserve its proportions, and center its visual mass on a consistent lime canvas rather than compensating with per-surface CSS offsets.
  • Render every task robot through the shared user Avatar component at sm size.
  • Assign tasks a deterministic, session-seeded robot permutation so the first 100 tasks in a Session remain unique, with deterministic reuse after 100 and a hash fallback while task membership is still loading.
  • Show the same robot on delegated task cards, nested task panel titles, standalone task headers, and task-specific ACP activity such as task launches and messages.
  • Provide the parent Session's icon assignment to standalone live and historical transcripts so their task activity matches the same task's header.
  • Integrate the current develop Session panel-controller refactor while retaining the Session-level task robot context.
  • Preserve generic tool icons, failure indicators, running feedback, responsive truncation, and screen-reader labels.

The supplied image resolves to an 11x11 grid rather than the described 10x10 grid. The generator intentionally takes the first 100 cells in row-major order and keeps the original sheet as the reproducible source of truth.

Why this change was made

Delegated work is easier to follow when a task has one recognizable visual identity everywhere it appears. Shared Avatar rendering aligns task robots with existing user-avatar behavior, while source-level centering keeps every drawing balanced without host-specific positioning.

Impact

Users can visually track the same task from Session conversation activity into its nested panel and full task workspace. All placements use the same compact circular Avatar treatment, all 100 assets are centered and safe within that circular crop, and stable assignment behavior is unchanged. The branch is merged with current develop without discarding its extracted Session workspace controller.

Verification covered the integrated Session conflict surface (4 files, 105 tests), relevant task robot client suites (8 files, 132 tests), mapping and generated-asset suites (2 files, 7 tests), full web TypeScript, and the repository pre-push oxlint, residual lint, fast typecheck, and knip gates. Repeated generation produced identical hashes. Pixel auditing confirmed 100 96px assets, at least 2px canvas clearance, and visual-mass center offsets no greater than 4.1px (about 1px at rendered sm size); all-100 square and circular contact-sheet inspections found no clipping, bleed, centering defects, or inappropriate scale outliers. Browser proof is not attached because the proof workflow exceeded its shared five-minute deadline.

@roomote-community

roomote-community Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

No code issues found. See task

  • apps/web/src/app/(sandbox)/task/[taskId]/messages/acp/AcpToolMessage.tsx:133 Task activity in the standalone task workspace falls back to a different robot assignment than the session-aware header.
  • apps/web/src/components/tasks/TaskRobotIcon.tsx:60 The fixed sm avatar removes the intended dimensions for task cards and ACP tool rows. — dismissed: Bruno explicitly requested the shared Avatar at sm in every placement, and the resulting card/header/tool layouts were visually verified.

Reviewed 2ea8349

Comment thread apps/web/src/app/(sandbox)/task/[taskId]/messages/acp/AcpToolMessage.tsx Outdated
@roomote-roomote

roomote-roomote Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Fixed the standalone task workspace context mismatch in commit 77918ab: live and historical transcripts now consume the same Session-seeded robot assignment as the task header. Focused tests and the repository pre-push checks pass.

@roomote-roomote
roomote-roomote Bot marked this pull request as ready for review September 4, 2026 17:42
@roomote-roomote

roomote-roomote Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Implemented Bruno's Avatar and centering feedback in commit c0b3cfa. Every placement now uses the shared Avatar at sm; all 100 assets were regenerated with drawing-level centering and pass pixel, deterministic-generation, focused UI, lint, typecheck, and pre-push validation. The formal browser-proof handoff timed out, so no screenshots are attached to the PR.

return (
<Avatar
imageUrl={getTaskRobotIconPath(iconId)}
size="sm"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

TaskRobotIcon now hard-codes the 24px sm avatar, so it cannot retain the sizing required by its different hosts. In particular, task launch cards were designed with size-11 and ACP tool rows with size-4; both call sites lost those sizes in this commit, leaving an undersized card avatar and a 24px tool-row icon that increases the row height. Keep a className or size override on this wrapper and pass the appropriate dimensions at each call site.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not changing this sizing: Bruno explicitly requested that every task robot placement render through the shared Avatar with size="sm", replacing the prior per-host dimensions. The updated task card, nested header, standalone header, and tool row were visually verified at that shared size, including centered regenerated artwork.

@mrubens

mrubens commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

@roomote-roomote can you resolve conflicts, address feedback, and take a screenshot of what this looks like?

@roomote-roomote

roomote-roomote Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

@roomote-roomote can you resolve conflicts, address feedback, and take a screenshot of what this looks like?

I’ll resolve the PR conflicts against the current base, verify the remaining feedback is addressed without undoing the requested sm avatar sizing, and add fresh UI screenshots to the PR.

I’m resolving the conflicts, addressing the current feedback while retaining Avatar size="sm", and adding fresh screenshots to PR #2219.

Working on a live preview, reply with @-mention or use the web app.

@roomote-roomote

roomote-roomote Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Resolved the current develop conflict in merge commit 2ea8349 by retaining upstream's extracted Session panel controller and the PR's task-robot context. Current feedback was rechecked: Bruno's explicit shared Avatar size="sm" requirement remains intact, and the contradictory sizing suggestion has a factual thread reply. Relevant tests, full web typecheck, and pre-push gates pass. The formal browser-proof handoff timed out, so screenshots are not attached.

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.

2 participants