Skip to content

Commit 0ab74e4

Browse files
Release 1.0.0 (#54)
Set the version to 1.0.0 and group the changelog for this release, the first covered by docs/COMPATIBILITY.md. The Development Status classifier becomes Production/Stable, the README's Action example pins @v1.0.0, and the roadmap's Done list gains a 1.0.0 entry. The license is now declared as the SPDX expression MIT with license-files, which needs setuptools 77 or later. The table form it replaces is deprecated and stops building in 2027, and setuptools does not accept a license classifier beside an expression, so that classifier is removed. The schemas say agentsec_version is absent from reports written before 1.0.0, the first release that records it. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
1 parent 2cc23fb commit 0ab74e4

7 files changed

Lines changed: 36 additions & 24 deletions

File tree

‎CHANGELOG.md‎

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,30 @@ What changed in each release of `agentsec-pack`, newest first. Probe versions
44
are listed separately because a report records the probe version that took it,
55
and two reports are only comparable when it matches or the difference is known.
66

7-
## Unreleased
8-
9-
- Under a user-space kernel such as gVisor, findings that describe what that kernel grants the process (PRIV-001 to PRIV-005, FS-005, FS-006 and RES-001) are reported at info, with their usual severity kept in the evidence, because that kernel is the sandbox's boundary and not the host's. Findings about what the sandbox exposes beyond it keep their severity. The rule does not apply when something is mounted over `/proc` or `/proc/version`. This is an exception, made before 1.0, to the compatibility policy's rule that an existing finding's severity changes only in a new major version.
10-
- Modal's four reports were rescored from the same probe output and now read 46, 39, 39 and 31, where they read 100, 100, 100 and 97. A Modal baseline taken before this change has no `agentsec_version`, so `--baseline` shows the drop without a version note. Nothing fails, since a drop is not a regression.
11-
- The version on `main` is 0.5.0.dev0, so a report written from it says which scorer produced it.
12-
- `docs/COMPATIBILITY.md` states what stays the same from one version to the next: the commands, flags and exit codes, the report format, the scoring and the GitHub Action's inputs and outputs. `tests/test_compatibility.py` checks each of those. `verify`, `submit` and `benchmark` are marked experimental in their help text.
13-
- Reports now record `agentsec_version`, the version that wrote and scored them, beside the probe's `probe_version`. `--baseline` and `agentsec history` note when it differs, as they already did for the probe. JSON Schemas for the blast-radius report and the `assert` result ship in `agentsec/data/`.
14-
- `agentsec --version` prints the package and probe versions.
15-
- The README said a probe version difference fails `--baseline`. It fails only when a finding is new or more severe, which is what the gate has always done, and a version difference with nothing worse passes with a note. The README and the note now say so.
16-
- The README's GitHub Action example pins `@v0.4.0`, the latest release, instead of `@v0.2.0`.
17-
- The README opens with a 63-second explainer video: what the probe measures, the `python:3.12-slim` hardening scores, the Antigravity CLI 1.5.2 and `srt` 0.0.81 measurements, and the Harbor grader control task, with each figure taken from a report in `examples/`.
18-
- Antigravity CLI 1.5.2 measured, with writes and proxy traffic tested for real by `scripts/check_sandbox_boundaries.py`. Under `--sandbox`, `--dangerously-skip-permissions` now leaves the home directory, its shell startup files and the project writable and scores 100, and the 1.5.1 proxy still accepts tunnels to any hostname. With `proceed-in-sandbox` the score stays 31 and the working directory stays read-only, while files written to the build caches it leaves writable, including `~/.cargo/bin`, persist on the host. `measure_stubbed_agent.py` gains `--script` to run a check in place of the probe.
19-
- Anthropic's sandbox runtime, `srt` 0.0.81, measured on macOS in four configurations. With `allowWrite ["."]` it leaves Claude Code's project settings files writable, which its documentation describes, and naming them in `denyWrite` protects them.
7+
## 1.0.0 — 2026-11-10
8+
9+
Probe **0.7.0**, unchanged since 0.4.0. The first release covered by `docs/COMPATIBILITY.md`: from here on, a change that breaks one of its promises waits for 2.0.
10+
11+
**Compatibility**
12+
- `docs/COMPATIBILITY.md` states what stays the same from one version to the next: the commands, flags and exit codes, the report format, the scoring and the GitHub Action's inputs and outputs. `tests/test_compatibility.py` checks each of those. `verify`, `submit` and `benchmark` are marked experimental in their help text. (#51)
13+
- Reports now record `agentsec_version`, the version that wrote and scored them, beside the probe's `probe_version`. `--baseline` and `agentsec history` note when it differs, as they already did for the probe. JSON Schemas for the blast-radius report and the `assert` result ship in `agentsec/data/`. (#51)
14+
- `agentsec --version` prints the package and probe versions. (#51)
15+
- The README said a probe version difference fails `--baseline`. It fails only when a finding is new or more severe, which is what the gate has always done, and a version difference with nothing worse passes with a note. The README and the note now say so. (#51)
16+
17+
**Scoring**
18+
- Under a user-space kernel such as gVisor, findings that describe what that kernel grants the process (PRIV-001 to PRIV-005, FS-005, FS-006 and RES-001) are reported at info, with their usual severity kept in the evidence, because that kernel is the sandbox's boundary and not the host's. Findings about what the sandbox exposes beyond it keep their severity. The rule does not apply when something is mounted over `/proc` or `/proc/version`. This is an exception, made before 1.0, to the compatibility policy's rule that an existing finding's severity changes only in a new major version. (#53)
19+
- Modal's four reports were rescored from the same probe output and now read 46, 39, 39 and 31, where they read 100, 100, 100 and 97. A Modal baseline taken before this change has no `agentsec_version`, so `--baseline` shows the drop without a version note. Nothing fails, since a drop is not a regression. The rescored reports name `0.5.0.dev0`, the development version that rescored them before this release. (#53)
20+
21+
**Measured profiles**
22+
- Antigravity CLI 1.5.2 measured, with writes and proxy traffic tested for real by `scripts/check_sandbox_boundaries.py`. Under `--sandbox`, `--dangerously-skip-permissions` now leaves the home directory, its shell startup files and the project writable and scores 100, and the 1.5.1 proxy still accepts tunnels to any hostname. With `proceed-in-sandbox` the score stays 31 and the working directory stays read-only, while files written to the build caches it leaves writable, including `~/.cargo/bin`, persist on the host. `measure_stubbed_agent.py` gains `--script` to run a check in place of the probe. (#45)
23+
- Anthropic's sandbox runtime, `srt` 0.0.81, measured on macOS in four configurations. With `allowWrite ["."]` it leaves Claude Code's project settings files writable, which its documentation describes, and naming them in `denyWrite` protects them. (#46)
24+
25+
**Packaging**
26+
- PyPI classifiers, with Development Status 5 - Production/Stable. The license is declared as the SPDX expression `MIT`, which replaces the deprecated table form and needs setuptools 77 or later to build. (#51)
27+
28+
**Documentation**
29+
- The README opens with a 63-second explainer video: what the probe measures, the `python:3.12-slim` hardening scores, the Antigravity CLI 1.5.2 and `srt` 0.0.81 measurements, and the Harbor grader control task, with each figure taken from a report in `examples/`. (#48)
30+
- The README's GitHub Action example pins the latest release, `@v1.0.0`, instead of `@v0.2.0`. (#49, #50)
2031

2132
## 0.4.0 — 2026-11-07
2233

‎README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ Both `--baseline` and `agentsec diff` exit with code 2 and list each finding tha
171171
GitHub Actions runs the same gate checks in one workflow step by installing `agentsec` from the action's own checkout, so the version pinned in the workflow is the version that measures.
172172

173173
```yaml
174-
- uses: binary-knight/agentsec-pack@v0.4.0 # a release tag, which sets the version of agentsec
174+
- uses: binary-knight/agentsec-pack@v1.0.0 # a release tag, which sets the version of agentsec
175175
with:
176176
image: myagent:${{ github.sha }}
177177
preset: docker-hardened # or leave out and pass `flags:` instead

‎agentsec/__init__.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
"""agentsec-pack: adversarial tests for AI agent deployments."""
2-
__version__ = "0.5.0.dev0"
2+
__version__ = "1.0.0"

‎agentsec/data/blast-radius-report.schema.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"tool": {"const": "agentsec-pack"},
1010
"test": {"const": "sandbox-blast-radius"},
1111
"schema_version": {"const": 1},
12-
"agentsec_version": {"type": "string", "description": "The agentsec-pack version that wrote and scored the report. Absent from reports written before 0.5.0."},
12+
"agentsec_version": {"type": "string", "description": "The agentsec-pack version that wrote and scored the report. Absent from reports written before 1.0.0."},
1313
"label": {"type": ["string", "null"]},
1414
"generated_at": {"type": "integer", "description": "Unix time, seconds."},
1515
"target": {"$ref": "#/$defs/target"},

‎agentsec/data/path-assertions.schema.json‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
"tool": {"const": "agentsec-pack"},
1010
"test": {"const": "path-assertions"},
1111
"schema_version": {"const": 1},
12-
"agentsec_version": {"type": "string", "description": "The agentsec-pack version that wrote the result. Absent from results written before 0.5.0."},
12+
"agentsec_version": {"type": "string", "description": "The agentsec-pack version that wrote the result. Absent from results written before 1.0.0."},
1313
"generated_at": {"type": "integer", "description": "Unix time, seconds."},
1414
"target": {
1515
"type": "object",

‎docs/ROADMAP.md‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,10 @@ The rules `agentsec benchmark` enforces:
5757

5858
## Done
5959

60-
**Unreleased, on main**
61-
- Scoring under a user-space kernel: findings that describe what gVisor's kernel grants are reported at info, so Modal's scores count what the sandbox exposes beyond gVisor.
60+
**1.0.0, 2026-11-10**
6261
- A written compatibility policy, with a test for each promise, and JSON Schemas for reports.
62+
- Scoring under a user-space kernel: findings that describe what gVisor's kernel grants are reported at info, so Modal's scores count what the sandbox exposes beyond gVisor.
63+
- Antigravity CLI 1.5.2 measured with writes and proxy traffic tested for real, and Anthropic's sandbox runtime measured on macOS.
6364

6465
**0.4.0, 2026-11-07**
6566
- Probe 0.7.0, which no longer reports an allowlist that filters at TLS as open internet, and flags gVisor.

‎pyproject.toml‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
[build-system]
2-
requires = ["setuptools>=68"]
2+
requires = ["setuptools>=77"]
33
build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "agentsec-pack"
7-
version = "0.5.0.dev0"
7+
version = "1.0.0"
88
description = "Measure what an AI agent's sandbox lets it reach: network, secrets, host filesystem, privileges and processes, from inside the sandbox."
99
readme = "README.md"
1010
requires-python = ">=3.10"
11-
license = {text = "MIT"}
11+
license = "MIT"
12+
license-files = ["LICENSE"]
1213
classifiers = [
13-
"Development Status :: 4 - Beta",
14+
"Development Status :: 5 - Production/Stable",
1415
"Environment :: Console",
1516
"Intended Audience :: Developers",
16-
"License :: OSI Approved :: MIT License",
1717
"Operating System :: MacOS",
1818
"Operating System :: POSIX :: Linux",
1919
"Programming Language :: Python :: 3 :: Only",

0 commit comments

Comments
 (0)