Repository navigation
cmux NEXT: Invite People copies the invite link; Invite and Remove run in turn - #34656
Conversation
The arch ratchet row app_lines is red on feat-cmux-next: CmuxNextApp Swift lines +231 over the last green arch tip 3232840. The cause is 26fd471 (#33967), which added the Invite People sheet views to CmuxNextApp (+361 lines). Later commits removed 130 App lines. This change moves the sheet views to CmuxNextNotifications, a ui-layer target that already declares CmuxNextDaemonService (the sheet model) and CmuxNextDesign (the design kit), and that CmuxNextAppTests declares: - AgentShareInviteCard (Share/AgentShareInviteCard.swift) - AgentShareInviteRowView (Share/AgentShareInviteRowView.swift) Only the presenter stays in CmuxNextApp, in the old file Share/AgentShareInviteSheet.swift (AgentShareInviteSheetPresenter: the overlay host, AppServices, the first load). CmuxNextNotifications does not declare CmuxNextIcons, so the presenter gives the card its close icon (the same NSImage.icon(.actionClose, size: 12) as before). The card is package access: its init, onClose, focusField, and the members that the compiler requires (the overrides, the required init and the text field delegate methods). The row view stays internal. No Package.swift change, no new target and no new dependency edge. The behavior does not change. AgentShareTests imports CmuxNextNotifications and gives the card an empty close image. Takes back #33967: its Invite People views are in CmuxNextApp, which made the app_lines arch ratchet red at the feat-cmux-next tip. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… share changes, runs steps in order Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b443a4be4f9b3a1f457e
…hanges, runs Invite and Remove in order Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b443a4be4f9b3a1f457e
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); NEW: Shipped in:
|
|
Found 6 test failures on Blacksmith runners: Failures
|
…event PR Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b443a4be4f9b3a1f457e
…hare-invite-link-sheet # Conflicts: # Packages/macOS/CmuxNext/Sources/CmuxNextNotifications/Share/AgentShareInviteCard.swift
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b443a4be4f9b3a1f457e
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b443a4be4f9b3a1f457e
|
Review (subagent claude-opus-5-5 medium): SHIP at 664a8aa I read the full diff and the card at the head.
Follow-ups (filed on #33746):
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-b443a4be4f9b3a1f457e
|
Review (subagent claude-opus-5-5 medium): SHIP at 75ca4d9 This head adds one commit on top of the SHIP at 664a8aa: the Copied reset uses the one-shot Follow-ups: none |
|
Review (codex gpt-6.1-sol xhigh, router-review): SHIP at 75ca4d9
Follow-ups:
router-review: follow-up: F1: Connect the invite-link field to the daemon response and verify that path. F1 is already done: #34634 (merged, squash 3ec06b9) makes |
|
Swift logic follow-up (tip watcher swift-logic row, STATUS 13027 "SWIFT LOGIC CULPRITS"; lead order). This PR raised
plans/cmux-next/layer-ownership.md says Rust owns every state, list and rule and Swift is the platform shell. Please move the new logic of this PR in a follow-up: to Rust (the crate that owns the area; the owner lists in STATUS 12147-12165 name the target per area), or at least out of the app into its package. If a declaration above is platform code (AppKit, Core Animation, OS calls, strings, tokens, DEBUG tooling), reply here and the table gets a PLATFORM row with your reason instead. The swift-logic row is a report, not a gate: nothing blocks on this comment. |
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Finishes the owner side of chat-share account invites in the Invite People sheet (design
chat-multiplayer.md2, leo-workspacedesign/chat-multiplayer.md). It uses the daemon's invite link from #34634 and closes two #33746 follow-ups.What changes
<room>/i/<share_id>, read from the daemon'sinvite_urlon the chat's invite share) and a quiet Copy Invite Link button. A press puts the link on the pasteboard, and the button reads Copied for 1.5 s in place, with no toast. The button is sized to its longer title, so the confirmation moves nothing. The row is always laid out and is clear and off until someone is invited, so the card keeps its size.share list --jsonkeeps the invite link.AgentSessionSharedecodesinvite_url, and theagent.share.listresult carries it (the router-review follow-up on cmux daemon: chat-share invites answer their invite link #34634).The link comes from the daemon's
invite_url(#34634). Against a daemon without it, the row stays clear and off. The live refresh while the sheet is open (#33746) needs a new declared protocol event (spec, SDK schema and generated bindings), so it gets its own PR; see the follow-up on #33746.Localization audit
Two new strings in
AgentShare.xcstrings:agentShare.sheet.copyLink("Copy Invite Link") andagentShare.sheet.copied("Copied"). Both are translated for every app locale: en, de, fr, ar, es, zh-Hant, zh-Hans, ko, ja.scripts/lint-xcstrings.pypasses. No other user-facing text changed.Tests (red first: the first commit adds the model tests)
theSheetCopiesTheInviteLinkAndSaysCopiedInPlace: link after the read, copy, Copied, then back. A chat with only a guest link has no invite link.anInviteAndARemoveOfOneAccountRunInTheOrderPressed: the Remove waits for the Invite.theListShowsInvitees: the list result carriesinvite_url(red-test commit, then the fix).theCardsCopyInviteLinkConfirmsInPlace(AppKit card): off before a link exists, then copies and retitles to Copied.Risk: contained to the Invite People sheet and its model. Screenshots are a follow-up; Leo tries the DEV build.
Agent session: agent session
🤖 Generated with Claude Code