Skip to content

Ridu v0.16.0

Choose a tag to compare

@github-actions github-actions released this 06 Oct 14:44

Ridu 0.16.0

REST and the SDK now send the error codes the documentation describes, typed Go handles can publish
versioned content, and data transforms read the collection shapes their own migration defines. The
migrations and work-with-data documentation is rewritten around tasks, diagrams, and side-by-side
Go, TypeScript, and REST examples.

Changes

  • REST and the SDK send bad_query (400) for a filter, sort, selection, or population the
    collection can't run, and publish_required (409) for a plain update of a published versioned
    document or global. Both used to arrive as bad_request.
  • Any other error reports the code its status names: access_denied for 403, not_found for 404,
    conflict for 409, bad_request for other 4xx statuses, and internal for 5xx. A 404 for an
    unknown collection no longer says bad_request.
  • RequestObservation.ErrorReason holds the specific code behind the public one, such as
    origin_denied behind access_denied or body_too_large behind bad_request, for monitoring
    and alerts.
  • Generated typed collection handles gain Publish, PublishChanges, and Unpublish, and typed
    global handles gain PublishChanges. Typed code can now edit a published versioned document
    without falling back to store.Values.
  • migration.DataTransaction gains Collection and Global, which return a resource as the
    running migration leaves it, or its earlier shape when the migration removes it. Transforms that
    resolved the current config broke ridu migrate verify and new databases once a later migration
    changed the collection.
  • The SDK's auth.createUser resolves to the user type when the session collection has no drafts,
    instead of Promise<never>, and rejects incomplete data and { draft: true } there.
  • SQLite reports that a database file's directory doesn't exist, instead of only
    "SQLite error 14". Other SQLite errors include the driver's description of their code.
  • Inside Claude Code, ridu new and ridu agent install default to the Claude layout
    (CLAUDE.md and .claude/skills), and the wizard preselects it. An explicit --agent or
    --no-agent still wins, and other environments keep the Codex default.
  • The ridu-project skill no longer tells agents to pass --allow-maintenance to
    ridu migrate verify; only ridu migrate up needs it.
  • The migrations documentation is a short overview with diagrams and seven task pages. Querying
    data, the Local Go API, and the TypeScript SDK are split into task pages with a new Writing data
    page, and a reader's choice of code tab carries across examples and pages.

Breaking changes and upgrade

Update the Go module and all Ridu npm packages to 0.16.0 together, regenerate application contracts,
and rebuild the admin and application binary. Migration planners and database layouts are unchanged
from 0.15.0, so existing databases and migration histories need no recreation.

  • REST clients and SDK code that matched bad_request now receive bad_query for refused queries,
    publish_required for an update that needs publishing, and access_denied, not_found, or
    conflict for 403, 404, and 409 responses. The SDK's ErrorCode type includes bad_query and
    publish_required.
  • Alerts that need the specific cause of a rejection, such as origin_denied, host_denied, or
    body_too_large, should read RequestObservation.ErrorReason. ErrorCode carries only the
    public code.
  • Go types that implement migration.DataTransaction, such as test doubles, must add Collection
    and Global.

Enabling versioning on an already populated unversioned resource remains unsupported. This is a
pre-1 release with breaking contracts; keep the coordinated packages aligned. Production still runs
as a Go binary with its static admin embedded, without a JavaScript server.