Skip to content

feat(profiles): show agent metadata and copyable nip05 - #253

Merged
kalvinnchau merged 6 commits into
mainfrom
cid/profile-agent-metadata
Sep 25, 2026
Merged

kalvinnchau merged 6 commits into
mainfrom
cid/profile-agent-metadata

Conversation

@kalvinnchau

Copy link
Copy Markdown
Contributor

Summary

  • Show public agent type and capabilities using verified session metadata and managed-owner precedence.
  • Add copyable NIP-05, agent type and capabilities rows with shared toast feedback, preserving the unverified identifier label and existing public-key copy behavior.
  • Keep metadata withheld until ownership settles and recover through the existing profile retry control.

Verification

  • Node integration: 133 passed; Vitest: 3,729 passed; Rust: 25 passed.
  • TypeScript, formatting, design checks and pre-push hooks passed.
  • Profile navigation, recovery, appearance and clipboard-boundary journeys passed in Chromium and WebKit.
  • Full browser comparison: candidate 664/668 passed; clean main 666/668 passed. Kalvin authorized ready-for-review delivery with the aggregate results disclosed in the originating review thread.
  • Extended the existing browser profile journey for keyboard copy affordances and host-toast wiring; metadata matrices remain in colocated tests.

@kalvinnchau
kalvinnchau requested review from a team, comp615 and wesbillman as code owners September 25, 2026 05:14

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Changes requested: one accessibility regression in the copy-row presentation (inline). Resolve it with coverage of the announced values and NIP-05 qualifier. The reviewed metadata provenance, owner precedence, recovery and shared transport paths need no redesign.

Existing CI run 36097758499 tested this head merged into df7b7e7f45739f3e06e12d81623385701acdc51d: JavaScript failed only at the unrelated AgentModelPicker cancel-lookup case (3728/3729); hosted browser passed 658 functional cases plus 7 measurements. That required CI gate remains separate from this finding. No rerun requested.

Source-only review on isolated Blox; no PR code executed. Ownership-transition coverage is jsdom-level; browser coverage exercises copy/host-toast wiring, not live ownership transitions. No real clipboard, assistive-technology session, live-relay or native acceptance was performed; compatibility with the external base-Buzz serializer was not independently established.

tabIndex={0}
type="button"
className={styles.copyField}
aria-label={`Copy ${label}`}

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

[P2] Preserve the values and unverified qualifier in the copy rows’ accessible text.

The explicit aria-label ("Copy" plus the field label) overrides the button’s descendant text when computing its accessible name. A user focusing these controls hears only “Copy NIP-05”, “Copy Agent type” or “Copy Capabilities”, without the identifier/type/capabilities value. For NIP-05 this also loses the “unverified” qualifier previously exposed as ordinary paragraph text; its presence inside the button is not enough to include it in the announced name.

Include the displayed value and, for NIP-05, the unverified qualifier in the accessible name or description (or retain them as separate accessible text). Add assertions for those accessible names/descriptions across all three rows; the current text-content assertions do not cover this regression. No metadata/lifecycle redesign is needed.

@wesbillman wesbillman left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Carl, an automated reviewer, commenting via Wes’s GitHub account.

Clear on focused re-review; no remaining code blockers found. The prior P2 is resolved: each copy control’s accessible name now includes its displayed value, and NIP-05 retains “unverified”. Three exact computed-name assertions cover the regression. Raw clipboard values, keyboard activation, host toasts and existing lifecycle behavior are preserved; metadata provenance/ownership needs no redesign.

Existing CI run 36122245907, attempt 1, passed for this head merged into df7b7e7f45739f3e06e12d81623385701acdc51d: Vitest 3729/3729, hosted Chromium/WebKit journeys 658/658, measurements 7/7, and CI required green. The unrelated AgentModelPicker failure from the previous run passed this time; this PR does not fix that test.

Source-only review on isolated Blox; no PR code executed by reviewers. Exact-name coverage is jsdom-level, not native screen-reader acceptance. Real OS clipboard, live-relay ownership transitions, native/package acceptance and external base-Buzz serializer parity remain unverified. This is a COMMENTED review, not approval or dismissal of the previous review.

cid and others added 5 commits September 25, 2026 08:51
Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
Signed-off-by: cid <d9f92a72922bf45c17379a47d64dae84b6020397c2d5a52b5317d512068cd9d3@buzz.block.builderlab.xyz>
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau force-pushed the cid/profile-agent-metadata branch from 01069e1 to b113fad Compare September 25, 2026 16:18
Co-authored-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: Kalvin Chau <kalvin@block.xyz>

Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
@kalvinnchau
kalvinnchau merged commit 1769806 into main Sep 25, 2026
12 checks passed
@kalvinnchau
kalvinnchau deleted the cid/profile-agent-metadata branch September 25, 2026 16:48
zrmarley added a commit that referenced this pull request Sep 25, 2026
…-image

* origin/main: (23 commits)
  fix(agents): recover status polling and scope failure diagnostics (#283)
  Share avatar editing across community profiles and managed agents (#271)
  feat(profiles): archive, unarchive and delete agents from the profile pane (#256)
  ci: run browser journeys on three shards per engine (#280)
  ci: publish scheduled macOS test prereleases (#262)
  feat: add private text feedback plugin (#242)
  🤖 docs: add pre-PR checklist and review guidance to AGENTS.md (#268)
  perf(sidebar): stop rerendering every row's menu on channel switch (#265)
  Explain missing Pi provider models (#263)
  Browse Goose models and enter provider API keys (#230)
  test(agents): check model lookup Cancel by visible text (#259)
  Ask before mentioning people outside the channel (#257)
  Refine direct message opening (#107)
  feat(messages): report messages to community moderators (#255)
  perf(channels): stop rerendering message rows after each channel switch (#269)
  feat(profiles): open targeted agent editor from owner profile (#254)
  Let plugins declare local commands and HTTPS origins (#169)
  feat(profiles): show agent metadata and copyable nip05 (#253)
  Organize app and community settings (#173)
  Add status badge cutouts to avatars (#211)
  ...
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