Skip to content

Latest commit

 

History

History
1099 lines (1030 loc) · 65.2 KB

File metadata and controls

1099 lines (1030 loc) · 65.2 KB

Changelog

v0.6.19

  • chore(main): release 0.6.19
  • fix(gateway): bump yanked spin 0.10.0 to 0.10.1 in Cargo.lock
  • fix(server): return 404 instead of 500 for unknown models on inference endpoints
  • fix(server): guard cross_encoder predict tokenization against the concurrent-metering race (class-fix for #1800)
  • fix(server): colbert-small multivector encode returns one vector-set per input, worker-item order (#1800)
  • fix(server): load tokenizer by pinned revision so offline chat-template rendering doesn't need refs/main (#1801)
  • fix(server): terminal Failed readiness state so the sidecar dead-letters permanently-failed model loads
  • chore(models): pin hf_revision for 12 unpinned launch-set models (§6.6)
  • fix(server): Florence-2 processor compat with transformers 4.57
  • docs(mcp): portable uv commands + context-management framing in README
  • fix(cloud): address CodeRabbit review findings on #1782
  • feat(cloud): idempotent catalog-sync converges the config catalog to in-repo model YAMLs (#1771)

v0.6.18

  • chore(main): release 0.6.18
  • chore: upgrade rust toolchain and deps
  • fix(cloud): redact all secret-bearing Config fields in Debug (#1740)
  • fix(cloud): redact ModalProxyToken Debug + cover /gen handshake forwarding (#1740)
  • feat(cloud): opt-in Modal proxy-auth layer for config/lane/OTLP ingress (#1740)

v0.6.17

  • chore(main): release 0.6.17
  • docs(gateway): clarify multi-gpu sidecar routing
  • fix(sidecar): refresh ready slots on cancel fanout failure
  • fix(sidecar): release cancelled scheduler pressure
  • fix(sidecar): wire local ingest through adapter pool
  • fix(req6): align candle chart after rebase
  • fix(server): keep ipc ping alive on gpu health errors
  • refactor(sidecar): name adapter worker pool generically
  • feat(worker): support multi-gpu sidecar children
  • fix(req6): harden multi-gpu worker review fixes
  • fix(req6): harden multi-gpu worker routing
  • fix(req6): resolve main rebase fallout
  • fix(req6): wire pressure-aware multi-gpu routing
  • test(tilt): emulate multi-child sidecar on cpu
  • feat(worker): route by child queue pressure
  • feat(worker): route multi-gpu sidecar children
  • docs: state req6 multi-gpu target directly
  • docs: clarify multi-gpu worker target topology
  • feat(server): support multi-gpu worker placement
  • feat(cloud): CLI WorkOS device-flow auth — retire the shared-token shortcut for customer commands (#1697)
  • chore(deps): bump the uv group across 3 directories with 12 updates
  • feat(oss): OSS amendments from the SIE Cloud build — engine, SDKs, gateway/sidecar seams (#1696)
  • fix(sidecar): bound queue admission through scheduler completion
  • chore(models): correct gte-Qwen2-1.5B compute_precision label to fp32 reality
  • fix(candle): address rope review feedback
  • fix(candle): repair rebase conflict resolution
  • fix(candle): remove rust worker forward coalescing
  • fix(sidecar): bulk enqueue scheduler items
  • fix(sidecar): expose scheduler flush reasons
  • feat(candle): add GTE RoPE embedding kernel
  • test(sdk): golden wire-contract fixture for ModelState + fix TS drift
  • refactor(server): move eviction-candidate decision into residency policy
  • refactor(gateway): unify worker-error retry semantics into one classifier
  • refactor(gateway): collapse header/pool/profile resolution into one seam

v0.6.16

  • chore(main): release 0.6.16
  • fix(adapters): honor caller instruction in use_model_encode without a template
  • feat(adapters): use_model_encode — delegate to checkpoint-native encode()
  • Revert "feat(adapters): opt-in template_as_prompt for ST prompt-length-aware templates"
  • Revert "fix(models): serve NV-Embed-v2 via its native latent-attention ST path"
  • fix(models): serve NV-Embed-v2 via its native latent-attention ST path
  • feat(adapters): opt-in template_as_prompt for ST prompt-length-aware templates
  • chore(models): remove Qwen3-0.6B experimental custom LoRA profile
  • test(keda): cover gpu-agnostic kind smoke demand
  • docs(gateway): clarify legacy empty demand comments
  • fix(adapters): harden splade flash gate + add flash-vs-native parity test
  • fix(gateway): normalize explicit GPU demand labels
  • fix(gateway): fan out gpu-agnostic demand across pool profiles for scale-from-zero
  • fix(bundles): pin flash-attn-4 prerelease so sglang 0.5.10.post1 resolves
  • fix(helm): wake a deterministic owner lane on gpu-agnostic demand for multi-profile bundles
  • fix(colbert): GTE muvera also at simhash 6 - CMedQA/MMarco evals OOM at dim 81920
  • fix(colbert): mxbai muvera at simhash 6 (FDE dim 20480) - runner dies at 81920
  • fix(colbert): retune GTE/mxbai muvera for the Dense-projected representation
  • fix(colbert): serve pylate Dense chains and align fallback with flash
  • fix(models): restore e5 templates on multilingual-e5-large ST profile
  • fix(colbert_modernbert_flash): faithful ModernBERT forward + hardened 1_Dense loading
  • test: cover candle warm model residency
  • fix: align candle workers with catalog lane config
  • refactor(server): dedup flash mean-pooling into _flash_pack
  • fix(colbert_modernbert_flash): address CodeRabbit review on #1591
  • fix(colbert_modernbert_flash): only apply Dense head when out_features==token_dim
  • fix(colbert_modernbert_flash): apply trained ColBERT Dense projection
  • Revert "feat(models): onboard topk-io/Iso-ModernColBERT (ColBERT multivector)"
  • fix(colbert_modernbert_flash): tolerate transformers>=5 tokenizer_class
  • feat(models): onboard topk-io/Iso-ModernColBERT (ColBERT multivector)

v0.6.15

  • chore(main): release 0.6.15
  • fix(playground): keyboard-accessible tabs + associated form labels
  • fix(server): address CI + review comments on the Apple Silicon re-land
  • feat(server): land Apple Silicon as a primary device onto main
  • fix(sidecar): start batch cancel before direct pulls
  • fix(tilt): wait for complete trace before asserting span chain
  • fix(gateway): harden batch direct fallback cancellation
  • fix(gateway): cancel abandoned direct batch fallback work
  • test(tracing): assert run_batch metadata and malformed traceparent
  • fix(gateway): ignore pre-latch stale NAKs after republish
  • fix(docs): drop otel.name from span-attribute table; tighten tracing dashboard test
  • feat(helm): add SIE tracing dashboard and tempo datasource uid
  • docs(gateway): document distributed tracing span chain and enable switch
  • refactor(helm): migrate bundled Tempo to grafana-community chart 2.2.3
  • refactor(helm): gate tempo datasource on grafana
  • fix(gateway): use real RUSTSEC id for second quick-xml advisory
  • feat(helm): add optional bundled Tempo tracing backend
  • fix(gateway): ignore quick-xml <0.41 RustSec advisories in cargo-deny
  • refactor(sie_gateway): clarify publish-seam comment, drop redundant otel.name
  • feat(sie_gateway): emit gateway.publish span on non-streaming queue-publish path (#1596)
  • feat(gateway): count dropped stale NAKs from abandoned attempts
  • test(observability): use single import style in shutdown_tracing test
  • feat(observability): bound tracing shutdown and trim env inputs across all four runtimes
  • fix(models): serve gte-Qwen2-1.5B via sentence_transformer adapter (#1593)
  • feat(observability): gate Rust tracing on SIE_TRACING_ENABLED
  • test: update queue executor batch mocks
  • test: cover queue runtime app wiring
  • fix: complete empty preformed worker requests
  • fix: address sidecar PR review feedback
  • fix: clean stale Python queue ownership drift
  • docs: clarify sidecar queue batching ownership
  • fix: remove Python worker pull-loop path
  • fix(server): serialize hot reload registry mutations
  • fix(server): move load headroom behind adapter contract
  • fix(server): make SGLang load eviction headroom-aware
  • test(config): time-box idempotency mismatch request
  • fix(config): shield idempotency failure cleanup
  • fix(config): defer cancellation after config commit starts
  • fix(config): handle idempotency in-flight races
  • fix(server): cap LoRA drain to snapshot backlog so post-snapshot arrivals don't overshoot
  • fix(gateway): keep signalling SSE incompleteness on lag; only skip cancel when done (#1602)
  • perf(gateway): build the HRW ring from the by_bundle index, not a whole-cluster scan (#1607)
  • fix(gateway): don't report a succeeded SSE generation as inter_chunk_timeout on consumer lag (#1602)
  • fix(gateway): drop stale NAKs from abandoned attempts in handle_nak (#1601)
  • perf(server): vectorize bge_m3_flash CLS gather to drop N per-encode GPU syncs (#1605)
  • fix(server): bound the continuous-batching drain so a busy LoRA can't starve siblings (#1606)
  • fix(server): stop mislabelling uint8 embeddings as "binary" on the queue path (#1603)
  • fix(server): /v1/embeddings maps OOM to 503 RESOURCE_EXHAUSTED, not 500 (#1604)
  • fix(server): unregister model from MemoryManager even if adapter.unload() raises (#1600)
  • fix: select rustls provider at binary startup
  • revert: restore gateway sidecar rustls defaults
  • fix: select rustls provider for rust services
  • fix(gateway): append forwarded embeddings headers to preserve multi-value tracestate
  • fix(gateway): forward traceparent/tracestate through /v1/embeddings rewrite
  • test(gateway): pin RetryAfter aliases to wire literals, not tautologies (#1574)
  • fix(tracing): parent sidecar.dispatch on first valid inbound context
  • refactor(gateway): injectable clock for TokenBucket (#1575, publisher PR 1/n)
  • refactor(gateway): one typed RetryAfter home for cold-load retry hints (#1574)
  • refactor(gateway): normalize rejected-request labels via sanitize_label (#1573)
  • docs(server): ADR-0004 — cost is modality-native, not commensurable (#1571)
  • refactor(server): controller owns its config write-back via apply_step (#1570, BatchPolicy PR 1/n)
  • feat(tracing): emit sidecar.dispatch span from sie_server_sidecar (#1550)
  • refactor(server): typed EvictionResult for evict_lru_excluding (#1569, ResidencyPolicy PR 1/n)
  • fix(gateway): record demand on backpressure so KEDA scales the lane (#1568)
  • refactor(server): single typed definition for the queue-path inference_error code (#1572)
  • fix(gateway): route engine-pin errors through endpoint_error_response (#1567)
  • chore(deps): refresh gateway Rust lockfile
  • docs(gateway): use 'gateway' terminology in resolve_routing pool comment (#1543)
  • refactor(gateway): fold pool + GPU resolution into resolve_routing (#1543, PR 3/3)
  • refactor(gateway): wrap routing decision in resolve_routing (#1543, PR 2/3)
  • refactor(gateway): extract resolve_bundle_for_request from proxy_request (#1543)
  • test(gateway/config/server): shared conformance vectors for bundle_config_hash (#1542)
  • refactor(server): make ModelRegistry.get() a pure read; add touch_lru() (#1541)
  • refactor(tracing): use is_some() borrow check for inbound ctx branch
  • test(tracing): bind a JetStream consumer in the encode propagation IT
  • test(tracing): add NATS-gated integration test for encode trace propagation
  • fix(tracing): attach inbound trace context for non-generation publishes
  • feat(tracing): inject queue trace context for non-generation endpoints
  • fix(adapters): guard empty-document MaxSim batches; strengthen single-doc test (#1539)
  • refactor(preprocessor): extract shared _load_rgb image loader (#1540)
  • refactor(adapters): shared multivector MaxSim scoring helpers (#1539)
  • refactor(adapters): extract shared flash varlen position-id builder (#1538)
  • test(server): add score/extract invalid-item regressions for decode_item seam (#1537)
  • refactor(server): validate queue-path items through one decode_item seam (#1537)
  • fix(candle): keep catalog additions candle-only
  • fix(models): restore per-task MTEB instruction for stella_en_v5 (#1340)
  • docs(helm): document collector suppression + exporterInsecure in chart README
  • fix(helm): make bundled collector downstream OTLP TLS configurable
  • fix(helm): suppress bundled collector when explicit tracing endpoint set
  • fix(helm): set OTEL_EXPORTER_OTLP_PROTOCOL=grpc on traced pods
  • feat(helm): add opt-in OTLP tracing wiring + bundled collector to sie-cluster
  • fix(candle): harden native worker routing
  • fix(tracing): assert items/metadata alignment before zip in scheduler batch
  • feat(tracing): propagate trace context through the non-streaming worker loop
  • fix(muvera): center tokens before SimHash to fix answerai @muvera Blackwell collapse (#1528)
  • fix(candle): harden native worker runtime
  • fix(sdk): raise actionable error on encode result-count desync (#1526)
  • fix(models): load stock tokenizer for gte-Qwen2-7B-instruct (#1483)
  • fix(server): skip EOS on empty input; cover non-default profile on queue path
  • fix(models): serve embeddinggemma-300m via SentenceTransformerDenseAdapter (#1523)
  • fix(server): apply profile runtime options and append EOS on cluster encode path (#1489)
  • fix(candle): publish loaded models in health
  • chore(deps): bump Rust gateway and sidecar dependencies
  • fix: repair candle rebase fallout
  • fix(gateway): separate queue timeouts from model loading
  • fix(candle): run bge-m3 profile in bf16
  • perf(candle): optimize bge-m3 xlm-r runtime path
  • fix(candle): align readiness with loaded model state
  • fix(candle): restore sidecar model readiness
  • fix(sidecar): keep only config hash wiring
  • fix(sidecar): bound scheduler bulk enqueue waves
  • perf(sidecar): bulk enqueue scheduler batches
  • feat: tune candle forward concurrency
  • fix: remove candle replica fallback path
  • feat: improve candle replica concurrency
  • fix: log candle batch failure context
  • fix: restore default candle cuda stream
  • perf: improve candle worker concurrency and build cache
  • fix: improve candle embedding runtime throughput
  • fix: install gateway pool config hashes
  • fix: preserve control-plane bundle hash in sidecar
  • fix: align worker pool config hashes
  • fix: export profile bundle targets
  • fix: repair candle ci routing checks
  • fix: harden candle bge-m3 runtime bring-up
  • feat(candle): add native adapter runtime
  • fix(muvera): drop same-dim count-sketch + retune colbert muvera configs (#1493)

v0.6.14

  • chore(main): release 0.6.14
  • test(encode): cover dual-type muvera filter; harden response_output_types fallback (#1430)
  • fix(encode): preserve postprocessor dense output for muvera profile (#1430)
  • fix(colbert): patch ColBERTRotaryFlashAdapter score_pairs too (#1430)
  • fix(colbert): override score_pairs to ignore encode-time options (#1430)

v0.6.13

  • chore(main): release 0.6.13
  • fix: extend tester structured generation timeouts
  • fix(server): serialize async config registry updates
  • fix(server): preflight profile variant config updates
  • fix(server): drain removed profile variants during config apply
  • fix(sie-mcp): chunk GLiNER extract/redact for large docs; flag the other 4B
  • feat(sie-mcp): per-tool GPU routing and env-overridable GLiNER models
  • docs(sie-mcp): add the Obsidian contract-graph example
  • fix(server): tighten profile variant reconciliation
  • fix(server): preserve profile variants during config reconcile
  • fix(gateway): retry failed payload cleanup deletes
  • fix(gateway): dedupe offloaded payload cleanup keys
  • fix(gateway): track exact offloaded payload keys
  • docs(sie-mcp): use the rendered Excalidraw PNG for the architecture diagram
  • docs(sie-mcp): replace the ASCII architecture sketch with an Excalidraw diagram
  • docs(sie-mcp): accessible README intro; drop the redundant product page
  • fix(sie-mcp): bound text offload inputs
  • feat(sie-mcp): integrate managed plugin skills

v0.6.12

  • chore(main): release 0.6.12
  • fix(gateway): record offload before the store write (PR review)
  • test(gateway): cover payload-store cleanup guard
  • fix(gateway): skip payload-store cleanup DELETEs for inline requests
  • fix(gliclass): guard label-window overflow + defer LEDGAR for v1.0 uni-encoders

v0.6.11

  • chore(main): release 0.6.11
  • fix: handle sidecar progress ack failures
  • fix: harden worker-direct batch fallback
  • fix: align retryable generation review feedback
  • fix: preserve queue delivery budget
  • fix: return retryable model loading for generation
  • test: cover default-backed pinned pool gauge
  • fix: harden logical pool queue routing
  • docs: clarify logical pool backing queues
  • feat: support logical pools backed by queue pools
  • refactor(bench): re-task Florence-2-base to COCO detection (card metric), keep OCR fallback (#1437)
  • fix(ci): raise uv HTTP timeout for the gemma cu130 wheel downloads
  • docs(deploy): note machineProfiles entry for the gemma example pool
  • feat(deploy): fail fast when a bundle is placed on the wrong platform
  • docs(server): accurately scope what the gemma cuda13 CI smoke covers
  • fix(server): correct stale cuda13/gemma platform references
  • refactor(bench): re-task Florence-2-base to OCR, measure on olmOCR-bench not KIE (#1437)
  • feat(server): first-class cuda13 platform for the gemma bundle
  • fix(server): make transformers version bundle-controlled
  • docs(server): correct the gemma cu130 Docker validation comments
  • fix(server): parse --mamba-scheduler-strategy value exactly in spec guard
  • fix(server): route grammar off :mtp for Gemma 4 via grammar_profile
  • test(server): surface errors and non-settling tasks in pinned-load drain helper
  • fix(worker): make pinned models profile-aware and reconcile on config arrival
  • docs(helm): trim staticQueuePools pinnedModels comment to effect-only
  • feat(worker): bridge gateway pinned-model set to the worker at runtime
  • docs(server): mark gemma-4-26B-A4B mtp profile validated (Modal H200)
  • feat(server): extend pinned-model protection to the disk cache
  • fix(server): gemma Docker builder — effective uv cache, skip bytecode, fix comment
  • fix(server): drop FP8 from gemma-4-26B-A4B (BF16 only)
  • feat(server): keep pinned models loaded and exclude them from LRU eviction
  • fix(server): require extra_buffer value in the speculative mamba-scheduler guard
  • fix(server): wire per-bundle CUDA indexes into the cuda12 Docker builder
  • feat(server): add Gemma 4 generation models (E2B, E4B, 26B-A4B)

v0.6.10

  • chore(main): release 0.6.10
  • fix: sync generation visibility api contract
  • fix: improve generation failure observability
  • feat(florence2): fix bbox conversion, re-task base-ft/large to COCO detection (#1347)
  • feat(bench): floor measure-first dark models, retire donut-rvlcdip (#1347)
  • fix(qwen3_vl_embedding): coalesce whitespace-only instruction to default
  • test(qwen3_vl_embedding): pin empty/None instruction -> default contract
  • fix(bench): align gliner label inputs
  • fix(bench): align gliner v2.5 conll protocol
  • fix(deploy): address payload-store review feedback
  • feat(deploy): provision and enable the payload store by default
  • fix(sie-cluster): address PR review findings on the self-host edge
  • fix(sie-cluster): make AWS self-host turnkey (warm default + edge nits)
  • fix(helm): let the MCP edge ingress drive cert-manager without a global gateway host
  • fix(worker): preserve label order when batching extract requests
  • fix(cluster): propagate --aws-region to terraform + standardize release name on 'sie'
  • docs(sie_mcp): runbook must actively wait through cluster create/destroy
  • docs(sie_mcp): clean-room AWS self-host runbook for a fresh agent
  • refactor(sie_mcp): consolidate the offload skill into one surface-agnostic SKILL.md
  • feat(helm): add sglang worker bundle to the AWS l4 pool
  • docs(sie_mcp): local Cowork verification guide + example MCP client
  • feat(helm): optional MCP-edge component for the sie-cluster chart
  • feat(sie_mcp): containerize the MCP edge
  • fix(qwen3_vl_embedding): pool post-RMSNorm last_hidden_state + normalize instruction (#1385)
  • fix(sie-server): make transformers5 bundle reachable via pip (#826)

v0.6.9

  • chore(main): release 0.6.9
  • chore(gateway): regenerate openapi.json for pinned_models profile docstrings
  • feat(gateway): support profile-qualified ids in per-pool pinned-model set
  • fix(gateway): bound pinned-model metric labels and add handler validation tests
  • feat(gateway): add per-pool pinned-model set to the pool config API
  • fix(server): alias PEFT LoRA adapter names
  • fix: scope worker preload models by lane

v0.6.8

  • chore(main): release 0.6.8
  • fix(server): share score media batch cost
  • fix(server): serialize worker use with unload state
  • fix(server): keep score traffic from idle-evicting rerankers
  • refactor(gateway): consolidate warm floor onto minimum_worker_count; retire admission gate
  • feat(gateway): add per-pool warm floor (min_machines) with KEDA enforcement

v0.6.7

  • chore(main): release 0.6.7
  • fix: guard model ready timeout against liveness budget
  • fix: wire model ready timeout through helm
  • docs: address sidecar guide review feedback
  • fix: address qwen 27b review feedback
  • docs: revise sidecar architecture guide
  • fix: route qwen 27b fp8 cold starts
  • fix: make worker config reconciliation no-op safe
  • style(lighton_ocr): hoist test imports to module top per CodeRabbit review
  • fix: add qwen3.6 27b 32k rtx serving profile
  • fix(generate): label streaming collector/publisher metrics with display model
  • fix(generate): route explicit profile variants through grammar_profile
  • perf(adapters): extract shared vision patch-embed rebind helper (#1151)
  • fix(generate): keep requested model id in /v1/generate grammar gate errors + variant-narrowing tests
  • test(generate): handler-level grammar routing dispatch-vs-display tests
  • fix(generate): split display vs dispatch model for grammar routing + chat gate ordering
  • fix(generate): address review — grammar routing before profile gates + delta refresh
  • fix(generate): route grammar requests to a non-speculative profile
  • test(lighton_ocr): address CodeRabbit review on #1223
  • perf(lighton_ocr): batch generate() across pages to fix #601 L4 throughput

v0.6.6

  • chore(main): release 0.6.6
  • fix(config): clarify missing profile inheritance
  • fix(config): avoid sticky missing bundle hashes
  • fix(config): fail closed on missing bundle metadata
  • fix(config): align pool-scoped bundle hashes

v0.6.5

  • chore(main): release 0.6.5
  • fix(gateway): preserve ref sibling schema semantics
  • fix(gateway): dereference structured output schema refs
  • refactor(sidecar): inline applied bundle hash
  • fix(config): fingerprint model pool ownership
  • chore(worker): address SGLang load review nits
  • fix(gateway): align provisioning contract docs
  • fix(gateway): address provisioning review feedback
  • fix(server): guard readiness for removed configs
  • test(server): fix ipc registry mock snapshot
  • docs: clarify pool capacity semantics
  • fix: align GPU memory pressure defaults
  • fix(server): honor pool-aware model configs
  • fix(gateway): make provisioning non-2xx universally
  • fix(worker): keep SGLang loads off event loop
  • fix(gateway): return retryable OpenAI provisioning errors
  • test(server): cover qwen3 vl reranker document image ordering
  • fix(sdk): normalize score images for wire transport
  • fix(server): render qwen3 vl reranker document images in user prompt
  • fix(gateway): decode native media JSON bytes
  • fix(deps): bump sidecar prometheus for protobuf advisory
  • fix(config): harden replace snapshot IPC
  • fix(config): replace drifted export snapshots
  • fix(config): detect bundle config hash drift
  • fix(sie-cluster): add spot toleration to AKS worker pool

v0.6.4

  • chore(main): release 0.6.4
  • fix(sidecar): preserve msgpack work item payloads
  • fix(gateway): resubscribe stale NATS health stream
  • feat(helm): ship values-aks.yaml AKS overlay with the Azure module
  • fix(helm): render selectorLabels after podLabels in workload templates
  • feat(helm): expose chart-level podLabels for Workload Identity wiring
  • feat(helm): accept abfs:// and abfss:// payloadStore + clusterCache URLs

v0.6.3

  • chore(main): release 0.6.3
  • test: stabilize SDK timeout retry assertion
  • fix: fall back to relay on S3/GCS server-side copy failure
  • feat: add server-side copy fast path for cloud weight sync
  • fix: address final cloud storage review issues
  • fix: harden cloud cache sync paths
  • fix: address azure cache review feedback
  • feat: support azure blob cluster cache
  • feat: add azure blob payload store support
  • fix(generate): reject both-present image-bearing content layouts
  • fix(generate): image-free content_parts field must not shadow layout
  • feat(generate): preserve text/image content-part ordering
  • fix(nemo_colembed): trim left-padding rows from v1 conformant doc embeddings (#1163)
  • perf(nemo_colembed): engage conformant image preprocessing for v1 (#1163)
  • fix: evict stale gateway workers on shutdown
  • fix(generate): address huronat review on vision input (F2-F8)
  • fix(generate): address CodeRabbit review on vision input
  • feat(generate): add vision (image) input to generate()
  • fix(deps): clear HIGH Dependabot alerts (docling, rustls-webpki)
  • fix(bench): address CodeRabbit — accurate classification comment + quote-agnostic test
  • fix: align extraction quality evals with source baselines
  • feat: add m4 extraction model configs

v0.6.2

  • chore(main): release 0.6.2
  • fix(server): consolidate runtime ninja install
  • fix(server): install ninja in cuda runtime
  • fix(helm): scale single-profile bundles on gpu-agnostic demand
  • fix(dev): address KEDA Tilt PR review
  • feat(dev): refresh KEDA Tilt local dev branch
  • fix: accept dense dim in qwen3 vl embedding adapter
  • feat(models): add M4 dense encoders mxbai-embed-large-v1, arctic-embed-l-v2.0, modernbert-embed-base

v0.6.1

  • chore(main): release 0.6.1
  • fix(gateway): fail fast on invalid static pool config
  • fix(gateway): canonicalize static queue pool names
  • feat(gateway): support static queue pools

v0.6.0

  • chore(main): release 0.6.0
  • fix(helm): preserve worker-group queue defaults
  • test(gateway): assert capped lane pending demand
  • docs: align queue lane naming
  • fix(helm): align lane defaults and tilt e2e
  • fix(gateway): harden queue lane admission
  • feat(gateway)!: route work by queue pool lanes
  • feat(helm)!: default SIE_POOL to pool name (not "default")
  • fix(deps): bump vitest 2.1.9 -> 4.1.0 (CVE-2026-47429)

v0.5.0

  • chore(main): release 0.5.0
  • docs(helm): clarify README pool example is illustrative, not tester-specific
  • fix(helm): fail-fast on missing/invalid bundle replica bounds
  • chore(helm): address PR #1205 review feedback
  • fix(helm): preserve gateway metrics scrape labels
  • feat(helm)!: split worker pools into pool × bundles schema
  • fix(gateway): expose unauthenticated metrics scrape port
  • chore(openapi): regenerate spec for code/sql/guard capability fields
  • fix(models): drop unsupported ebnf advertisement + restore guardian a100 guard threshold
  • feat(models): surface code/sql/guard capabilities; resolve job aliases in configs/resolve
  • fix(guard): robust verdict thresholding, logprob hygiene, decoded-token logprobs
  • feat(tester-cluster): add sglang worker pool for generative models
  • fix(sie_server): honor params.instruction in Florence-2 extract (#1053)
  • fix(helm): use sidecar binary for image pre-pull
  • chore: remove agent-jobs runbook, ADR 0001, and m5-planning docs
  • fix(guard): reject multi-candidate sampling + keep logprobs consistent on rewrite
  • feat(guard): P(unsafe) logprob threshold for CHECK POLICY precision (#1187)
  • docs(ops): agent-jobs prod-readiness runbook + opt-in model-alias deploy config
  • fix(review): address #1184 review comments + restore dropped A/B fix
  • bench(sql): grammar A/B + SQLCoder native-template measured on Spider
  • test(gateway): end-to-end precision routing through resolve_model_and_bundle
  • test(gateway): prove a model routes across two precision bundles
  • feat(gateway): job aliases can carry a precision bundle (SQL->BF16 routing)
  • docs(27b): flag FP8 SQL regression on sql cap + clarify targets are documentary
  • feat(27b): measure Qwen3.6-27B on code/SQL/tools; advertise code+sql
  • feat(guard): CHECK POLICY content-moderation model + ToxicChat F1 eval
  • bench(sql): measured Spider execution accuracy + anchored floor; SQLCoder serve-validated
  • feat(code): point model="code" at the measured model; xgrammar-validate SQL grammar
  • feat(sql): onboard SQLCoder (Defog) config + starter SQL grammar artifact
  • feat(bench): add Spider text-to-SQL execution-accuracy eval + model="sql" alias
  • fix(review): address PR feedback on the code-eval
  • feat(server,gateway): advertise code capability + model="code" alias

v0.4.2

  • chore(main): release 0.4.2
  • Scope SGLang CUDA toolkit runtime
  • Enable CUDA toolkit in SGLang worker runtime
  • perf(mineru_vl): O(L) incremental no-repeat-ngram for greedy decode
  • feat(sie_server): add MinerU2.5-Pro-2604-1.2B doc OCR adapter
  • build(deps): upgrade rust toolchain to 1.96
  • feat(models): add Marqo/marqo-fashionSigLIP (SigLIP open_clip, fashion image-text)
  • fix(ci): keep sidecar out of warm cache
  • fix(review): 0.6B ctx test 1024->4096, loader except logs, README gaps resolved
  • fix(ci): avoid nested mise in integration fixture
  • docs: align sidecar naming in active docs
  • fix(deploy): align server sidecar naming
  • fix(deploy): document worker-sidecar metrics wiring
  • fix(deploy): rename sidecar container to worker-sidecar
  • fix(deploy): align server sidecar naming and kind preload smoke
  • fix(deploy): publish server sidecar image
  • feat(model): bump Qwen3-0.6B serving context 1024→4096 for prod simple-task use
  • fix(bench): let via-SIE smoke serve a profile-variant model end-to-end
  • fix(loader): wire profile runtime.default_sampling into the adapter
  • feat(model+bench): RTX-PRO-6000 FP8 profile for Qwen3.6-27B + 6000 validation
  • refactor(glm_ocr): select patch-embed conv strictly by structure (CodeRabbit)
  • perf(glm_ocr): rebind vision Conv3d patch-embed to F.linear
  • chore(adapters,ci): remove Vidore3 throughput diagnosis instrumentation
  • fix(test): restore donut helper call contract
  • fix(ci): address analyzer findings and stale queue test
  • fix(adapters): replace Qwen3-VL vision Conv3d patch-embed with matmul
  • chore(helm): clean sidecar chart observability
  • feat(sidecar): add worker config and pool admission reconciliation
  • TEMP(colqwen3): time vision sub-modules (patch_embed/block/merger)
  • test(tilt): expand sidecar e2e coverage
  • feat(sidecar): wire generation direct dispatch
  • TEMP(colqwen3): split forward timing into vision vs text (revert before merge)
  • fix(adapters): route Qwen3-VL VLMs through flash attention (Vidore3 throughput)
  • TEMP(adapters,ci): timing instrumentation for Vidore3 throughput diag
  • chore(openapi): regenerate gateway spec for min_tokens + chat_template_kwargs
  • fix: address coderabbit + code-quality review on PR #1146
  • feat(bench+model): via-sie 4-task n=300 sweep + NEXTN smaller-draft on 27B
  • fix(worker): SGLang adapter accepts min_new_tokens kwarg + 27B via-sie validated
  • fix: slow sidecar nats consumer reconcile
  • fix: gate sidecar nats reconnect refresh
  • fix: address pr review quality issues
  • fix: harden sidecar config recovery
  • chore: clean sidecar docs and packaging
  • chore: prune sidecar compatibility paths
  • docs(sidecar): clarify worker sidecar source naming
  • fix(ci): refresh gateway openapi contract
  • fix(quality): repair adapter eval harness regressions
  • fix(worker-sidecar): harden queue carveout contracts
  • fix: scope bundle config hash cache per registry
  • chore: standardize worker sidecar packaging
  • feat: reconcile live worker config in sidecar
  • Add worker config reconciliation
  • chore: clean worker sidecar deployment surfaces
  • chore: enable rust sidecar in local tilt
  • fix: require rust sidecar for queue workers
  • docs: clarify worker config apply gap
  • chore: consolidate inference sidecar package
  • fix: preserve worker batch identity and publish image
  • chore: finish rust worker rebase integration
  • chore(helm): land S20+ rust-sidecar production tuning defaults
  • chore: scrub stale sie_candle references and dead candle metric
  • non-adapter carveout: ship sie_prep + wire passthrough end-to-end
  • non-adapter carveout: retire sie_candle, carve out sie_prep, Python passthrough
  • sie_worker_rust + sie_server: queue-depth metrics for IPC+Python loop
  • worker-rust + sie_candle: NATS health heartbeats and BERT cross-encoder
  • rust-worker: retire SIE_RUST_*_MODELS env vars, carve sie_candle out into its own crate (Stage 3 P1)
  • rust-worker: land Stage 1 (tokenise + framing) + Stage 2 (scheduler) + Stage 3 design
  • adding perf-tuning grafana dash fixes and extension
  • obs(helm): perf-tuning Grafana dashboard + ConfigMap
  • perf(rope_flash): vectorize CLS/mean pooling, eliminate per-item .item() sync
  • perf(adaptive): anchor min_batch_cost floor at max_batch_tokens // 4
  • revert: restore adaptive batching defaults to 15/50ms
  • perf(batching): tighten adaptive wait ceiling + revert gte-multilingual 32k
  • perf(gte-multilingual-base): raise max_batch_tokens 16k → 32k to stop IPC-batch shred
  • perf(server): FP16 on GPU, coalesce sized for IPC bursts, starvation self-heal
  • obs(worker+server): audit follow-ups for phase + fragmentation metrics
  • obs(worker+server): surface GPU phase latency + IPC-batch fragmentation
  • feat(worker/rust): IPC connection pool — lift the sidecar's last serialization bottleneck
  • fix(gateway+server): queue is the only mode — kill direct-mode cruft
  • fix(gateway): suppress H9 first-chunk-fallback on single-worker pools
  • worker(rust)+sie_server: post-audit P0 fixes — drain min-deadline, fallback eviction tests, dispatcher outcome binding, encoder UnsupportedModel coverage, model-label cardinality tests
  • worker(rust): finalise pre-Argo audit — native Candle, fallback breaker, full observability, Docker + Helm
  • chore(sie-server): drop dead code left over from sidecar cutover
  • fix(worker): harden payload store + error paths; surface silent success bugs
  • sie-server: commit to sidecar-only queue path; remove Python NATS
  • feat(sie_worker_rust): close parity gaps with Python pull loop + smoke test
  • feat(sie_server): UDS msgpack IPC server for Rust worker sidecar
  • feat(sie_server): carve out QueueExecutor + IPC types for Rust worker POC
  • feat(bench): 0.6B via-sie validated; harness + 27B config gains
  • fix(model): bump Qwen3.6-27B default/h100 mem_fraction_static 0.85 → 0.92
  • feat(gateway+worker): chat surface accepts min_tokens + chat_template_kwargs
  • fix: accept dense_dim in dense adapters
  • test: align structured output metric constants
  • fix(sie_server): clear CUDA cache on uncovered VLM paths + drop private sem _value access
  • chore: remove internal design doc references
  • docs: clean stale design references
  • docs: minimize design architecture docs
  • docs: update design document references
  • docs: remove internal planning references
  • docs: archive obsolete roadmap
  • fix(security): cap vite at ^6 + add Node engines to website
  • feat(gateway): strengthen generation isolation guardrails
  • feat(docling): accept image input + run on OCR-bench quality path
  • fix(security): bump sie_ts_sdk standalone pnpm transitives
  • fix(security): bump root pnpm deps + add overrides for transitives
  • fix(security): bump root Python deps to patched versions
  • fix(security): bump gateway deps to patched versions
  • chore: drop CodeQL rationale comments
  • fix(quality): batch3 of CodeQL findings + bench KIE bug
  • fix(quality): drop redundant inline imports in donut + registry
  • fix(security): use Reflect.construct for WebSocket headers shim
  • fix(quality): close CodeQL quality-tab findings
  • Fix gateway queue trace isolation
  • perf(bench,adapters): parallel VLM sub-batch dispatch + drop redundant empty_cache
  • Keep generation machinery off default queue path
  • docs(test): note : -> __ replacement in test_model_yaml_filenames docstring
  • fix(models): rename ColQwen3 YAML to match sie_id casing (TomoroAI)

v0.4.1

  • chore(main): release 0.4.1
  • fix(security): resolve 18 open CodeQL alerts
  • Revert "Fix pool queue batching coalescing"
  • Fix pool queue batching coalescing
  • refactor(release-docker): remove sie-deps prebake; build deps in-band
  • fix: refresh generation pool fallback on hot add
  • fix: isolate generation direct dispatch
  • feat(server): add Qwen3.6-27B model + migrate to CUDA 12.9

v0.4.0

  • chore(main): release 0.4.0
  • chore(release-docker): scrub overcommenting and internal-naming leaks
  • fix(gateway): add NATS config trusted producers helm override
  • ci(release-docker): pre-bake sie-deps base images keyed on lockhash
  • chore(release): drop cuda11 from docker build matrix
  • fix(helm/sie-cluster): guard validateTls probe against deployments with nil labels
  • feat(openapi): add tool_calls support to chat completion schema
  • style: format code to comply with line length limits
  • fix(gateway): document ModelCapabilities in OpenAPI + refresh on profile delta-update
  • fix(gateway): scope LoRA adapter capabilities per profile (M10)
  • fix(generation): cancel tombstone prevents first-chunk fallback double-execution (H9)
  • feat(gateway): /v1/generate accepts seed/logprobs/logit_bias/n/best_of/lora_adapter (M8)
  • docs(openapi): rewrite schema to match implemented chat/completions/responses surface (M2)
  • fix(helm/sie-cluster): probe cert-manager controllers cluster-wide
  • fix(helm/sie-cluster): include cert-manager mode in presence-check gate
  • fix(helm/sie-cluster): label-based cert-manager detection + bidirectional runtime check
  • fix(helm/sie-cluster): one-step bundled cert-manager install with self-signed TLS
  • docs(generation): A100 Outlines smoke closes H10 release gate
  • fix(streaming): no-silent-drop on chunk-queue backpressure (H6)
  • feat(gateway+worker): per-choice OpenAI streaming for n>1 (H4, H5, M4)
  • docs(product): commit generation as 4th supported primitive (M3, M9)
  • feat(gateway): add routing salt + byte-preserving key mode (M11)
  • fix(gateway): tighten chat sampler/token-cap + tool-history validation (M1, M13)
  • feat(worker): SGLang owns grammar; worker preflight opt-in only (H8, ADR-0002)
  • fix: centralize worker_id subject normalization (M5)
  • docs(generation): reconcile Qwen3.5 grammar-backend evidence (H10)
  • fix(gateway): strict allow-list + 400 contract on /v1/responses (H2)
  • fix(gateway): strict allow-list + 400 contract on /v1/completions (H3)
  • feat(python-sdk): expose typed params for chat n/logprobs/lora_adapter/etc (M7)
  • feat(ts-sdk): handle 202 provisioning in chatCompletions + expose missing fields (H1+M6)
  • fix(gateway): generation timeouts bypass legacy request-timeout ceiling (H7)
  • fix(generation): tighten lossy tool-control flags (M14)
  • chore(lora): rename "LoRA-on-generation exclusion" to "legacy scalar lora_id"
  • Fix async pool create delete races
  • Await in-flight async pool creation
  • Address pool admission review comments
  • Fix pool admission cap semantics
  • Fix pool cap admission semantics
  • fix(ci): copy assets/ into the gateway Docker build (redoc bundle)
  • feat(gateway): /v1/completions streaming (text_completion SSE)
  • feat(gateway): /v1/responses structured array input (conversation history)
  • feat(generation): streaming n>1 — per-candidate SSE interleave
  • feat(gateway): accept OpenAI multimodal content-parts; reject images (no VL model)
  • feat(gateway): /v1/responses (OpenAI Responses API, MVP)
  • feat(gateway): advertise lora_adapters on /v1/models + pre-validate unknown names
  • feat(generation): best_of — over-generate + rank by logprob, return top n
  • feat(gateway): /v1/completions (legacy OpenAI Completions, raw-prompt)
  • feat(worker): wire mixed-pool fairness scheduler into the pull-loop (opt-in)
  • Revert "feat(gateway)!: fail-closed authentication (default-deny)"
  • Revert "fix(dev): set explicit auth opt-in for local gateway launchers (post fail-closed)"
  • Enable cloud log observability overlays
  • fix(generation): LoRA lora_path is a top-level /generate field, not a sampling param
  • feat(generation): multi-LoRA serving (one base, N adapters, per-request) (roadmap 6.2)
  • Disable cloud log observability by default
  • Sync Helm dependency lock
  • feat(generation): multi-candidate n>1 (non-streaming) end-to-end (roadmap 1.5)
  • Enable cloud Loki Alloy overlays
  • Add Loki Alloy log observability
  • fix(dev): set explicit auth opt-in for local gateway launchers (post fail-closed)
  • feat(gateway): register /v1/moderations as explicit 501 (roadmap 1.8, phase 3)
  • feat(gateway): meaningful system_fingerprint on chat responses (roadmap 1.3/§5)
  • feat(worker): WorkClassScheduler core for mixed-pool fairness (roadmap §6.1)
  • fix(chart): pin image-prepull DaemonSets to GPU nodes
  • feat(routing): cache-aware (prefix-hash) routing (roadmap §6.3)
  • feat(gateway)!: fail-closed authentication (default-deny)
  • feat(chat): regex/EBNF response_format + developer role (roadmap 1.7)
  • docs: reconcile structured-output backend + fix chat-param docstring drift
  • feat(gateway): serve a rendered API reference at /docs (Redoc)
  • feat(gateway): unify /v1/embeddings on the OpenAI error envelope (roadmap 1.4)
  • chore(openapi): regenerate server spec for GPU-aware health probes
  • fix(server,gateway): add GPU-aware health probes to detect and recover from wedged CUDA contexts
  • fix(sie_server): install cv2 system libs for docling extract
  • fix(sie_server): enforce media bytes contract at every consumer (#1026)
  • fix(sie_server): base64-decode JSON image inputs (#1026)
  • feat(gateway,sdk,server): add OpenAI-compatible chat completions with streaming and sampling extensions
  • fix(grammar): resolve tokenizer adapter for Outlines processor factories and remove anchors from regex patterns
  • test(metrics): update api_key masking assertion and add clarifying comment
  • fix(gateway,sdk,server): validate numeric fields and improve error handling
  • refactor(gateway,sdk,server): harden request routing, dedup, and resource cleanup
  • fix(gateway,sdk,server): prevent metric cardinality DoS and fix non-idempotent retry logic
  • refactor(gateway,server): improve OpenAI compatibility and fix Docker build caching
  • feat(gateway,server): add multi-turn tool-use support with OpenAI-compatible message format
  • fix(helm/sie-cluster): regenerate Chart.lock with synced digest
  • fix(helm/sie-cluster): make self-signed root-CA namespace configurable
  • feat(helm/sie-cluster): bundle cert-manager + trust-manager (opt-in) with self-signed TLS mode
  • chore(helm): decouple worker image bundle from logical bundle configuration
  • fix(helm): trim and drop empty entries in ingress.hosts
  • refactor(sdk,server,observability): simplify sampling parameter handling and fix concurrent HTTP client initialization
  • fix(gateway,sdk,server): add wire-level validation, improve resource cleanup, and enhance observability across request lifecycle
  • fix(gateway,sdk,server): strengthen validation and eliminate silent failures across request lifecycle
  • feat(gateway,sdk,server): add native generate endpoint with improved admission control and validation
  • feat(gateway): refactor streaming and routing with improved error handling and metrics
  • build(gateway): add BSL-1.0 to allowed licenses in deny configuration
  • chore: regenerate OpenAPI spec
  • feat(generation): complete M4 req2 generation primitive with streaming, structured outputs, and routing
  • Support configurable ingress.hosts in sie-cluster chart
  • refactor(observability): add grammar label to TTFT/TPOT metrics and extend dashboard instrumentation
  • feat(gateway,server): add HRW direct-dispatch routing with saturation-aware admission control
  • refactor(routing): implement slice 05 HRW direct-dispatch with saturation-aware worker selection
  • feat(gateway): implement slice 04 structured-output grammar validation and compilation
  • feat: generate slice 03 chat completions + OpenAI error envelope
  • feat(observability): implement generation POC metrics and dashboard (slice 07)
  • feat: generate slice 08 gated validation trench
  • fix(pytorch_embedding): accept and forward revision kwarg (#876)
  • feat: generate slice 02 streaming async iterator
  • feat: generate slice 01 walking skeleton

v0.3.4

  • chore(main): release 0.3.4
  • fix(sdk): widen sie-sdk requires-python to >=3.12
  • extend: GCP bucket provisioning, custom IAM roles, fix path mismatch
  • fix(gateway): tolerate config conflicts in bootstrap, gate on sie-config ready
  • feat(infra): default payload store to model-cache bucket /payloads
  • fix(deps): pin opencv-python-headless to drop X11 runtime deps
  • fix(chart): default workers to shared queue pool
  • feat(ts-sdk): add ExtractOptions.adapterOptions for adapter knobs
  • test(sdks): cover handle_error dispatch and tighten InputTooLongError tests
  • feat(sdks): add typed InputTooLongError for extract 400 INPUT_TOO_LONG

v0.3.3

  • chore(main): release 0.3.3
  • fix(docker): install libspatialindex-c6 in worker images
  • refactor(gliclass): tighten IndexError discriminator with regex
  • fix(gliclass): catch IndexError empty-tensor crash as InputTooLongError
  • test(gliclass): cover _apply_overflow_policy per policy
  • fix(gliclass): raise InputTooLongError from argmax-empty backstop
  • chore(openapi): update openapi spec
  • Fix gateway routing and autoscaling regressions
  • Address Tilt PR review feedback
  • Optimize gateway msgpack success responses
  • Add kind Tilt gateway SDK E2E loop
  • refactor(server): give overflow_policy a typed home
  • test(adaptive-batching): add absolute tolerance to floating-point assertions
  • docs(gliclass): document token accounting in _apply_overflow_policy
  • chore(gliclass): refactoring
  • chore(gliclass): remove redundant docstring _extract_text
  • chore(gliclass): remove redundant "loaded" checks
  • feat(server): enforce overflow_policy in gliclass adapter
  • feat(server): validate overflow_policy in resolve_runtime_options
  • docs(server): surface overflow_policy in extract OpenAPI schema
  • feat(server): route INPUT_TOO_LONG to HTTP 400 in extract API
  • feat(server): add new INPUT_TOO_LONG ErrorCode
  • feat(model-loader): add post-download load timeout with stall-based download bounds
  • fix(ci): peft-adapter base size + ocr force-heavy + drop hf_hub cap
  • fix(bundles): cap huggingface-hub <0.32 in transformers5 bundle
  • fix(ci): drop runner_class from public model YAMLs; route via HF size
  • feat(ci): two GPU lanes (L4 + g7e) with model-driven routing
  • fix(sglang): make startup timeout env-driven; bump default 300 -> 900
  • fix(adapters): preserve encode order/boundaries (colqwen3) + lock v1 to_dict patch (nemo_colembed)
  • fix(nemo_colembed): strip zero-padded rows from v2 batched embeddings
  • fix(nemo_colembed): broaden AutoModel-failure catch for v1 fallback
  • feat(adapters): add ColQwen3 and Nemotron ColEmbed v2 visual document retrieval

v0.3.2

  • chore(main): release 0.3.2
  • test(fixtures): configure deployment environment for test containers and clusters
  • ci(telemetry): add deployment environment tagging across internal infrastructure
  • docs(gateway): document embeddings partial-success contract
  • fix(docker): stub bundles/ and models/ in deps stage
  • docs(gateway): clarify OpenAPI contracts
  • fix(sie-server): include model and bundle directories in wheel distribution
  • feat(sie_server): per-stage timing markers in lifespan for engine_boot attribution
  • feat(sie_server): split adapter.warmup() out of load() with cold-start log markers
  • feat(helm): wire probe templates to values trees
  • feat(helm): expose probes value trees for worker/gateway/config
  • fix(gateway): preserve scale-from-zero request path
  • fix(gateway): preserve embeddings timing headers
  • fix(gateway): address latest coderabbit contract notes
  • docs(gateway): document service unavailable variants
  • fix(gateway): close remaining review contract gaps
  • docs(gateway): align embeddings encoding docs
  • fix(gateway): reject unsupported embeddings token arrays
  • fix(paddleocr_vl): pass use_cache=True to generate to enable KV-cache
  • fix(gateway): address probe and SDK review findings
  • feat(gateway): unify API errors and align probe contracts
  • fix(docling): mark adapter unloaded in unload()
  • fix(docling): cache DocumentConverter per (device, ocr_enabled)
  • fix(chart): pass --cluster-cache to sie-server and correct populate command in docs
  • docs(infra): drop mise wrappers from public-facing model-cache docs (#791)
  • feat(infra): opt-in S3 cluster model cache (#791)
  • docs(helm): correct Let's Encrypt rate-limit wording in README
  • fix(helm): validate ACME server and privateKeySecretRef in validateTls
  • docs(helm): address local reviewer suggestions on TLS work
  • feat(helm): TLS termination via cert-manager + BYO matrix docs
  • fix(gateway): address PR review for NATS health mode
  • fix(gateway): align CreatePoolRequest OpenAPI with runtime validation
  • fix(gateway): clarify experimental NATS health mode
  • feat(gateway): expose OpenAPI contract
  • feat(docling): add ocr profile defaulting do_ocr=true
  • fix(docling): thread device through PdfPipelineOptions accelerator_options
  • fix(review): tighten score_pairs options handling and query text validation
  • refactor(eval): consolidate colbert model lists and improve query validation
  • feat(adapters): default score_pairs() in BaseAdapter + baseline reranking targets
  • refactor(colbert): hoist score-pair grouping helper to _utils
  • feat(server): emit INFO log on invalid SIE_TORCH_NUM_THREADS fallback
  • feat(server): cap torch CPU threads at worker startup

v0.3.1

  • chore(main): release 0.3.1
  • fix(bge-m3): tighten score_mode validation, drop module docstring
  • docs(sdk,server): clarify MODEL_LOAD_FAILED covers transient cooldowns
  • fix(bge-m3): extend score support to bge_m3 and bge_m3_flag adapters
  • fix(sdk,server): address CodeRabbit review on terminal load failures
  • fix(siglip): cast pixel_values to model dtype on open_clip path
  • chore(server): regenerate openapi.json with state and last_error fields
  • feat(siglip): add Marqo/marqo-ecommerce-embeddings-B via open_clip backend
  • fix(server): add terminal failed state to model registry (sie-test#85)
  • feat(bge-m3): support /v1/score with dense/sparse/colbert/hybrid modes

v0.3.0

  • chore(main): release 0.3.0
  • review: label-aware merging in stablebridge pruner spans
  • fix(adapters): validate runtime max_seq_length overrides before clamp
  • review: fail fast on missing PruningHead keys
  • review: tighten profile validation, encoding, fixture paths
  • fix(gateway): align /v1/models error and list shapes
  • fix(adapters): clamp runtime max_seq_length overrides in score_pairs
  • feat: upstream Stablebridge pruner adapter + sie_bench evals
  • fix(gateway): add GET /v1/models/{model} detail route
  • fix(adapters): clamp flash adapter max_seq_length to model positional capacity
  • fix(gliclass): return all label scores and bound input length
  • fix(client): retry only transient connection errors under wait_for_capacity
  • feat(oom): improve error semantics and budget exhaustion detection
  • fix(sdk): retry on connection errors and generic 503s
  • refactor(oom): extract SDK retry logic and refine server NAK semantics
  • feat(oom): implement defensive exception fan-out and improve recovery metrics
  • test(api): add coverage for lora load failure in encode endpoint
  • test(docling): drop module-level docstring (CodeRabbit)
  • fix(docling): per-task converter, hf_revision guard, callable typing (CodeRabbit)
  • test(api): add regression tests for lora routing in encode handler
  • feat(server): add reactive OOM recovery and proactive idle eviction
  • feat(extract): add Docling adapter for PDF/DOCX/HTML parsing
  • fix(sdk): has_children filters folder-marker objects (Refs #732, #654)
  • fix(sdk): cluster cache prefix probe uses list, not head (Refs #732, #654)
  • test: hoist non-optional imports to module top (CodeRabbit)
  • feat(extract): plumb document items and structured data results
  • fix(sdk): preserve caller-supplied document format over inferred (CodeRabbit)
  • chore(openapi): regenerate spec after adding document modality
  • feat(types): add document input modality across SDKs, server, and metadata
  • test(adapters): mock get_embedding_dimension in sentence_transformer fixtures
  • fix(types): adapt to ty 0.0.32 stricter ignore handling
  • build(deps): add litellm>=1.83.7 to sie_dspy dependencies
  • Re-seed ACTIVE_LEASE_GPUS sentinel after pool reset
  • fix(gateway): pre-instantiate request/demand metric families on startup
  • chore(gateway): address PR #721 review — pin deny config + drop no-op cov flag
  • chore(gateway): bump Rust to 1.95.0, add cargo-deny audit + llvm-cov coverage
  • chore(sdk): trim retry-comment verbosity, drop debug-context refs
  • fix(sdk): retry mid-flight transport disconnects, not just timeouts
  • fix(gateway): keep record_request async to match main's call shape
  • fix(gateway): drop double-counted REQUEST_COUNT / REQUEST_LATENCY emit
  • fix(gateway): address PR #716 review feedback
  • docs(gateway): strip dangling PRD / improvements-doc section refs
  • docs(gateway): scrub ghost references left over from the perf audit
  • perf(gateway): cache SDK version parse, integer audit latency, UUIDv7
  • perf(gateway): tighten cold-pool backpressure + cheaper QPS counter
  • perf(gateway): move score-endpoint unwrap instead of cloning
  • perf(gateway): fuse msgpack_numpy decode into the response path
  • perf(gateway): publish work items concurrently + borrow shared fields
  • perf(gateway): pass msgpack items through as rmpv::Value
  • perf(gateway): trim per-request work on the inference hot path
  • fix(observability): address PR review blockers on metrics PR
  • feat(observability): add Prometheus metrics to sie-config and expand sie-gateway coverage
  • docs(sdk): drop LORA_LOADING references from score/extract docstrings
  • docs(sdk): correct wait_for_capacity docstrings to reflect actual retry matrix
  • fix(gateway): emit X-SIE-Error-Code header on model-loading 503
  • chore(gateway): drop dead AppError::UpstreamTimeout variant
  • fix(gateway,sdk): map upstream timeouts to 503+MODEL_LOADING for SDK retry
  • test(bundle-coverage): fail loudly on empty dirs and duplicate bundle names
  • test(bundle-coverage): drop over-strict duplicate-adapter assertion and module docstring
  • fix(config): surface mixed-profile unrouteable models and keep snapshot consistent on writes
  • fix(config,cluster): surface unrouteable models loudly and helm-repo-add on pristine hosts
  • fix(bundles): declare Qwen3-VL adapters in default bundle
  • fix(gateway): prioritize epoch-rewind branch; harden no-thrash test; correct arch-guide on ephemeral restart
  • docs: align config-management-api, design.md §10.10, and arch-guide with sie-config cutover
  • test(gateway): lock in backwards-epoch recovery in config_poller
  • chore(gateway,docs): address PR #702 review feedback
  • chore(gateway,helm): drop deprecated SIE_CLUSTER_ROUTING surface on the gateway
  • fix(helm): fail fast when gateway has no bundle source
  • fix(gateway): make sie-config single source of truth for bundles with live resync
  • perf(docker): add --link + move ARG BUNDLE to eliminate cross-bundle layer noise
  • fix(kind-smoke): add --no-pool-isolation for static clusters + contract-drift fixes
  • perf(docker): reorder stages for maximum BuildKit cache reuse
  • perf(docker): normalize mtimes so shared venv layer is dedupable
  • fix(kind-smoke): address bot review feedback
  • fix(kind-smoke): wire sie-config image and helm overrides into kind cluster fixture
  • perf(docker): split worker venv into shared + bundle-specific layers
  • fix(docs): Update packages/sie_server/Dockerfile.cuda11
  • fix(adapters): add input validation guards for empty/failed visual inputs
  • slim worker Dockerfiles: smaller final image, faster first-request
  • chore: integrate sie-config across release plumbing, helm, terraform, tests
  • fix: address follow-up PR review nits
  • fix(sie_config): address PR review feedback
  • fix(tests): restore docker gateway smoke test after router rename
  • fix(helm): enable NATS + JetStream by default to match queue clusterRouting
  • chore(gateway): sync crate version with cluster release (0.2.0)
  • fix(helm): default clusterRouting to "queue" on import-sie-router-rust
  • chore(gateway): make gateway-fmt auto-fix by default
  • fix(gateway,config): address PR review -- 404 for unknown models, 202 on default routing, full YAML propagation
  • ci: publish sie-gateway image to GHCR on release
  • fix(gateway,config): harden auth, trusted NATS producers, and recovery path; drop gateway HA default
  • fix(gateway): normalize model ids in NATS work subjects + docs/tooling/ha cleanup
  • chore: consolidate architecture doc and prune stale infra + docs
  • fix(gateway,config,sdk): resiliency, concurrency, and cross-service hash parity
  • chore(gateway,config): finish split audit — offload fs I/O, drop dead NATS accessors, align docs
  • test(gateway,config): expand coverage; drop dead idempotency cache; rewrite split docs
  • refactor(gateway): split sie-config into its own service; gateway is now consumer-only
  • docs(gateway): reflect current sie-config state and lock infra decisions
  • fix(config): emit identical NATS payload to bundle and _all subjects
  • refactor: rename sie-router service to sie-gateway
  • chore(sie-config): bump version to 0.1.10
  • refactor: replace sie-router package with sie-config service
  • Add PaddleOCR-VL-1.5 adapter (#659)
  • fix(adapters): clarify video placeholder, validate token IDs, fix torch_dtype key
  • fix(adapters): address review findings for Qwen3-VL adapters
  • feat(adapters): add Qwen3-VL-Embedding-2B and Qwen3-VL-Reranker-2B multimodal adapters
  • fix: guard score() and score_pairs() against empty input lists
  • fix: address review findings — negative truncation guard, score() options, constant dedup
  • feat: add Qwen3-Reranker-0.6B and 4B causal LM reranker support
  • feat: add GLiNER2 and GLiNER-bi adapters (#632)
  • fix(docker): propagate failure when all add-apt-repository retries exhausted
  • fix(docker): add retry logic for deadsnakes PPA to handle Launchpad outages
  • feat: add SigLIP 2 base-patch16-224 vision-language encoder
  • feat(openapi): add static spec export and validation
  • feat(adapters): add GLM-OCR adapter
  • revert: test_async.py — belongs to a separate PR, not this epic
  • fix: address CodeRabbit review comments on PR #615
  • fix(docker): cache apt lists alongside apt cache to prevent stale index
  • fix(cluster): emit base image tag in helm guidance; correct misleading docs (#609)

v0.2.0

  • chore(main): release 0.2.0
  • docs: add telemetry documentation and clarify deployment guidelines
  • refactor(observability): update tmp_path type hints from str to Path
  • test(observability): fix telemetry test type hints
  • fix(haystack): rename namespace alias to sie
  • feat(observability): add anonymous usage telemetry
  • feat(haystack): add haystack_integrations namespace aliases
  • feat(deps): migrate from pynvml to nvidia-ml-py package
  • feat(benchmarks): add MTEB NFCorpus evaluation results for ModernBERT-based embedders
  • fix: install uv via curl instead of COPY --from ghcr.io
  • feat(sdk): add max_concurrency param to SIEAsyncClient to prevent connection pool exhaustion
  • fix(build): downgrade dockerfile syntax version to 1 for broader compatibility
  • refactor(deployment): add model preloading configuration to Terraform and CLI validation
  • feat(adapters): add ModernBERT flash dense embedding support with fallback mechanism
  • fix(router): harden affinity spill with bounds check, clamp, and debug log
  • feat(workers): implement model preloading at startup to reduce first-request latency
  • fix(router): add overflow spill to break model affinity deadlock
  • fix(router): make rejected requests visible to KEDA scaling metrics
  • fix(adapters): remove redundant tokenizer validation and unused template parameter
  • refactor(adapters): simplify template application logic and add chat token caching
  • fix: address PR review — panel title, namespace variable
  • fix(dashboard): queue routing dashboard accuracy and usability
  • fix(release): add LanceDB integrations to release-please config
  • refactor(adapters): consolidate adapter infrastructure with declarative specs
  • perf(server): use sdpa attention for LightOnOCR (6x faster, no OOM)
  • fix(server): harden LightOnOCR adapter and rename next bundle
  • fix(server): add collate() and fix prepare() signature on LightOnOCRPreprocessor
  • refactor(adapters): consolidate adapter infrastructure with declarative specs
  • refactor(adapters): improve flash attention device handling and resource cleanup
  • refactor(adapters): extract common flash adapter logic into reusable base and utilities
  • fix(server): trim next bundle to only verified transformers 5.x adapters
  • fix: restore accidentally deleted test file
  • fix(server): remove accidental data symlink, default to bfloat16
  • Delete packages/sie_server/tests/adapters/test_lighton_ocr.py
  • feat(server): add next bundle and fix LightOnOCR for transformers 5.x
  • feat(server): add lightonai/LightOnOCR-2-1B OCR adapter

v0.1.10

  • chore(main): release 0.1.10
  • feat: add async, chunking, and streaming to Weaviate document enricher
  • perf(lancedb): decouple scanner and SIE batch sizes in enrich_table
  • fix(helm): use generic updater for both Chart.yaml version fields
  • fix: handle BytesIO images in LlamaIndex and validate Weaviate classify config
  • perf(lancedb): stream enrich_table batch-by-batch instead of full materialization
  • perf(lancedb): use Lance scanner for column projection in enrich_table
  • fix(observability): queue routing dashboard PromQL for NATS wait
  • feat(observability): queue routing dashboard, NATS prom exporter, router image tag
  • fix: update adapter tests and address code review feedback
  • fix(integrations): address CodeRabbit review findings for LanceDB PR
  • fix(helm): use generic release-please updater for appVersion
  • test(router): add queue-mode score response key regression tests
  • fix(router): use "scores" key in queue-mode score responses
  • fix(helm): restore Chart.yaml deps from main, keep appVersion v-prefix
  • feat(terraform): add evaluation cluster setup for AWS with multi-GPU support and updated configurations
  • make sure extraction uses not just the entity response type but the other response types also, including integrations
  • remove the code that made it seem as if we were passing topk param to server from typescript - this optimization doesn't make that much sense as the request is anyway much larger than response
  • PY<>TS parity in terms of integration depth for langchain and llamaindex
  • multivector support update in integrations
  • deduplicate integration logic into ts/py sdk package that the integrations already depend on
  • feat(sdk): add get_model() and configure LanceDB release workflows
  • feat(integrations): add LanceDB integration (Python + TypeScript)
  • haystack and llamaindex get multi-modal integration
  • weaviate integration improvements
  • test(queue): add NATS server fixture and improve integration test reliability
  • feat(dlq,pull-loop): improve DLQ routing and score response handling
  • fix(config,queue,nats): correct cluster routing condition, stream max_age units, and reconnect state ordering
  • fix(queue-routing): score response format and DLQ fallback routing key
  • fix(queue-routing): configurable NATS fetch budget, Helm-wired queue params
  • perf(router): bypass FastAPI for hot proxy paths via raw ASGI middleware
  • perf(sdk+router): lazy msgpack_numpy.patch and pure ASGI middleware
  • perf(router): remove msgpack_numpy global patch and BaseHTTPMiddleware
  • perf(router): replace stdlib json with orjson for 3-10x faster serialization
  • perf(router): reduce thread pool pressure by inlining small deserialization
  • refactor(router): remove lock-free synchronization and batch work item serialization
  • fix(helm): add recreate strategy for router deployment when nats config restore is enabled
  • test(cluster): fix kind cluster tests for config API and port-forward restart support
  • fix(queue-routing): resolve 5 bugs blocking NATS pull-based worker routing
  • feat(worker): improve batch cost bounds and fix template logic
  • fix: address review findings — error handling, validation, public APIs, tests
  • fix(server): update tests to use max_seq_length instead of max_length
  • test(adaptive-batching): replace time.sleep with mocked monotonic for deterministic integral accumulation test
  • feat(adaptive-batching): add auto-calibration and PI controller with per-model profile overrides
  • refactor(batcher): implement proportional coalesce scaling and adaptive batch wait precision
  • feat: add pull-based worker queue routing and adaptive batching
  • feat(config-api): implement idempotency and auth separation with profile conflict detection
  • docs(config): clarify write auth token precedence and filter updates
  • fix(server): align cross-encoder max_seq_length parameter with loader
  • chore: review items
  • chore: review items
  • chore: review items
  • chore: fix review items
  • chore: remove git sync
  • feat: implement Config Management API with NATS-based distribution and review fixes Add runtime model config additions via REST API (POST /v1/configs/models), with NATS pub/sub distribution to workers and S3/GCS/local persistence using epoch-based CAS. Workers track config convergence via SHA-256 bundle_config_hash reported through WebSocket status. Key components: - config_api.py: REST endpoints (list/get/add models, resolve, bundles) - config_store.py: Epoch CAS persistence (local/S3/GCS backends) - nats_manager.py: Router-side NATS publish + cross-router sync - nats_subscriber.py: Worker-side NATS subscribe + config apply - Helm/Terraform: NATS sub-chart, config store env vars, restore flow Also addresses 25 code review findings: M2/M12 medium fixes, L1-L16 low-severity fixes, T3-T10 test coverage gaps, D1-D7 doc/feature discrepancies, and H13 S3 conditional writes documentation.

v0.1.9

  • chore(main): release 0.1.9
  • fix(helm): revert pool names to machine profile names
  • fix: increase docker smoke test timeouts and add retry
  • fix(helm): include $platform in worker image tag format

v0.1.8

  • chore(main): release 0.1.8
  • fix(helm): correct image.tag comment to reflect actual format
  • fix(helm): remove duplicate platform suffix from worker image tag
  • fix: add sie-qdrant and sie-weaviate to release-please config
  • fix: update README example to use new pool naming convention
  • fix: correct worker image tag format to {version}-{platform}-{bundle}

v0.1.7

  • chore(main): release 0.1.7
  • fix(readme): correct helm chart path
  • fix(chart): update home URL and Helm install command in README
  • fix: pool error types, add pool/progress test coverage
  • fix(router): use effective_pool instead of pool_name for default pool GPU extraction
  • fix: address PR #478 review feedback
  • perf(florence2): switch OCR configs from beam search to greedy decoding
  • fix(sdk): defer aiohttp session creation to fix "no running event loop" in SIEAsyncClient
  • sdk: switch SIEAsyncClient from httpx to aiohttp
  • feat(helm): default router to image-embedded model configs
  • feat(helm): enable image pre-pull DaemonSet by default