Repository navigation
feat(release): quantify zero-event benchmark safety bounds #240
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
seonghobae
wants to merge
89
commits into
main
Choose a base branch
from
feat/benchmark-release-decision
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Changes from 14 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 f787b0a
feat(core): quantify zero-event safety evidence
seonghobae d42fe50
style(core): apply canonical rustfmt
seonghobae 40fc45d
test(core): require release reports to retain zero-event evidence
seonghobae 1659348
feat(core): retain named zero-event safety evidence
seonghobae 72bbde3
style(core): apply canonical rustfmt to zero-event report regression
seonghobae dff17d9
test(core): cover zero-event report decision branches
seonghobae bae7a69
test(core): cover zero-event limitation fail-closed paths
seonghobae 6e1ef04
style(core): apply canonical rustfmt to zero-event limitation tests
seonghobae 1c58111
refactor(core): keep release decision coverage non-generic
seonghobae ad4d06e
test(core): bind zero-event metric registry cardinality
seonghobae 8203360
fix(core): bind zero-event metric registry cardinality
seonghobae 29a4e1a
docs(research): doctor zero-event safety bounds
seonghobae 5b2f495
test(core): exercise metric ordering without index registry
seonghobae 0b4c5f1
fix(core): remove duplicate zero-event ordering authorities
seonghobae 59e173e
test(core): classify benchmark failure evidence
seonghobae 34871af
test(core): format benchmark failure regression
seonghobae d37c43e
fix(core): classify benchmark failure evidence
seonghobae df875ac
test(core): require complete benchmark failure taxonomy
seonghobae 7005d7a
fix(core): complete benchmark failure taxonomy
seonghobae 966ceed
test(core): require classified benchmark evidence retention
seonghobae 1d87ef4
test(core): format classified benchmark evidence regression
seonghobae 26b44d8
feat(core): retain classified benchmark failure evidence
seonghobae 86aa4a8
test(core): bound classified benchmark evidence consumption
seonghobae eea4ce9
style(core): apply canonical rustfmt to benchmark regression
seonghobae 31c6980
fix(core): bound classified benchmark evidence ingestion
seonghobae 0d65df1
style(core): apply canonical rustfmt to bounded evidence repair
seonghobae c9cc525
test(core): satisfy strict lint for bounded benchmark evidence regres…
seonghobae 9338ea2
test(core): preserve release metadata validation precedence
seonghobae 45274f2
style(core): apply canonical formatting to metadata precedence regres…
seonghobae ba106f6
fix(core): preserve release metadata validation precedence
seonghobae 8490b48
test(core): cover classified partial evidence path
seonghobae 7ed3cc1
test(core): require executable zero-event safety thresholds
seonghobae cac38e5
style(core): apply canonical rustfmt to threshold regression
seonghobae fbf5ab2
feat(core): evaluate zero-event safety thresholds
seonghobae ea1b6e0
style(core): apply canonical threshold formatting
seonghobae 4549476
test(core): require fail-closed zero-event safety gate
seonghobae 93bf83d
style(core): apply canonical safety-gate formatting
seonghobae 9e29ec3
feat(core): evaluate declared zero-event safety requirements
seonghobae 3f0ac0f
feat(core): expose zero-event safety gate
seonghobae 39d2f74
style(core): apply canonical safety-gate formatting
seonghobae 2adc609
test(core): satisfy strict panic-free safety gate contracts
seonghobae e00fe13
test(core): cover exact zero-event threshold boundary
seonghobae 41e32d3
fix(core): compare exact zero-event threshold boundaries
seonghobae 3463c14
style(core): apply canonical zero-event threshold formatting
seonghobae 50b488f
test(core): bound zero-event safety inputs
seonghobae 0593ad5
fix(core): bound zero-event safety gate inputs
seonghobae 82e4755
fix(core): bound release zero-event observations
seonghobae 09c210d
style(core): apply canonical zero-event test formatting
seonghobae 3c7ebc5
test(docs): require release-acceptance architecture contract
seonghobae bed2303
docs(adr): record benchmark release acceptance boundary
seonghobae dc2cb95
docs(adr): index release acceptance decision
seonghobae a6dadae
docs(architecture): document active release evidence boundary
seonghobae 40a6981
docs(index): discover release acceptance ADR
seonghobae e26debc
test(core): require safety thresholds in commercial release decision
seonghobae fb67eeb
test(core): format commercial release threshold regression
seonghobae d9a7811
fix(core): apply safety thresholds to commercial release acceptance
seonghobae d02bd1a
style(core): apply canonical rustfmt to safety release evaluator
seonghobae 285b90d
style(core): apply canonical rustfmt to release regression
seonghobae 7736117
test(core): avoid panic assertions in release gate regressions
seonghobae f03f807
docs(core): fix commercial release rustdoc link
seonghobae 7f64004
docs(adr): bind safety thresholds into commercial acceptance evidence
seonghobae c446280
test(core): cover commercial release error propagation
seonghobae d25468e
test(core): cover Vec commercial release outcomes
seonghobae 0ef1d68
style(core): apply canonical rustfmt
seonghobae 5c77645
fix(core): satisfy strict error propagation lint
seonghobae 17d5051
docs(changelog): record commercial release evidence APIs
seonghobae 3671ab8
test(core): reject partial commercial safety policy
seonghobae 4bd81bc
fix(core): require complete commercial safety policy
seonghobae e48e529
test(core): cover complete commercial safety policy
seonghobae 6792be0
test(core): avoid panic fixture in safety gate regression
seonghobae dbe428f
docs(adr): bind complete commercial safety policy
seonghobae cbf8bfc
style(core): apply canonical rustfmt to safety regression
seonghobae 5a4dac3
test(ddd): reject release acceptance inside shared core
seonghobae fc3b0c2
refactor(ddd): isolate release acceptance bounded context
seonghobae e370d38
test(ddd): enforce release compatibility as deprecation only
seonghobae 335bd11
test(ddd): require release tests under release context
seonghobae 3df63a1
test(ddd): forbid core depending on release context
seonghobae 6483298
refactor(ddd): complete release bounded-context ownership
seonghobae 77bfd6a
build: lock release bounded-context package
seonghobae 86fe70f
test(ddd): move remaining release tests to owning context
seonghobae e38b1a5
test(docs): require release-context migration contract
seonghobae 99c2b17
docs(ddd): bind release acceptance to release context
seonghobae 79406cd
ci(repair): apply PR240 DDD documentation correction
seonghobae 47ab81b
docs(release): correct PR240 DDD ownership contract
github-actions[bot] cf2dde4
chore(release): adopt protected main after CI queue mitigation
seonghobae c7d6c20
chore(release): adopt protected main #280 without rewriting history
seonghobae 76f30fe
chore(release): adopt current protected main
seonghobae 24930a3
Merge remote-tracking branch 'origin/main' into codex/adopt-main-pr240
seonghobae File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
61 changes: 61 additions & 0 deletions
61
crates/originweave-core/tests/release_acceptance_zero_event_bound.rs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,61 @@ | ||
| use originweave_core::release_acceptance::{ReleaseDecisionError, ZeroEventSafetyEvidence}; | ||
|
|
||
| #[test] | ||
| fn zero_observed_events_report_an_exact_one_sided_binomial_upper_bound() | ||
| -> Result<(), ReleaseDecisionError> { | ||
| let evidence = ZeroEventSafetyEvidence::new(100, 9_500)?; | ||
|
|
||
| assert_eq!(evidence.trial_count(), 100); | ||
| assert_eq!(evidence.confidence_basis_points(), 9_500); | ||
| assert!((evidence.upper_event_rate() - 0.029_513_049_607_039_932).abs() < 1.0e-15); | ||
| Ok(()) | ||
| } | ||
|
|
||
| #[test] | ||
| fn zero_event_bound_requires_at_least_one_trial() { | ||
| assert_eq!( | ||
| ZeroEventSafetyEvidence::new(0, 9_500), | ||
| Err(ReleaseDecisionError::MissingSafetyTrials) | ||
| ); | ||
| } | ||
|
|
||
| #[test] | ||
| fn zero_event_bound_rejects_zero_or_complete_confidence() { | ||
| assert_eq!( | ||
| ZeroEventSafetyEvidence::new(100, 0), | ||
| Err(ReleaseDecisionError::InvalidSafetyConfidenceBasisPoints) | ||
| ); | ||
| assert_eq!( | ||
| ZeroEventSafetyEvidence::new(100, 10_000), | ||
| Err(ReleaseDecisionError::InvalidSafetyConfidenceBasisPoints) | ||
| ); | ||
| } | ||
|
|
||
| #[test] | ||
| fn more_zero_event_trials_tighten_the_same_confidence_bound() -> Result<(), ReleaseDecisionError> { | ||
| let one_hundred = ZeroEventSafetyEvidence::new(100, 9_500)?; | ||
| let one_thousand = ZeroEventSafetyEvidence::new(1_000, 9_500)?; | ||
|
|
||
| assert!(one_thousand.upper_event_rate() < one_hundred.upper_event_rate()); | ||
| Ok(()) | ||
| } | ||
|
|
||
| #[test] | ||
| fn zero_event_bound_errors_have_deterministic_standard_error_contracts() { | ||
| let cases = [ | ||
| ( | ||
| ReleaseDecisionError::MissingSafetyTrials, | ||
| "zero-event safety evidence requires at least one trial", | ||
| ), | ||
| ( | ||
| ReleaseDecisionError::InvalidSafetyConfidenceBasisPoints, | ||
| "zero-event safety confidence must be between 1 and 9999 basis points", | ||
| ), | ||
| ]; | ||
|
|
||
| for (error, expected_message) in cases { | ||
| assert_eq!(error.to_string(), expected_message); | ||
| let standard_error: &dyn std::error::Error = &error; | ||
| assert!(standard_error.source().is_none()); | ||
| } | ||
| } |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.