@mohasinac/appkit 4.74.0 → 4.75.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.
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "stampVersion": 1,
3
- "version": "4.74.0",
4
- "head": "69eb1a743d0233ce42a9b2836042d71958494e63",
3
+ "version": "4.75.0",
4
+ "head": "c5426d7535f8b4331464486d52298a6f668168ee",
5
5
  "branch": "main",
6
6
  "dirty": true,
7
- "builtAt": "2026-11-09T01:51:49.655Z"
7
+ "builtAt": "2026-11-09T07:08:58.762Z"
8
8
  }
@@ -64,6 +64,29 @@ export const PORTAL_DEFINITIONS = [
64
64
  * this module exists to end.
65
65
  */
66
66
  { label: "auth", section: "/auth", roles: [], home: "/auth/login" },
67
+ /*
68
+ * ── help: a PORTAL, not a deployment (owner, 2026-11-09) ──────────────
69
+ *
70
+ * The plan had `help.<domain>` down as its own app alongside blogs and
71
+ * events. The owner's answer was "do like dashboards" — i.e. a host rewrite
72
+ * onto the main app, the same treatment `admin.`/`seller.`/`user.` get, and
73
+ * NOT a deployment.
74
+ *
75
+ * It is the right call for this surface: `/help` is six content pages with
76
+ * ZERO API routes (measured 2026-11-09). Everything the subdomain split buys
77
+ * — an independently deployable owner of its own data, exposing CRUD over
78
+ * HTTP — is worth nothing when there is no data and no CRUD. It would be a
79
+ * whole deployment, Vercel project, env set and CORS gate to serve six static
80
+ * pages the shop already renders.
81
+ *
82
+ * Consequently `help` is REMOVED from DEPLOYMENT_LABELS below. A label must
83
+ * be in exactly one of the two lists: in both, the deployment check wins and
84
+ * the rewrite silently never fires.
85
+ *
86
+ * `roles: []` like `auth` — the help centre is public, and a visitor with no
87
+ * account is precisely who needs it.
88
+ */
89
+ { label: "help", section: "/help", roles: [] },
67
90
  ];
68
91
  /**
69
92
  * Hosts that are their OWN DEPLOYMENT, not a portal of this app.
@@ -93,8 +116,20 @@ export const DEPLOYMENT_LABELS = [
93
116
  "blogs",
94
117
  "live",
95
118
  "media",
96
- "help",
97
- "chat",
119
+ /*
120
+ * 🛑 `help` WAS HERE and has moved to PORTAL_DEFINITIONS above — the
121
+ * owner chose a host rewrite over a deployment for it (2026-11-09). A label
122
+ * in BOTH lists is the bug this note exists to prevent: `isDeploymentHost`
123
+ * is consulted first, so the portal rewrite would silently never fire and
124
+ * `help.<domain>` would fall through to the homepage — exactly the duplicate
125
+ * content CLAUDE.md records for `audit.` and `tools.`.
126
+ *
127
+ * ⚠ `chat` IS ALSO ABSENT, and for a different reason: there is nothing to
128
+ * serve. `/chat` has ZERO pages in the shop (measured 2026-11-09), so making
129
+ * it a portal would rewrite `chat.<domain>` onto a 404, and making it a
130
+ * deployment would point a hostname at an app that does not exist. It joins
131
+ * one list or the other when it has a surface — not before.
132
+ */
98
133
  ];
99
134
  /** Is this hostname a separate deployment rather than a portal of this app? */
100
135
  export function isDeploymentHost(hostname) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "4.74.0",
3
+ "version": "4.75.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"