Roadmap & Known Limitations

What's still open, why, and the exact action that closes it. Items leave this page when a committed cassette or a merged change resolves them — this is the verify-first convention's working list (see Contributing § the live-verification convention and Architecture § the live-verification convention for the why).

Recording a cassette yourself: every "Unverified live" item below has a matching TestVerify* test that SKIPS until you capture a success-path cassette with ZAI_RECORD=1. The harness redacts Authorization to Bearer REDACTED before saving — confirm with grep "Bearer " pkg/client/testdata/cassettes/<name>.yaml before committing.

ZAI_RECORD=1 ZAI_API_KEY=<real-key> go test -run TestVerify<Name> ./pkg/client

Unverified live

Two groups: services whose success-path response shape isn't captured yet, and fields added in the 2026-07-18 sprint that match the docs but aren't pinned by a cassette.

Services needing a success-path cassette

The dev account used so far has no PAYG balance / entitlement for these, so only their request shape and error paths are confirmed. A cassette that captures a real success response closes each item.

Fields added in the 2026-07-18 sprint, pending a cassette

These fields were added to pkg/client/types.go / chat.go to match the current docs.z.ai chat-completion spec. They're additive and unit-tested, but NOT VERIFIED LIVE until a cassette pins the exact wire shape. Each has a TestVerify* test ready to record.

Older open questions (no dedicated test yet)

Not implemented

Shipped (kept for orientation)

Deliberately not implemented