Skip to content

v0.9.0-beta.1: versioning, testing, and stability#42

Merged
luokerenx4 merged 11 commits intomasterfrom
dev
Mar 13, 2026
Merged

v0.9.0-beta.1: versioning, testing, and stability#42
luokerenx4 merged 11 commits intomasterfrom
dev

Conversation

@luokerenx4
Copy link
Copy Markdown
Contributor

Summary

  • Versioning: Bump to v0.9.0-beta.1, add git-cliff config and auto-generated CHANGELOG.md
  • Testing: 176 new unit + integration tests (core modules, message pipeline)
  • Stability: Fix streaming text events, session persistence during tool loops, CI pnpm resolution
  • Refactoring: Unify session persistence in AgentCenter
  • Docs: Add CI/license badges, contributing guide

Commits (10)

  • chore: add versioning and changelog infrastructure
  • test: add core module unit tests (134 tests)
  • test: add message pipeline integration tests (42 tests)
  • refactor(persistence): unify session persistence in AgentCenter
  • fix(session): persist intermediate text blocks during tool loops
  • fix(streaming): push intermediate text events from Claude Code and Agent SDK providers
  • docs: add contributing guide (issues welcome, PRs not accepted)
  • docs: add CI and license badges, remove redundant license section
  • fix(ci): let pnpm version come from package.json packageManager field
  • ci: add GitHub Actions workflow and fix time-sensitive test

Test plan

  • CI passes (build + test)
  • Verify pnpm dev starts correctly with new version string
  • Merge → tag v0.9.0-beta.1 on master → create GitHub Pre-release

🤖 Generated with Claude Code

luokerenx4 and others added 11 commits March 12, 2026 20:38
Add CI workflow (build + test on push/PR). Fix news-collector
store.spec.ts that used hardcoded dates which expired past the
7-day retention window — now uses relative timestamps.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ent SDK providers

Both providers collected text blocks during tool loops but didn't push
them through the streaming channel, causing the Web UI to show no
intermediate text during agentic turns. Add onText callback to both
provider configs and wire it into the generate() streaming pipeline.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Text events from the streaming pipeline were yielded to the UI but not
accumulated into currentAssistantBlocks, so they were never written to
the session JSONL. This caused intermediate assistant text (e.g. "Let me
check...") to disappear on page reload.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add providerTag to GenerateProvider interface, replacing the broken
  resolveProviderTag() heuristic that conflated Agent SDK with Claude Code
- Persist final response as ContentBlock[] (text + image blocks) with
  media files written to disk via persistMedia, fixing media data loss
- Add mediaUrls to ProviderResult so downstream consumers (chat.ts)
  don't need to call persistMedia again
- Fix web connector notification tag from hardcoded 'vercel-ai' to
  'notification' for correct session provenance
- Add 'notification' to SessionEntry provider union type

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cover the full message lifecycle: session persistence (A1-A15),
streaming output (B1-B8), connector delivery (C1-C15), and
end-to-end flows (D1-D4). Tests organized in src/core/__tests__/pipeline/
with shared helpers extracted to helpers.ts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Cover previously untested core modules to enable safe refactoring:
- provider-utils: stripImageData, resolveToolPermissions, buildChatHistoryPrompt
- media: extractMediaFromToolOutput, extractMediaFromToolResultContent
- async-channel: push/close/error/iteration lifecycle
- ai-provider: StreamableResult dual interface, GenerateRouter resolution
- session: toModelMessages, toTextHistory, toChatHistory converters
- compaction: token estimation, thresholds, microcompact, summarization prompt
- tool-center: register/list/getInventory/getVercelTools
- media-store: content-addressable persistence, resolveMediaPath

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Bump version to 0.9.0-beta.1 (was incorrectly 1.0.0)
- Add git-cliff config (cliff.toml) for automated changelog generation
- Generate initial CHANGELOG.md from commit history

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Reads version from package.json, generates release notes via git-cliff,
creates a git tag and GitHub Release. Pre-release versions (containing -)
are automatically marked as pre-release.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@luokerenx4 luokerenx4 merged commit 63179f6 into master Mar 13, 2026
2 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