Changelog

Release notes for every package, generated from Changesets. Versions that only bumped a dependency are left out.

@uidu/client

  1. 3.13.1

    Patch Changes

    • 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the uidu --help entity list is derived from the resource registry (and the HR examples now use the real employments noun instead of employment, which failed); the uidu agent skill carries a generated, complete API index and CLI verb matrix.
    • 0a0a15b: getPage now selects __typename on a field value's linkedRecord, so fv.linkedRecord?.__typename === 'Form' narrows to the linked form at runtime, not only in the types.
  2. 3.13.0

    Minor Changes

    • 0c79f9b: Provision a Site (the new CMS) from the SDK. @uidu/client adds createSite (first-class, CreateSite.graphql); the CLI gets a write-only sites resource (uidu sites create --attributes '{...}') — reads (getSiteByDomain, listSitePages, ...) take a domain/siteId shape the generic list/get verbs don't fit, so they stay out of RESOURCES. The demo gets an /admin/sites page proving the round-trip.

    • 2ac9392: Add createTimeClock to @uidu/client (first-class, generated from CreateTimeClock) and a time-clocks entry (create) to @uidu/cli's RESOURCES, so recording a punch is driveable from the SDK and the CLI, not only generically via uidu tools call.

    • 57fad75: Add updateApplication and completeApplication.

      createApplication leaves an application in draft, 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 the complete! event — what uidu's own public site does after its last step — which stamps completedAt, marks the form response completed and notifies the call's members. updateApplication is the general mutation underneath.

      The generated types are regenerated from uidu main: the CustomAppDraft* types go away (renamed BuilderDraft in uidu, unused by the SDK).

  3. 3.12.0

    Minor Changes

    • 38800c8: Read the workspace's goals (OKRs). @uidu/client adds listGoals, getGoal, listTimeframes and updateGoal, plus goalValue / toGoalRaw / goalProgress / goalTimeElapsed / isGoalBehind for values uidu stores x100. The CLI gets goals and timeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and the uidu skill 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 for ensureModel.
  4. 3.11.0

    Minor Changes

    • 7e50660: Read the new CMS (Sites). getSiteByDomain, getSite, getPageBySlug, listSitePages and getSingletonBlock read 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 a publicToken client works for all of them. The legacy CMS functions (getPage, listPages, getTemplate) are unchanged.
  5. 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, trusts https://*.uidu.org by default plus explicit hostOrigins), exposes the typed context, and getToken() 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; workspace is optional when endpoint is given; fromBridge(bridge) builds that config. New models module (listModels, getModel, listModelItems, getModelItem, create/update/delete for models, fields, field options, model items and field values, toFieldValuesAttributes, ensureModel) reading through node(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.
  6. 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 new CreateBenefit document; requires a Bearer token (apiKey), like the other HR writes.
  7. 3.8.0

    Minor Changes

    • 6d16ea2: Add createBenefitEnrollment — enrolls an employment in a benefit plan (benefitId, employmentId, enrolledAt, plus optional coverage and cost overrides). First-class operation backed by a new CreateBenefitEnrollment document; requires a Bearer token (apiKey), like the other HR writes.

    • df6e473: Add createCcnl, provisioning the first-class Ccnl record (a national collective labor contract — code, sector, contract levels). This is distinct from the Kind-tagged rows listCcnls already returned for populating an employment's ccnlId; Employment.ccnl/ccnlId in fact point at this first-class type. Requires a Bearer token (apiKey).

      @uidu/cli: adds create to the existing ccnls resource, alongside its list.

  8. 3.7.1

    Patch Changes

    • 1149d0b: codegen.ts builds its endpoint from UIDU_HOST (default uidu.org) instead of hardcoding the domain, so a workspace that only exists on staging can be introspected — and UIDU_WORKSPACE=demo no longer silently resolves to demo.uidu.org, which 404s.
  9. 3.7.0

    Minor Changes

    • 7756c71: Add listProjects and listChannels, and expose them as the projects and channel CLI resources' list verb. A caller that needs a project id for getPage, 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.
  10. 3.6.0

    Minor Changes

    • 526792f: Employment.contractType is gone from the API — uidu promoted the contract type to a configurable EmploymentKind record. The people documents now select employmentKind { id name }, EmploymentRecord carries it, and contractType stays as its name so existing readers keep working. Writes take employmentKindId.
  11. 3.5.0

    Minor Changes

    • 45e1997: Normalize fieldValuesAttributes[].content on every mutation.

      The API stores each field value as JSON and reads it back as content['value'], so content must 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, since FieldValueAttributes.content is typed as an untyped JSON scalar.

      UiduClient.mutate now wraps a bare content in { value } before sending, and warns once per mutation outside production so the call site gets fixed. Doing it in mutate rather than per function covers all ~50 authoring mutations and reaches fieldValuesAttributes wherever it nests — under contactAttributes.contactableAttributes, inside pageBlocksAttributes[], and on the 15 other *Attributes types that carry it. Already-wrapped payloads, content payloads themselves, the caller's object, and every untouched subtree are left alone by reference. Reads (query) are unaffected.

      The helpers are exported as normalizeFieldValueContent and normalizeFieldValuesAttributes for callers that assemble fieldValuesAttributes outside the SDK.

  12. 3.4.1

    Patch Changes

    • 689299a: Select publicUrl in the ListCalls query so listCalls — and the derived listJobs — expose publicUrl on every record. Previously it was only selected in GetCall, so list results carried publicPath but not the absolute publicUrl, despite the Call type advertising it.
  13. 3.4.0

    Minor Changes

    • 5a31264: Add compensation writes and surface CCNL + pay on employment history.

      New createCompensation, updateCompensation and deleteCompensation cover an employment's pay items (amount, currency, frequency — hourly/monthly/annual, componentType — base/allowance/recurring_bonus, reason, effectiveFrom). listEmploymentHistory now also returns each contract's ccnl and its compensations (most-recent effective date first), and EmploymentRecord gains ccnl and compensations, with a new exported CompensationRecord type.

      Together with the existing ccnlId on employment attributes and listCcnls, this makes CCNL and compensation first-class in the SDK.

    • 2a53025: Add jobs (announcements) and applications API integrations.

      jobs is a derived view over calls: listJobs/getJob return calls whose kind is job, with the exported Job type. applications is a first-class domain backed by new ListApplications / CreateApplication operations — listApplications (Bearer, private candidate data), createApplication (the public apply path, links a contact + form response to a job via applicableId), plus the Application type and ListApplicationsDocument.

      @uidu/react gains the pure formatSalaryRange(job) helper. These were added end-to-end (client → CLI → react → demo) as the reference implementation of the new docs/adding-an-api-integration.md process.

  14. 3.3.0

    Minor Changes

    • ccd1038: Add employment history reads for building contract timelines.

      listEmploymentHistory returns every employee with their full list of contracts (not just the current one), and contractEvents flattens that into a dated, most-recent-first list of events: the earliest contract is a hire, later contracts are variations, and any contract with an end date yields a termination — each tagged with a month bucket for grouping. Exports the EmploymentRecord, EmployeeContracts, ContractEvent and ContractEventType types.

  15. 3.2.0

    Minor Changes

    • 5d1f0a9: Add the People/HR authoring domain.

      @uidu/client now exposes employee & employment writes — createEmployee, updateEmployee, createEmployment, updateEmployment, deleteEmployment and the semantic helper terminateEmployment({ id, endDate, endReason }) — plus reference-data reads for populating employment forms: listOffices, listCircles, listRoles (role-Circles only), listKinds and listCcnls, with exported Office, Circle and Kind types.

      This makes hires, terminations and contract variations first-class SDK operations instead of hand-written GraphQL. The uidu CLI gains matching nouns: employees create|update, employment create|update|delete, and offices|roles|ccnls list.

  16. 3.1.1

    Patch Changes

    • 22d268a: Fix the package exports maps so native ESM import resolves the ESM build instead of the CommonJS file (previously threw exports is not defined in ES module scope under Node's native ESM resolver / non-bundler consumers).
  17. 3.1.0

    Minor Changes

    • 8c8d021: Introduce @uidu/cli and 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 verbs list | get | create | update | delete; CMS + workspace provisioning; uidu create scaffolding; --json output 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: the uidu skill now covers the CLI and the read-vs-write authoring model, not just SDK reads.
      • @uidu/react: order the types condition before default in package exports (removes a dead-condition warning).
      • create-uidu-app: bump templates off the 3.0.0-alpha.0 pin to ^3.0.0.
  18. 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 of uidu.events.get(vars)). New app wrappers: events, stories, donations, help center, forms, CMS, careers, courses, memberships, bookings, store. Adds paginate() helper for Relay-style connections. Drops humanName field in favour of name.

@uidu/react

  1. 3.3.2

    Patch Changes

    • 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the uidu --help entity list is derived from the resource registry (and the HR examples now use the real employments noun instead of employment, which failed); the uidu agent skill carries a generated, complete API index and CLI verb matrix.
  2. 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, trusts https://*.uidu.org by default plus explicit hostOrigins), exposes the typed context, and getToken() 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; workspace is optional when endpoint is given; fromBridge(bridge) builds that config. New models module (listModels, getModel, listModelItems, getModelItem, create/update/delete for models, fields, field options, model items and field values, toFieldValuesAttributes, ensureModel) reading through node(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.
  3. 3.2.0

    Minor Changes

    • 2a53025: Add jobs (announcements) and applications API integrations.

      jobs is a derived view over calls: listJobs/getJob return calls whose kind is job, with the exported Job type. applications is a first-class domain backed by new ListApplications / CreateApplication operations — listApplications (Bearer, private candidate data), createApplication (the public apply path, links a contact + form response to a job via applicableId), plus the Application type and ListApplicationsDocument.

      @uidu/react gains the pure formatSalaryRange(job) helper. These were added end-to-end (client → CLI → react → demo) as the reference implementation of the new docs/adding-an-api-integration.md process.

  4. 3.1.3

    Patch Changes

    • 2399ec1: Fix uninstallable published packages caused by the workspace: protocol leaking into npm.

      changeset publish only rewrites the workspace: protocol when the package manager is pnpm; for any other manager (this repo is Yarn Berry) it runs plain npm publish, which uploads "@uidu/client": "workspace:*" / "workspace:^" verbatim. Installing the affected packages then fails with EUNSUPPORTEDPROTOCOL. This shipped in @uidu/cli@0.2.0 and @uidu/react@3.1.1.

      Internal dependencies now use real semver ranges (^3.2.0) instead of the workspace: protocol — the preconstruct + manypkg convention. Yarn Berry still links the local workspace for a matching range (transparent workspaces), so the dev experience is unchanged, while npm publish now ships a correct, installable manifest on any package manager. This patch republishes both packages.

  5. 3.1.2

    Patch Changes

    • 281ff0c: Fix uninstallable published packages caused by the workspace: protocol leaking into npm.

      changeset publish only rewrites Yarn's workspace: protocol when the package manager is pnpm; on Yarn Berry it runs plain npm publish, which uploads "@uidu/client": "workspace:*" / "workspace:^" verbatim — so @uidu/cli@0.2.0 and @uidu/react@3.1.1 fail to install with EUNSUPPORTEDPROTOCOL.

      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, while npm publish ships a correct, installable manifest. This patch republishes both packages.

  6. 3.1.1

    Patch Changes

    • 22d268a: Fix the package exports maps so native ESM import resolves the ESM build instead of the CommonJS file (previously threw exports is not defined in ES module scope under Node's native ESM resolver / non-bundler consumers).
  7. 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). See packages/react/HOOKS-DESIGN.md.
      • Fix DynamicForm submitting "on"/"" for checkbox/boolean questions — they now serialize to "true"/"false".
      • Harden RichText against XSS: link href schemes are allowlisted (drops javascript:/data:) and image src is validated.
      • ⚠️ Behavior change: when RichText receives a string doc, it now renders it as plain text by default instead of injecting raw HTML. Pass the new allowUnsafeHtml prop to opt back into raw-HTML rendering (only for already-sanitized HTML). Consumers that passed HTML strings and relied on them rendering must add allowUnsafeHtml.
      • Fix a runtime ReferenceError: React is not defined in BlockRenderer, PageBlocks, RichText, and DynamicForm (missing React import under the classic JSX runtime).
      • UiduProvider now rebuilds its client when the headers prop changes.
      • Declare engines.node >= 20.

    Patch Changes

    • 8c8d021: Introduce @uidu/cli and 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 verbs list | get | create | update | delete; CMS + workspace provisioning; uidu create scaffolding; --json output 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: the uidu skill now covers the CLI and the read-vs-write authoring model, not just SDK reads.
      • @uidu/react: order the types condition before default in package exports (removes a dead-condition warning).
      • create-uidu-app: bump templates off the 3.0.0-alpha.0 pin to ^3.0.0.
  8. 2.3.0

    Minor Changes

    • 4f38901: Fix missing import
  9. 2.2.0

    Minor Changes

    • 4cf0832: Fix react import
  10. 2.1.0

    Minor Changes

    • 1e6d570: Fix version pinning
  11. 2.0.0

    Major Changes

    • 9428fdf: Split packages for RSC support

@uidu/cli

  1. 0.6.1

    Patch Changes

    • 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the uidu --help entity list is derived from the resource registry (and the HR examples now use the real employments noun instead of employment, which failed); the uidu agent skill carries a generated, complete API index and CLI verb matrix.
  2. 0.6.0

    Minor Changes

    • 0c79f9b: Provision a Site (the new CMS) from the SDK. @uidu/client adds createSite (first-class, CreateSite.graphql); the CLI gets a write-only sites resource (uidu sites create --attributes '{...}') — reads (getSiteByDomain, listSitePages, ...) take a domain/siteId shape the generic list/get verbs don't fit, so they stay out of RESOURCES. The demo gets an /admin/sites page proving the round-trip.
    • 2ac9392: Add createTimeClock to @uidu/client (first-class, generated from CreateTimeClock) and a time-clocks entry (create) to @uidu/cli's RESOURCES, so recording a punch is driveable from the SDK and the CLI, not only generically via uidu tools call.
  3. 0.5.0

    Minor Changes

    • 38800c8: Read the workspace's goals (OKRs). @uidu/client adds listGoals, getGoal, listTimeframes and updateGoal, plus goalValue / toGoalRaw / goalProgress / goalTimeElapsed / isGoalBehind for values uidu stores x100. The CLI gets goals and timeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and the uidu skill 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 for ensureModel.
  4. 0.4.0

    Minor Changes

    • b53df21: Add benefits to the RESOURCES registry (create, wrapping the new createBenefit client function). Write-only, like tasks and notes — there is no list/get for benefit plans in the client yet. Distinct from benefit-enrollments, which enrolls an employment in one of these plans.
  5. 0.3.0

    Minor Changes

    • 0666efd: Add benefit-enrollments to the RESOURCES registry (create, wrapping the new createBenefitEnrollment client function). Write-only, like tasks and notes — there is no list/get for benefit enrollments in the client yet.

    • df6e473: Add createCcnl, provisioning the first-class Ccnl record (a national collective labor contract — code, sector, contract levels). This is distinct from the Kind-tagged rows listCcnls already returned for populating an employment's ccnlId; Employment.ccnl/ccnlId in fact point at this first-class type. Requires a Bearer token (apiKey).

      @uidu/cli: adds create to the existing ccnls resource, alongside its list.

  6. 0.2.4

    Patch Changes

    • a6ea1d7: Add attendances to the RESOURCES registry (create only, wrapping the existing createAttendance client function). RSVPs were already covered end to end in @uidu/client and apps/demo — the CLI noun was the missing layer.
    • 7669f4b: Add compensations to the RESOURCES registry (create/update/delete, wrapping the existing createCompensation/updateCompensation/ deleteCompensation client functions). Write-only, like tasks and notes — there is no list/get for compensations in the client yet.
    • 7756c71: Add listProjects and listChannels, and expose them as the projects and channel CLI resources' list verb. A caller that needs a project id for getPage, 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.
  7. 0.2.3

    Patch Changes

    • 526792f: Employment.contractType is gone from the API — uidu promoted the contract type to a configurable EmploymentKind record. The people documents now select employmentKind { id name }, EmploymentRecord carries it, and contractType stays as its name so existing readers keep working. Writes take employmentKindId.
  8. 0.2.2

    Patch Changes

    • 2399ec1: Fix uninstallable published packages caused by the workspace: protocol leaking into npm.

      changeset publish only rewrites the workspace: protocol when the package manager is pnpm; for any other manager (this repo is Yarn Berry) it runs plain npm publish, which uploads "@uidu/client": "workspace:*" / "workspace:^" verbatim. Installing the affected packages then fails with EUNSUPPORTEDPROTOCOL. This shipped in @uidu/cli@0.2.0 and @uidu/react@3.1.1.

      Internal dependencies now use real semver ranges (^3.2.0) instead of the workspace: protocol — the preconstruct + manypkg convention. Yarn Berry still links the local workspace for a matching range (transparent workspaces), so the dev experience is unchanged, while npm publish now ships a correct, installable manifest on any package manager. This patch republishes both packages.

  9. 0.2.1

    Patch Changes

    • 281ff0c: Fix uninstallable published packages caused by the workspace: protocol leaking into npm.

      changeset publish only rewrites Yarn's workspace: protocol when the package manager is pnpm; on Yarn Berry it runs plain npm publish, which uploads "@uidu/client": "workspace:*" / "workspace:^" verbatim — so @uidu/cli@0.2.0 and @uidu/react@3.1.1 fail to install with EUNSUPPORTEDPROTOCOL.

      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, while npm publish ships a correct, installable manifest. This patch republishes both packages.

  10. 0.2.0

    Minor Changes

    • 5d1f0a9: Add the People/HR authoring domain.

      @uidu/client now exposes employee & employment writes — createEmployee, updateEmployee, createEmployment, updateEmployment, deleteEmployment and the semantic helper terminateEmployment({ id, endDate, endReason }) — plus reference-data reads for populating employment forms: listOffices, listCircles, listRoles (role-Circles only), listKinds and listCcnls, with exported Office, Circle and Kind types.

      This makes hires, terminations and contract variations first-class SDK operations instead of hand-written GraphQL. The uidu CLI gains matching nouns: employees create|update, employment create|update|delete, and offices|roles|ccnls list.

  11. 0.1.0

    Minor Changes

    • 8c8d021: Introduce @uidu/cli and 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 verbs list | get | create | update | delete; CMS + workspace provisioning; uidu create scaffolding; --json output 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: the uidu skill now covers the CLI and the read-vs-write authoring model, not just SDK reads.
      • @uidu/react: order the types condition before default in package exports (removes a dead-condition warning).
      • create-uidu-app: bump templates off the 3.0.0-alpha.0 pin to ^3.0.0.

@uidu/app-bridge

  1. 0.2.1

    Patch Changes

    • 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the uidu --help entity list is derived from the resource registry (and the HR examples now use the real employments noun instead of employment, which failed); the uidu agent skill carries a generated, complete API index and CLI verb matrix.
  2. 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. The custom-app template sets it.
  3. 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, trusts https://*.uidu.org by default plus explicit hostOrigins), exposes the typed context, and getToken() 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; workspace is optional when endpoint is given; fromBridge(bridge) builds that config. New models module (listModels, getModel, listModelItems, getModelItem, create/update/delete for models, fields, field options, model items and field values, toFieldValuesAttributes, ensureModel) reading through node(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.

create-uidu-app

  1. 0.7.1

    Patch Changes

    • 5e0887a: The custom-app template's CLAUDE.md now 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 what npm run check guards. The runner now describes only the build environment, so a new template doesn't have to change it.
  2. 0.7.0

    Minor Changes

    • 38800c8: Read the workspace's goals (OKRs). @uidu/client adds listGoals, getGoal, listTimeframes and updateGoal, plus goalValue / toGoalRaw / goalProgress / goalTimeElapsed / isGoalBehind for values uidu stores x100. The CLI gets goals and timeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and the uidu skill 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 for ensureModel.

    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 the uidu skill.
  3. 0.6.0

    Minor Changes

    • 313fdac: The custom-app template 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 to examples/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, and CLAUDE.md points the coding agent to it before the first screen.
  4. 0.5.0

    Minor Changes

    • f235152: The custom-app template 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 shadcn base-nova kit, 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 the uidu and uidu-design skills in .claude/skills/, declares the @uidu shadcn registry, and adds npm run check, which flags palette colours, hand-written controls and other icon sets.

    Patch Changes

    • 71aae10: -t custom-app: allow *.vercel.run as 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.
  5. 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.
  6. 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 in public/uidu.app.json (created on first load until uidu does it at install), frame-ancestors limited to uidu hosts, a "not inside uidu" state, and a CLAUDE.md with the rules for an agent working on it.
      • uidu skill 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> and useUiduApp in the package map; the custom-app template.
  7. 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 run shadcn init manually:

      • components.json (Base UI / base-nova, base color neutral, CSS variables, @/* aliases matching each template's tsconfig).
      • src/lib/utils.ts exporting cn (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.css updated with the shadcn Tailwind v4 theme (:root + .dark variables, @theme inline mapping, @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.
  8. 0.2.2

    Patch Changes

    • e2342f0: Remove deprecated baseUrl from Next.js template tsconfig.json files.

      TypeScript 6.x flags "baseUrl": "." with error TS5101 ("Option 'baseUrl' is deprecated and will stop functioning in TypeScript 7.0"), which broke tsc --noEmit and next build for scaffolded apps.

      Dropped the "baseUrl": "." line from every next template (minimal, donations, stories, events). The "paths": { "@/*": ["./src/*"] } mapping resolves without baseUrl under "moduleResolution": "bundler" (TS 5+), so the @/* alias keeps working.

  9. 0.2.1

    Patch Changes

    • ac5446f: - Fix a crash when the project name is numeric (e.g. create-uidu-app 2024).
      • Validate --package-manager against the known list instead of accepting any value.
      • Report the correct version (now single-sourced from package.json).
    • 8c8d021: Introduce @uidu/cli and 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 verbs list | get | create | update | delete; CMS + workspace provisioning; uidu create scaffolding; --json output 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: the uidu skill now covers the CLI and the read-vs-write authoring model, not just SDK reads.
      • @uidu/react: order the types condition before default in package exports (removes a dead-condition warning).
      • create-uidu-app: bump templates off the 3.0.0-alpha.0 pin to ^3.0.0.
  10. 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.local directly.

@uidu/skills

  1. 0.6.1

    Patch Changes

    • 8edb107: Documentation is now generated from the source. Every public export has a JSDoc summary; the uidu --help entity list is derived from the resource registry (and the HR examples now use the real employments noun instead of employment, which failed); the uidu agent skill carries a generated, complete API index and CLI verb matrix.
  2. 0.6.0

    Minor Changes

    • 38800c8: Read the workspace's goals (OKRs). @uidu/client adds listGoals, getGoal, listTimeframes and updateGoal, plus goalValue / toGoalRaw / goalProgress / goalTimeElapsed / isGoalBehind for values uidu stores x100. The CLI gets goals and timeframes. Inside a custom app the session token can now read goals and timeframes (read-only), and the uidu skill 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 for ensureModel.
  3. 0.5.0

    Minor Changes

    • e48c483: New uidu-design skill: how an app framed inside uidu should look — uidu's tokens and components, layout inside the iframe, the four states, icons, accessibility.
  4. 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 in public/uidu.app.json (created on first load until uidu does it at install), frame-ancestors limited to uidu hosts, a "not inside uidu" state, and a CLAUDE.md with the rules for an agent working on it.
      • uidu skill 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> and useUiduApp in the package map; the custom-app template.
  5. 0.3.0

    Minor Changes

    • 8c8d021: Introduce @uidu/cli and 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 verbs list | get | create | update | delete; CMS + workspace provisioning; uidu create scaffolding; --json output 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: the uidu skill now covers the CLI and the read-vs-write authoring model, not just SDK reads.
      • @uidu/react: order the types condition before default in package exports (removes a dead-condition warning).
      • create-uidu-app: bump templates off the 3.0.0-alpha.0 pin to ^3.0.0.
  6. 0.2.0

    Minor Changes

    • 58de861: Initial release — agent skills bundle for AI coding tools (Claude Code, Cursor, Copilot, Windsurf). Ships a comprehensive uidu skill covering package map, API shape, env setup, and fetch patterns for all scopes (CMS, events, stories, donations, help center, forms).