github nirvana-labs/nirvana-typescript v1.78.0

10 hours ago

1.78.0 (2026-04-17)

Full Changelog: v1.77.1...v1.78.0

Features

  • api: add update method to nks.clusters.loadBalancers (d6b7a02)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

Greptile Summary

This automated release (1.77.1 → 1.78.0) adds a PATCH /v1/nks/clusters/{cluster_id}/load_balancers/{load_balancer_id} endpoint exposed as client.nks.clusters.loadBalancers.update(), along with documentation, MCP server wiring, and migration config. It also refactors AuditLog.Target (previously a nested interface in the AuditLog namespace) into the top-level AuditLogTarget export — a change that is not reflected in the CHANGELOG and may be breaking for TypeScript consumers who referenced AuditLog.Target directly.

Confidence Score: 5/5

Safe to merge — the new update method is correctly implemented and all findings are P2 or lower.

No P0/P1 issues found. The core implementation (path construction, body extraction, return type) is correct. The two P2 notes are: (1) an undocumented removal of the AuditLog.Target nested interface that may affect TypeScript consumers in a minor version bump, and (2) a misleading test name. Neither blocks merge.

src/resources/audit-logs/audit-logs.ts — verify the AuditLog.Target removal is intentional and consider adding a CHANGELOG entry.

Important Files Changed

Filename Overview
src/resources/nks/clusters/load-balancers.ts Adds update method (PATCH) to LoadBalancers resource; correctly destructures cluster_id from params to use in path while sending only body in the request payload.
src/resources/audit-logs/audit-logs.ts Refactors AuditLog.Target nested interface into a top-level exported AuditLogTarget; removes the previously public AuditLog.Target type which is a semver-breaking change shipped as a minor version.
tests/api-resources/nks/clusters/load-balancers.test.ts Adds two skipped tests for update; both tests use identical inputs despite one being named "required and optional params" (no optional params exist in LoadBalancerUpdateParams).
bin/migration-config.json Adds migration config for nks.clusters.loadBalancers.update documenting the old positional-path-param signature vs. the new params-object signature.
packages/mcp-server/src/methods.ts Registers nks.clusters.loadBalancers.update PATCH method in the MCP SDK method registry.
packages/mcp-server/src/code-tool.ts Updates the MCP code-tool prompt example to replace deprecated cpu_config/memory_config/nvme with instance_type: 'n1-standard-2' and abs boot volume type.
packages/mcp-server/src/local-docs-search.ts Adds embedded docs entry for nks.clusters.loadBalancers.update with full parameter/response schema, multi-language examples (TypeScript, Go, CLI, curl).
README.md Updates all VM creation quickstart examples consistently: type: 'abs', region: 'us-sva-2', and instance_type: 'n1-standard-2' replacing cpu_config/memory_config.

Sequence Diagram

sequenceDiagram
    participant Client as TypeScript Client
    participant SDK as LoadBalancers Resource
    participant API as Nirvana API

    Client->>SDK: loadBalancers.update(loadBalancerID, { cluster_id, public_ip_enabled })
    Note over SDK: Destructures cluster_id from params<br/>Sends { public_ip_enabled } as body
    SDK->>API: PATCH /v1/nks/clusters/{cluster_id}/load_balancers/{load_balancer_id}
    API-->>SDK: Operation { id, status, kind, ... }
    SDK-->>Client: APIPromise<Operation>
Loading
Prompt To Fix All With AI
This is a comment left during a code review.
Path: src/resources/audit-logs/audit-logs.ts
Line: 112-124

Comment:
**Potentially undocumented breaking change for `AuditLog.Target`**

The nested `AuditLog.Target` interface (previously `export interface Target` inside `export namespace AuditLog`) is removed and replaced with the top-level `AuditLogTarget`. Any consumer who referenced `NirvanaLabs.AuditLog.Target` or imported `AuditLog` and used `AuditLog.Target` as a TypeScript type will get a compile error after upgrading. This change is not mentioned in the CHANGELOG for 1.78.0. Consider adding an entry or verifying that the breaking-change policy allows shipping this in a minor version bump.

How can I resolve this? If you propose a fix, please make it concise.

Don't miss a new nirvana-typescript release

NewReleases is sending notifications on new releases.