Skip to content
Draft
Show file tree
Hide file tree
Changes from 87 commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
ba36a27
test(core): require zero-event safety confidence bound
seonghobae Aug 28, 2026
f787b0a
feat(core): quantify zero-event safety evidence
seonghobae Aug 28, 2026
d42fe50
style(core): apply canonical rustfmt
seonghobae Aug 28, 2026
40fc45d
test(core): require release reports to retain zero-event evidence
seonghobae Aug 28, 2026
1659348
feat(core): retain named zero-event safety evidence
seonghobae Aug 28, 2026
72bbde3
style(core): apply canonical rustfmt to zero-event report regression
seonghobae Aug 28, 2026
dff17d9
test(core): cover zero-event report decision branches
seonghobae Aug 28, 2026
bae7a69
test(core): cover zero-event limitation fail-closed paths
seonghobae Aug 28, 2026
6e1ef04
style(core): apply canonical rustfmt to zero-event limitation tests
seonghobae Aug 28, 2026
1c58111
refactor(core): keep release decision coverage non-generic
seonghobae Aug 28, 2026
ad4d06e
test(core): bind zero-event metric registry cardinality
seonghobae Aug 29, 2026
8203360
fix(core): bind zero-event metric registry cardinality
seonghobae Aug 29, 2026
29a4e1a
docs(research): doctor zero-event safety bounds
seonghobae Aug 29, 2026
5b2f495
test(core): exercise metric ordering without index registry
seonghobae Aug 29, 2026
0b4c5f1
fix(core): remove duplicate zero-event ordering authorities
seonghobae Aug 29, 2026
59e173e
test(core): classify benchmark failure evidence
seonghobae Aug 29, 2026
34871af
test(core): format benchmark failure regression
seonghobae Aug 29, 2026
d37c43e
fix(core): classify benchmark failure evidence
seonghobae Aug 29, 2026
df875ac
test(core): require complete benchmark failure taxonomy
seonghobae Aug 29, 2026
7005d7a
fix(core): complete benchmark failure taxonomy
seonghobae Aug 29, 2026
966ceed
test(core): require classified benchmark evidence retention
seonghobae Aug 29, 2026
1d87ef4
test(core): format classified benchmark evidence regression
seonghobae Aug 29, 2026
26b44d8
feat(core): retain classified benchmark failure evidence
seonghobae Aug 29, 2026
86aa4a8
test(core): bound classified benchmark evidence consumption
seonghobae Aug 29, 2026
eea4ce9
style(core): apply canonical rustfmt to benchmark regression
seonghobae Aug 29, 2026
31c6980
fix(core): bound classified benchmark evidence ingestion
seonghobae Aug 29, 2026
0d65df1
style(core): apply canonical rustfmt to bounded evidence repair
seonghobae Aug 29, 2026
c9cc525
test(core): satisfy strict lint for bounded benchmark evidence regres…
seonghobae Aug 29, 2026
9338ea2
test(core): preserve release metadata validation precedence
seonghobae Aug 29, 2026
45274f2
style(core): apply canonical formatting to metadata precedence regres…
seonghobae Aug 29, 2026
ba106f6
fix(core): preserve release metadata validation precedence
seonghobae Aug 29, 2026
8490b48
test(core): cover classified partial evidence path
seonghobae Aug 29, 2026
7ed3cc1
test(core): require executable zero-event safety thresholds
seonghobae Aug 29, 2026
cac38e5
style(core): apply canonical rustfmt to threshold regression
seonghobae Aug 29, 2026
fbf5ab2
feat(core): evaluate zero-event safety thresholds
seonghobae Aug 29, 2026
ea1b6e0
style(core): apply canonical threshold formatting
seonghobae Aug 29, 2026
4549476
test(core): require fail-closed zero-event safety gate
seonghobae Aug 29, 2026
93bf83d
style(core): apply canonical safety-gate formatting
seonghobae Aug 29, 2026
9e29ec3
feat(core): evaluate declared zero-event safety requirements
seonghobae Aug 29, 2026
3f0ac0f
feat(core): expose zero-event safety gate
seonghobae Aug 29, 2026
39d2f74
style(core): apply canonical safety-gate formatting
seonghobae Aug 29, 2026
2adc609
test(core): satisfy strict panic-free safety gate contracts
seonghobae Aug 29, 2026
e00fe13
test(core): cover exact zero-event threshold boundary
seonghobae Aug 29, 2026
41e32d3
fix(core): compare exact zero-event threshold boundaries
seonghobae Aug 29, 2026
3463c14
style(core): apply canonical zero-event threshold formatting
seonghobae Aug 29, 2026
50b488f
test(core): bound zero-event safety inputs
seonghobae Aug 29, 2026
0593ad5
fix(core): bound zero-event safety gate inputs
seonghobae Aug 29, 2026
82e4755
fix(core): bound release zero-event observations
seonghobae Aug 29, 2026
09c210d
style(core): apply canonical zero-event test formatting
seonghobae Aug 29, 2026
3c7ebc5
test(docs): require release-acceptance architecture contract
seonghobae Aug 29, 2026
bed2303
docs(adr): record benchmark release acceptance boundary
seonghobae Aug 29, 2026
dc2cb95
docs(adr): index release acceptance decision
seonghobae Aug 29, 2026
a6dadae
docs(architecture): document active release evidence boundary
seonghobae Aug 29, 2026
40a6981
docs(index): discover release acceptance ADR
seonghobae Aug 29, 2026
e26debc
test(core): require safety thresholds in commercial release decision
seonghobae Aug 29, 2026
fb67eeb
test(core): format commercial release threshold regression
seonghobae Aug 29, 2026
d9a7811
fix(core): apply safety thresholds to commercial release acceptance
seonghobae Aug 29, 2026
d02bd1a
style(core): apply canonical rustfmt to safety release evaluator
seonghobae Aug 29, 2026
285b90d
style(core): apply canonical rustfmt to release regression
seonghobae Aug 29, 2026
7736117
test(core): avoid panic assertions in release gate regressions
seonghobae Aug 29, 2026
f03f807
docs(core): fix commercial release rustdoc link
seonghobae Aug 29, 2026
7f64004
docs(adr): bind safety thresholds into commercial acceptance evidence
seonghobae Aug 29, 2026
c446280
test(core): cover commercial release error propagation
seonghobae Aug 29, 2026
d25468e
test(core): cover Vec commercial release outcomes
seonghobae Aug 29, 2026
0ef1d68
style(core): apply canonical rustfmt
seonghobae Aug 29, 2026
5c77645
fix(core): satisfy strict error propagation lint
seonghobae Aug 29, 2026
17d5051
docs(changelog): record commercial release evidence APIs
seonghobae Aug 29, 2026
3671ab8
test(core): reject partial commercial safety policy
seonghobae Aug 31, 2026
4bd81bc
fix(core): require complete commercial safety policy
seonghobae Aug 31, 2026
e48e529
test(core): cover complete commercial safety policy
seonghobae Aug 31, 2026
6792be0
test(core): avoid panic fixture in safety gate regression
seonghobae Aug 31, 2026
dbe428f
docs(adr): bind complete commercial safety policy
seonghobae Aug 31, 2026
cbf8bfc
style(core): apply canonical rustfmt to safety regression
seonghobae Aug 31, 2026
5a4dac3
test(ddd): reject release acceptance inside shared core
seonghobae Sep 1, 2026
fc3b0c2
refactor(ddd): isolate release acceptance bounded context
seonghobae Sep 1, 2026
e370d38
test(ddd): enforce release compatibility as deprecation only
seonghobae Sep 1, 2026
335bd11
test(ddd): require release tests under release context
seonghobae Sep 1, 2026
3df63a1
test(ddd): forbid core depending on release context
seonghobae Sep 1, 2026
6483298
refactor(ddd): complete release bounded-context ownership
seonghobae Sep 1, 2026
77bfd6a
build: lock release bounded-context package
seonghobae Sep 1, 2026
86fe70f
test(ddd): move remaining release tests to owning context
seonghobae Sep 1, 2026
e38b1a5
test(docs): require release-context migration contract
seonghobae Sep 1, 2026
99c2b17
docs(ddd): bind release acceptance to release context
seonghobae Sep 1, 2026
79406cd
ci(repair): apply PR240 DDD documentation correction
seonghobae Sep 1, 2026
47ab81b
docs(release): correct PR240 DDD ownership contract
github-actions[bot] Sep 1, 2026
cf2dde4
chore(release): adopt protected main after CI queue mitigation
seonghobae Sep 3, 2026
c7d6c20
chore(release): adopt protected main #280 without rewriting history
seonghobae Sep 3, 2026
76f30fe
chore(release): adopt current protected main
seonghobae Sep 4, 2026
24930a3
Merge remote-tracking branch 'origin/main' into codex/adopt-main-pr240
seonghobae Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 13 additions & 1 deletion ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,18 @@ Owns stable value contracts without I/O:
- exact action, target-origin, and intent-bound `ApprovalScope` and `ApprovalEvidence`;
- `ActionRequest` and `PolicyContext`.

#### Active PR #240 — benchmark release acceptance migration

PR #240 moves the pure, bounded benchmark release-evidence contract out of `originweave-core` into the dedicated `originweave-release` bounded context. This subsection is active-PR architecture, not protected-main truth, and [ADR 0015](docs/adr/0015-benchmark-release-acceptance.md) remains Proposed until policy-compliant integration. `originweave-core` retains only stable cross-context value contracts and does not depend on `originweave-release`; this pre-GA breaking migration intentionally provides no compatibility shim that duplicates release policy back into core.

- `BenchmarkFailureClass` preserves first-causal-boundary failure taxonomy so deterministic/stochastic product failures become failed suite evidence while site drift, outages, unsupported capability, infrastructure failure, and benchmark defects remain `Inconclusive` rather than being promoted to success.
- `DeclaredLimitation` makes narrowed buyer-facing claims explicit and resource-bounded; it cannot erase failed or missing mandatory evidence.
- `ZeroEventSafetyEvidence` retains exact trial count and confidence instead of claiming that zero observed events imply zero risk.
- `ZeroEventSafetyThreshold` evaluates fixed-point safety policy separately from retained observations, and the zero-event safety gate remains release-neutral when evidence is missing, statistically insufficient, or above threshold.
- Caller-controlled suite, limitation, requirement, and observation collections are bounded before cloning, sorting, or map population where applicable.

This value-contract layer does not execute benchmarks, authenticate artifacts, select supported browser/profile claims, inspect GitHub governance, or approve/publish releases. A satisfied safety gate or accepted report is evidence only and **does not grant release authority**; the higher-level integrated release boundary must still combine authenticated current-head evidence, provenance, required checks, review, policy, operational acceptance, and release authorization.

### `originweave-policy`

Owns a pure decision function. It denies human-mode agent control, untrusted instruction promotion, missing capabilities, unauthorized origins, crawler mutation, cross-origin mutation, absent robots evidence, unsafe secret delivery, R5 actions, and mismatched action, target-origin, or intent approvals.
Expand Down Expand Up @@ -305,4 +317,4 @@ No deployment mode may depend on an in-process singleton. Session, policy, desti

## 15. Change control

Changes to the compatibility-kernel boundary, risk taxonomy, secret model, origin model, canonical intent model, evidence semantics, destination taxonomy, DNS pinning semantics, direct socket authority, TLS reference identity, trust-root semantics, trusted-time semantics, ALPN policy, redirect policy, resource mitigation semantics, or protocol versioning require a new ADR. The current baseline decisions are recorded under `docs/adr/`.
Changes to the compatibility-kernel boundary, risk taxonomy, secret model, origin model, canonical intent model, evidence semantics, destination taxonomy, DNS pinning semantics, direct socket authority, TLS reference identity, trust-root semantics, trusted-time semantics, ALPN policy, redirect policy, resource mitigation semantics, release-acceptance semantics, rollback/recovery requirements, or protocol versioning require a new or superseding ADR. The current baseline and Proposed decisions are recorded under `docs/adr/`.
3 changes: 2 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ All notable changes to OriginWeave are documented in this file. The format follo
- Corrected the 2026-08-26 product-gap snapshot with current #229 presentation-identity evidence, stacked-only #205 integration evidence, current base/head pairs, the 126-PR queue count, explicit root-versus-child merge ordering, and the active GitHub counted-approval gate.
- Refreshed the product and technical gap baseline onto the 2026-08-26 live inventory: 126 open pull requests (54 ready, 72 draft), protected-main promotion of #168/#194/#196/#216/#151, a verified maintenance-loop record (supersession closure of #153, conflict reconciliations on #37/#149/#152/#173/#175, issue #212 option-(b) authorization on #43, Strix vuln-0001 homoglyph remediation on #124), provider-rerun outcome evidence, an organization review-pipeline congestion record, and refreshed merge-order queue guidance. Documentation evidence contracts were aligned to the same snapshot so the baseline, its dated markers, and the pinned exact-head rows cannot silently diverge.

- Added `originweave_core::release_acceptance`, a deterministic fail-closed benchmark release-decision contract that requires one authoritative result for every mandatory suite, bounds explicit buyer-visible limitations, rejects duplicate limitation claim identities, and rejects non-canonical surrounding whitespace rather than normalizing it into an alternate claim spelling.
- Moved benchmark release-acceptance ownership out of `originweave-core` into the dedicated `originweave-release` bounded context. The pre-GA `originweave_core::release_acceptance` public path is removed without a compatibility shim; repository consumers must migrate to `originweave_release::*`, while core retains only stable cross-context value contracts.
- Added the public benchmark-failure taxonomy, fixed-point zero-event threshold evaluator, bounded zero-event safety gate, and `decide_commercial_release_with_zero_event_safety` evidence combiner; missing, invalid, inconclusive, or statistically insufficient mandatory evidence remains non-passing and these APIs do not grant merge, tag, publication, or release authority.
- Refreshed the product and technical gap baseline with the 2026-08-24 live inventory: 158 open pull requests (44 ready, 114 draft), refreshed exact base/head evidence for the #208–#222 release, enterprise-approval, BAP, and WARC/PROV chains, the governance issue additions #212 and #215, and a required-check provider-failure record for the fail-closed Strix re-dispatches on #208/#218/#220.
- Added a dated product and technical gap baseline that separates protected-main implementation truth, active pull-request evidence, live review/check blockers, and the next buyer-visible Phase 1 acceptance work.
- Refreshed the product and technical gap baseline with the current open-PR inventory and exact base/head evidence for the newest Chromium, BAP, extraction, WARC, and idempotency slices.
Expand Down
7 changes: 7 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ members = [
"crates/originweave-destination",
"crates/originweave-network",
"crates/originweave-tls",
"crates/originweave-release",
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
]
resolver = "3"

Expand Down
7 changes: 3 additions & 4 deletions crates/originweave-core/src/root.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
//! Shared security and governance contracts for OriginWeave.
//!
//! The historical core contracts remain source-compatible while adapter-specific
//! boundaries can live in focused modules without changing their authority model.
//! The shared kernel owns stable cross-context security vocabulary. Independently reusable
//! product responsibilities belong to their focused bounded contexts and must not depend back
//! through this crate merely to preserve historical module paths.

#![forbid(unsafe_code)]
#![deny(missing_docs)]
Expand All @@ -13,5 +14,3 @@ pub use contracts::*;

/// Stateless MCP routing validation that maps only explicit tools to typed actions.
pub mod mcp;
/// Deterministic fail-closed release benchmark acceptance aggregation.
pub mod release_acceptance;
Comment thread
devin-ai-integration[bot] marked this conversation as resolved.
17 changes: 17 additions & 0 deletions crates/originweave-release/Cargo.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
[package]
name = "originweave-release"
description = "OriginWeave commercial release-acceptance evidence contracts."
version.workspace = true
edition.workspace = true
rust-version.workspace = true
license.workspace = true
authors.workspace = true
repository.workspace = true
homepage.workspace = true
publish = false

[dependencies]
unicode-normalization = "=0.1.25"

[lints]
workspace = true
65 changes: 65 additions & 0 deletions crates/originweave-release/src/benchmark_failure.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
//! Typed classification for benchmark execution failures.
//!
//! The classification separates known product-threshold failures from evidence
//! that is insufficient to make a product release claim. It never converts an
//! infrastructure, external-outage, unsupported-capability, site-drift, or
//! benchmark-harness failure into passing evidence.

use crate::release_acceptance::BenchmarkSuiteOutcome;

/// First-causal-boundary classification for one benchmark failure.
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]
pub enum BenchmarkFailureClass {
/// A deterministic product contract or required post-condition failed.
DeterministicContractFailure,
/// A stochastic product-quality threshold failed with valid benchmark evidence.
StochasticModelFailure,
/// The external benchmark site changed outside the reviewed benchmark contract.
ExternalSiteDrift,
/// A required third-party benchmark dependency or external service was unavailable.
ExternalOutage,
/// The declared product profile does not support a capability required by the case.
UnsupportedCapability,
/// Execution infrastructure failed before valid product evidence was established.
InfrastructureFailure,
/// The benchmark harness or oracle is defective or otherwise non-authoritative.
BenchmarkDefect,
}

impl BenchmarkFailureClass {
/// Return the stable snake-case identifier retained in benchmark evidence.
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::DeterministicContractFailure => "deterministic_contract_failure",
Self::StochasticModelFailure => "stochastic_model_failure",
Self::ExternalSiteDrift => "external_site_drift",
Self::ExternalOutage => "external_outage",
Self::UnsupportedCapability => "unsupported_capability",
Self::InfrastructureFailure => "infrastructure_failure",
Self::BenchmarkDefect => "benchmark_defect",
}
}

/// Map the failure class to the only release-suite outcome it can establish.
///
/// Known product failures are authoritative failed-suite evidence. Site drift,
/// external outages, unsupported capabilities, infrastructure failures, and
/// benchmark defects remain inconclusive because they do not establish that
/// the product passed the governed threshold. Unsupported capability must be
/// handled separately by the supported-profile or release-limitation boundary;
/// this classification never turns it into passing benchmark evidence.
#[must_use]
pub const fn suite_outcome(self) -> BenchmarkSuiteOutcome {
match self {
Self::DeterministicContractFailure | Self::StochasticModelFailure => {
BenchmarkSuiteOutcome::Failed
}
Self::ExternalSiteDrift
| Self::ExternalOutage
| Self::UnsupportedCapability
| Self::InfrastructureFailure
| Self::BenchmarkDefect => BenchmarkSuiteOutcome::Inconclusive,
}
}
}
17 changes: 17 additions & 0 deletions crates/originweave-release/src/lib.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
//! Deterministic, fail-closed commercial release-acceptance evidence contracts.
//!
//! This bounded context owns benchmark failure causality, bounded release evidence,
//! and zero-event statistical safety gates. It performs no benchmark I/O and grants
//! no merge, tag, publication, or operator release authority.

#![forbid(unsafe_code)]
#![deny(missing_docs)]

/// Typed fail-closed benchmark failure classification.
pub mod benchmark_failure;
/// Deterministic fail-closed release benchmark acceptance aggregation.
pub mod release_acceptance;
/// Fail-closed evaluation of declared zero-event benchmark safety requirements.
pub mod zero_event_safety_gate;
/// Fixed-point statistical thresholds for zero-event benchmark safety evidence.
pub mod zero_event_threshold;
Loading
Loading