Skip to content

Commit 4c83378

Browse files
committed
chore: prepare v0.4.0 release
1 parent ec49005 commit 4c83378

4 files changed

Lines changed: 41 additions & 12 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,35 @@
11
# Changelog
22

3+
## 0.4.0 — 2026-07-26
4+
5+
### Added
6+
7+
- The browser Observatory now opens on a full-size codebase graph, with deterministic Auto layout,
8+
explicit zoom, Fit, 100%, and fullscreen controls, plus a collapsed, lazy-loaded hotspot ranking.
9+
- The live agent assay can reuse isolated, locked specimen slots across trials while retaining
10+
dependency and CodeGraph caches.
11+
12+
### Changed
13+
14+
- Browser Overview and History are combined into Activity; legacy dashboard hashes continue to open
15+
the merged view.
16+
- Assay slots reset to the pinned specimen HEAD between subjects and use the production
17+
status/sync/status graph boundary instead of recloning and fully indexing every arm.
18+
19+
### Reliability and safety
20+
21+
- Persistent assay slots use deterministic arm-neutral assignment, exclusive leases, clean-source
22+
admission, generation-bound receipts, protected dependency/graph state, and rebuild-once graph
23+
recovery.
24+
- Dashboard tabs now implement keyboard navigation and roving focus, hotspot actions are keyboard
25+
accessible, unavailable graphs show setup guidance without an empty stage, and resize/fullscreen
26+
transitions keep the Cytoscape viewport synchronized.
27+
28+
### Evidence boundary
29+
30+
- Persistent workspaces change assay execution cost and production realism, not the estimand or
31+
efficacy evidence. A paid run is still required before drawing a new treatment-effect conclusion.
32+
333
## 0.3.1 — 2026-07-25
434

535
### Fixed

SECURITY.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@
22

33
## Supported Versions
44

5-
PEBRA's latest published release is `0.3.0`; `0.3.1` is the current development line on `main`.
6-
Security fixes are made against the published release and the current development branch.
5+
Security fixes are made against the latest verified PyPI release and the current development branch.
76

87
| Version | Supported |
98
| --- | --- |
10-
| Latest published: `0.3.0` | Yes |
11-
| Development: `0.3.1` / `main` | Yes |
9+
| Latest verified PyPI release | Yes |
10+
| Development branch: `main` | Yes |
1211
| Older versions | No |
1312

14-
Update this table only after the corresponding PyPI release is verified; a version bump on `main`
15-
does not make that version a published release.
13+
Treat a version as the latest release only after its PyPI publication is verified; a version bump on
14+
`main` does not make that version a published release.
1615

1716
## Reporting A Vulnerability
1817

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
44

55
[project]
66
name = "pebra"
7-
version = "0.3.1"
7+
version = "0.4.0"
88
description = "Pre-edit benefit-risk analysis for coding agents — a deterministic, hexagonal decision controller."
99
requires-python = ">=3.11"
1010
readme = "README.md"

tests/unit/test_project_metadata.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ def test_security_policy_defines_private_reporting_and_response_targets() -> Non
2929
assert "private vulnerability reporting" in policy
3030
assert "do not open a public issue" in policy
3131
assert "business days" in policy
32-
assert "Latest published: `0.3.0`" in body
33-
assert "Development: `0.3.1` / `main`" in body
34-
assert "Update this table only after the corresponding PyPI release is verified" in body
32+
assert "Latest verified PyPI release" in body
33+
assert "Development branch: `main`" in body
34+
assert "only after its PyPI publication is verified" in body
3535

3636

3737
def test_contribution_terms_cover_rights_license_and_private_security_reports() -> None:
@@ -137,7 +137,7 @@ def test_readme_installs_codegraph_and_pebra_before_workflow() -> None:
137137
assert "## Install & engines" not in body
138138

139139

140-
def test_project_version_is_0_3_1_release_candidate() -> None:
140+
def test_project_version_is_0_4_0_release_candidate() -> None:
141141
_, project = _project_metadata()
142142

143-
assert project["version"] == "0.3.1"
143+
assert project["version"] == "0.4.0"

0 commit comments

Comments
 (0)