mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 03:49:26 +00:00
release: v2.0.0 -- ax plane, HarnessX removed, S3 memory on RustFS, AI decision engine (in development)
Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
c06190bbfd
commit
838638a692
@@ -1,6 +1,6 @@
|
|||||||
# OpenUltraSAST
|
# OpenUltraSAST
|
||||||
|
|
||||||
**v1.2.0-alpha.1 (Python package `1.2.0a1`), state as of 2026-10-02.** An experimental static
|
**v2.0.0 (Python package `2.0.0`), state as of 2026-10-02.** An experimental static
|
||||||
security analyser. The pre-push safety net is **NO-GO** for rollout: no hook capability is
|
security analyser. The pre-push safety net is **NO-GO** for rollout: no hook capability is
|
||||||
enabled and no independent population has passed the qualification gates (see
|
enabled and no independent population has passed the qualification gates (see
|
||||||
[docs/evaluation.md](docs/evaluation.md)). See the [release notes](RELEASE_NOTES.md).
|
[docs/evaluation.md](docs/evaluation.md)). See the [release notes](RELEASE_NOTES.md).
|
||||||
|
|||||||
+30
-1
@@ -1,4 +1,33 @@
|
|||||||
# Unreleased
|
# v2.0.0 (2026-10-02)
|
||||||
|
|
||||||
|
A new major release: the agentic plane runs on google/ax, HarnessX is gone, detection decisions move
|
||||||
|
toward a trained-by-memory AI classifier, and the plane memory lives in an S3-compatible store.
|
||||||
|
|
||||||
|
- **Agentic plane on ax** (`ousast plane run|status|doctor|workspaces|remember|alerts-engine|harvest`): tasks
|
||||||
|
run in gVisor sandboxes on Agent Substrate; one Model and one budget per task; token attribution per task
|
||||||
|
and model; credentials only in the start request; per-task egress policies. First increment measured:
|
||||||
|
16/20 declared sites agreed at $0.0205 per candidate (`benchmarks/independent/plane-increment-2.json`).
|
||||||
|
- **HarnessX removed.** Retired config keys fail with a reason; `[harnessx]` warns. Deterministic outputs
|
||||||
|
proven byte-identical (`benchmarks/measurements/2026-09-30-harnessx-removal-equality/`).
|
||||||
|
- **Memory store** (`OUSAST_MEMORY`): local files or any S3-compatible store with versioning, lifecycle,
|
||||||
|
tags and S3 Select; RustFS is the tested server (`docs/rustfs.md`). The store verifies its bucket at
|
||||||
|
startup and never falls back; every row carries its kind's queryable fields. New extra `s3` (boto3).
|
||||||
|
- **Decision engine (in development, not adopted):** an in-house DSPy-style AI classifier with local
|
||||||
|
memory; labels from ground truth; repository-grouped evaluation. Slice 2 on six families: out-of-repo
|
||||||
|
AUC 0.77-0.96 (within-pair 0.72-0.93); BLOCK not offered anywhere; see
|
||||||
|
`benchmarks/measurements/2026-10-02-decision-engine-slice-2/record.json` and `docs/memory-and-detection.md`.
|
||||||
|
- **Improvement from memory:** `ousast improve --memory`; the loop as a plane Run.
|
||||||
|
- **PHP quick-mode rules** (in-sample measurement only) beside the Joern engine; framework knowledge
|
||||||
|
tagged as optional priors (`ruleset/frameworks.toml`).
|
||||||
|
- **Populations:** v3 (PHP, 15 cases) frozen and untouched as the one-time final check; 97 advisory-fix
|
||||||
|
pairs added for negatives; licences of published cases verified (v1's OpenCVE case is BUSL-1.1).
|
||||||
|
- **Removed legacy:** dead modules (`model.judge`, `model.execution`, `model.calibrate`,
|
||||||
|
`stage_processors`, `slot_contract`); unread config keys `[dynamic]`, `[evidence]`, `[variants]`,
|
||||||
|
`[models] patcher` retired (`resolved_config.json` loses those sections); reference-only scripts under
|
||||||
|
`benchmarks/archive/`; the module audit now classifies by real imports.
|
||||||
|
- **Docs:** MkDocs site (`mkdocs serve`), including token ergonomics and the RustFS setup.
|
||||||
|
|
||||||
|
Detailed notes for this release follow.
|
||||||
|
|
||||||
## PHP quick-mode rules (2026-09-30)
|
## PHP quick-mode rules (2026-09-30)
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ repositories it has never seen: it scans a checkout, or the commits a `git push`
|
|||||||
and separates what it can prove from what it merely suspects. A scan that could not look at
|
and separates what it can prove from what it merely suspects. A scan that could not look at
|
||||||
something records a degradation instead of reporting a clean result.
|
something records a degradation instead of reporting a clean result.
|
||||||
|
|
||||||
**State as of 2026-10-02 (v1.2.0-alpha.1):** the pre-push safety net is **NO-GO** for rollout.
|
**State as of 2026-10-02 (v2.0.0):** the pre-push safety net is **NO-GO** for rollout.
|
||||||
No hook capability is enabled, and no independent population has passed the qualification gates
|
No hook capability is enabled, and no independent population has passed the qualification gates
|
||||||
(see [Evaluation](evaluation.md)).
|
(see [Evaluation](evaluation.md)).
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "openultrasast"
|
name = "openultrasast"
|
||||||
version = "1.2.0a1"
|
version = "2.0.0"
|
||||||
description = "OpenCode-oriented SAST harness for evidence-gated security analysis"
|
description = "OpenCode-oriented SAST harness for evidence-gated security analysis"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
|
|||||||
@@ -2,4 +2,4 @@
|
|||||||
|
|
||||||
__all__ = ["__version__"]
|
__all__ = ["__version__"]
|
||||||
|
|
||||||
__version__ = "1.2.0a1"
|
__version__ = "2.0.0"
|
||||||
|
|||||||
@@ -1024,7 +1024,7 @@ wheels = [
|
|||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openultrasast"
|
name = "openultrasast"
|
||||||
version = "1.2.0a1"
|
version = "2.0.0"
|
||||||
source = { editable = "." }
|
source = { editable = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "pyyaml" },
|
{ name = "pyyaml" },
|
||||||
|
|||||||
Reference in New Issue
Block a user