mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-09-21 00:02:30 +00:00
* feat: windmill-chat sdk for chat-mode flows in external frontends and raw apps Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018aQiZNAU8g17kWkyTryS5J * fix: keep streamed answers until persisted, finish turns after history fallback Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018aQiZNAU8g17kWkyTryS5J * feat: ai sdk transport and assistant-ui runtime for windmill-chat Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: finish a turn from the flow result until its answer row lands, hash chat ids without crypto.subtle Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: judge a turn answered by a persisted assistant row, wherever it was fetched Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: attribute a turn's answer to its own jobs, keep a local turn when switching conversations Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: mirror local history on every change, attribute failure-handler answers to the turn Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: new chat per token string in the React hook, idle after destroy, no reorder on view Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: recreate the hook's chat on any credential change, namespace local history per user Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> * fix: send the latest inputs from the React hook Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> --------- Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
81 lines
2.4 KiB
YAML
81 lines
2.4 KiB
YAML
# The python and typescript SDK unit suites, on release tags only: they guard
|
|
# what gets published to npm / PyPI / JSR, and a tag is the moment that decides
|
|
# it.
|
|
#
|
|
# This runs alongside the publish workflows rather than ahead of them, so it
|
|
# reports a broken SDK rather than holding one back. Gating would mean putting
|
|
# the job inside each publish workflow, since Actions cannot express `needs`
|
|
# across workflows.
|
|
name: SDK Tests
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
tags:
|
|
- "v*"
|
|
|
|
jobs:
|
|
typescript-client:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: latest
|
|
|
|
# No build step: these suites are deliberately free of the generated API
|
|
# client, so they run against the sources as committed.
|
|
- name: Run tests
|
|
working-directory: ./typescript-client
|
|
run: bun test --timeout 120000 tests/
|
|
|
|
chat-sdk:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Bun
|
|
uses: oven-sh/setup-bun@v2
|
|
with:
|
|
bun-version: latest
|
|
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: "20.x"
|
|
|
|
- name: Run tests
|
|
working-directory: ./chat-sdk
|
|
run: npm ci && npm run check && bun test
|
|
|
|
python-client:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup uv
|
|
uses: astral-sh/setup-uv@v5
|
|
|
|
# The interpreter is named explicitly: on a clean checkout uv picks the
|
|
# runner's system python and stops with "not compatible with the locked
|
|
# Python requirement" rather than fetching one. Keep in step with
|
|
# `requires-python` in uv.lock.
|
|
#
|
|
# Note this is not the version a worker runs the SDK on — those are 3.12.
|
|
# `uv.lock` asks for >=3.14, so pinning lower means regenerating it, which
|
|
# is worth doing separately.
|
|
- name: Install the interpreter the lockfile requires
|
|
run: uv python install 3.14
|
|
|
|
# `--frozen` so a drifted lockfile fails here rather than quietly
|
|
# resolving to something nobody has run.
|
|
- name: Run tests
|
|
working-directory: ./python-client/wmill
|
|
env:
|
|
PYTHONPATH: .
|
|
run: uv run --frozen --python 3.14 pytest tests/ -q
|