Changeset 0.29.1 (#196)
This commit is contained in:
62
CHANGELOG.md
62
CHANGELOG.md
@@ -1,5 +1,67 @@
|
||||
# Changelog
|
||||
|
||||
## [0.29.1] — 2026-03-17
|
||||
|
||||
### Summary
|
||||
|
||||
API extensions. Starlark packages serve custom JSON endpoints via
|
||||
`api_routes` manifest key, with SSRF-safe outbound HTTP, LLM provider
|
||||
access via BYOK chain, capability-based routing, and config-file
|
||||
provider types. Five changesets (CS0–CS4).
|
||||
|
||||
### New
|
||||
|
||||
- **Extension API routes** (`/s/:slug/api/*path`) — Starlark packages
|
||||
declare routes in `manifest.api_routes` and implement `on_request(req)`
|
||||
entry point. Supports exact and prefix path matching, wildcard methods,
|
||||
and boolean shorthand. JWT-authenticated.
|
||||
- **HTTP outbound module** (`http`) — `http.get/post/put/delete/request`
|
||||
builtins with SSRF protection (private/loopback IP blocking via
|
||||
`net.Dialer.Control`), manifest-based allowlist/blocklist
|
||||
(`network_access.allow/block`), redirect chain validation, 1 MB
|
||||
response cap, 10 s timeout. Requires `api.http` permission.
|
||||
- **Provider module** (`provider`) — `provider.complete(messages, model?,
|
||||
max_tokens?, temperature?)` makes synchronous LLM calls via BYOK chain.
|
||||
`requires_provider` manifest key with optional `provider_config_id` pin
|
||||
and `model` default. Requires `provider.complete` permission.
|
||||
- **`RunContext`** — per-invocation state (user_id, channel_id) passed
|
||||
through `CallEntryPoint` for user-scoped modules. All callers updated:
|
||||
API routes pass JWT user, task executor passes owner, filters pass nil.
|
||||
- **`ProviderResolver` interface** — decouples sandbox from handlers
|
||||
package (avoids circular dependency). `ProviderResolverAdapter` in
|
||||
handlers bridges to `ResolveProviderConfig` + provider registry.
|
||||
- **`capability_match` routing policy** — filters candidates by model
|
||||
capabilities (`required_caps: ["tool_calling", "vision"]`) with
|
||||
optional `prefer_cheapest` sort by output price. Forward-compatible
|
||||
with unknown capability names.
|
||||
- **Config-file provider types** — `PROVIDER_TYPES_FILE` env var points
|
||||
to JSON array of custom provider type definitions. Registers
|
||||
OpenAI-compatible endpoints (Ollama, LiteLLM, vLLM) at startup
|
||||
without code deploy. Built-in IDs are protected from override.
|
||||
- **`provider.complete` permission** — new extension permission constant
|
||||
for LLM completion access from Starlark scripts.
|
||||
|
||||
### Changed
|
||||
|
||||
- `Runner.ExecPackage` and `Runner.CallEntryPoint` signatures gain
|
||||
`*RunContext` parameter. All callers updated (breaking internal API,
|
||||
no external impact).
|
||||
- `Runner.buildModules` receives manifest for module-specific config
|
||||
(http reads `network_access`, provider reads `requires_provider`).
|
||||
- Routing policy admin handler validation switch includes
|
||||
`capability_match`.
|
||||
- `PolicyConfig` gains `RequiredCaps` and `PreferCheapest` fields.
|
||||
- Routing `Context` gains `Capabilities` map for capability-match
|
||||
evaluation.
|
||||
|
||||
### Deferred
|
||||
|
||||
- **Server-side tool execution in completion handler** → v0.29.2.
|
||||
`provider.complete()` covers bare completions; full tool loop
|
||||
(extensions defining tools that execute server-side during chat
|
||||
completions) requires tool registry integration with the sandbox,
|
||||
which aligns with the DB extensions scope.
|
||||
|
||||
## [0.29.0] — 2026-03-17
|
||||
|
||||
### Summary
|
||||
|
||||
Reference in New Issue
Block a user