Skip to content

Releases

1.0.19 — Package version bump

Choose a tag to compare

@tobrien tobrien released this 03 Apr 13:44
8142550

Summary

This release is a metadata-only update that bumps the package version to 1.0.19.

Changes

  • Version bump: package.json updated from a 1.0.19-dev.0 development version to the final 1.0.19 release version.

Impact

  • Users: No runtime or behavior changes. Installing @kjerneverk/execution-gemini@1.0.19 should be functionally identical to the prior build, aside from the published version identifier.
  • Developers: No code, build, or dependency changes beyond the version field update.

Breaking changes

  • None detected (only a package.json version change).

1.0.18: Fix publish workflow by ignoring package-lock and tracking KodrDriv config

Choose a tag to compare

@tobrien tobrien released this 30 Mar 06:21
56e3f79

Summary

This release is focused on repository/publish hygiene rather than runtime behavior: it stabilizes publishing by ensuring package-lock.json is not tracked/committed and by committing the KodrDriv publish configuration that enforces that policy.

There are no functional/API changes to the library itself in this release.

Changes

Publishing / repo hygiene

  • Stop tracking and committing package-lock.json.
    • package-lock.json is now gitignored.
    • CI already performs installs without a committed lockfile (and explicitly removes any existing lockfile before installing).
  • Track KodrDriv publish configuration in the repo.
    • .kodrdriv/config.yaml is now committed (while other .kodrdriv/* files remain ignored).
    • KodrDriv is configured with publish.lockfilePolicy: ignore to avoid publish failures caused by a dirty lockfile during pre-publish steps.

Versioning

  • Package version bumped to 1.0.18.

Impact

  • Users: No runtime or API changes expected.
  • Developers/maintainers:
    • Do not commit package-lock.json; local installs may generate it, but it should remain untracked.
    • Publishing should be more reliable because the workflow no longer fails due to lockfile changes that aren’t part of the release.

Breaking changes

  • None detected in code or public API for this release. The main change is repository policy (lockfile is no longer committed).

1.0.17: Package version bump (no code changes)

Choose a tag to compare

@tobrien-agent tobrien-agent released this 30 Mar 04:13
7aa6f9b

Summary

This release contains no functional or code changes. It updates package metadata to publish version 1.0.17.

Changes

  • Chore: Bumped package.json version to 1.0.17 (from the previous 1.0.16 on main; an intermediate 1.0.17-dev.0 bump occurred during the release process).

Impact

  • Users: No runtime behavior changes; upgrading should be low risk.
  • Developers: No API changes; no build/test/lint changes.

Breaking changes

  • None detected.

1.0.16: Package version bump (no code changes)

Choose a tag to compare

@tobrien-agent tobrien-agent released this 30 Mar 04:00
c3d1325

Summary

This release is a packaging/metadata update only. There are no functional code changes from main to HEAD.

Changes

  • Bumped @kjerneverk/execution-gemini package version to 1.0.16 (package.json).
    • The release branch included an intermediate 1.0.16-dev.0 version bump commit, followed by the final 1.0.16 release bump.

Impact

  • Users: No runtime behavior changes expected.
  • Developers/Maintainers: Only version metadata changed; build/test behavior and dependencies are unchanged in this release range.

Breaking changes

  • None detected (and no API/code changes were included in this release).

1.0.15 — Package version bump (no functional changes)

Choose a tag to compare

@tobrien-agent tobrien-agent released this 30 Mar 02:50
65bfeb2

Summary

This release contains no code or dependency changes relative to main. It only updates the package version metadata to 1.0.15.

Changes

  • Packaging
    • Bumped package.json version to 1.0.15.

Impact

  • Users: No runtime behavior changes. Upgrading from main (or v1.0.14) to 1.0.15 should be risk-free and should not require any code changes.
  • Developers/Maintainers: Release-only change; intended to publish the next stable version.

Breaking changes

  • None detected.

1.0.14

Choose a tag to compare

@tobrien-agent tobrien-agent released this 30 Mar 02:47
c85b1a0

Summary

This release is a packaging-only update: it bumps the published package version to 1.0.14 with no functional/code changes.

Changes

  • Packaging
    • Updated package.json version from 1.0.13 to 1.0.14.

Impact

  • Users: No runtime behavior changes. Upgrading from 1.0.13 to 1.0.14 should be risk-free and require no code updates.
  • Developers/Maintainers: No dependency, build, or test changes in this release.

Breaking changes

  • None detected.

1.0.13: Stop tracking `package-lock.json` and enforce lockfile ignore policy

Choose a tag to compare

@tobrien-agent tobrien-agent released this 30 Mar 02:31
a38c9db

Summary

This release is primarily repository hygiene and release housekeeping. There are no functional/runtime code changes to the Gemini execution provider itself.

Changes

Release/versioning

  • Bumped package version to 1.0.13 in package.json.

Dependency/lockfile policy

  • Removed package-lock.json from the repository and updated .gitignore to ignore:
    • package-lock.json
    • .kodrdriv* artifacts (including .kodrdriv*package-lock.json)

This aligns the repo with a “do not commit lockfiles” policy.

Impact

For library consumers

  • No API or behavior changes expected from this release (no source changes were included in the diff).
  • Installation should continue to work normally via npm; you’ll simply no longer see a lockfile committed in this repo.

For contributors/maintainers

  • Do not commit package-lock.json going forward; it is now intentionally ignored.
  • If you had automation or checks that depended on a tracked lockfile, update them to reflect that lockfiles are not part of the repo state.

Breaking changes

  • No breaking changes to the public library API were detected in this release.
  • Workflow note (repo policy change): projects or processes expecting package-lock.json to be present in the repository will need adjustment.

1.0.12 — Migrate Gemini client to `@google/genai`, improve proxy support, and harden secret/error handling

Choose a tag to compare

@tobrien tobrien released this 22 Mar 05:27
a5f95e6

Main changes

Gemini SDK migration (@google/generative-ai → @google/genai)

This release moves the provider implementation to Google’s unified GenAI SDK (@google/genai) and updates the request/response plumbing accordingly.

What this means in practice:

  • Requests now use GoogleGenAI and the newer models.generateContent / chats.create(...).sendMessage(...) APIs.
  • Multi-turn conversations are handled by building chat history and sending the final user message via a chat session when appropriate.
  • Token usage is reported from the new SDK’s usageMetadata fields.

Structured output via JSON Schema: compatibility handling

When request.responseFormat?.type === 'json_schema', the provider now:

  • Sets responseMimeType = 'application/json'
  • Supplies responseJsonSchema, after stripping fields that Gemini’s schema support doesn’t accept (currently removing additionalProperties and $schema, and applying the same cleanup recursively to nested properties / items)

This reduces failures when passing “full” JSON Schemas commonly produced by validators/tools.

Proxy support for SDK traffic (via global fetch override during calls)

Because @google/genai uses the global fetch, proxying is implemented by temporarily replacing globalThis.fetch for the duration of the API call:

  • Reads proxy URL from HTTPS_PROXY, HTTP_PROXY (and lowercase variants)
  • Respects NO_PROXY / no_proxy hostname bypass rules (including * and domain suffix matching)
  • Respects NODE_TLS_REJECT_UNAUTHORIZED=0 to disable TLS verification in the proxy agent

If a proxy is configured, Gemini requests are routed through undici’s ProxyAgent; otherwise, normal execution is used.

Secret and error sanitization

The provider now proactively guards against API key leakage:

  • Registers Gemini API key patterns with @utilarium/offrecord
  • Uses @utilarium/spotclean to sanitize thrown errors (including optional stack trace sanitization in production)

This is intended to prevent accidentally logging or propagating Gemini API keys in error messages.

Dependency and tooling updates

  • Adds/uses @google/genai (runtime dependency)
  • Adds/uses @utilarium/offrecord and @utilarium/spotclean (runtime dependencies)
  • Lockfile and dev dependency refresh (eslint/typescript/vitest/vite, etc.)
  • Docs updated (README.md, guide/index.md) to reflect the new SDK and current model families

Breaking changes / important considerations

Potential breaking: Gemini SDK dependency change

If your application depended (directly or indirectly) on the older Gemini SDK (@google/generative-ai) behavior, note that this package now targets @google/genai. You should:

  • Ensure @google/genai is available/resolvable in your environment
  • Revalidate any assumptions about response fields and token usage reporting

Important: proxy implementation temporarily overrides globalThis.fetch

Proxy support works by swapping the global fetch inside withProxyFetch(...) and restoring it in a finally block. While scoped to the execution call, it is still a global side effect and may matter in highly concurrent environments that also rely on a custom global fetch.

Files/themes touched

  • Provider implementation: src/index.ts (SDK migration, JSON schema prep, safer errors)
  • Proxying: src/proxy.ts (NO_PROXY support, TLS handling, fetch override approach)
  • Docs: README.md, guide/index.md
  • Build/tests: vite.config.ts, tests/index.test.ts
  • Deps: package.json, package-lock.json

1.0.11 — Packaging metadata + prerelease publish hardening

Choose a tag to compare

@tobrien tobrien released this 20 Mar 14:54
ba87b8e

Main story

This release focuses on making publishing and dependency management more reliable and repeatable. It hardens prerelease publish validation, updates package/dependency metadata, and begins tracking the npm lockfile to keep installs deterministic.

Changes

Publish & release process reliability

  • Hardened prerelease publish prechecks so prerelease validation and policy checks behave consistently.
  • Added publishConfig.tag: dev in package.json to ensure prerelease publishes go to the expected npm dist-tag (helps avoid accidental publication to latest and aligns automation with prerelease workflows).
  • Committed package-lock.json (large addition) to make installs reproducible across CI and developer machines and to support lockfile-based checks.

Note: the lockfile currently contains a 1.0.11-dev.0 version string internally, reflecting how it was generated during prerelease work. The release version for this build is 1.0.11 (as in package.json).

Dependency & metadata updates

  • Updated package.json metadata and bumped dependency/devDependency versions (notably tooling like TypeScript, ESLint, Vite, Vitest, and Node types), aligning the project with newer toolchain releases.

Repo hygiene

  • Minor .gitignore cleanup (1-line change).

Impact

For users (consumers of the package)

  • No functional runtime behavior changes were introduced in this range; this release is primarily packaging and tooling related.
  • Dependency updates may change your transitive dependency tree slightly (via updated resolutions), but the public API/behavior is not targeted here.

For developers (contributors/maintainers)

  • More predictable installs due to the committed lockfile.
  • More robust prerelease publishing and automation due to explicit npm tagging and stricter prechecks.

Breaking changes

  • None identified from main to HEAD in this release.

1.0.10 — Proxy support for Gemini API requests

Choose a tag to compare

@tobrien tobrien released this 04 Mar 16:00
524de28

Main changes

Proxy support for Gemini API requests

Gemini API calls can now be routed through an HTTP(S) proxy when proxy environment variables are set. This is primarily for environments where outbound traffic must go through a corporate proxy.

What it does

  • Detects proxy configuration from standard environment variables:
    • HTTPS_PROXY / https_proxy
    • HTTP_PROXY / http_proxy
  • Routes requests through the proxy using undici’s ProxyAgent.
  • Respects proxy bypass lists via:
    • NO_PROXY / no_proxy (comma-separated, supports *, exact host matches, and domain suffix matches like .example.com)
  • Respects TLS verification configuration via:
    • NODE_TLS_REJECT_UNAUTHORIZED
    • TLS verification is only disabled when NODE_TLS_REJECT_UNAUTHORIZED='0'; otherwise TLS verification remains enabled.

Important implementation detail

  • The @google/generative-ai SDK does not expose a way to provide a custom fetch, so this package temporarily replaces globalThis.fetch only for the duration of the Gemini call when a proxy is configured.
  • If no proxy environment variable is set, behavior is unchanged (no fetch override).

Impact

  • Users behind proxies can use the provider without custom networking workarounds.
  • Users who rely on a custom globalThis.fetch should be aware that it will be temporarily overridden during Gemini requests when a proxy is enabled.

Versioning / packaging

  • package.json version bumped to 1.0.10.

Breaking changes

  • No explicit breaking changes were detected in the diff.
  • Operational note (behavioral consideration): when proxying is enabled, globalThis.fetch is temporarily replaced during request execution. If your application depends on a customized global fetch implementation, validate behavior in your environment.

How to use

Set environment variables before running:

  • Proxy routing:
    • HTTPS_PROXY=http://proxy.company:8080 (or HTTP_PROXY=...)
  • Bypass proxy for certain hosts:
    • NO_PROXY=localhost,127.0.0.1,.internal.company
  • (Optional) disable TLS verification (not recommended except for controlled debugging):
    • NODE_TLS_REJECT_UNAUTHORIZED=0