Skip to content

Release v1.5.0#48

Merged
jpr5 merged 8 commits intomainfrom
release/v1.5.0
Mar 20, 2026
Merged

Release v1.5.0#48
jpr5 merged 8 commits intomainfrom
release/v1.5.0

Conversation

@jpr5
Copy link
Copy Markdown
Contributor

@jpr5 jpr5 commented Mar 20, 2026

Summary

Release v1.5.0 — major feature additions, bug fixes, documentation overhaul, and developer tooling improvements.

New Features

  • Embeddings APIPOST /v1/embeddings, onEmbedding(), inputText match field, deterministic fallback embeddings
  • Structured output / JSON moderesponseFormat match field, onJsonOutput() convenience method
  • Sequential responsessequenceIndex for stateful multi-turn fixtures, resetMatchCounts()
  • Streaming physicsStreamingProfile with ttft, tps, jitter for realistic timing
  • AWS BedrockPOST /model/{modelId}/invoke with Anthropic Messages format translation
  • Azure OpenAI — provider routing for completions and embeddings
  • Health & models endpointsGET /health, GET /ready, GET /v1/models
  • Docker & Helm — Dockerfile and Helm chart for Kubernetes deployment
  • Documentation website — full docs site at llmock.com
  • Automated drift remediation — CI-driven drift detection and fix pipeline
  • FixtureOpts / EmbeddingFixtureOpts type aliases exported for external consumers

Bug Fixes

  • Fix Gemini Live handler crash on malformed clientContent.turns and toolResponse.functionResponses
  • Add isClosed guard before WebSocket finalization events
  • Default to non-streaming for Claude Messages and Responses API (matching real API defaults)
  • Fix streamingProfile missing from convenience method opts types
  • Fix skills/ symlink direction so npm pack includes the write-fixtures skill
  • Fix watcher cleanup on error, empty-reload guard

Documentation & Tooling

  • README rewritten as concise overview with links to docs site
  • Write-fixtures skill updated for all v1.5.0 features
  • Docs site: Get Started→docs, comparison above reliability, npm version badge
  • ESLint config: add .worktrees/ to ignores, remove dead CSS

Test plan

  • 813 unit tests pass
  • Build succeeds
  • Prettier formatting clean
  • ESLint clean
  • npm pack includes correct files (skills/, .claude-plugin/, dist/, fixtures/)
  • 4 rounds of 7-agent code review — zero actionable findings on final round

🤖 Generated with Claude Code

jpr5 added 8 commits March 19, 2026 21:38
README: rewrite from 712 lines to 130 — concise overview with links
to docs site for details. Keep "When to Use This vs MSW" section and
comparison table. Add npm version badge. Cut API reference, fixture
format details, E2E patterns, WebSocket protocol docs — all on docs
site now.

index.html: "Get Started" button links to docs.html instead of GitHub
README. Swap Comparison and Reliability section order (comparison is
more compelling for first-time visitors). Add npm version badge inline
in hero-badge pill. Update nav link order to match.
Add coverage for all new features since v1.4.0: embeddings (inputText
match field, EmbeddingResponse, onEmbedding), structured output
(responseFormat match field, onJsonOutput), sequential responses
(sequenceIndex, resetMatchCounts), streaming physics (streamingProfile
with ttft/tps/jitter). Add API endpoints table covering all 14 HTTP
and WebSocket endpoints including Bedrock and Azure. Add 5 new
critical gotchas.
The on(), onMessage(), onToolCall(), onToolResult(), onEmbedding(), and
onJsonOutput() convenience methods spread opts into the Fixture object
but their TypeScript types didn't include streamingProfile. Users had
to fall back to addFixture() to set streaming physics. Now all
convenience methods accept streamingProfile in opts, matching how
truncateAfterChunks and disconnectAfterMs already work.

Also fix implicit any on server.close() callback parameter.
Add .worktrees/ to eslint ignores — worktree build artifacts were
triggering lint errors. Remove unused @Keyframes sseLine CSS animation
from docs/index.html.
The 5-field opts type was duplicated inline on 6 convenience methods.
Extract FixtureOpts = Omit<Fixture, 'match' | 'response'> and
EmbeddingFixtureOpts = Pick<FixtureOpts, 'latency' | 'chunkSize' |
'streamingProfile'> so adding a new Fixture option field automatically
propagates to all convenience methods.
skills/write-fixtures/SKILL.md was a symlink to .claude/commands/,
which npm pack silently skips. Swap the direction: real file lives at
skills/write-fixtures/SKILL.md, symlink at .claude/commands/ points
to it. Now npm pack includes the skill in the published tarball.
Add FixtureOpts and EmbeddingFixtureOpts to the re-export list in
index.ts so external consumers can import them from the package root.
Remove .claude from package.json files array since the symlink doesn't
ship in the tarball — skills/ already includes the real file.
Embeddings, structured output, sequential responses, streaming
physics, AWS Bedrock, Azure OpenAI, health/models endpoints, Docker,
Helm, docs website, drift remediation, and numerous bug fixes.
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new Bot commented Mar 20, 2026

Open in StackBlitz

npm i https://pkg.pr.new/CopilotKit/llmock/@copilotkit/llmock@48

commit: 4d831e1

@jpr5 jpr5 merged commit 5e3c227 into main Mar 20, 2026
11 of 12 checks passed
@jpr5 jpr5 deleted the release/v1.5.0 branch March 20, 2026 05:26
jpr5 added a commit that referenced this pull request Mar 20, 2026
## Summary

Release v1.5.0 — major feature additions, bug fixes, documentation
overhaul, and developer tooling improvements.

### New Features
- **Embeddings API** — `POST /v1/embeddings`, `onEmbedding()`,
`inputText` match field, deterministic fallback embeddings
- **Structured output / JSON mode** — `responseFormat` match field,
`onJsonOutput()` convenience method
- **Sequential responses** — `sequenceIndex` for stateful multi-turn
fixtures, `resetMatchCounts()`
- **Streaming physics** — `StreamingProfile` with `ttft`, `tps`,
`jitter` for realistic timing
- **AWS Bedrock** — `POST /model/{modelId}/invoke` with Anthropic
Messages format translation
- **Azure OpenAI** — provider routing for completions and embeddings
- **Health & models endpoints** — `GET /health`, `GET /ready`, `GET
/v1/models`
- **Docker & Helm** — Dockerfile and Helm chart for Kubernetes
deployment
- **Documentation website** — full docs site at llmock.com
- **Automated drift remediation** — CI-driven drift detection and fix
pipeline
- **`FixtureOpts` / `EmbeddingFixtureOpts`** type aliases exported for
external consumers

### Bug Fixes
- Fix Gemini Live handler crash on malformed `clientContent.turns` and
`toolResponse.functionResponses`
- Add `isClosed` guard before WebSocket finalization events
- Default to non-streaming for Claude Messages and Responses API
(matching real API defaults)
- Fix `streamingProfile` missing from convenience method opts types
- Fix skills/ symlink direction so npm pack includes the write-fixtures
skill
- Fix watcher cleanup on error, empty-reload guard

### Documentation & Tooling
- README rewritten as concise overview with links to docs site
- Write-fixtures skill updated for all v1.5.0 features
- Docs site: Get Started→docs, comparison above reliability, npm version
badge
- ESLint config: add `.worktrees/` to ignores, remove dead CSS

## Test plan
- [x] 813 unit tests pass
- [x] Build succeeds
- [x] Prettier formatting clean
- [x] ESLint clean
- [x] npm pack includes correct files (skills/, .claude-plugin/, dist/,
fixtures/)
- [x] 4 rounds of 7-agent code review — zero actionable findings on
final round

🤖 Generated with [Claude Code](https://claude.com/claude-code)
jpr5 added a commit that referenced this pull request Apr 3, 2026
## Summary

Release v1.5.0 — major feature additions, bug fixes, documentation
overhaul, and developer tooling improvements.

### New Features
- **Embeddings API** — `POST /v1/embeddings`, `onEmbedding()`,
`inputText` match field, deterministic fallback embeddings
- **Structured output / JSON mode** — `responseFormat` match field,
`onJsonOutput()` convenience method
- **Sequential responses** — `sequenceIndex` for stateful multi-turn
fixtures, `resetMatchCounts()`
- **Streaming physics** — `StreamingProfile` with `ttft`, `tps`,
`jitter` for realistic timing
- **AWS Bedrock** — `POST /model/{modelId}/invoke` with Anthropic
Messages format translation
- **Azure OpenAI** — provider routing for completions and embeddings
- **Health & models endpoints** — `GET /health`, `GET /ready`, `GET
/v1/models`
- **Docker & Helm** — Dockerfile and Helm chart for Kubernetes
deployment
- **Documentation website** — full docs site at llmock.com
- **Automated drift remediation** — CI-driven drift detection and fix
pipeline
- **`FixtureOpts` / `EmbeddingFixtureOpts`** type aliases exported for
external consumers

### Bug Fixes
- Fix Gemini Live handler crash on malformed `clientContent.turns` and
`toolResponse.functionResponses`
- Add `isClosed` guard before WebSocket finalization events
- Default to non-streaming for Claude Messages and Responses API
(matching real API defaults)
- Fix `streamingProfile` missing from convenience method opts types
- Fix skills/ symlink direction so npm pack includes the write-fixtures
skill
- Fix watcher cleanup on error, empty-reload guard

### Documentation & Tooling
- README rewritten as concise overview with links to docs site
- Write-fixtures skill updated for all v1.5.0 features
- Docs site: Get Started→docs, comparison above reliability, npm version
badge
- ESLint config: add `.worktrees/` to ignores, remove dead CSS

## Test plan
- [x] 813 unit tests pass
- [x] Build succeeds
- [x] Prettier formatting clean
- [x] ESLint clean
- [x] npm pack includes correct files (skills/, .claude-plugin/, dist/,
fixtures/)
- [x] 4 rounds of 7-agent code review — zero actionable findings on
final round

🤖 Generated with [Claude Code](https://claude.com/claude-code)
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