Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
2ba3869
First pass adding agents
ScriptSmith May 17, 2026
546b50a
Review fixes
ScriptSmith May 17, 2026
e82c340
Review fixes
ScriptSmith May 17, 2026
4bc4ba6
Add ownership to responses
ScriptSmith May 17, 2026
93971c8
Add container re-use
ScriptSmith May 17, 2026
a2c4774
Review fixes
ScriptSmith May 17, 2026
d707108
Additional features and docs
ScriptSmith May 17, 2026
f98de5c
Review fixes
ScriptSmith May 17, 2026
d7a714a
Accumulate assistant responses correctly
ScriptSmith May 17, 2026
be62f36
Handle non-streaming output
ScriptSmith May 17, 2026
6c45b79
Match openai spec
ScriptSmith May 18, 2026
66077ce
Match openai spec
ScriptSmith May 18, 2026
f61f6ac
Match openai spec
ScriptSmith May 19, 2026
24dc8d7
Match openai spec
ScriptSmith May 19, 2026
878b32d
Match openai spec
ScriptSmith May 19, 2026
ab06502
Add server-side MCP support
ScriptSmith May 22, 2026
401652c
Support other file backends for containers
ScriptSmith May 22, 2026
7a9cbcb
UI snapshot
ScriptSmith May 23, 2026
ed11138
Review fixes
ScriptSmith May 23, 2026
02ce38a
Review fixes
ScriptSmith May 23, 2026
5adebdc
Review fixes
ScriptSmith May 23, 2026
1598c0a
Container file artifacts
ScriptSmith May 23, 2026
522c48a
Fix container TTL
ScriptSmith May 23, 2026
b50f1b3
Container cleanup job
ScriptSmith May 23, 2026
5468dca
Review fixes
ScriptSmith May 23, 2026
f322176
Review fixes
ScriptSmith May 23, 2026
9259537
Docs changes
ScriptSmith May 23, 2026
a0319a5
Fix build
ScriptSmith May 23, 2026
0a345b1
Fix build
ScriptSmith May 23, 2026
1a67e70
Review fixes
ScriptSmith May 23, 2026
cd6d6f2
Review fixes
ScriptSmith May 23, 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
8 changes: 8 additions & 0 deletions .cargo/audit.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,12 @@ ignore = [
# rsa 0.9.10 Marvin Attack (timing sidechannel). No fix available. Transitive
# dependency via sqlx-mysql — Hadrian doesn't use RSA keys for MySQL auth.
"RUSTSEC-2023-0071",
# hickory-proto 0.25.2 NSEC3 unbounded loop and O(n²) name-compression DoS.
# Pulled in only by microsandbox-network (the `runtime-microsandbox` feature,
# off in every default profile) for in-microVM DNS resolution behind the
# sandbox egress allowlist. microsandbox 0.4.5 pins the hickory 0.25.x line
# (see the dependency comment in Cargo.toml); a fixed 0.26.x requires a
# microsandbox bump. Hadrian's own resolver uses hickory-resolver 0.26.1.
"RUSTSEC-2026-0118",
"RUSTSEC-2026-0119",
]
8 changes: 4 additions & 4 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
run: rustup install nightly && rustup component add rustfmt --toolchain nightly

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev tesseract-ocr tesseract-ocr-eng
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev libcap-ng-dev tesseract-ocr tesseract-ocr-eng

- name: Cache cargo
uses: Swatinem/rust-cache@v2
Expand Down Expand Up @@ -85,7 +85,7 @@ jobs:
uses: dtolnay/rust-toolchain@stable

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev tesseract-ocr tesseract-ocr-eng
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev libcap-ng-dev tesseract-ocr tesseract-ocr-eng

- name: Cache cargo
uses: Swatinem/rust-cache@v2
Expand Down Expand Up @@ -202,7 +202,7 @@ jobs:

- name: Install dependencies (Linux full)
if: matrix.features == 'full' && runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev libcap-ng-dev

- name: Install dependencies (macOS)
if: runner.os == 'macOS'
Expand Down Expand Up @@ -436,7 +436,7 @@ jobs:
- name: Install build deps for samael
run: |
sudo apt-get update
sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev pkg-config libssl-dev
sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libcap-ng-dev pkg-config libssl-dev

- name: Regenerate Hadrian OpenAPI spec
run: cargo run --release -- openapi --output openapi/hadrian.openapi.json
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ jobs:

- name: Install dependencies (Linux full/standard)
if: runner.os == 'Linux' && (contains(matrix.features, 'full') || contains(matrix.features, 'standard'))
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev libssl-dev pkg-config
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev libcap-ng-dev libssl-dev pkg-config

- name: Install dependencies (macOS)
if: runner.os == 'macOS'
Expand Down Expand Up @@ -301,7 +301,7 @@ jobs:
shared-key: publish

- name: Install dependencies
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev tesseract-ocr tesseract-ocr-eng
run: sudo apt-get update && sudo apt-get install -y libxml2-dev libxslt1-dev libxmlsec1-dev libclang-dev libcap-ng-dev tesseract-ocr tesseract-ocr-eng

- name: Publish to crates.io
run: cargo publish --no-default-features --features headless --allow-dirty
Expand Down
18 changes: 16 additions & 2 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,18 @@ Read files in `agent_instructions/` for detailed guidance on specific tasks:

- `adding_admin_endpoint.md` — Admin endpoints and pagination patterns
- `adding_frontend_tool.md` — Frontend tools
- `adding_provider.md` — LLM providers
- `architecture.md` — Multi-tenancy, auth, RBAC, SSO, request flow, RAG, chat modes, caching
- `adding_provider.md` — LLM providers (and how server-side tools rewrite)
- `adding_runtime.md` — Shell-tool runtime backends (passthrough, microsandbox, opensandbox, …)
- `architecture.md` — Multi-tenancy, auth, RBAC, SSO, request flow, RAG, chat modes, caching, server-side tools
- `ci_cd.md` — CI, release, and deploy pipelines
- `configuration.md` — Config sections, feature flags, provider options
- `containers.md` — Responses-API containers, shell tool, lifecycle, file staging
- `database_changes.md` — Database migrations and schema changes
- `documentation.md` — Documentation site, writing guidelines, Storybook embeds
- `frontend_conventions.md` — Frontend conventions, accessibility (WCAG 2.1 AA)
- `key_files.md` — Comprehensive file listing by subsystem
- `modifying_chat_ui.md` — Chat UI performance (stores, selectors, memoization)
- `responses_pipeline.md` — Foreground/background streaming pipeline, server-tool loop
- `testing.md` — Provider e2e tests (wiremock), university E2E tests
- `wasm.md` — WASM build architecture and frontend development

Expand Down Expand Up @@ -61,6 +64,17 @@ Hierarchical profiles (default: `full`):
- **`headless`** — full without embedded assets
- **`wasm`** — Browser-only build (see `agent_instructions/wasm.md`)

Shell-tool runtime backends are gated by their own feature flags (off by default in every
profile so the heavy SDKs are opt-in):

- **`runtime-microsandbox`** — pulls in the microsandbox SDK + microVM dependencies for the
in-process `microsandbox` runtime.
- **`runtime-opensandbox`** — pulls in the HTTP client glue for the Alibaba OpenSandbox
Lifecycle API. No new system dependencies.

`passthrough_openai` and `client_passthrough` runtimes are always available; they require no
extra cargo features. See `agent_instructions/containers.md`.

```bash
cargo build --no-default-features --features tiny # Smallest binary
cargo build --no-default-features --features minimal # Fast compile
Expand Down
Loading
Loading