@i4e/invest4edu-access-core 0.34.0 → 0.35.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@i4e/invest4edu-access-core",
3
- "version": "0.34.0",
3
+ "version": "0.35.0",
4
4
  "description": "Shared access-control primitives for NeoFindesk: tenant keystone, role capabilities, reportee tree, entity/role vocabulary, feature flags, and the unified access engine (registry schema, snapshot resolver, visibleWhen).",
5
5
  "type": "module",
6
6
  "exports": {
@@ -103,17 +103,32 @@ const REDUCED = Object.freeze({
103
103
  export const AUDIENCE_DEFAULTS = Object.freeze({
104
104
  [AUDIENCE.FULL]: ALL_VISIBLE,
105
105
 
106
- // "Don't show for Partner clients & RM clients where RM is E1. Actions will not come.
107
- // Portfolio Health Score component — don't show; only show Health Score, no recommendations.
108
- // Hide the AI chatbot. Remove Key / Fund Analysis. Hide Performance. Less fund details.
109
- // Score breakdown — remove underlying fund. Language B2C / neutral."
110
- [AUDIENCE.PARTNER]: REDUCED,
111
-
112
- // Same treatment as a partner client — the review grouped them in one line.
113
- [AUDIENCE.RM_E1]: REDUCED,
114
-
115
- // "Direct Clients — call advisor to get details to know the plan. Same storytelling."
116
- [AUDIENCE.DIRECT]: Object.freeze({ ...REDUCED, advisorCta: true }),
106
+ /*
107
+ * REVISED 12 Sep 2026 (Peeyush). The first cut reduced all three audiences and differed only by
108
+ * a CTA. It now reduces ONE.
109
+ *
110
+ * partner full — unlocking a partner's client is out of scope, so gating them would leave a
111
+ * reduced report with no way to ever open it.
112
+ * direct full — a direct client has no partner and no servicing RM, so there is nobody for
113
+ * "ask your advisor" to point at.
114
+ * rm_e1 reduced — an employee services this client, so the withheld sections have an owner
115
+ * who can walk the client through them.
116
+ *
117
+ * Measured on prod the day this changed: 13,327 partner, 2,121 e1, 232 direct of 15,680. So the
118
+ * feature applies to ~13.5% of the book and 86.5% is untouched.
119
+ */
120
+ [AUDIENCE.PARTNER]: ALL_VISIBLE,
121
+
122
+ // "Don't show for RM clients where RM is E1. Actions will not come. Portfolio Health Score
123
+ // component — don't show; only show Health Score, no recommendations. Hide the AI chatbot.
124
+ // Remove Key / Fund Analysis. Hide Performance. Less fund details. Score breakdown — remove
125
+ // underlying fund. Language B2C / neutral."
126
+ //
127
+ // The CTA rides HERE rather than on `direct`, inverting the first cut: this is the audience
128
+ // with an adviser to talk to, and the one whose sections are withheld.
129
+ [AUDIENCE.RM_E1]: Object.freeze({ ...REDUCED, advisorCta: true }),
130
+
131
+ [AUDIENCE.DIRECT]: ALL_VISIBLE,
117
132
  });
118
133
 
119
134
  const E1_TYPE_DISTRIBUTOR = "distributor";