Skip to content

@objectstack/trigger-api@17.0.0-rc.1

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 31 Jul 14:13
2bafe62

Minor Changes

  • f5a4ef0: refactor!: ADR-0112 batch 2 — sweep the lowercase error-code emitters (#4003)

    Continues #3841 per ADR-0112. Batch 1 (#3988) settled the vocabulary and closed
    the set; this batch moves the emitters that still spoke lowercase snake_case
    onto it.

    Wire-visible change. Error codes on these surfaces change spelling. Generic
    conditions collapse onto the standard catalog rather than keeping a synonym:
    unauthorized/unauthenticatedUNAUTHENTICATED, forbidden
    PERMISSION_DENIED, not_foundRESOURCE_NOT_FOUND, internal
    INTERNAL_ERROR, unavailableSERVICE_UNAVAILABLE, not_supported
    NOT_IMPLEMENTED, bad_requestINVALID_REQUEST. Domain conditions get codes
    registered in ERROR_CODE_LEDGER (MARKETPLACE_STORAGE_FAILED,
    PLUGIN_MANIFEST_INVALID, ITEM_LOCKED, DELIVERY_NOT_ELIGIBLE, …). Swept:
    cloud-connection, plugin-auth, hono, metadata-protocol, rest,
    service-messaging, service-automation, trigger-api.

    Branch on error.code values rather than pattern-matching their case: the
    console's fix for the same rename (objectui#2977) reads codes case-insensitively
    for exactly this reason, and that is the pattern to copy in your own consumers if
    you support servers on both sides of the change.

    Four routes stop putting a code in the message slot. The webhook redeliver
    route, the API-trigger webhook, and two rest routes answered
    { success: false, error: '<code>', message } — the code occupying error, the
    declared object envelope nowhere. They now emit error: { code, message }, and
    three API-trigger branches gained a message they never had. Clients reading
    body.error as a string on those routes must read body.error.code.

    ConnectorErrorCategory / ConnectorRetryStrategy (ADR-0112 D9a):
    @objectstack/spec exported two mutually incompatible ErrorCategory types and
    two RetryStrategy types. The connector-side pair is renamed; importers of the
    integration subpath update the name. Side effect: the api-side ErrorCategory
    and RetryStrategy now appear in the generated API reference at all — the name
    collision had been silently dropping them.

    OAUTH_REGISTER_FAILED replaces an unbounded code source. The OAuth client
    registration route put better-auth's arbitrary body.error string straight into
    error.code. The code is now ours and the upstream discriminator moved to
    details.upstreamError.

    Not swept, deliberately. sys_metadata_audit.code keeps its lowercase values
    (ADR-0112 D6b): it is persisted audit history, and the same column holds
    non-error outcomes (ok, lock_override). Diagnostics records that ship inside a
    200 keep theirs (D6c), as do field-level codes (D6, #3977) and the CLI's
    --json output contract.

    A check:error-code-casing CI guard now fails on a new lowercase literal in a
    code position, since the ledger's casing rule can only police codes that someone
    registers.

Patch Changes

  • 2e836de: chore(packaging): CHANGELOG.md ships in every npm tarball (#4261)

    The AGENTS.md post-task checklist requires breaking changesets to carry their
    FROM → TO migration because "this text ships to consumers as CHANGELOG.md
    inside the npm package and is what an upgrading agent greps after the tombstone
    error." That delivery path was severed for 68 of the 69 publishable packages:
    npm packs package.json / README* / LICENSE* unconditionally but — unlike
    older npm versions — not CHANGELOG.md, and the canonical
    "files": ["dist", "README.md"] whitelist never named it. Measured on npm
    10.9.7: npm pack --dry-run on @objectstack/types shipped 3 files while its
    70KB CHANGELOG.md stayed behind. Only @objectstack/spec listed it
    explicitly.

    The tombstone-error scenario is precisely the one where the repo is out of
    reach — the upgrading agent has node_modules and nothing else — so the
    migration text has to ride in the tarball. Every publishable package now
    declares CHANGELOG.md in files, and the canonical whitelist is
    ["dist", "README.md", "CHANGELOG.md"].

    The other half is the gate: check:published-files gains a fifth invariant,
    COMPLETE — a whitelist that fails to cover CHANGELOG.md fails the
    always-required lint job, so the next package cannot silently sever the path
    again. @objectstack/spec's per-package EXTRA_ENTRIES exemption dissolves
    into the canonical set.

    Consumer-visible change: one more file per install (the package's changelog,
    e.g. 70.8KB for @objectstack/types), and grep -r "removed key" node_modules/@objectstack/*/CHANGELOG.md now finds the migration it was
    promised.

  • cc2de0e: chore(packaging): 20 packages stop publishing their sources, tests and build tooling (#4248)

    These 20 packages declared no files field, so npm fell back to packing the
    whole package directory. npm pack --dry-run on @objectstack/plugin-webhooks
    listed 21 files — 15 under src/, three of them unit tests
    (auto-enqueuer.test.ts, bootstrap-declared-webhooks.test.ts, …), plus the
    build-time scripts/i18n-extract.config.ts. dist/ lands on top of that at
    publish time rather than instead of it, so consumers were installing the
    TypeScript sources and the test suite alongside the artifact they asked for.

    Each now declares "files": ["dist", "README.md"], matching the 29 packages
    that already did. Nothing a consumer imports moves: every main / types /
    exports target in all 20 already resolved inside dist/, which the new
    check:published-files guard verifies rather than assumes. The visible change
    is a smaller install and a smaller dependency-scanning surface — npm pack on
    @objectstack/plugin-webhooks now yields 2 files plus dist/.

    The other half of the fix is the gate. Half the packages declaring files and
    half not was the #3786 shape — a hand-copied convention with nothing enforcing
    it, where whoever forgets the line gets no signal at all. check:published-files
    (new, wired into the always-required lint job) holds every non-private
    workspace package to four invariants: files is declared; it is
    sufficient (covers every entry point, so tightening a whitelist cannot ship
    a package that fails to resolve); it is minimal (admits no test, test-harness
    config or build script); and anything beyond dist + README.md is
    registered with a reason, reconciled in both directions so a stale exemption
    is an error rather than dead text. @objectstack/spec is the one package with
    registered extras — its .zod.ts sources, JSON Schemas, liveness ledgers and
    CHANGELOG.md are product, not build input.

    This also closes an assumption #4206 was resting on. Excluding <pkg>/scripts/**
    from the docs-drift implementation test is sound only while no package publishes
    scripts/ as runtime code; that held, but it held because someone read all three
    offenders by hand. It is now checked on every PR.

  • Updated dependencies [6a67d7a]

  • Updated dependencies [0ecc656]

  • Updated dependencies [06772eb]

  • Updated dependencies [270650f]

  • Updated dependencies [3aef718]

  • Updated dependencies [1ea6bce]

  • Updated dependencies [c1dcacd]

  • Updated dependencies [ad303ed]

  • Updated dependencies [32ccb23]

  • Updated dependencies [f5a4ef0]

  • Updated dependencies [2d3e255]

  • Updated dependencies [7d7521f]

  • Updated dependencies [5dc4d02]

  • Updated dependencies [05154a1]

  • Updated dependencies [9b6fe7c]

  • Updated dependencies [8c711fb]

  • Updated dependencies [09e4547]

  • Updated dependencies [91f4c78]

  • Updated dependencies [820eff9]

  • Updated dependencies [8d895ff]

  • Updated dependencies [f6472d7]

  • Updated dependencies [78caf51]

  • Updated dependencies [62a789b]

  • Updated dependencies [789ad63]

  • Updated dependencies [2af1988]

  • Updated dependencies [0af50a3]

  • Updated dependencies [2e836de]

  • Updated dependencies [12a19a8]

  • Updated dependencies [41dcda3]

  • Updated dependencies [c8124e5]

  • Updated dependencies [a1a4140]

  • Updated dependencies [217e2e6]

  • Updated dependencies [86a71d1]

  • Updated dependencies [d5c75e2]

  • Updated dependencies [03d26f7]

  • Updated dependencies [4384921]

  • Updated dependencies [3c628ce]

  • Updated dependencies [7cb922e]

  • Updated dependencies [1d22114]

  • Updated dependencies [b5f9397]

  • Updated dependencies [ed77493]

  • Updated dependencies [58a03d2]

  • Updated dependencies [dc530b4]

  • Updated dependencies [e59786e]

  • Updated dependencies [bcf1112]

  • Updated dependencies [9774b78]

  • Updated dependencies [b07d829]

  • Updated dependencies [a648e96]

  • Updated dependencies [a47ac06]

  • Updated dependencies [e4c61a7]

  • Updated dependencies [cc60165]

  • Updated dependencies [081aa6f]

  • Updated dependencies [91f4c78]

  • Updated dependencies [e8d0c21]

  • Updated dependencies [45dc446]

  • Updated dependencies [c1d44f7]

  • Updated dependencies [ab9fb5c]

  • Updated dependencies [f985b3f]

  • Updated dependencies [9a4932a]

  • Updated dependencies [f9fc874]

  • Updated dependencies [011b386]

  • Updated dependencies [7777e8f]

  • Updated dependencies [507b92a]

  • Updated dependencies [7309c81]

  • Updated dependencies [20bc1ec]

  • Updated dependencies [90c2b15]

  • Updated dependencies [42eeb7d]

  • Updated dependencies [01e124d]

  • Updated dependencies [7ce02eb]

  • Updated dependencies [a13827e]

  • Updated dependencies [7733604]

  • Updated dependencies [40e420f]

  • Updated dependencies [d13004a]

  • Updated dependencies [be7360c]

  • Updated dependencies [5b47ab5]

  • Updated dependencies [b09d8d9]

  • Updated dependencies [b09d8d9]

  • Updated dependencies [8675db6]

  • Updated dependencies [b09d8d9]

  • Updated dependencies [3eb1b2b]

  • Updated dependencies [59b85c0]

  • Updated dependencies [6e357ed]

  • Updated dependencies [d6938bf]

  • Updated dependencies [31e0be9]

  • Updated dependencies [4bfd455]

  • Updated dependencies [ffd2ce2]

  • Updated dependencies [62f8017]

  • Updated dependencies [a831df1]

  • Updated dependencies [f752ee3]

  • Updated dependencies [a1b61e0]

  • Updated dependencies [cd6b9f2]

  • Updated dependencies [2cb6d3c]

  • Updated dependencies [af2a095]

  • Updated dependencies [ec796d5]

  • Updated dependencies [e87fea1]

  • Updated dependencies [c65e529]

  • Updated dependencies [3ca34c1]

  • Updated dependencies [239c3a3]

  • Updated dependencies [94a0bbc]

  • Updated dependencies [d6bfb3d]

  • Updated dependencies [a2266a6]

  • Updated dependencies [d25a0ec]

  • Updated dependencies [667b83e]

  • Updated dependencies [627b188]

  • Updated dependencies [8d4eae7]

  • Updated dependencies [857a6cf]

  • Updated dependencies [65a3a84]

  • Updated dependencies [ccd9397]

  • Updated dependencies [bca935b]

  • Updated dependencies [d92c72d]

  • Updated dependencies [c54c822]

  • Updated dependencies [8dcc0f5]

  • Updated dependencies [75b9e51]

  • Updated dependencies [0a2f233]

  • Updated dependencies [8621cdd]

  • Updated dependencies [6f23667]

  • Updated dependencies [5d21a48]

  • Updated dependencies [19365b7]

  • Updated dependencies [b7ed26d]

  • Updated dependencies [b3a3d83]

  • Updated dependencies [7a55913]

  • Updated dependencies [35accbf]

  • Updated dependencies [6038de7]

  • Updated dependencies [eb95d97]

  • Updated dependencies [e4c2dc8]

  • Updated dependencies [1bd2795]

  • Updated dependencies [8186a70]

  • Updated dependencies [a329cca]

  • Updated dependencies [6eec18c]

  • Updated dependencies [4d7bebf]

  • Updated dependencies [821ac7a]

  • Updated dependencies [8f81731]

  • Updated dependencies [8b50cb3]

  • Updated dependencies [8c2db68]

  • Updated dependencies [22b5e54]

  • Updated dependencies [0166bd5]

  • Updated dependencies [9b702dc]

  • Updated dependencies [ab16331]

    • @objectstack/spec@17.0.0-rc.1
    • @objectstack/core@17.0.0-rc.1