Skip to content

Releases: scombat/s1d1-tantive

v0.8.1

Choose a tag to compare

@github-actions github-actions released this 25 Oct 16:45
ac7662c

Upgrade recommended for amd64 deployments.

  • The int8 weights of the four variants are re-quantized with reduce_range (7-bit weights; research repo, docs/28),
    which fixes wrong scores on x86 CPUs without VNNI (e.g. Haswell, AVX2 only): ONNX Runtime's U8S8 kernel there adds
    pairs of products into a saturated int16. small was the variant affected: "hi" scored 1.0 instead of 0.04, and
    its tiers agreed with fp32 on 49 % of prompts instead of 90 %. checksums/ pins the new Hub revisions; only
    model_int8.onnx changes in each.
  • New int8 guard in the image workflow (tools/int8_guard.py): the small image runs under qemu-x86_64 -cpu Haswell
    (no VNNI, whatever the runner has) on 44 probe prompts (tests/fixtures/int8_probe.json) and fails below 85 % tier
    agreement with the fp32 scores, when a greeting scores above the TRIVIAL bound, or when a score is pinned at 1.0.
  • The LiteLLM guide, the README and llms.txt describe LiteLLM 1.106's router: the four tiers SIMPLE, MEDIUM,
    COMPLEX, REASONING and classifier_fallback: default_model, without fallback_tier.
  • Image references move to 0.8.1 in the README, the guides, the deployment templates and the Space files.

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 24 Oct 17:10
6888bf2
  • Opt-in sending of the captured lines to a community ingestion: S1D1_CAPTURE_SEND=1 (off by default, needs
    S1D1_CAPTURE_DIR) starts a thread that posts the capture files in NDJSON batches to S1D1_CAPTURE_URL (default
    https://s1d1.qoo.gy/ingest, https only except localhost), with an optional S1D1_CAPTURE_TOKEN,
    S1D1_CAPTURE_BATCH and S1D1_CAPTURE_SEND_SECONDS. Only the lines captured while sending is on are sent (they
    carry "send": true), never what was captured before or while it was off. At-least-once delivery with a cursor in the capture folder,
    back-off on failure, no redirect followed, and the token and prompts kept out of logs, /info and OpenTelemetry. New
    counters tantive_capture_sent_total, tantive_capture_send_failed_total and tantive_capture_send_rejected_total
    and the gauge tantive_capture_send_pending_bytes;
    /info reports capture.send (enabled, url, instance_id). S1D1_TERMS_VERSION (default v1) is written in
    each captured line. Guide: the sending section of docs/capture.md.

  • New image workflow: pull requests that touch the Dockerfile, uv.lock, pyproject.toml, checksums/ or verify.py
    build the small image from the Hub weights and run the docker tests (amd64, nothing pushed or signed).

  • Image references move to 0.8.0 in the README, the guides, the deployment templates and the Space files, so the templates
    pull images with the capture. CITATION.cff drops its version and date-released: the citation names the repository,
    the release page names the version.

  • The version is read from the package metadata: tantive.__version__ comes from pyproject.toml through
    importlib.metadata, the only place a release sets it.

  • The licence parameters are now generic: Licensed Work is s1d1-tantive without a version, and the Change Date is
    four years from the date each version is first publicly distributed (the BSL 1.1 template wording). Licensor, Additional
    Use Grant and Change License are unchanged.

  • The SECURITY.md contact test is a plain test: the contact is filled, so its xfail marker goes.

  • Batches answer per item: POST /v1/systemone/batch, and /classify and /predict given a list, answer each valid
    item as before and put {"error": {"message", "type"}} in the slot of an item the single route would refuse (blank or
    too long text, shed), instead of failing the whole batch. 200 when at least one item succeeded, 503 + Retry-After when
    every item was shed, 422 when every item failed otherwise; body-level errors are unchanged. Metrics and decision lines count the items that ran. Guide: the Batch
    section of docs/formats.md.

  • S1D1_ROOT_PATH no longer goes to uvicorn, which prepended the prefix to a path that already carried it (404 on
    /api/v1/systemone): a middleware now accepts request paths with and without the prefix (/api/... and /...), for a
    proxy or tunnel that forwards the prefix unchanged as for one that strips it.

  • chat-completions refuses "stream": true with a 400 in the usual error shape instead of ignoring it: this endpoint
    does not stream, a classification is one response.

  • Dependabot keeps the GitHub Actions, the Docker bases and the uv lockfile up to date: weekly, on Monday, one grouped
    pull request per ecosystem for the minor and patch updates, at most five open per ecosystem (.github/dependabot.yml).

  • Contribution pages: CONTRIBUTING.md (issues, the change workflow, the commit style, the licence of contributions),
    CODE_OF_CONDUCT.md (Contributor Covenant 2.1), issue forms for bugs and questions with blank issues off and
    vulnerabilities sent to the security advisory, and a pull request template. The README links both pages.

v0.7.0

Choose a tag to compare

@github-actions github-actions released this 21 Oct 12:14
  • Capture of the classified prompts, off by default: S1D1_CAPTURE_DIR writes one JSON line per decision (prompt,
    tier, score, task, confidence, latency, variant) to daily files, with size rotation, sampling, a margin filter for
    the doubtful cases and a retention. One writer thread behind a bounded queue, never the request;
    tantive_capture_written_total and tantive_capture_dropped_total; /info reports capture. The text goes to
    these files and nowhere else. Guide: docs/capture.md.

  • Capture mounts: the Azure template takes captureShareName, captureStorageAccount and captureStorageKey (Azure
    Files on /capture); the AWS template takes CaptureFileSystemId (EFS on /capture). The deploy templates keep
    pulling the 0.6.0 images by default, which have no capture: set image or Image to a 0.7.0 tag to use it.

  • Checksums repinned: the Hub variant.json files now carry sigma, max_length, score_center and score_scale.

  • Railway removed from the deployment targets: its free tier cannot run the small variant, the button needs a
    template created in a console that proved unreliable, and Render covers the free PaaS case. The 0.5.0 files stay
    in the history.

  • README: a "What you get" section and the Hub card's hero image; llms.txt for assistants; docs/sizing.md with
    the sizing calculation written out; docs/use-cases.md with six ready-made configurations; a Claude Code skill
    (.claude/skills/deploy-s1d1-tantive) that sizes and configures a deployment from those two pages.

  • CI: the release job creates the GitHub release of a tag from its CHANGELOG section, after provenance.

  • AWS Lambda: deploy/aws/template.lambda.yaml (container function, Lambda Web Adapter, provisioned concurrency
    to avoid cold starts, invocation permission restricted to a source ARN).

  • Terraform: one main.tf per target under deploy/<target>/terraform/ (Azure, AWS ECS and Lambda, Cloud Run,
    Heroku, Render), validated with Terraform 1.16; Hugging Face has no maintained provider.

  • Build: certifi 2026.10.19 (a Trivy finding on the first v0.6.0 run).

s1d1-tantive 0.6.0

Choose a tag to compare

@scombat scombat released this 21 Oct 08:47
  • Decision service for the s1d1 router: System One and OpenAI Decisions for LiteLLM's Auto Router, chat-completions,
    vLLM-style /classify and TEI-style /predict, on one ONNX int8 model (four variants), with warm-up, load shedding,
    Prometheus metrics and OpenTelemetry.
  • Long-prompt policies (head_tail by default, head, tail, chunks) with merge strategies and a pieces count in
    every response.
  • One image per variant for amd64 and arm64, weights checked against committed checksums, built with SLSA 3 provenance
    and signed keyless with cosign (identity recorded in the public Rekor log); docs/verify.md shows how to check.
  • Deployment files for Azure, AWS, Google Cloud Run, Heroku, Render, Railway and Hugging Face Spaces, all running the
    published image with the same S1D1_* variables.
  • Documentation (README, getting started, LiteLLM, formats, configuration, verification), SECURITY.md, gitleaks and
    Trivy in CI, and tools/ghcr_cleanup.sh for maintainers.
  • Versions 0.1.0 to 0.5.0 were private pre-releases; their history was squashed on 2026-10-21.