Skip to content

chore(release): 1.0.0 - #15

Merged
coyl merged 10 commits into
mainfrom
release/v1.0.0
Oct 23, 2026
Merged

coyl merged 10 commits into
mainfrom
release/v1.0.0

Conversation

@coyl

@coyl coyl commented Oct 22, 2026 •

Copy link
Copy Markdown
Contributor

Prepares ktms-admin 1.0.0, paired with Keystone. The Model Switchboard. (KTMS) 1.0.0 (ai-process/ktms#88). Tag v1.0.0 after both PRs merge.

What changes

Kept on purpose

  • The deprecated LLM_PROXY_* settings, which still work with a warning until 2.0.
  • The database name in examples/compose.yaml, so existing example installs keep their data.

Verification

  • go vet passes, and so does go test -race ./....
  • node --check passes on all modules.
  • The workflow YAML parses.

Synced with main on 2026-10-23: CHANGELOG [1.0.0] now includes the Unreleased entries (dated 2026-10-23; set the date on release day); README has a compatibility table with the other two components.

- images publish only as coyl/ktms-admin; the legacy coyl/llm-proxy-admin repository gets no new
  releases after 0.4.0
- the Go module, the binary and the console's CSRF header value are named ktms-admin
- README names the gateway Keystone. The Model Switchboard. (KTMS); proto synced with ktms main
- CHANGELOG 1.0.0
@coyl
coyl marked this pull request as draft October 22, 2026 19:23
coyl added 3 commits October 22, 2026 22:02
Brings the sign-in methods, the ai-process.dev palette and the Apache 2.0
relicense into the release. New packages and tests move to the
ktms-admin module path; the 1.0.0 CHANGELOG covers them.
coyl added 5 commits October 23, 2026 16:04
* test: end-to-end run against KTMS and light-tokenmeter main

scripts/e2e.sh builds both services from their main branches, turns
light-tokenmeter's authentication on, and drives the console's API:
health, models, vendor keys, rules, client keys, spend limits,
organizations and teams, a playground call through a mock vendor, its
usage report, and a token without the read scope shown as refused.
It runs on every pull request and daily.

* test(e2e): bounded waits, error bodies, pinned pair for PRs, daily main run

- Every wait and request is bounded; the job times out after 30 min.
- A refused call prints the console's error body; build, clone and
  setup failures dump logs through fail().
- PRs test the pair in scripts/e2e.refs; a separate daily workflow tests
  KTMS and light-tokenmeter main.
- The revoked key is checked to be disabled; usage is queried from the
  day before the call; organization creation is checked.
* feat(keys): key policies, per-key spend and prompt-cache prices

The Keys page shows each key's policy and its spend against its caps, edits
the policy in a dialog and sets rates when minting; team leads do it for their
team's keys only. The model editor takes cache read and write prices and the
prompt_cache capability. Proto synced from KTMS; the e2e test covers policy
and spend and runs against the 1.0 release branches.

* fix(keys): key spend from one bounded endpoint; model choices follow the team

GET /api/proxy/key-spend reads every visible active key's spend at most
eight at a time, with caps from GetSpend, so wildcard caps show and team
leads see their keys' spend; an unreadable key says unknown. The policy
dialog offers the team's allowed models when it has a list, else the
gateway's, else a text field.
* ci: proto/ktms/v1 must match KTMS, and internal/gen the copy

A proto job compares the copy with KTMS at the ref the e2e test uses and
regenerates internal/gen, so the console's contract cannot drift from the
gateway's unnoticed.

* ci: whole-directory proto check in a script, pinned plugins, daily main run

scripts/proto-check.sh clones KTMS at KTMS_REF or the e2e pair, diffs the
whole proto/ktms/v1 directory and regenerates internal/gen from scratch, so
added or removed files count. The generator plugins are pinned, and the
daily main run checks the protocol too.
@coyl
coyl marked this pull request as ready for review October 23, 2026 18:10
@coyl
coyl merged commit 8ef26b2 into main Oct 23, 2026
4 checks passed
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