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

safe-global / safe-client-gateway / 40706568716
91%

Build:
DEFAULT BRANCH: main
Ran 28 Oct 2026 02:31PM UTC
Jobs 4
Files 1087
Run time 1min
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

28 Oct 2026 02:30PM UTC coverage: 90.865% (+0.4%) from 90.495%
40706568716

push

github

web-flow
feat(spaces): add workspace address book tags (#3619)

* feat(spaces): add workspace address book tags

Any active member can keep up to 8 colour-coded, KMS-encrypted tags per
Workspace and put up to 3 on each contact. Tag writes are serialised per
Workspace with FOR NO KEY UPDATE on the spaces row; a batch is atomic.

New member routes (step-up gated): PUT /v1/spaces/:spaceId/address-book/tags,
PATCH and DELETE /v1/spaces/:spaceId/address-book/tags/:tagId. GET/PUT
/v1/spaces/:spaceId/address-book gain `tags` and per-item `tagIds`.

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

* refactor(spaces): use the .entity.ts suffix for the tag row schemas

Rename address-book-tag.db.entity.ts to address-book-tag-db.entity.ts:
the naming table lists `.entity.ts` for domain files, and `.db.entity.ts`
only existed on the address-book item precedent. No behaviour change.

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

* test(spaces): add row builders for the two tag tables

The 4-representations checklist needs a test builder for every persisted
shape, junction tables included. Add addressBookTagDbBuilder() and
addressBookItemTagDbBuilder(), and use them in a findBySpaceId test that
seeds rows directly, so the read path is tested apart from the write path.

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

* fix(spaces): cap tag batches by the configured address book limit

PUT /address-book/tags capped a batch at a hard-coded 500 while the
address book limit is the env-overridable `spaces.addressBooks.maxItems`
(default 500). Every entry must be a distinct contact of the book, so the
service now rejects a batch larger than that limit with 400, and the cap
follows the setting. This also puts the service's previously unused
`maxItems` field to use, dropping its TODO and lint suppression.

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

* docs(spaces): explain the two contact-sa... (continued)

5069 of 5828 branches covered (86.98%)

Branch coverage included in aggregate %.

281 of 287 new or added lines in 14 files covered. (97.91%)

12737 of 13768 relevant lines covered (92.51%)

358.63 hits per line

Uncovered Changes

Lines Coverage ∆ File
3
0.0
src/modules/spaces/domain/address-books/entities/address-book-tag.db.entity.ts
2
97.69
src/modules/spaces/domain/address-books/address-book-tags.repository.ts
1
95.12
1.31% src/modules/spaces/domain/address-books/address-book-items.repository.ts
Jobs
ID Job ID Ran Files Coverage
1 run-integration-tests-2 - 40706568716.1 28 Oct 2026 02:32PM UTC 1087
43.84
GitHub Action Run
2 run-unit-tests - 40706568716.2 28 Oct 2026 02:31PM UTC 1087
68.48
GitHub Action Run
3 run-integration-tests-1 - 40706568716.3 28 Oct 2026 02:31PM UTC 1087
38.57
GitHub Action Run
4 run-integration-tests-3 - 40706568716.4 28 Oct 2026 02:32PM UTC 1087
45.06
GitHub Action Run
Source Files on build 40706568716
  • Tree
  • List 1087
  • Changed 61
  • Source Changed 10
  • Coverage Changed 60
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #40706568716
  • 8c82b427 on github
  • Prev Build on main (#40659605718)
  • Next Build on main (#40904680595)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc