@fusebase/fusebase-gate-sdk 2.6.4-sdk.0 → 2.7.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
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Release Notes 2.6.4
|
|
2
|
+
|
|
3
|
+
- Current ref: `HEAD`
|
|
4
|
+
- Previous tag: `v2.6.1`
|
|
5
|
+
- Generated at: 2026-08-14T09:49:04.731Z
|
|
6
|
+
|
|
7
|
+
## Included Drafts
|
|
8
|
+
|
|
9
|
+
- `docs/release-notes/2026-08-11-portal-service-id-format.md` - Portal homepage and duplicated items are addressable again (NIM-43233)
|
|
10
|
+
- `docs/release-notes/2026-08-12-mcp-nullable-fields.md` - Summary
|
|
11
|
+
- `docs/release-notes/2026-08-12-portal-page-initial-content.md` - Summary
|
|
12
|
+
- `docs/release-notes/2026-08-14-mcp-json-schema-2020-12.md` - Summary
|
|
13
|
+
|
|
14
|
+
## Summary
|
|
15
|
+
|
|
16
|
+
### Portal homepage and duplicated items are addressable again (NIM-43233)
|
|
17
|
+
|
|
18
|
+
Blocks could not be added to a portal's homepage: `listPortalContent` returned a `pageId` for the `home` item that every block operation answered `404` for, and there was no other id that worked. The gate was minting portal-service ids with `crypto.randomUUID()` (36 characters), but every portal-service `globalId` column is `VARCHAR(25)`. MySQL truncated the value on write without an error, so the row was stored under the first 25 characters while the id the gate returned — and, for the homepage, the one the home menu item's JSON attributes kept — stayed the full UUID.
|
|
19
|
+
|
|
20
|
+
The gate now mints these ids in portal-service's own format: base36 of a v4 UUID, at most 25 characters, exactly what its `@lib/uuid` produces. It also truncates any over-long `pageId` it reads back out of a menu item, which repairs the portals already created with a broken one.
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
## API / SDK Changes
|
|
24
|
+
|
|
25
|
+
### Portal homepage and duplicated items are addressable again (NIM-43233)
|
|
26
|
+
|
|
27
|
+
No contract change. Three ids change shape in responses, from a 36-character UUID to a 25-character lowercase alphanumeric string:
|
|
28
|
+
|
|
29
|
+
- `createPortal` — the homepage `pageId` (visible via `listPortalContent`).
|
|
30
|
+
- `duplicatePortalItem` — the returned `itemId`.
|
|
31
|
+
- `addPortalNoteBlock` — the returned `blockId`.
|
|
32
|
+
|
|
33
|
+
This is the same shape every other portal id already has; no schema declared these as UUIDs.
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## Consumer Impact
|
|
37
|
+
|
|
38
|
+
### Portal homepage and duplicated items are addressable again (NIM-43233)
|
|
39
|
+
|
|
40
|
+
The homepage is now reachable through the documented route: resolve its `pageId` from `listPortalContent` (menu item `type: "home"`) and call the normal semantic block operations, exactly as for any other page. `duplicatePortalItem` and `addPortalNoteBlock` now return ids that address the row they created.
|
|
41
|
+
|
|
42
|
+
A consumer that pattern-matched the UUID shape of these three ids should stop — portal ids are opaque, and the op schemas already state that portal globalIds are not UUIDs.
|
|
43
|
+
|
|
44
|
+
**Portals created before this fix are repaired too, with no data migration.** Their menu items still store the untruncated id, so the gate now truncates any `pageId` it reads back from portal-service to 25 characters. MySQL's truncation was deterministic, so that is exactly the id the page row was stored under, and the homepage becomes addressable on existing portals as well as new ones. On prod this covers 98 affected menu items across 25 portals.
|
|
45
|
+
|
|
46
|
+
**No portal-service change.**
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
### Portal homepage and duplicated items are addressable again (NIM-43233)
|
|
52
|
+
|
|
53
|
+
- `npm test` — 1300 passed, 125 suites.
|
|
54
|
+
- Reverting the id format reds tests across `tests/unit/portal-service-id.test.ts` and `tests/unit/portals-controller.test.ts`; neutralising the read-side truncation reds `tests/unit/portal-service-client.test.ts`.
|
|
55
|
+
- `npm run build`, `npm run lint`.
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
## Follow-ups
|
|
59
|
+
|
|
60
|
+
### Portal homepage and duplicated items are addressable again (NIM-43233)
|
|
61
|
+
|
|
62
|
+
- portal-service silently truncates any over-long `globalId`; a length guard there would turn a future occurrence of this class of bug into a `400` instead of corrupt data.
|
package/release-notes/latest.md
CHANGED