Changelog
Release notes for every package, generated from Changesets. Versions that only bumped a dependency are left out.
@uidu/client
3.13.1
Patch Changes
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
uidu --helpentity list is derived from the resource registry (and the HR examples now use the realemploymentsnoun instead ofemployment, which failed); theuiduagent skill carries a generated, complete API index and CLI verb matrix. - 0a0a15b:
getPagenow selects__typenameon a field value'slinkedRecord, sofv.linkedRecord?.__typename === 'Form'narrows to the linked form at runtime, not only in the types.
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
3.13.0
Minor Changes
-
0c79f9b: Provision a Site (the new CMS) from the SDK.
@uidu/clientaddscreateSite(first-class,CreateSite.graphql); the CLI gets a write-onlysitesresource (uidu sites create --attributes '{...}') — reads (getSiteByDomain,listSitePages, ...) take a domain/siteId shape the genericlist/getverbs don't fit, so they stay out ofRESOURCES. The demo gets an/admin/sitespage proving the round-trip. -
2ac9392: Add
createTimeClockto@uidu/client(first-class, generated fromCreateTimeClock) and atime-clocksentry (create) to@uidu/cli'sRESOURCES, so recording a punch is driveable from the SDK and the CLI, not only generically viauidu tools call. -
57fad75: Add
updateApplicationandcompleteApplication.createApplicationleaves an application indraft, and a call's board in uidu lists only completed ones, so an application sent from an external site never showed up for whoever reviews it.completeApplication(client, id)fires thecomplete!event — what uidu's own public site does after its last step — which stampscompletedAt, marks the form response completed and notifies the call's members.updateApplicationis the general mutation underneath.The generated types are regenerated from uidu
main: theCustomAppDraft*types go away (renamedBuilderDraftin uidu, unused by the SDK).
-
3.12.0
Minor Changes
- 38800c8: Read the workspace's goals (OKRs).
@uidu/clientaddslistGoals,getGoal,listTimeframesandupdateGoal, plusgoalValue/toGoalRaw/goalProgress/goalTimeElapsed/isGoalBehindfor values uidu stores x100. The CLI getsgoalsandtimeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and theuiduskill gains a "Workspace data" section: read what the workspace already holds, create a Model only for data uidu has no place for, and the valid field kinds forensureModel.
- 38800c8: Read the workspace's goals (OKRs).
3.11.0
Minor Changes
- 7e50660: Read the new CMS (Sites).
getSiteByDomain,getSite,getPageBySlug,listSitePagesandgetSingletonBlockread a Site, its pages (ModelItems of a page-kind Model) and each page's ordered blocks, with field values keyed by shortname. They're public reads, so apublicTokenclient works for all of them. The legacy CMS functions (getPage,listPages,getTemplate) are unchanged.
- 7e50660: Read the new CMS (Sites).
3.10.0
Minor Changes
- 77ea8c5: Custom Space apps, SDK side (protocol v1).
- New
@uidu/app-bridge:connect()does the postMessage handshake with the uidu page framing the app (origin-checked, trustshttps://*.uidu.orgby default plus explicithostOrigins), exposes the typedcontext, andgetToken()caches the short-lived session token and refreshes it through the host, sharing one refresh between concurrent callers. @uidu/client:createClient({ endpoint, getToken })asks for a Bearer token per request;workspaceis optional whenendpointis given;fromBridge(bridge)builds that config. Newmodelsmodule (listModels,getModel,listModelItems,getModelItem, create/update/delete for models, fields, field options, model items and field values,toFieldValuesAttributes,ensureModel) reading throughnode(id:), the only query root a custom app token has.@uidu/react:<UiduAppProvider>/useUiduApp()over the bridge —connecting/ready/error, with a session-backed client and a<UiduProvider>around ready children.
- New
- 77ea8c5: Custom Space apps, SDK side (protocol v1).
3.9.0
Minor Changes
- 454f652: Add
createBenefit— provisions a benefit plan (name,category,currency,activeFrom, plus employer/employee cost and eligibility attributes). First-class operation backed by a newCreateBenefitdocument; requires a Bearer token (apiKey), like the other HR writes.
- 454f652: Add
3.8.0
Minor Changes
-
6d16ea2: Add
createBenefitEnrollment— enrolls an employment in a benefit plan (benefitId,employmentId,enrolledAt, plus optionalcoverageand cost overrides). First-class operation backed by a newCreateBenefitEnrollmentdocument; requires a Bearer token (apiKey), like the other HR writes. -
df6e473: Add
createCcnl, provisioning the first-classCcnlrecord (a national collective labor contract — code, sector, contract levels). This is distinct from theKind-tagged rowslistCcnlsalready returned for populating an employment'sccnlId;Employment.ccnl/ccnlIdin fact point at this first-class type. Requires a Bearer token (apiKey).@uidu/cli: addscreateto the existingccnlsresource, alongside itslist.
-
3.7.1
Patch Changes
- 1149d0b:
codegen.tsbuilds its endpoint fromUIDU_HOST(defaultuidu.org) instead of hardcoding the domain, so a workspace that only exists on staging can be introspected — andUIDU_WORKSPACE=demono longer silently resolves todemo.uidu.org, which 404s.
- 1149d0b:
3.7.0
Minor Changes
- 7756c71: Add
listProjectsandlistChannels, and expose them as theprojectsandchannelCLI resources'listverb. A caller that needs a project id forgetPage, or a help-center channel id, can now find one instead of being told it — the demo used to carry a production workspace's GlobalIDs for both.
- 7756c71: Add
3.6.0
Minor Changes
- 526792f:
Employment.contractTypeis gone from the API — uidu promoted the contract type to a configurableEmploymentKindrecord. The people documents now selectemploymentKind { id name },EmploymentRecordcarries it, andcontractTypestays as its name so existing readers keep working. Writes takeemploymentKindId.
- 526792f:
3.5.0
Minor Changes
-
45e1997: Normalize
fieldValuesAttributes[].contenton every mutation.The API stores each field value as JSON and reads it back as
content['value'], socontentmust always be{ value: … }. A bare scalar wasn't rejected at the mutation boundary — the record saved, the server-side typed columns stayed empty, and later reads of that field errored out. Code-generating agents hit this constantly, sinceFieldValueAttributes.contentis typed as an untypedJSONscalar.UiduClient.mutatenow wraps a barecontentin{ value }before sending, and warns once per mutation outside production so the call site gets fixed. Doing it inmutaterather than per function covers all ~50 authoring mutations and reachesfieldValuesAttributeswherever it nests — undercontactAttributes.contactableAttributes, insidepageBlocksAttributes[], and on the 15 other*Attributestypes that carry it. Already-wrapped payloads,contentpayloads themselves, the caller's object, and every untouched subtree are left alone by reference. Reads (query) are unaffected.The helpers are exported as
normalizeFieldValueContentandnormalizeFieldValuesAttributesfor callers that assemblefieldValuesAttributesoutside the SDK.
-
3.4.1
Patch Changes
- 689299a: Select
publicUrlin theListCallsquery solistCalls— and the derivedlistJobs— exposepublicUrlon every record. Previously it was only selected inGetCall, so list results carriedpublicPathbut not the absolutepublicUrl, despite theCalltype advertising it.
- 689299a: Select
3.4.0
Minor Changes
-
5a31264: Add compensation writes and surface CCNL + pay on employment history.
New
createCompensation,updateCompensationanddeleteCompensationcover an employment's pay items (amount, currency,frequency— hourly/monthly/annual,componentType— base/allowance/recurring_bonus,reason,effectiveFrom).listEmploymentHistorynow also returns each contract'sccnland itscompensations(most-recent effective date first), andEmploymentRecordgainsccnlandcompensations, with a new exportedCompensationRecordtype.Together with the existing
ccnlIdon employment attributes andlistCcnls, this makes CCNL and compensation first-class in the SDK. -
2a53025: Add
jobs(announcements) andapplicationsAPI integrations.jobsis a derived view overcalls:listJobs/getJobreturn calls whosekindisjob, with the exportedJobtype.applicationsis a first-class domain backed by newListApplications/CreateApplicationoperations —listApplications(Bearer, private candidate data),createApplication(the public apply path, links a contact + form response to a job viaapplicableId), plus theApplicationtype andListApplicationsDocument.@uidu/reactgains the pureformatSalaryRange(job)helper. These were added end-to-end (client → CLI → react → demo) as the reference implementation of the newdocs/adding-an-api-integration.mdprocess.
-
3.3.0
Minor Changes
-
ccd1038: Add employment history reads for building contract timelines.
listEmploymentHistoryreturns every employee with their full list of contracts (not just the current one), andcontractEventsflattens that into a dated, most-recent-first list of events: the earliest contract is ahire, later contracts arevariations, and any contract with an end date yields atermination— each tagged with amonthbucket for grouping. Exports theEmploymentRecord,EmployeeContracts,ContractEventandContractEventTypetypes.
-
3.2.0
Minor Changes
-
5d1f0a9: Add the People/HR authoring domain.
@uidu/clientnow exposes employee & employment writes —createEmployee,updateEmployee,createEmployment,updateEmployment,deleteEmploymentand the semantic helperterminateEmployment({ id, endDate, endReason })— plus reference-data reads for populating employment forms:listOffices,listCircles,listRoles(role-Circles only),listKindsandlistCcnls, with exportedOffice,CircleandKindtypes.This makes hires, terminations and contract variations first-class SDK operations instead of hand-written GraphQL. The
uiduCLI gains matching nouns:employees create|update,employment create|update|delete, andoffices|roles|ccnls list.
-
3.1.1
Patch Changes
- 22d268a: Fix the package
exportsmaps so native ESMimportresolves the ESM build instead of the CommonJS file (previously threwexports is not defined in ES module scopeunder Node's native ESM resolver / non-bundler consumers).
- 22d268a: Fix the package
3.1.0
Minor Changes
- 8c8d021: Introduce
@uidu/cliand a full authoring surface — the uidu SDK is now driveable as an AI connector.@uidu/cli(uidu): read a workspace, scaffold an app, and provision content from the terminal or an AI coding agent.uidu login(OAuth Authorization Code + PKCE browser flow, with a password-grant fallback for CI/agents); uniform entity verbslist | get | create | update | delete; CMS + workspace provisioning;uidu createscaffolding;--jsonoutput throughout.@uidu/client: add authoring mutations (create/update/delete) across events, stories, donations, courses, forms, contacts, deals, kb-collections, kb-articles, channel, tasks, notes, spaces, plus CMS (page/block/field) and workspace/project provisioning +generateWorkspaceApiCredentials. Reads use the public token (browser-safe); writes require the account Bearer (server-side / CLI only).@uidu/skills: theuiduskill now covers the CLI and the read-vs-write authoring model, not just SDK reads.@uidu/react: order thetypescondition beforedefaultin packageexports(removes a dead-condition warning).create-uidu-app: bump templates off the3.0.0-alpha.0pin to^3.0.0.
- 8c8d021: Introduce
3.0.0
Major Changes
- cca4f5c: v3 — complete rewrite as a framework-agnostic GraphQL client. Standalone functions take the client as the first argument (
getEvent(uidu, vars)instead ofuidu.events.get(vars)). New app wrappers: events, stories, donations, help center, forms, CMS, careers, courses, memberships, bookings, store. Addspaginate()helper for Relay-style connections. DropshumanNamefield in favour ofname.
- cca4f5c: v3 — complete rewrite as a framework-agnostic GraphQL client. Standalone functions take the client as the first argument (
@uidu/react
3.3.2
Patch Changes
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
uidu --helpentity list is derived from the resource registry (and the HR examples now use the realemploymentsnoun instead ofemployment, which failed); theuiduagent skill carries a generated, complete API index and CLI verb matrix.
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
3.3.0
Minor Changes
- 77ea8c5: Custom Space apps, SDK side (protocol v1).
- New
@uidu/app-bridge:connect()does the postMessage handshake with the uidu page framing the app (origin-checked, trustshttps://*.uidu.orgby default plus explicithostOrigins), exposes the typedcontext, andgetToken()caches the short-lived session token and refreshes it through the host, sharing one refresh between concurrent callers. @uidu/client:createClient({ endpoint, getToken })asks for a Bearer token per request;workspaceis optional whenendpointis given;fromBridge(bridge)builds that config. Newmodelsmodule (listModels,getModel,listModelItems,getModelItem, create/update/delete for models, fields, field options, model items and field values,toFieldValuesAttributes,ensureModel) reading throughnode(id:), the only query root a custom app token has.@uidu/react:<UiduAppProvider>/useUiduApp()over the bridge —connecting/ready/error, with a session-backed client and a<UiduProvider>around ready children.
- New
- 77ea8c5: Custom Space apps, SDK side (protocol v1).
3.2.0
Minor Changes
-
2a53025: Add
jobs(announcements) andapplicationsAPI integrations.jobsis a derived view overcalls:listJobs/getJobreturn calls whosekindisjob, with the exportedJobtype.applicationsis a first-class domain backed by newListApplications/CreateApplicationoperations —listApplications(Bearer, private candidate data),createApplication(the public apply path, links a contact + form response to a job viaapplicableId), plus theApplicationtype andListApplicationsDocument.@uidu/reactgains the pureformatSalaryRange(job)helper. These were added end-to-end (client → CLI → react → demo) as the reference implementation of the newdocs/adding-an-api-integration.mdprocess.
-
3.1.3
Patch Changes
-
2399ec1: Fix uninstallable published packages caused by the
workspace:protocol leaking into npm.changeset publishonly rewrites theworkspace:protocol when the package manager is pnpm; for any other manager (this repo is Yarn Berry) it runs plainnpm publish, which uploads"@uidu/client": "workspace:*"/"workspace:^"verbatim. Installing the affected packages then fails withEUNSUPPORTEDPROTOCOL. This shipped in@uidu/cli@0.2.0and@uidu/react@3.1.1.Internal dependencies now use real semver ranges (
^3.2.0) instead of theworkspace:protocol — the preconstruct + manypkg convention. Yarn Berry still links the local workspace for a matching range (transparent workspaces), so the dev experience is unchanged, whilenpm publishnow ships a correct, installable manifest on any package manager. This patch republishes both packages.
-
3.1.2
Patch Changes
-
281ff0c: Fix uninstallable published packages caused by the
workspace:protocol leaking into npm.changeset publishonly rewrites Yarn'sworkspace:protocol when the package manager is pnpm; on Yarn Berry it runs plainnpm publish, which uploads"@uidu/client": "workspace:*"/"workspace:^"verbatim — so@uidu/cli@0.2.0and@uidu/react@3.1.1fail to install withEUNSUPPORTEDPROTOCOL.Internal dependencies now use real semver ranges (
^3.2.0). Yarn Berry still links the local workspace for a matching range, so dev is unchanged, whilenpm publishships a correct, installable manifest. This patch republishes both packages.
-
3.1.1
Patch Changes
- 22d268a: Fix the package
exportsmaps so native ESMimportresolves the ESM build instead of the CommonJS file (previously threwexports is not defined in ES module scopeunder Node's native ESM resolver / non-bundler consumers).
- 22d268a: Fix the package
3.1.0
Minor Changes
- ac5446f: Client-side data hook plus reviewed correctness, security, and DX fixes.
- Add
useQuery(document, variables?, options?)— a client-component hook over the provider's SWR fetcher (previously unused). Seepackages/react/HOOKS-DESIGN.md. - Fix
DynamicFormsubmitting"on"/""for checkbox/boolean questions — they now serialize to"true"/"false". - Harden
RichTextagainst XSS: linkhrefschemes are allowlisted (dropsjavascript:/data:) and imagesrcis validated. - ⚠️ Behavior change: when
RichTextreceives a stringdoc, it now renders it as plain text by default instead of injecting raw HTML. Pass the newallowUnsafeHtmlprop to opt back into raw-HTML rendering (only for already-sanitized HTML). Consumers that passed HTML strings and relied on them rendering must addallowUnsafeHtml. - Fix a runtime
ReferenceError: React is not definedinBlockRenderer,PageBlocks,RichText, andDynamicForm(missing React import under the classic JSX runtime). UiduProvidernow rebuilds its client when theheadersprop changes.- Declare
engines.node >= 20.
- Add
Patch Changes
- 8c8d021: Introduce
@uidu/cliand a full authoring surface — the uidu SDK is now driveable as an AI connector.@uidu/cli(uidu): read a workspace, scaffold an app, and provision content from the terminal or an AI coding agent.uidu login(OAuth Authorization Code + PKCE browser flow, with a password-grant fallback for CI/agents); uniform entity verbslist | get | create | update | delete; CMS + workspace provisioning;uidu createscaffolding;--jsonoutput throughout.@uidu/client: add authoring mutations (create/update/delete) across events, stories, donations, courses, forms, contacts, deals, kb-collections, kb-articles, channel, tasks, notes, spaces, plus CMS (page/block/field) and workspace/project provisioning +generateWorkspaceApiCredentials. Reads use the public token (browser-safe); writes require the account Bearer (server-side / CLI only).@uidu/skills: theuiduskill now covers the CLI and the read-vs-write authoring model, not just SDK reads.@uidu/react: order thetypescondition beforedefaultin packageexports(removes a dead-condition warning).create-uidu-app: bump templates off the3.0.0-alpha.0pin to^3.0.0.
- ac5446f: Client-side data hook plus reviewed correctness, security, and DX fixes.
2.3.0
Minor Changes
- 4f38901: Fix missing import
2.2.0
Minor Changes
- 4cf0832: Fix react import
2.1.0
Minor Changes
- 1e6d570: Fix version pinning
2.0.0
Major Changes
- 9428fdf: Split packages for RSC support
@uidu/cli
0.6.1
Patch Changes
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
uidu --helpentity list is derived from the resource registry (and the HR examples now use the realemploymentsnoun instead ofemployment, which failed); theuiduagent skill carries a generated, complete API index and CLI verb matrix.
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
0.6.0
Minor Changes
- 0c79f9b: Provision a Site (the new CMS) from the SDK.
@uidu/clientaddscreateSite(first-class,CreateSite.graphql); the CLI gets a write-onlysitesresource (uidu sites create --attributes '{...}') — reads (getSiteByDomain,listSitePages, ...) take a domain/siteId shape the genericlist/getverbs don't fit, so they stay out ofRESOURCES. The demo gets an/admin/sitespage proving the round-trip. - 2ac9392: Add
createTimeClockto@uidu/client(first-class, generated fromCreateTimeClock) and atime-clocksentry (create) to@uidu/cli'sRESOURCES, so recording a punch is driveable from the SDK and the CLI, not only generically viauidu tools call.
- 0c79f9b: Provision a Site (the new CMS) from the SDK.
0.5.0
Minor Changes
- 38800c8: Read the workspace's goals (OKRs).
@uidu/clientaddslistGoals,getGoal,listTimeframesandupdateGoal, plusgoalValue/toGoalRaw/goalProgress/goalTimeElapsed/isGoalBehindfor values uidu stores x100. The CLI getsgoalsandtimeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and theuiduskill gains a "Workspace data" section: read what the workspace already holds, create a Model only for data uidu has no place for, and the valid field kinds forensureModel.
- 38800c8: Read the workspace's goals (OKRs).
0.4.0
Minor Changes
- b53df21: Add
benefitsto theRESOURCESregistry (create, wrapping the newcreateBenefitclient function). Write-only, liketasksandnotes— there is no list/get for benefit plans in the client yet. Distinct frombenefit-enrollments, which enrolls an employment in one of these plans.
- b53df21: Add
0.3.0
Minor Changes
-
0666efd: Add
benefit-enrollmentsto theRESOURCESregistry (create, wrapping the newcreateBenefitEnrollmentclient function). Write-only, liketasksandnotes— there is no list/get for benefit enrollments in the client yet. -
df6e473: Add
createCcnl, provisioning the first-classCcnlrecord (a national collective labor contract — code, sector, contract levels). This is distinct from theKind-tagged rowslistCcnlsalready returned for populating an employment'sccnlId;Employment.ccnl/ccnlIdin fact point at this first-class type. Requires a Bearer token (apiKey).@uidu/cli: addscreateto the existingccnlsresource, alongside itslist.
-
0.2.4
Patch Changes
- a6ea1d7: Add
attendancesto theRESOURCESregistry (createonly, wrapping the existingcreateAttendanceclient function). RSVPs were already covered end to end in@uidu/clientandapps/demo— the CLI noun was the missing layer. - 7669f4b: Add
compensationsto theRESOURCESregistry (create/update/delete, wrapping the existingcreateCompensation/updateCompensation/deleteCompensationclient functions). Write-only, liketasksandnotes— there is no list/get for compensations in the client yet. - 7756c71: Add
listProjectsandlistChannels, and expose them as theprojectsandchannelCLI resources'listverb. A caller that needs a project id forgetPage, or a help-center channel id, can now find one instead of being told it — the demo used to carry a production workspace's GlobalIDs for both.
- a6ea1d7: Add
0.2.3
Patch Changes
- 526792f:
Employment.contractTypeis gone from the API — uidu promoted the contract type to a configurableEmploymentKindrecord. The people documents now selectemploymentKind { id name },EmploymentRecordcarries it, andcontractTypestays as its name so existing readers keep working. Writes takeemploymentKindId.
- 526792f:
0.2.2
Patch Changes
-
2399ec1: Fix uninstallable published packages caused by the
workspace:protocol leaking into npm.changeset publishonly rewrites theworkspace:protocol when the package manager is pnpm; for any other manager (this repo is Yarn Berry) it runs plainnpm publish, which uploads"@uidu/client": "workspace:*"/"workspace:^"verbatim. Installing the affected packages then fails withEUNSUPPORTEDPROTOCOL. This shipped in@uidu/cli@0.2.0and@uidu/react@3.1.1.Internal dependencies now use real semver ranges (
^3.2.0) instead of theworkspace:protocol — the preconstruct + manypkg convention. Yarn Berry still links the local workspace for a matching range (transparent workspaces), so the dev experience is unchanged, whilenpm publishnow ships a correct, installable manifest on any package manager. This patch republishes both packages.
-
0.2.1
Patch Changes
-
281ff0c: Fix uninstallable published packages caused by the
workspace:protocol leaking into npm.changeset publishonly rewrites Yarn'sworkspace:protocol when the package manager is pnpm; on Yarn Berry it runs plainnpm publish, which uploads"@uidu/client": "workspace:*"/"workspace:^"verbatim — so@uidu/cli@0.2.0and@uidu/react@3.1.1fail to install withEUNSUPPORTEDPROTOCOL.Internal dependencies now use real semver ranges (
^3.2.0). Yarn Berry still links the local workspace for a matching range, so dev is unchanged, whilenpm publishships a correct, installable manifest. This patch republishes both packages.
-
0.2.0
Minor Changes
-
5d1f0a9: Add the People/HR authoring domain.
@uidu/clientnow exposes employee & employment writes —createEmployee,updateEmployee,createEmployment,updateEmployment,deleteEmploymentand the semantic helperterminateEmployment({ id, endDate, endReason })— plus reference-data reads for populating employment forms:listOffices,listCircles,listRoles(role-Circles only),listKindsandlistCcnls, with exportedOffice,CircleandKindtypes.This makes hires, terminations and contract variations first-class SDK operations instead of hand-written GraphQL. The
uiduCLI gains matching nouns:employees create|update,employment create|update|delete, andoffices|roles|ccnls list.
-
0.1.0
Minor Changes
- 8c8d021: Introduce
@uidu/cliand a full authoring surface — the uidu SDK is now driveable as an AI connector.@uidu/cli(uidu): read a workspace, scaffold an app, and provision content from the terminal or an AI coding agent.uidu login(OAuth Authorization Code + PKCE browser flow, with a password-grant fallback for CI/agents); uniform entity verbslist | get | create | update | delete; CMS + workspace provisioning;uidu createscaffolding;--jsonoutput throughout.@uidu/client: add authoring mutations (create/update/delete) across events, stories, donations, courses, forms, contacts, deals, kb-collections, kb-articles, channel, tasks, notes, spaces, plus CMS (page/block/field) and workspace/project provisioning +generateWorkspaceApiCredentials. Reads use the public token (browser-safe); writes require the account Bearer (server-side / CLI only).@uidu/skills: theuiduskill now covers the CLI and the read-vs-write authoring model, not just SDK reads.@uidu/react: order thetypescondition beforedefaultin packageexports(removes a dead-condition warning).create-uidu-app: bump templates off the3.0.0-alpha.0pin to^3.0.0.
- 8c8d021: Introduce
@uidu/app-bridge
0.2.1
Patch Changes
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
uidu --helpentity list is derived from the resource registry (and the HR examples now use the realemploymentsnoun instead ofemployment, which failed); theuiduagent skill carries a generated, complete API index and CLI verb matrix.
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
0.2.0
Minor Changes
- f297a77:
context.accent: the colour the uidu page paints with (the workspace's or the app's), as a CSS colour to set as--primary, so an app's primary buttons match the page around it. Optional: missing from an older host, and dropped when it is not a short string. Thecustom-apptemplate sets it.
- f297a77:
0.1.0
Minor Changes
- 77ea8c5: Custom Space apps, SDK side (protocol v1).
- New
@uidu/app-bridge:connect()does the postMessage handshake with the uidu page framing the app (origin-checked, trustshttps://*.uidu.orgby default plus explicithostOrigins), exposes the typedcontext, andgetToken()caches the short-lived session token and refreshes it through the host, sharing one refresh between concurrent callers. @uidu/client:createClient({ endpoint, getToken })asks for a Bearer token per request;workspaceis optional whenendpointis given;fromBridge(bridge)builds that config. Newmodelsmodule (listModels,getModel,listModelItems,getModelItem, create/update/delete for models, fields, field options, model items and field values,toFieldValuesAttributes,ensureModel) reading throughnode(id:), the only query root a custom app token has.@uidu/react:<UiduAppProvider>/useUiduApp()over the bridge —connecting/ready/error, with a session-backed client and a<UiduProvider>around ready children.
- New
- 77ea8c5: Custom Space apps, SDK side (protocol v1).
create-uidu-app
0.7.1
Patch Changes
- 5e0887a: The custom-app template's
CLAUDE.mdnow carries what the uidu app builder's runner used to say about custom apps: ask before working around workspace data a custom app can't read yet, and whatnpm run checkguards. The runner now describes only the build environment, so a new template doesn't have to change it.
- 5e0887a: The custom-app template's
0.7.0
Minor Changes
- 38800c8: Read the workspace's goals (OKRs).
@uidu/clientaddslistGoals,getGoal,listTimeframesandupdateGoal, plusgoalValue/toGoalRaw/goalProgress/goalTimeElapsed/isGoalBehindfor values uidu stores x100. The CLI getsgoalsandtimeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and theuiduskill gains a "Workspace data" section: read what the workspace already holds, create a Model only for data uidu has no place for, and the valid field kinds forensureModel.
Patch Changes
- fde916a: The custom-app template no longer ships
examples/room-booking/. Agents building on the template read it before every first screen, kept it around and offered to bring it back, even when the person asked for something unrelated. The template now starts from the blank screen alone; the Model read/write pattern stays in theuiduskill.
- 38800c8: Read the workspace's goals (OKRs).
0.6.0
Minor Changes
- 313fdac: The
custom-apptemplate starts blank. The page shows a connected empty state (src/components/start.tsx) and the manifest declares no Models, so opening a new app no longer creates a "Booking" model in the workspace. The room booking screen moved toexamples/room-booking/(the screen, its models and how to switch it on): it is copied with the app but not built, type-checked or served, andCLAUDE.mdpoints the coding agent to it before the first screen.
- 313fdac: The
0.5.0
Minor Changes
- f235152: The
custom-apptemplate now looks like the uidu page that frames it: uidu's own tokens and 34 of uidu's own components (new-york-v4, Radix) replace the stock shadcnbase-novakit, the font is Inter, and the example screen follows uidu's layout (a toolbar instead of a title, a table, an empty state that fills the frame). The template ships theuiduanduidu-designskills in.claude/skills/, declares the@uidushadcn registry, and addsnpm run check, which flags palette colours, hand-written controls and other icon sets.
Patch Changes
- 71aae10:
-t custom-app: allow*.vercel.runas a dev origin. Next 16 serves its dev resources (HMR) to localhost only, so the template's dev server never hydrated when the uidu app builder ran it in a Vercel Sandbox.
- f235152: The
0.4.1
Patch Changes
- 5d34736: Templates deploy to Vercel straight from the monorepo: each one pins
npm install, so Yarn 4 no longer refuses a folder that isn't a workspace. Scaffolded apps don't get the file.
- 5d34736: Templates deploy to Vercel straight from the monorepo: each one pins
0.4.0
Minor Changes
- 9e883b8: Custom apps: a template, and the skill that knows them.
create-uidu-app -t custom-app: a Next.js app uidu shows inside a Space to signed-in members.<UiduAppProvider>over@uidu/app-bridge, the app's Models declared inpublic/uidu.app.json(created on first load until uidu does it at install),frame-ancestorslimited to uidu hosts, a "not inside uidu" state, and aCLAUDE.mdwith the rules for an agent working on it.uiduskill 0.5.0: "Reading vs writing" becomes "Who the app acts for", with a third row for apps inside uidu (session from the host, browser only) and its five rules;@uidu/app-bridge,<UiduAppProvider>anduseUiduAppin the package map; thecustom-apptemplate.
- 9e883b8: Custom apps: a template, and the skill that knows them.
0.3.0
Minor Changes
-
0ea3ae0: Templates now ship with shadcn/ui preconfigured.
Every Next.js template (
minimal,donations,stories,events) now includes a working shadcn/ui setup for Tailwind v4 out of the box, so scaffolded apps no longer need to runshadcn initmanually:components.json(Base UI /base-nova, base colorneutral, CSS variables,@/*aliases matching each template's tsconfig).src/lib/utils.tsexportingcn(clsx + tailwind-merge).- A base set of
src/components/ui/components —button,card,input,label,badge,dialog— generated via the shadcn CLI (Base UI backed). src/app/globals.cssupdated with the shadcn Tailwind v4 theme (:root+.darkvariables,@theme inlinemapping,@custom-variant dark), merged so each template keeps its existing brand palette and fonts.- New runtime deps:
@base-ui/react,class-variance-authority,clsx,lucide-react,shadcn,tailwind-merge,tw-animate-css.
-
0.2.2
Patch Changes
-
e2342f0: Remove deprecated
baseUrlfrom Next.js templatetsconfig.jsonfiles.TypeScript 6.x flags
"baseUrl": "."with error TS5101 ("Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0"), which broketsc --noEmitandnext buildfor scaffolded apps.Dropped the
"baseUrl": "."line from everynexttemplate (minimal, donations, stories, events). The"paths": { "@/*": ["./src/*"] }mapping resolves withoutbaseUrlunder"moduleResolution": "bundler"(TS 5+), so the@/*alias keeps working.
-
0.2.1
Patch Changes
- ac5446f: - Fix a crash when the project name is numeric (e.g.
create-uidu-app 2024).- Validate
--package-manageragainst the known list instead of accepting any value. - Report the correct version (now single-sourced from
package.json).
- Validate
- 8c8d021: Introduce
@uidu/cliand a full authoring surface — the uidu SDK is now driveable as an AI connector.@uidu/cli(uidu): read a workspace, scaffold an app, and provision content from the terminal or an AI coding agent.uidu login(OAuth Authorization Code + PKCE browser flow, with a password-grant fallback for CI/agents); uniform entity verbslist | get | create | update | delete; CMS + workspace provisioning;uidu createscaffolding;--jsonoutput throughout.@uidu/client: add authoring mutations (create/update/delete) across events, stories, donations, courses, forms, contacts, deals, kb-collections, kb-articles, channel, tasks, notes, spaces, plus CMS (page/block/field) and workspace/project provisioning +generateWorkspaceApiCredentials. Reads use the public token (browser-safe); writes require the account Bearer (server-side / CLI only).@uidu/skills: theuiduskill now covers the CLI and the read-vs-write authoring model, not just SDK reads.@uidu/react: order thetypescondition beforedefaultin packageexports(removes a dead-condition warning).create-uidu-app: bump templates off the3.0.0-alpha.0pin to^3.0.0.
- ac5446f: - Fix a crash when the project name is numeric (e.g.
0.2.0
Minor Changes
- 58de861: Initial release — interactive CLI scaffolder for uidu-powered Next.js projects. Four templates (minimal, events, stories, donations) with distinct visual identities. Prompts for project name, template, package manager, and uidu credentials; writes
.env.localdirectly.
- 58de861: Initial release — interactive CLI scaffolder for uidu-powered Next.js projects. Four templates (minimal, events, stories, donations) with distinct visual identities. Prompts for project name, template, package manager, and uidu credentials; writes
@uidu/skills
0.6.1
Patch Changes
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
uidu --helpentity list is derived from the resource registry (and the HR examples now use the realemploymentsnoun instead ofemployment, which failed); theuiduagent skill carries a generated, complete API index and CLI verb matrix.
- 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the
0.6.0
Minor Changes
- 38800c8: Read the workspace's goals (OKRs).
@uidu/clientaddslistGoals,getGoal,listTimeframesandupdateGoal, plusgoalValue/toGoalRaw/goalProgress/goalTimeElapsed/isGoalBehindfor values uidu stores x100. The CLI getsgoalsandtimeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and theuiduskill gains a "Workspace data" section: read what the workspace already holds, create a Model only for data uidu has no place for, and the valid field kinds forensureModel.
- 38800c8: Read the workspace's goals (OKRs).
0.5.0
Minor Changes
- e48c483: New
uidu-designskill: how an app framed inside uidu should look — uidu's tokens and components, layout inside the iframe, the four states, icons, accessibility.
- e48c483: New
0.4.0
Minor Changes
- 9e883b8: Custom apps: a template, and the skill that knows them.
create-uidu-app -t custom-app: a Next.js app uidu shows inside a Space to signed-in members.<UiduAppProvider>over@uidu/app-bridge, the app's Models declared inpublic/uidu.app.json(created on first load until uidu does it at install),frame-ancestorslimited to uidu hosts, a "not inside uidu" state, and aCLAUDE.mdwith the rules for an agent working on it.uiduskill 0.5.0: "Reading vs writing" becomes "Who the app acts for", with a third row for apps inside uidu (session from the host, browser only) and its five rules;@uidu/app-bridge,<UiduAppProvider>anduseUiduAppin the package map; thecustom-apptemplate.
- 9e883b8: Custom apps: a template, and the skill that knows them.
0.3.0
Minor Changes
- 8c8d021: Introduce
@uidu/cliand a full authoring surface — the uidu SDK is now driveable as an AI connector.@uidu/cli(uidu): read a workspace, scaffold an app, and provision content from the terminal or an AI coding agent.uidu login(OAuth Authorization Code + PKCE browser flow, with a password-grant fallback for CI/agents); uniform entity verbslist | get | create | update | delete; CMS + workspace provisioning;uidu createscaffolding;--jsonoutput throughout.@uidu/client: add authoring mutations (create/update/delete) across events, stories, donations, courses, forms, contacts, deals, kb-collections, kb-articles, channel, tasks, notes, spaces, plus CMS (page/block/field) and workspace/project provisioning +generateWorkspaceApiCredentials. Reads use the public token (browser-safe); writes require the account Bearer (server-side / CLI only).@uidu/skills: theuiduskill now covers the CLI and the read-vs-write authoring model, not just SDK reads.@uidu/react: order thetypescondition beforedefaultin packageexports(removes a dead-condition warning).create-uidu-app: bump templates off the3.0.0-alpha.0pin to^3.0.0.
- 8c8d021: Introduce
0.2.0
Minor Changes
- 58de861: Initial release — agent skills bundle for AI coding tools (Claude Code, Cursor, Copilot, Windsurf). Ships a comprehensive
uiduskill covering package map, API shape, env setup, and fetch patterns for all scopes (CMS, events, stories, donations, help center, forms).
- 58de861: Initial release — agent skills bundle for AI coding tools (Claude Code, Cursor, Copilot, Windsurf). Ships a comprehensive