Skip to content

chore(deps): bump all @constructive-io/* and graphile-* packages to latest#29

Merged
pyramation merged 3 commits intomainfrom
devin/1776504278-bump-constructive-deps
Apr 18, 2026
Merged

chore(deps): bump all @constructive-io/* and graphile-* packages to latest#29
pyramation merged 3 commits intomainfrom
devin/1776504278-bump-constructive-deps

Conversation

@pyramation
Copy link
Copy Markdown
Contributor

@pyramation pyramation commented Apr 18, 2026

Summary

Pure dependency bump across the workspace, plus a small CLI codegen runtime fix that is required to unblock lerna publish / prepack on the @agentic-db/cli package. No other code changes — only package.json specifiers, the resulting pnpm-lock.yaml churn, and sdk/cli/generated/cli/embedder.ts.

Versions moved:

Package From To
graphile-build 5.0.0-rc.6 5.0.0
graphile-build-pg 5.0.0-rc.8 5.0.1
graphile-config 1.0.0-rc.6 1.0.1
graphile-utils 5.0.0-rc.8 5.0.1
postgraphile 5.0.0-rc.10 5.0.1
@constructive-io/graphql-test ^4.9.10 ^4.11.1
@constructive-io/graphql-codegen 4.30.0 4.30.1
@constructive-io/graphql-query 3.12.11 3.14.1
@constructive-io/graphql-types 3.4.3 3.5.0
@constructive-io/node ^0.10.0 / ^0.10.1 ^0.10.2 (provision, rag, worker)
graphile-settings 4.18.5 / 4.21.0 4.21.1 (aligned across packages/agentic-db + integration-tests)
graphile-test ^4.7.6 ^4.9.0
pgsql-test ^4.7.6 ^4.9.0 (root, packages/agentic-db, integration-tests, cli-e2e-tests, agentic-db-services)

Headliner: the graphile-* and postgraphile family finally graduates from RC tags to stable (5.0.0 / 5.0.1 / 1.0.1). Pinned in the root pnpm overrides block so transitive resolution collapses onto one copy.

Additional fix — unblock prepack tsc on @agentic-db/cli

Running lerna publish failed on @agentic-db/cli's prepack (makage buildtsc) with 74 TS2345 errors across all 37 generated generated/cli/commands/*.ts files, e.g.:

generated/cli/commands/activity-log.ts:128:49 - error TS2345:
  Argument of type 'ActivityLogFilter' is not assignable to parameter of
  type 'Record<string, unknown>'. Index signature for type 'string' is
  missing in type 'ActivityLogFilter'.

128   findManyArgs.where = await autoEmbedWhere(findManyArgs.where ?? {}, ['embedding'], embedder);

The upstream CLI codegen (@constructive-io/graphql-codegen@4.30.1) emits calls like
autoEmbedWhere(findManyArgs.where ?? {}, [...], embedder) and
autoEmbedInput(cleanedData, [...], embedder) where the first argument is a concrete
*Filter / *Patch type, but the runtime helpers were typed to accept
Record<string, unknown>. Generated filter/patch types don't have a string index
signature, so every call site errored under strict tsc. CI is green because the
orm-tests / cli-e2e-tests / rag-tests jobs go through ts-jest, which is
lenient about index-signature / excess-property checks — only the publish build
runs strict tsc.

Fix in sdk/cli/generated/cli/embedder.ts: make both helpers generic and cast to
Record<string, unknown> internally for field-name indexing. Runtime behavior is
unchanged (mutation in place, same return semantics).

// before
export async function autoEmbedWhere(
  where: Record<string, unknown>, 
): Promise<Record<string, unknown>>

// after
export async function autoEmbedWhere<T extends object>(
  where: T, 
): Promise<T>

sdk/cli now builds cleanly (tsc CJS + ESM), and sdk/sdk is unaffected. The
long-term home for this fix is the upstream @constructive-io/graphql-codegen
embedder.ts template (graphql/codegen/src/core/codegen/templates/embedder.ts);
I'll file a follow-up PR against constructive-io/constructive so the next
regen replaces this patched file with an equivalently-typed one.

Updates since last revision

Review & Testing Checklist for Human

  • pnpm-lock.yaml diff is large because almost every graphile-config / graphile-build coordinate in transitive peer hashes re-keyed. Spot-check that the lockfile has exactly one resolved version per package (no duplicate RC + stable copies). Searching for 5.0.0-rc should return zero hits outside of the grafast / @dataplan/* / pg-sql2 / tamedevil overrides that we're deliberately still pinning to RC.
  • Version-identity traps across workspaces — all five pgsql-test consumers are now on ^4.9.0 and both graphile-settings consumers are on 4.21.1, but worth eyeballing in case one was missed.
  • Pre-existing pnpm build TypeScript errors in packages/provision are NOT caused by this PR. Confirmed by stashing the bumps and re-running build on the same commit — identical errors ('ref' / 'table_ref' / 'source_ref' not on BlueprintTable / BlueprintIndex / BlueprintRelation). It's a drift between packages/provision/src/schemas/*.ts and the node-type-registry@0.16.0 type definitions. Separate cleanup; please don't block this PR on it.
  • Generated file edited by hand (sdk/cli/generated/cli/embedder.ts) — next pnpm generate:all will overwrite this unless the upstream template is fixed first. Tracked as a follow-up in constructive-io/constructive.

Test plan

  1. CI — all 7 jobs should remain green (the embedder fix is type-only; runtime semantics unchanged).
  2. cd sdk/cli && pnpm build — reproduces the 74 TS2345 errors before the fix; compiles cleanly after.
  3. Local sanity: pnpm install && pnpm -C packages/agentic-db exec jest — the unified-search + spatial tests are the thinnest layer over the bumped plugin stack.

Notes

  • @constructive-io/node@0.10.2 is just a re-export of @constructive-io/sdk@0.14.2; same public surface.
  • Did not touch grafast / @dataplan/json / @dataplan/pg / pg-sql2 / tamedevil overrides — they're still on RC tags because that's what the rest of the ecosystem is pinning.
  • graphile-worker was already on ^0.16.6 (latest); no change needed.
  • node-type-registry was already on ^0.16.0 (latest); no change needed.

Link to Devin session: https://app.devin.ai/sessions/fabecb6a46504fc293feca22d9cc91d4
Requested by: @pyramation

@devin-ai-integration
Copy link
Copy Markdown

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

…atest

- graphile-build/-pg/-config/-utils/postgraphile: 5.0.0-rc.* -> 5.0.x (stable graduation)
- @constructive-io/graphql-test: 4.9.10 -> 4.11.1
- @constructive-io/graphql-codegen: 4.30.0 -> 4.30.1
- @constructive-io/graphql-query: 3.12.11 -> 3.14.1
- @constructive-io/graphql-types: 3.4.3 -> 3.5.0
- @constructive-io/node: 0.10.1 -> 0.10.2 (across provision/rag/worker)
- graphile-settings: 4.18.5/4.21.0 -> 4.21.1 (aligned across workspaces)
- graphile-test: 4.7.6 -> 4.9.0
- pgsql-test: 4.7.6 -> 4.9.0

All package.json dep bumps only; no code changes. pnpm install clean,
existing tests (including the new unified-spatial-combined test) still pass.
…blish tsc passes

The generated embedder.ts typed `where`/`data` as `Record<string, unknown>`,
which made every call site (`findManyArgs.where = await autoEmbedWhere(...)`,
`await autoEmbedInput(cleanedData, ...)`) error under `prepublishOnly` /
`prepack` strict `tsc` because `*Filter` and `*Patch` types have no string
index signature. CI passes via `ts-jest` (which is lenient about excess-property /
index-signature checks), but `makage build` on publish is strict and fails on
all 38 generated CLI command files.

Make the two helpers generic (`<T extends object>(where: T, ...): Promise<T>`)
and cast to `Record<string, unknown>` internally for the field-name indexing.
Preserves the runtime behavior (mutation in place, same return semantics) and
eliminates the 74 TS2345 errors in `generated/cli/commands/*.ts`.

The long-term fix belongs in the upstream `@constructive-io/graphql-codegen`
embedder.ts template; filed as follow-up.
@devin-ai-integration devin-ai-integration bot force-pushed the devin/1776504278-bump-constructive-deps branch from f6a9249 to 2c465a1 Compare April 18, 2026 09:48
@pyramation pyramation merged commit 38eabdb into main Apr 18, 2026
8 checks passed
devin-ai-integration bot pushed a commit to constructive-io/constructive that referenced this pull request Apr 18, 2026
…der template

The CLI codegen emits calls like `findManyArgs.where = await autoEmbedWhere(findManyArgs.where ?? {}, ['embedding'], embedder)` and `await autoEmbedInput(cleanedData, ['embedding'], embedder)` where the first argument is a concrete `*Filter` / `*Patch` type produced by `input-types.ts`. Those generated types don't have a string index signature, so under strict `tsc` every call site errors with:

    error TS2345: Argument of type 'XxxFilter' is not assignable to
    parameter of type 'Record<string, unknown>'. Index signature for
    type 'string' is missing in type 'XxxFilter'.

CI for consumers (agentic-db et al.) passes via `ts-jest`, which is lenient about index-signature / excess-property checks, but `makage build` on publish is strict and fails across all generated `commands/*.ts` files.

Make both helpers generic (`<T extends object>(x: T, ...): Promise<T>`) and cast to `Record<string, unknown>` internally for the field-name indexing. Runtime behavior is unchanged (mutation in place, same return semantics), and call sites now type-check as-is without any generator change.

Consumer-side point fix already landed in constructive-io/agentic-db#29; this PR fixes the upstream template so the next `pnpm generate:all` in any consumer emits a correctly-typed `embedder.ts`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant