9 file(s), +18 / -24 lines
| Path | Role | + | - |
|---|---|---|---|
| openapi/permission-map.json | Config | +1 | -3 |
| src/app/[locale]/(workspace)/settings/account/security/actions.test.ts | App route | +1 | -1 |
| src/components/settings/channels/channel-binding-card.stories.tsx | Component | +1 | -1 |
| src/components/settings/channels/channel-binding-card.tsx | Component | +1 | -5 |
| src/components/settings/channels/channels-fixtures.ts | Component | +2 | -2 |
| src/components/settings/channels/disconnect-binding-dialog.stories.tsx | Component | +1 | -1 |
| src/components/settings/channels/disconnect-binding-dialog.tsx | Component | +2 | -2 |
| tests/unit/channels-bindings-route.test.ts | Test | +1 | -1 |
| tests/unit/channels-page.test.tsx | Test | +8 | -8 |
Channel bindings are visible only to their owner and that person’s firm. These screens now show the full colleague-visible number returned by the backend instead of a masked suffix.
| Boundary | Change |
|---|---|
| Backend mirror and generated client |
Synced both vendored OpenAPI files from pramaan-functions, then regenerated
the client. The channel address is exposed as providerSubject.
|
| Personal Channels page | The binding card, connected toast, disconnect dialog, and disconnected toast show the full number. |
| Firm channel register | Each colleague-visible binding row shows the full number. |
| Fixtures and stories | Fictional full numbers replace masked examples so isolated states document shipped behavior. |
pnpm lint, pnpm test, pnpm build, and codegen freshness cover the final branch.
Story-2877 and Story-2881 shipped the masked binding display, and their
walkthroughs say so. Those are dated delivery records — they describe what was true when
they shipped, and this Story does not edit them. The founder ruling (EPIC-3034 D2,
2026-07-28) changed the rule afterwards; it did not make the earlier record false. If you
are reading story-2877 and wondering why it describes •••1234, this Story is
the answer.