Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
d8f8b0c
sdk: add Python Outpost reduction and Redis-backed client
frankie567 Oct 12, 2026
17dcedc
sdk: cache Outpost state locally and synchronize through Redis Pub/Sub
frankie567 Oct 12, 2026
2097ec8
sdk: add TypeScript Outpost with local state and Redis synchronization
frankie567 Oct 12, 2026
6efdc4a
sdk: regenerate
frankie567 Oct 12, 2026
026a4ef
sdk: build TypeScript package when installed from Git
frankie567 Oct 12, 2026
5c8cfc0
sdk/ts: fake outpost snapshot command
frankie567 Oct 12, 2026
6a5794e
sdk/e2e: add a test harness for Outpost SDK
frankie567 Oct 13, 2026
feae30c
sdk/e2e: more tight scenario and harness improvements
frankie567 Oct 13, 2026
5e42791
Revert "sdk/ts: fake outpost snapshot command"
frankie567 Oct 13, 2026
4b66918
sdk/outpost: remove payload validation
frankie567 Oct 13, 2026
ebb77de
sdk/e2e: tighten concurrent scenario
frankie567 Oct 13, 2026
52462b3
sdk/e2e: move fake server to Python
frankie567 Oct 13, 2026
0ce75a1
handbook: remove local reduction rfc
frankie567 Oct 13, 2026
2ac3228
sdk/outpost: fix reducing inconsistencies
frankie567 Oct 14, 2026
ad1579a
fix(outpost): support mapping metadata traversal
frankie567 Oct 14, 2026
7c2afa3
fix(outpost): specify async generator send types
frankie567 Oct 14, 2026
ff6df4a
sdk/outpost: implement snapshot contract
frankie567 Oct 14, 2026
da35dde
sdk/outpost: work with microseconds cold_until/version
frankie567 Oct 14, 2026
4c6e411
sdk/outpost: fix typing
frankie567 Oct 14, 2026
360b724
sdk/e2e: run tests in CI
frankie567 Oct 14, 2026
cad605c
sdk/e2e: give more leeway to concurrent scenario
frankie567 Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/test_sdk.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,17 @@ jobs:
env:
POLAR_EMAIL_RENDERER_BINARY_PATH: "/tmp/email-renderer"
POLAR_PYDANTIC_AI_GATEWAY_API_KEY: "POLAR_PYDANTIC_AI_GATEWAY_API_KEY"
E2E_REDIS_URL: "redis://127.0.0.1:6379/0"
services:
redis:
image: redis:7.4-alpine
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 6379:6379
steps:
- uses: actions/checkout@v7.0.1

Expand Down Expand Up @@ -88,9 +99,25 @@ jobs:
- name: Generate and test SDKs
working-directory: ./sdk/generator
run: |
sudo apt-get update && sudo apt-get install -y redis-server
Comment thread
cubic-dev-ai[bot] marked this conversation as resolved.
Resolved
just openapi
just generate-all

- name: Install SDK E2E dependencies
working-directory: ./sdk/e2e
run: |
just ci
Comment thread
frankie567 marked this conversation as resolved.
Resolved

- name: Check SDK E2E harness
working-directory: ./sdk/e2e
run: |
just lint
just typecheck

- name: Test SDK E2E scenarios
working-directory: ./sdk/e2e
run: just test

- name: Verify bundled Python SDK skill
working-directory: ./sdk/python
run: |
Expand Down
1 change: 1 addition & 0 deletions sdk/e2e/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules/
18 changes: 18 additions & 0 deletions sdk/e2e/.zed/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"languages": {
"Python": {
"language_servers": ["ty", "ruff", "!basedpyright", "!pylsp"],
"format_on_save": "on",
"wrap_guides": [88],
"formatter": [
{ "code_action": "source.organizeImports.ruff" },
{ "code_action": "source.fixAll.ruff" },
{
"language_server": {
"name": "ruff",
},
},
],
},
},
}
23 changes: 23 additions & 0 deletions sdk/e2e/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# Outpost SDK scenario harness

## Run

Requires `uv`, `just`, Node 24+, `pnpm`, and either `redis-server` on PATH or
`E2E_REDIS_URL`. Install the SDK
dependencies once (the TypeScript SDK needs its own build dependencies):

```sh
cd sdk/typescript && just install
cd ../e2e
just install
just test
```

To use Redis exposed by a container on port 6379:

```sh
E2E_REDIS_URL=redis://127.0.0.1:6379/0 just test
```

The SDK CI workflow runs both languages against a Redis service container using
this environment variable.
Loading
Loading