Skip to content

feat(profiles): open targeted agent editor from owner profile - #254

Merged
kalvinnchau merged 5 commits into
mainfrom
am/profile-edit-agent-ingress
Sep 25, 2026
Merged

kalvinnchau merged 5 commits into
mainfrom
am/profile-edit-agent-ingress

Conversation

@kalvinnchau

@kalvinnchau kalvinnchau commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Summary

  • Replace the profile’s read-only Instructions disclosure and duplicate lower action with one owner-only Agent instructions button near the former disclosure.
  • Open the existing native editor as a dialog over the profile. Save and Close keep the current profile visible; ambiguous native identities remain non-editable.
  • Preserve the direct Agents-page edit route and its retry/close behavior for other entry points.

Verification

  • Rebasing the PR on current main and pushing ran the pre-push TypeScript check, 165 related Vitest tests across 18 files, and design-system guards.
  • Earlier rendered Chromium/WebKit fixture validation covered the original profile entry and targeted routing; the in-place editor and button styling were checked with profile tests, not a native persistence/restart workflow.
  • Native persistence/restart and rendered layout of the latest changes remain to be checked in desktop. CI at the new head is pending.

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

@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 P2 recovery defect, detailed inline. Merge criteria: make the routed Agents destination reconnect its failed relay on Retry, and cover outage → retry → exact editor opening through the real App/navigation contract. No new recovery framework is needed.

Reviewed the whole feature at 2dc6c288f5dd257272dddf0954b9f3e375d48c0e against df7b7e7f45739f3e06e12d81623385701acdc51d: verified-owner profile ingress, exact native/community targeting, route validation, editor/save failure and navigation lifetime. The change is proportionate; missing/ambiguous-target presentation preferences and cosmetic nits are not blockers.

Existing hosted CI passed on the merge of those pins: 3,709 unit tests, 658 browser journeys and 7 measurements. The new journey is jsdom/component-only; its navigation stub cannot expose the shell recovery failure. This was source-only review on isolated Blox, not an executed reproduction. No PR code, local tests or CI reruns were executed; browser/native/live-relay acceptance of the new path remains unverified.

Comment on lines +53 to +57
else if (
!control ||
(connection.status !== "ready" && connection.status !== "connecting")
)
request.complete({ status: "failed", reason: "unavailable" });

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] Reconnect the relay when retrying the routed Agents destination

Reload a persisted agent-edit route while its community relay is unavailable. Once connection fails, this branch completes failed/unavailable; App.tsx:104–117 replaces the page with its generic failure notice. The offered Retry navigation calls useAppNavigation.retry(), but src/app/navigation.ts:227–241 only calls services.relay.retry() for Channels and Projects, not buzz.agents/agents. The relay service requires an explicit retry after failure, so Retry just remounts this page against the same error and fails again, even after network connectivity returns. The user must leave this destination to recover; this is not a whole-app lockout.

Include the Agents destination in the existing guarded relay-retry handling, or keep a working reconnect control mounted. Add a regression through the real App/navigation service: routed edit + failed relay → Retry reconnects → the exact editor opens. The new routed() test helper stubs complete and cannot observe the real shell unmount/retry behavior.

@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.

Re-review clear at 2a3fa19df8f9de7cbfb304a87073976b9f554203 against base df7b7e7f45739f3e06e12d81623385701acdc51d. The previous P2 is resolved; no new actionable blockers in the two-file repair since 2dc6c288.

  • Agents now uses the existing guarded shell relay retry. Reconnection enters connecting before navigation retries; the remounted page waits for the fresh session and opens only the exact same-community agent.
  • The added regression exercises the real mounted App, navigation and relay owners with mocked HTTP/native boundaries: failed destination → shell Retry → second connection attempt → exact editor and opened acknowledgement. It is integration coverage, not a stubbed completion-helper test.
  • Hosted CI passed on merge 94ec3a5 (this head + pinned base): 3,710 JS tests, 658 browser journeys, 7 measurements; Windows native validation skipped. Source-only review and independent challenge did not execute PR code. Persisted-address reload and live/native retry were not separately exercised.

No remaining code-review fix is requested. This is a COMMENTED review, not approval or dismissal of the earlier changes-requested review.

@kalvinnchau
kalvinnchau force-pushed the am/profile-edit-agent-ingress branch from 2a3fa19 to 319a557 Compare September 25, 2026 16:17
am and others added 5 commits September 25, 2026 09:53
Signed-off-by: am <6e30cd56c30e030cd31bb0939b94a7c257c9a09d5ba2d92cf2735da45629f248@buzz.block.builderlab.xyz>
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>
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>

Co-authored-by: Kalvin Chau <kalvin@block.xyz>

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

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

Signed-off-by: Kalvin Chau <kalvin@block.xyz>
@kalvinnchau
kalvinnchau force-pushed the am/profile-edit-agent-ingress branch from 319a557 to 5b2bfd0 Compare September 25, 2026 16:54
@kalvinnchau
kalvinnchau merged commit 8c1a4ca into main Sep 25, 2026
12 checks passed
@kalvinnchau
kalvinnchau deleted the am/profile-edit-agent-ingress branch September 25, 2026 17:10
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