diff --git a/.release-please-manifest.json b/.release-please-manifest.json index e7ca613..64f3cdd 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.7.0" + ".": "0.8.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 163f9ef..1749a15 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +## [0.8.0](https://github.com/kernel/hypeman-ts/compare/v0.7.0...v0.8.0) (2026-08-21) + + +### Features + +* Repair SDK tracking generation ([a6716d0](https://github.com/kernel/hypeman-ts/commit/a6716d0c0b912758dd05cdafa826b9ba35657aca)) + ## [0.7.0](https://github.com/kernel/hypeman-ts/compare/v0.6.0...v0.7.0) (2026-08-17) diff --git a/package-lock.json b/package-lock.json index 1126dc1..f12f526 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@onkernel/hypeman", - "version": "0.7.0", + "version": "0.8.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@onkernel/hypeman", - "version": "0.7.0", + "version": "0.8.0", "license": "Apache-2.0", "dependencies": { "dockerode": "^4.0.10", diff --git a/package.json b/package.json index 98efff1..0344a9f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@onkernel/hypeman", - "version": "0.7.0", + "version": "0.8.0", "description": "The official TypeScript library for the Hypeman API", "author": "Hypeman <>", "types": "dist/index.d.ts", diff --git a/src/resources/instances/instances.ts b/src/resources/instances/instances.ts index 5e6f30c..9c48927 100644 --- a/src/resources/instances/instances.ts +++ b/src/resources/instances/instances.ts @@ -40,9 +40,8 @@ export class Instances extends APIResource { } /** - * Update mutable properties of a running instance. Currently supports updating - * only the environment variables referenced by existing credential policies, - * enabling secret/key rotation without instance restart. + * Update mutable instance properties. TTL values are relative to when the update + * is committed. Expiration updates are rejected after the current deadline passes. * * @example * ```ts @@ -445,6 +444,12 @@ export interface Instance { */ created_at: string; + /** + * Absolute expiration time, or null when automatic expiration is disabled. + * Instance TTL is cleared on fork. + */ + expires_at: string | null; + /** * OCI image reference */ @@ -1092,6 +1097,12 @@ export interface InstanceCreateParams { */ env?: { [key: string]: string }; + /** + * Absolute expiration time. Must be in the future and is mutually exclusive with + * ttl. + */ + expires_at?: string; + /** * GPU configuration for the instance */ @@ -1172,6 +1183,13 @@ export interface InstanceCreateParams { */ tags?: { [key: string]: string }; + /** + * Relative lifetime from instance creation, in Go duration format. Use "0s" or + * omit both expiration fields to disable automatic expiration. Mutually exclusive + * with expires_at. + */ + ttl?: string; + /** * Number of virtual CPUs */ @@ -1321,6 +1339,12 @@ export interface InstanceUpdateParams { */ env?: { [key: string]: string }; + /** + * Absolute expiration time. Must be in the future and is mutually exclusive with + * ttl. + */ + expires_at?: string; + /** * Workload health check policy. Health is reported separately from instance * lifecycle state. @@ -1331,6 +1355,12 @@ export interface InstanceUpdateParams { * Whole-instance restart supervision policy. */ restart_policy?: RestartPolicy; + + /** + * Relative lifetime from when this update is committed, in Go duration format. Use + * "0s" to disable automatic expiration. Mutually exclusive with expires_at. + */ + ttl?: string; } export interface InstanceListParams { diff --git a/src/version.ts b/src/version.ts index d9da9f7..23f967c 100644 --- a/src/version.ts +++ b/src/version.ts @@ -1 +1 @@ -export const VERSION = '0.7.0'; // x-release-please-version +export const VERSION = '0.8.0'; // x-release-please-version diff --git a/tests/api-resources/instances/instances.test.ts b/tests/api-resources/instances/instances.test.ts index 8a50464..fa110bc 100644 --- a/tests/api-resources/instances/instances.test.ts +++ b/tests/api-resources/instances/instances.test.ts @@ -50,6 +50,7 @@ describe('resource instances', () => { disk_io_bps: '100MB/s', entrypoint: ['/bin/sh', '-c'], env: { PORT: '3000', NODE_ENV: 'production' }, + expires_at: '2026-08-21T18:00:00Z', gpu: { profile: 'L40S-1Q' }, health_check: { exec: { command: ['curl', '-f', 'http://localhost:4318/'], working_dir: '/app' }, @@ -98,6 +99,7 @@ describe('resource instances', () => { standby_compression_delay: '2m', }, tags: { team: 'backend', env: 'staging' }, + ttl: '24h', vcpus: 2, volumes: [ {