fix(web): show creator identity on recent projects - #6857
Conversation
|
🧪 This PR has changes that need a manual QA pass before merge — please hold off self-merging for now; we'll loop QA in once it's merge-ready (and design/product have signed off, where applicable). |
PerishCode
left a comment
There was a problem hiding this comment.
@lefarcen This cleanly carries the signed-in Vela identity through the shared workspace-context contract and uses it for self-owned Recent projects cards while preserving the localized name/initial fallback and broken-image fallback. I reviewed all six changed files, including the daemon projection paths, React memoization dependencies, avatar rendering/CSS, and the focused daemon/web regression coverage. The implementation stays within the existing API boundary and does not introduce a new profile request. Nice focused fix—thank you for covering both sides of the contract and the user-visible fallback behavior.
🔁 Powered by Looper · runner=reviewer · agent=codex · An autonomous AI dev team for your GitHub repos.|
Thanks for the contribution. I completed QA validation for this PR at QA Acceptance Record Scope:
Verified:
Conclusion:
|





































































Why
While reviewing a team-shared project in Recent projects, the signed-in creator was rendered as the generic localized label “Me”. That label also generated a misleading “M” avatar instead of showing the account identity already stored by the local Vela session.
This fixes the user-facing attribution without adding a user-profile request: the daemon reuses the locally persisted Vela login name and avatar URL and includes them in the existing workspace-context projection.
What users will see
Self-owned projects in Recent projects show the signed-in account name and profile image. If either value is unavailable, the existing localized “Me” label and initial fallback remain in place. The avatar image uses normal browser HTTP caching and a failed image load falls back to the initial.
Surface area
apps/weborapps/desktop(including Electron menu bar)odsubcommand or flag, newtools-dev/tools-packflag, or newOD_*env var/api/*endpoint, new SSE event, or changed shape inpackages/contractsskills/,design-systems/,design-templates/, orcraft/, or change to the skills protocolTRANSLATIONS.mdfor the locale workflow)package.json(dependenciesordevDependencies); workspace-packagepackage.jsonfiles are out of scope. Include a paragraph on what we get vs. what bytes we ship (seeCONTRIBUTING.md→ Code style)Screenshots
The reported entry point is the creator byline directly below each Recent projects card. No new UI is introduced; this PR replaces the generic “Me”/“M” values there with the existing account identity.
Bug fix verification
apps/web/tests/components/RecentProjectsStrip.test.tsxandapps/daemon/tests/vela-workspace-context.test.tsCreated by Me) and passes with this branch (Created by Elian Zhangplus the profile image).Validation
pnpm install --frozen-lockfile(including workspace postinstall builds)pnpm guardpnpm --filter @open-design/web typecheckpnpm --filter @open-design/daemon typecheckpnpm exec vitest run -c vitest.config.ts tests/components/RecentProjectsStrip.test.tsx --maxWorkers=2(33 passed)pnpm exec vitest run -c vitest.config.ts tests/vela-workspace-context.test.ts(40 passed)Note: an accidental full-web invocation surfaced one unrelated existing
FileViewertest failure before it was interrupted; the correctly filtered RecentProjectsStrip suite is green.