Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
104 commits
Select commit Hold shift + click to select a range
2653add
refactor(inference/openai): simplify construct_model_from_identifier …
mattf Jun 4, 2026
1206e31
docs: JOSS paper proposal (#6008)
franciscojavierarceo Jun 4, 2026
d3863ed
fix(docs): refresh community invite links. (#6028)
franciscojavierarceo Jun 4, 2026
3eb5c60
fix: use SecretStr for search provider api_key fields (#6013)
mattf Jun 4, 2026
9690317
chore: Enable Hugging Face model caching for Vector IO integration te…
Copilot Jun 5, 2026
b8efa4d
test(messages): add live Claude Agent SDK smoke test against /v1/mess…
cdoern Jun 5, 2026
99c4178
fix(cli): strip /v1 suffix from ANTHROPIC_BASE_URL in ogx connect cla…
nathan-weinberg Jun 5, 2026
6b9a8f6
docs: JOSS paper updates (#6039)
franciscojavierarceo Jun 5, 2026
40eb48a
docs: JOSS paper updates (#6040)
franciscojavierarceo Jun 5, 2026
e140854
fix(ci): treat cancelled checks as non-failures in CI status aggregat…
franciscojavierarceo Jun 5, 2026
b96329c
fix(anthropic): raise NotImplementedError for /v1/completions endpoin…
derekhiggins Jun 5, 2026
d2edcb3
feat(skills): add Skills API surface, data models, and provider regis…
varshaprasad96 Jun 5, 2026
9126fe3
feat(cli): auto-detect embedding model to enable vector stores and fi…
mattf Jun 6, 2026
c377c74
feat(web search): normalize search provider secret precedence to matc…
mattf Jun 6, 2026
7483252
feat(cli): add batches provider to ogx letsgo auto-detection (#6027)
mattf Jun 6, 2026
878a77d
fix: rename vector_dbs to vector_stores in distribution template (#6012)
eoinfennessy Jun 7, 2026
35549ea
fix(guardrails): enforce fail-closed semantics and validate reasoning…
leseb Jun 8, 2026
45b54f6
fix(letsgo): include persistence config when adding responses provide…
mattf Jun 8, 2026
1a79e73
feat(responses): add WebSocket transport and fix OpenResponses confor…
cdoern Jun 8, 2026
064a6f3
feat(tool-runtime): add nimble web search provider (#6038)
wildcard Jun 8, 2026
d2bd0f9
ci(pypi): make Docker image publishing package-name aware (#6060)
cdoern Jun 8, 2026
7ad0e19
ci(pypi): add skip_latest input to avoid moving the latest tag (#6061)
cdoern Jun 8, 2026
c274eb1
fix(containers): pin the API package to the meta-package version (#6062)
cdoern Jun 8, 2026
dd8ef2b
fix(containers): tolerate OTel bootstrap conflicts when backfilling o…
cdoern Jun 8, 2026
2c964c4
feat(letsgo): select best embedding model instead of first (#6064)
mattf Jun 8, 2026
5ceb0c9
fix(bing-search): use standard := env var syntax in sample config (#6…
mattf Jun 8, 2026
fbe8e0f
feat(skills): add FastAPI routes for Skills API endpoints (#6066)
varshaprasad96 Jun 8, 2026
25cc138
fix: add missing opentelemetry-exporter-otlp-proto-grpc dependency (#…
derekhiggins Jun 9, 2026
67a707a
feat(messages)!: support disable_parallel_tool_use and pause_turn sto…
EleanorWho Jun 9, 2026
8b76f28
fix(api): eliminate schema mismatches in Responses compact endpoint (…
EleanorWho Jun 9, 2026
3eaff73
feat(messages): emit ping and error stream events for Anthropic SDK c…
EleanorWho Jun 9, 2026
3fcb5ac
feat(cli): auto-detect web search providers in ogx letsgo (#6067)
mattf Jun 9, 2026
6b24dd0
docs(blog): add blog post on Claude Code integration with OGX (#5691)
leseb Jun 9, 2026
58441ed
feat(cli): add `ogx connect codex` command. (#5896)
skamenan7 Jun 9, 2026
9e63b84
chore(openai): update model listing, exclude audio (#6070)
mattf Jun 9, 2026
69a9a55
fix(openai): translate max_tokens to max_completion_tokens for reason…
zanetworker Jun 9, 2026
b6222bf
docs: add blog for `ogx connect claude` (#6009)
nathan-weinberg Jun 9, 2026
b7fc275
feat(skills): implement builtin Skills provider with manifest parser …
varshaprasad96 Jun 10, 2026
381d767
chore(github-deps): bump github/codeql-action from 4.36.0 to 4.36.2 (…
dependabot[bot] Jun 10, 2026
a15b5d4
chore(github-deps): bump astral-sh/setup-uv from 8.1.0 to 8.2.0 (#6048)
dependabot[bot] Jun 10, 2026
d68af16
chore(api-deps): bump starlette from 0.50.0 to 1.0.1 in /src/ogx_api …
dependabot[bot] Jun 10, 2026
6a59d3b
chore(python-deps): bump black from 26.3.1 to 26.5.1 (#6051)
dependabot[bot] Jun 10, 2026
c3f7b03
chore(python-deps): bump openai from 2.38.0 to 2.41.0 (#6047)
dependabot[bot] Jun 10, 2026
480b294
chore(python-deps): bump redis from 7.4.0 to 8.0.0 (#6050)
dependabot[bot] Jun 10, 2026
d67ac32
chore(python-deps): bump databricks-sdk from 0.112.0 to 0.114.0 (#6052)
dependabot[bot] Jun 10, 2026
7bbfa12
chore(api-deps): bump openai from 2.38.0 to 2.41.0 in /src/ogx_api (#…
dependabot[bot] Jun 10, 2026
7039845
feat(letsgo): add nimble-search to letsgo auto-detection (#6080)
mattf Jun 10, 2026
4d9f3fa
chore(github-deps): bump actions/upload-artifact from 7.0.0 to 7.0.1 …
dependabot[bot] Jun 11, 2026
a0a94cb
chore(deps): bump idna from 3.11 to 3.15 in /src/ogx_api (#5897)
dependabot[bot] Jun 11, 2026
1d170e7
fix(vertexai): use structured logging key-value style (#6081)
major Jun 11, 2026
e835dfb
chore: bump fallback_version to 1.1.1.dev0 (#6084)
cdoern Jun 11, 2026
43827dd
chore: Limit payload-bearing logs to debug (vector search, rerank, gu…
franciscojavierarceo Jun 11, 2026
53b4731
docs: add Skills API to README, ARCHITECTURE, and provider docs (#6087)
varshaprasad96 Jun 11, 2026
16c0ad8
fix(milvus): use explicit output_fields in query_vector for milvus-li…
derekhiggins Jun 12, 2026
6618aca
fix(file_processor): offload sync parsing to thread pool (#6095)
derekhiggins Jun 12, 2026
ce27957
chore: dummy gpu ec2 runner workflow (#6102)
skamenan7 Jun 12, 2026
a83f2a1
fix(vertexai): prevent RuntimeError from stale client after startup e…
goingforstudying-ctrl Jun 12, 2026
e4f7d45
docs: Adding OGX Paper (#6042)
franciscojavierarceo Jun 12, 2026
1a0fe23
fix(ci): make ci-status wait for flaky test re-runs (#6079)
leseb Jun 15, 2026
6acf940
fix(vector_io): propagate search errors instead of returning empty re…
derekhiggins Jun 15, 2026
51279cf
fix(containers): embed distribution configs as OCI labels on publishe…
cdoern Jun 15, 2026
56119bd
chore(python-deps): bump pyjwt from 2.12.1 to 2.13.0 (#6122)
dependabot[bot] Jun 16, 2026
138161e
chore: bump fallback_version to 1.1.2.dev0 (#6119)
cdoern Jun 16, 2026
7376227
chore(python-deps): bump pytest-socket from 0.7.0 to 0.8.0 (#6112)
dependabot[bot] Jun 16, 2026
25eed49
chore(api-deps): bump openai from 2.41.0 to 2.41.1 in /src/ogx_api (#…
dependabot[bot] Jun 16, 2026
05e6b9b
chore(python-deps): bump pypdf from 6.11.0 to 6.12.0 (#6106)
dependabot[bot] Jun 16, 2026
062589d
feat(ci): add Trivy security scanning (#6074)
nathan-weinberg Jun 16, 2026
4118b16
fix(conversations): cascade delete orphaned conversation items (#6059)
skamenan7 Jun 16, 2026
52b9706
feat(files): fix Files API gaps for OpenAI spec parity (#6127)
leseb Jun 16, 2026
228d261
feat(multi-tenancy): add tenant isolation as a hard partition key ind…
leseb Jun 16, 2026
af6c1f3
chore(python-deps): bump starlette from 1.1.0 to 1.3.1 (#6125)
dependabot[bot] Jun 16, 2026
a0bd9f5
chore(github-deps): bump actions/cache from 4.2.3 to 5.0.5 (#6108)
dependabot[bot] Jun 16, 2026
f2b5451
fix(file_processor): add ZIP decompression limits to MarkItDown proce…
derekhiggins Jun 16, 2026
040b2c4
chore(github-deps): bump sigstore/gh-action-sigstore-python from 3.3.…
dependabot[bot] Jun 17, 2026
dc341e8
chore(deps): remove upper bound constraint on pydantic (#6131)
mattf Jun 17, 2026
8cee357
chore(python-deps): bump cryptography from 48.0.0 to 48.0.1 (#6124)
dependabot[bot] Jun 17, 2026
a74a63a
chore(python-deps): bump pypdf from 6.12.0 to 6.13.0 (#6132)
dependabot[bot] Jun 17, 2026
8f3904e
fix(api-docs): Move vector stores docs to top-level tag (#6137)
franciscojavierarceo Jun 17, 2026
aac99c0
chore(python-deps): bump python-multipart from 0.0.28 to 0.0.31 (#6123)
dependabot[bot] Jun 18, 2026
229c260
chore: bump fallback_version to 1.1.3.dev0 (#6138)
cdoern Jun 18, 2026
ce77b28
refactor(vector-io): Convert Qdrant, Milvus, Elasticsearch to eager c…
mattf Jun 19, 2026
15a9769
docs: document nimble web search provider in guides and starter distr…
wildcard Jun 19, 2026
c9f432a
chore(ci): change CI to use ogx_open_client (#6016)
aegeiger Jun 22, 2026
690e958
docs(blog): add guardrails Responses API post (#6029)
leseb Jun 23, 2026
ba8c07d
ci: record the bedrock inference suite in record workflow (#6165)
cdoern Jun 23, 2026
7f29a57
fix(tests): add Bedrock replay recordings (#6166)
skamenan7 Jun 23, 2026
78328a1
fix(bedrock): preserve bearer token env compatibility (#6167)
skamenan7 Jun 23, 2026
96dc365
feat(ci): update pip_packages in registry specs during Dependabot PRs…
leseb Jun 23, 2026
f0a0e47
refactor(core): replace bespoke DFS topological sort with graphlib.To…
mattf Jun 23, 2026
6d14efd
fix(vertexai): walk into routing tables to reset provider clients (#6…
Artemon-line Jun 23, 2026
821115d
feat(containers): add Containers API surface under /v1alpha (#5913)
cdoern Jun 23, 2026
6ec7f11
refactor(server): decouple stack.initialize from authn and tenancy mi…
mattf Jun 23, 2026
63b14e0
fix(pgvector): ensure vector extension exists before creating connect…
Artemon-line Jun 23, 2026
8e24472
chore: bump fallback_version to 1.1.4.dev0 (#6179)
cdoern Jun 25, 2026
7e4561d
fix(core)!: move rerank code to sentence_transformers (#5882)
zy1o Jun 25, 2026
183c8d1
fix(tests): allow slower Bedrock chat completion recordings (#6175)
skamenan7 Jun 25, 2026
9449ae4
ci: support refreshing integration recordings via dispatch on main (#…
cdoern Jun 25, 2026
d95042f
fix(vertexai): pin google-genai below 2 (#6186)
skamenan7 Jun 25, 2026
8aed7a4
fix(tests): re-key responses recordings broken by reranker provider r…
cdoern Jun 25, 2026
9e2c316
feat: add GPU-enabled self-hosted runners for vLLM recording (#5793) …
skamenan7 Jun 26, 2026
9581f0b
refactor(server): move route-to-API map construction to lazy first-re…
mattf Jun 26, 2026
bd5a759
refactor: extract ZstdDecompressionMiddleware out of create_app() (#6…
mattf Jun 26, 2026
8ec83e0
feat: add inline::unstructured file processor (#6159)
sahana-sreeram Jun 26, 2026
360e9ec
fix(ci): include ogx-open-client in unified release piepine
aegeiger Jun 28, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,6 @@ contact_links:
- name: Have you read the docs?
url: https://ogx-ai.github.io/docs
about: Much help can be found in the docs
- name: Chat on Slack
url: https://join.slack.com/t/ogx-ai/shared_invite/zt-3uyw5bxj9-tSEwsNZncgkGEKbd4dXIpw
about: Maybe chatting with the community can help
- name: Join the Discord community
url: https://discord.gg/bUYRqEvK6
about: Ask questions and chat with the community
2 changes: 1 addition & 1 deletion .github/actions/install-ogx-client/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ runs:
id: configure
shell: bash
run: |
# If sdk_install_url is provided (e.g., from Stainless preview), use it directly
# If sdk_install_url is provided, use it directly
if [ -n "${{ inputs.sdk_install_url }}" ]; then
echo "Using provided sdk_install_url: ${{ inputs.sdk_install_url }}"
echo "install-after-sync=true" >> $GITHUB_OUTPUT
Expand Down
82 changes: 82 additions & 0 deletions .github/actions/launch-gpu-runner/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: 'Launch GPU EC2 Runner'
description: 'Launch GPU-enabled EC2 instance as GitHub Actions self-hosted runner (wrapper for machulav/ec2-github-runner)'

on:
workflow_dispatch:
inputs:
mode:
description: 'Mode: start or stop'
required: true
github-token:
description: 'GitHub Personal Access Token with repo scope for runner registration'
required: true
instance-type:
description: 'EC2 instance type (e.g., g6.2xlarge, g5.2xlarge, g6.8xlarge)'
required: false
default: 'g6.2xlarge'
aws-region:
description: 'AWS region'
required: true
availability-zones-config:
description: 'JSON array of AZ configs with imageId, subnetId, securityGroupId for fallback'
required: false
default: ''
# For stop mode
label:
description: 'Runner label (for stop mode)'
required: false
ec2-instance-id:
description: 'EC2 instance ID (for stop mode)'
required: false
# Optional
ec2-instance-tags:
description: 'JSON array of tags to apply to EC2 instance'
required: false
default: '[]'
runner-home-dir:
description: 'Home directory for the runner'
required: false
default: ''
iam-role-name:
description: 'IAM role name to attach to the instance (optional, for enhanced security)'
required: false
default: ''

outputs:
label:
description: 'Unique label for the launched runner'
value: ${{ steps.ec2-runner.outputs.label }}
ec2-instance-id:
description: 'EC2 instance ID'
value: ${{ steps.ec2-runner.outputs.ec2-instance-id }}

runs:
using: 'composite'
steps:
- name: Start EC2 runner
if: inputs.mode == 'start'
id: ec2-runner
uses: machulav/ec2-github-runner@343a1b2ae682e681c3cec9a235d882da17ff04ef # v2.6.1
env:
AWS_DEFAULT_REGION: ${{ inputs.aws-region }}
AWS_REGION: ${{ inputs.aws-region }}
with:
mode: start
github-token: ${{ inputs.github-token }}
ec2-instance-type: ${{ inputs.instance-type }}
aws-resource-tags: ${{ inputs.ec2-instance-tags }}
runner-home-dir: ${{ inputs.runner-home-dir }}
iam-role-name: ${{ inputs.iam-role-name }}
availability-zones-config: ${{ inputs.availability-zones-config }}

- name: Stop EC2 runner
if: inputs.mode == 'stop'
uses: machulav/ec2-github-runner@343a1b2ae682e681c3cec9a235d882da17ff04ef # v2.6.1
env:
AWS_DEFAULT_REGION: ${{ inputs.aws-region }}
AWS_REGION: ${{ inputs.aws-region }}
with:
mode: stop
github-token: ${{ inputs.github-token }}
label: ${{ inputs.label }}
ec2-instance-id: ${{ inputs.ec2-instance-id }}
27 changes: 20 additions & 7 deletions .github/actions/run-and-record-tests/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,10 @@ inputs:
description: 'Regex pattern to pass to pytest -k'
required: false
default: ''
text-model:
description: 'Text model override to pass to integration-tests.sh'
required: false
default: ''
target-branch:
description: 'Target branch for recording commits (for PRs, use the PR head branch)'
required: false
Expand Down Expand Up @@ -56,28 +60,37 @@ runs:
INPUT_SUITE: ${{ inputs.suite }}
INPUT_SUBDIRS: ${{ inputs.subdirs }}
INPUT_PATTERN: ${{ inputs.pattern }}
INPUT_TEXT_MODEL: ${{ inputs.text-model }}
run: |
SCRIPT_ARGS="--stack-config ${INPUT_STACK_CONFIG} --inference-mode ${INPUT_INFERENCE_MODE}"
SCRIPT_ARGS=(
--stack-config "${INPUT_STACK_CONFIG}"
--inference-mode "${INPUT_INFERENCE_MODE}"
)

# Add optional arguments only if they are provided
if [ -n "${INPUT_SETUP}" ]; then
SCRIPT_ARGS="${SCRIPT_ARGS} --setup ${INPUT_SETUP}"
SCRIPT_ARGS+=(--setup "${INPUT_SETUP}")
fi
if [ -n "${INPUT_SUITE}" ]; then
SCRIPT_ARGS="${SCRIPT_ARGS} --suite ${INPUT_SUITE}"
SCRIPT_ARGS+=(--suite "${INPUT_SUITE}")
fi
if [ -n "${INPUT_SUBDIRS}" ]; then
SCRIPT_ARGS="${SCRIPT_ARGS} --subdirs ${INPUT_SUBDIRS}"
SCRIPT_ARGS+=(--subdirs "${INPUT_SUBDIRS}")
fi
if [ -n "${INPUT_PATTERN}" ]; then
SCRIPT_ARGS="${SCRIPT_ARGS} --pattern ${INPUT_PATTERN}"
SCRIPT_ARGS+=(--pattern "${INPUT_PATTERN}")
fi
if [ -n "${INPUT_TEXT_MODEL}" ]; then
SCRIPT_ARGS+=(--text-model "${INPUT_TEXT_MODEL}")
fi

echo "=== Running command ==="
echo "uv run --no-sync ./scripts/integration-tests.sh $SCRIPT_ARGS"
printf 'uv run --no-sync ./scripts/integration-tests.sh'
printf ' %q' "${SCRIPT_ARGS[@]}"
printf '\n'
echo ""

uv run --no-sync ./scripts/integration-tests.sh $SCRIPT_ARGS | tee "pytest-${INPUT_INFERENCE_MODE}.log"
uv run --no-sync ./scripts/integration-tests.sh "${SCRIPT_ARGS[@]}" | tee "pytest-${INPUT_INFERENCE_MODE}.log"


- name: Commit and push recordings
Expand Down
8 changes: 7 additions & 1 deletion .github/actions/setup-test-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,10 @@ inputs:
description: 'Explicit branch override (used by scheduled CI to pass the matrix branch)'
required: false
default: ''
enable-hf-cache:
description: 'Whether to cache HuggingFace models and datasets'
required: false
default: 'true'

runs:
using: 'composite'
Expand All @@ -40,6 +44,7 @@ runs:
branch: ${{ inputs.branch }}

- name: Cache HuggingFace models and datasets
if: ${{ inputs.enable-hf-cache == 'true' }}
uses: actions/cache@v4
with:
path: ~/.cache/huggingface
Expand All @@ -48,6 +53,7 @@ runs:
hf-cache-${{ runner.os }}-

- name: Pre-download HuggingFace assets for offline use
if: ${{ inputs.enable-hf-cache == 'true' }}
shell: bash
env:
HF_HUB_ENABLE_HF_TRANSFER: "1"
Expand All @@ -74,7 +80,7 @@ runs:
setup: ${{ inputs.setup }}

- name: Setup vllm
if: ${{ startsWith(inputs.setup, 'vllm') && inputs.inference-mode != 'replay' }}
if: ${{ startsWith(inputs.setup, 'vllm') && !startsWith(inputs.setup, 'vllm-gpu-') && inputs.inference-mode != 'replay' }}
uses: ./.github/actions/setup-vllm

- name: Start Postgres service
Expand Down
Loading
Loading