allternit-ai. Desktop packages that
source; ai.allternit.com and the m.allternit.com PWA build it for the web.
See Artifacts for user instructions and
Artifacts v2 API for server contracts.
Components and data
src/components/artifact-share/SharePill.tsxrenders one accessible button with a small access-avatar stack. Initials and optional owner images come from real records. Missing identities use an explicit Owner/You label.src/components/artifact-share/share.cssowns the shared theme-aware pill, rounded panel, inline role selector, people rows and footer. Narrow screens reduce the avatar stack; coarse pointers retain 44px action targets. The toolbar remains one horizontally scrollable row.src/components/artifacts/ArtifactShareButton.tsxloads saved sharing from/api/v2/artifacts/:id/sharing. It refreshes after the dialog closes, ignores responses for previous artifacts and never substitutes heartbeat presence for access. Local/signed-out artifacts have a disabled trigger.src/components/artifacts/ShareDialog.tsxkeeps owner-only editing, audience restrictions, email validation, role clamping, outside-invite limits and version pinning. Audience/people/role edits stay in a draft until Save. Version pinning retains its separate update. Phones/PWA and non-owners receive the read-only summary and Copy link.src/components/artifact-share/ArtifactShare.tsxstyles the legacy Cowork/api/v1/artifactssharing surface. That API only supports private/org access and view/edit roles. Its choices continue to save immediately; Done closes the panel. Email invitations and public links are not added.
collab/PresenceStack.tsx and is independent of sharing.
The compact access stack must not be presented as an online indicator or
populated with example people when the API is unavailable.
Interaction and accessibility
Radix preserves focus trapping, Escape, outside dismissal and mounted exits. The artifact window passes its trigger ref back to the dialog so closing restores keyboard focus. Native email inputs and selects keep keyboard and screen-reader behavior. Pending saves disable edit controls; loading and copy failures have visible status/error text. Changing the artifact clears previous sharing state while the next request loads. Panel entrance uses a short fade and scale with the existing ease-out token; exit is shorter. Reduced motion switches to an 80ms fade. No extra animation package or effect is required for this control.Verification and shipping
Focused coverage lives inartifacts/__tests__/share-controls.test.tsx, the
existing artifacts-ui.test.tsx and artifact-share/ArtifactShare.test.tsx.
It covers saved access, stale responses, signed-out state, private-to-people
drafts, phone read-only copying and clipboard failure, plus the existing
sharing policy and legacy organization flows.
A merge updates the web source. Desktop needs its next packaged build, and
the PWA needs its separate approved deployment; merging the web repository
does not deploy the PWA.