-
Notifications
You must be signed in to change notification settings - Fork 0
feat(membership): refuse episode membership outside the episode #146
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
Changes from all commits
feb8962
58a5eae
4d5dcda
aac43e8
602059b
a0769a9
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -34,11 +34,29 @@ evidence, six-clock temporal values, event mentions/instances, relations, | |
| membership, persistence, splits, simulation, validation, API DTOs, and the | ||
| predicted-versus-observed promotion gate. | ||
| This branch establishes the Rust workspace, quality-gate foundation, and the | ||
| longitudinal within/between decomposition capability. The eleven bounded crates | ||
| longitudinal within/between decomposition capability. The workspace bounded crates | ||
| compile independently. `longitudinal_core` exposes within/between decomposition | ||
| and component RMSE APIs; the remaining crates expose no placeholder production | ||
| APIs, and domain behavior for them begins in Task 2 with immutable evidence | ||
| identifiers and source records. | ||
| This branch establishes the Task 1 Rust workspace and quality-gate foundation. | ||
| The workspace bounded crates compile independently but intentionally expose no | ||
| The workspace bounded crates compile independently; Task 1 includes the | ||
| The twelve bounded crates compile independently but intentionally expose no | ||
| The eleven bounded crates compile independently; Task 1 includes the | ||
| implemented `encrypted_mapping` crate with AES-256-GCM sealing and | ||
| purpose-bound opening, while the remaining domain behavior begins in Task 2 | ||
| with immutable evidence identifiers and source records. | ||
| The workspace bounded crates compile independently. `derived_sensitivity` inherits | ||
| source Restricted/Internal classes onto topic, factor, and relation artifacts | ||
| and fails closed on unknown kinds; derivation and blanket PII masking are not | ||
| declassification. Other crates still begin domain behavior in Task 2 with | ||
| immutable evidence identifiers and source records. | ||
| The workspace bounded crates compile independently but intentionally expose no | ||
|
Comment on lines
+43
to
+55
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📝 Info: Dangling duplicated README paragraphs README.md gains several truncated, duplicated sentence fragments (e.g. "The workspace bounded crates compile independently but intentionally expose no") from the same merge that duplicated the crate registrations. Documentation cleanup, not a code bug. Was this helpful? React with 👍 or 👎 to provide feedback. |
||
|
|
||
| The eleven bounded crates compile independently but intentionally expose no | ||
| placeholder production APIs. Domain behavior begins in Task 2 with immutable | ||
| evidence identifiers and source records. | ||
| This branch establishes the Rust workspace and quality-gate foundation. The | ||
| bounded crates compile independently. Domain crates expose only validated | ||
| production APIs; placeholder surfaces are prohibited. | ||
|
|
@@ -78,6 +96,12 @@ crates/operational_log | |
| crates/outcome_order | ||
| crates/payload_bound | ||
| crates/persistence_postgres | ||
| crates/corpus_split | ||
| crates/tepp_simulation | ||
| crates/validation_core | ||
| crates/tepp_api | ||
| crates/episode_membership | ||
|
coderabbitai[bot] marked this conversation as resolved.
|
||
| crates/location_membership | ||
| crates/prediction_contradiction | ||
| crates/prompt_source | ||
| crates/provider_receipt | ||
|
|
||
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -72,6 +72,12 @@ pub fn identity_recovery_rate( | |||||||||||||||||||||
| if truth.is_empty() || truth.len() != decided.len() { | ||||||||||||||||||||||
| return Err(EpisodeMembershipError::InvalidEpisodePayload); | ||||||||||||||||||||||
| } | ||||||||||||||||||||||
| let matches = truth | ||||||||||||||||||||||
| .iter() | ||||||||||||||||||||||
| .zip(decided) | ||||||||||||||||||||||
| .filter(|(truth_flag, decided_flag)| truth_flag == decided_flag) | ||||||||||||||||||||||
| .count(); | ||||||||||||||||||||||
| Ok(matches as f64 / truth.len() as f64) | ||||||||||||||||||||||
| let matches = count_matching_decisions(truth.iter().copied().zip(decided.iter().copied())); | ||||||||||||||||||||||
| Ok(recovery_rate_from_tally(matches, truth.len())) | ||||||||||||||||||||||
|
Comment on lines
+75
to
82
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔴 Duplicated body in recovery-rate function breaks the build
Suggested change
Was this helpful? React with 👍 or 👎 to provide feedback. |
||||||||||||||||||||||
| } | ||||||||||||||||||||||
|
|
||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🟡 episode_membership listed twice in workspace manifest
crates/episode_membershipis added tomemberswhile the same path already exists a couple lines below, and the same duplication is repeated indefault-members. The crate is registered twice in both lists.Was this helpful? React with 👍 or 👎 to provide feedback.