• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

safe-global / safe-client-gateway / 27542166327
90%

Build:
DEFAULT BRANCH: main
Ran 15 Jun 2026 11:13AM UTC
Jobs 2
Files 1228
Run time 4min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

15 Jun 2026 11:09AM UTC coverage: 90.255% (+2.2%) from 88.03%
27542166327

push

github

web-flow
fix(spaces): require ACTIVE membership to access space contents (#3156)

* fix(spaces): deny space data to pending invitees

A pending (INVITED) member is not a member. Previously they could read a
space's address book (shared and private), safes, counterfactual safes,
address-book requests, the member roster and safe count before accepting
the invite. Per product decision, a pending user may only see the
invitation itself: the space name, who invited them, and accept/decline.

- assertMember and getSpaceAs now require ACTIVE membership.
- findSpaces (GET /spaces) returns only the caller's own invitation row
  and safeCount 0 for spaces they are merely invited to.
- GET /spaces/:id/members returns only the caller's own membership row
  for pending callers (the wallet derives its invite banner from this
  endpoint), and the full roster for active members.
- updateAlias now requires ACTIVE membership (was unchecked).
- GET /spaces/:id/membership intentionally stays available to pending
  callers: it returns only their own invitation.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* test(spaces): address review feedback on member test naming

- rename invite*Member helpers to createPendingMember/createActiveMember
- use ACTIVE members in member-role authorization tests
- use 'pending member' wording consistently in test names
- clarify pending-member behavior in GET /members API description

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(spaces): return 403 when a pending member updates their alias

A membership that exists but is not ACTIVE is now rejected with
ForbiddenException, consistent with the other active-only guards.
A missing membership still returns 404.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(spaces): apply assertMember collapse missed in merge commit

The merge commit staged the auto-merged space-assert.utils.ts (which
still had assertActiveMember and a missing Member import); th... (continued)

4599 of 5471 branches covered (84.06%)

Branch coverage included in aggregate %.

15 of 16 new or added lines in 5 files covered. (93.75%)

3 existing lines in 3 files now uncovered.

17009 of 18470 relevant lines covered (92.09%)

603.75 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
25.71
0.0% src/modules/spaces/routes/address-book-requests.service.ts

Coverage Regressions

Lines Coverage ∆ File
1
83.33
-16.67% src/modules/backbone/domain/entities/__tests__/backbone.builder.ts
1
93.75
-3.13% src/modules/notifications/routes/v1/entities/__tests__/create-registration-v2.dto.builder.ts
1
89.87
-3.8% src/modules/notifications/routes/v1/notifications.controller.ts
Jobs
ID Job ID Ran Files Coverage
1 run-integration-tests - 27542166327.1 15 Jun 2026 11:15AM UTC 2359
77.79
GitHub Action Run
2 run-unit-tests - 27542166327.2 15 Jun 2026 11:13AM UTC 2142
58.68
GitHub Action Run
Source Files on build 27542166327
  • Tree
  • List 1228
  • Changed 346
  • Source Changed 7
  • Coverage Changed 346
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #27542166327
  • 1c9323a6 on github
  • Prev Build on main (#27427697667)
  • Next Build on main (#27544921659)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc