Skip to content

fix(workspace): include caller_role in workspace response and migrate to Svelte 5 runes#83

Merged
victorsoriadrp merged 1 commit into
mainfrom
fix/normalize-relationship-element-refs
May 15, 2026
Merged

fix(workspace): include caller_role in workspace response and migrate to Svelte 5 runes#83
victorsoriadrp merged 1 commit into
mainfrom
fix/normalize-relationship-element-refs

Conversation

@victorsoriadrp

Copy link
Copy Markdown
Contributor

Summary

  • Backend: GET /workspaces/{id} now includes caller_role in the response. The frontend can use this to determine permissions immediately after loading the workspace, without depending on the members endpoint.
  • Frontend: WorkspaceSettings.svelte migrated from legacy Svelte 4 syntax to Svelte 5 runes ($state, $derived, $props, event handler attributes). canManage and isOwner now derive from ws.caller_role instead of the members list.

Root cause

canManage was computed from members.find(m => m.user_id === currentUserId)?.role. On first visit to a freshly MCP-created workspace, the members endpoint could return empty before the membership was fully propagated, leaving canManage = false and the danger zone hidden. A second visit would work because the timing was no longer an issue.

Test plan

  • Open workspace settings on a newly MCP-created workspace — danger zone visible on first visit
  • Org admin (no explicit membership) can still manage workspaces
  • Non-owner members do not see the danger zone
  • Role selector and remove member still work
  • Delete workspace flow completes successfully

…te WorkspaceSettings to Svelte 5 runes

canManage was derived from the members endpoint, causing the danger zone to
be hidden on first visit when the members call returned empty. The backend
now returns caller_role directly in the workspace response so the frontend
can determine permissions without depending on a separate request.

Also migrates WorkspaceSettings.svelte from legacy Svelte 4 syntax to Svelte 5
runes ($state, $derived, $props, event handler attributes).
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying archipulse with  Cloudflare Pages  Cloudflare Pages

Latest commit: 145c707
Status: ✅  Deploy successful!
Preview URL: https://951ca958.archipulse.pages.dev
Branch Preview URL: https://fix-normalize-relationship-e.archipulse.pages.dev

View logs

@victorsoriadrp victorsoriadrp merged commit 384cffa into main May 15, 2026
2 checks passed
@victorsoriadrp victorsoriadrp deleted the fix/normalize-relationship-element-refs branch May 15, 2026 04:28
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.

1 participant