feat(analysis): bind non-lexical modality refusals to an analysis-run profile - #421
feat(analysis): bind non-lexical modality refusals to an analysis-run profile#421seonghobae wants to merge 1 commit into
Conversation
… profile GAP-004 leftover / ADR 0061. Bind existing modality_source refusals (refuse_modality_as_unique_content, refuse_modality_as_stopword_deletion) to cutoff-safe modality_source_v1. identity_recovery_rate stays library-side. Distinct from prompt-source (#419), style-source (#418), copy-identity (#416), and method-effects (#415). Not GPU, not MCMC, and not topic birth/split/merge.
|
Warning Review limit reachedNext included review available in 5 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (10)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
| pub struct ModalitySourceDocument { | ||
| document_id: String, | ||
| kind: ModalityKind, | ||
| } |
There was a problem hiding this comment.
🟡 Future evidence enters historical censuses
ModalitySourceDocument records no availability timestamp, so callers can include post-cutoff documents. The resulting historical census silently includes future evidence.
Prompt for agents
Add availability provenance to ModalitySourceDocument and enforce it in execute_modality_source_run against the supplied KnowledgeCutoff. Either exclude post-cutoff documents consistently with execute_analysis_run or fail closed, according to the profile contract. Add equality-at-cutoff and post-cutoff integration tests, and update the artifact/ADR wording if the admitted document count changes.
Was this helpful? React with 👍 or 👎 to provide feedback.
| return Err(AnalysisEngineError::InvalidEvidence); | ||
| } | ||
|
|
||
| let mut seen = std::collections::BTreeSet::new(); |
There was a problem hiding this comment.
🔴 Unbounded censuses can exhaust memory
execute_modality_source_run accepts any document count and builds an identity set for every entry. Large runs can exhaust memory instead of returning LimitExceeded.
| let mut seen = std::collections::BTreeSet::new(); | |
| if documents.len() > crate::MAX_EVIDENCE_UNITS { | |
| return Err(AnalysisEngineError::LimitExceeded); | |
| } | |
| let mut seen = std::collections::BTreeSet::new(); |
Was this helpful? React with 👍 or 👎 to provide feedback.
| uuid.workspace = true | ||
|
|
||
| [dev-dependencies] | ||
| modality_source = { path = "../modality_source", version = "0.2.0" } |
| if request.snapshot_id != snapshot_id { | ||
| return Err(AnalysisEngineError::SnapshotMismatch); | ||
| } | ||
| if request.knowledge_cutoff != knowledge_cutoff.to_rfc3339() |
There was a problem hiding this comment.
Summary
GAP-004 leftover / ADR 0061. Bind existing
modality_source::refuse_modality_as_unique_contentandrefuse_modality_as_stopword_deletionto a cutoff-safemodality_source_v1analysis-run profile (tepp.modality_source.v1).non_lexical_modality_is_not_unique_content_not_stopword_deletion.identity_recovery_ratestays library-side; inspect payloads stay metric-free (scientific_acceptancenever appears).PromptKind), feat(analysis): bind house-voice style refusals to an analysis-run profile #418 style-source (StyleKind), feat(analysis): bind template-copy identity refusals to an analysis-run profile #416 copy-identity (CopyKind), and feat(analysis): bind simulation method-effect labels to an analysis-run profile #415 simulation method-effect census.Not GPU. Not MCMC. Not topic birth/split/merge. Not implemented-main.
Distinct from live slices
Does not duplicate #420 (project-history CLI), #419 (prompt-source), #418 (style-source), #417 (export-retrieval CLI), #416 (copy-identity), #415 (method-effects), #414 (temporal-context CLI), #413 (case-deletion), #412 (composed fitted-K+lineage), #411 (export GET), #410 (export-authorize CLI), #409 (Pareto candidate-K), #408 (joint posterior Laplace), #407 (topic activity), #351 (Leiden), or Driver p.16 std-family micro-PRs.
Verification
cargo test -p analysis_enginecargo clippy -p analysis_engine --all-targets -- -D warningspython3 scripts/validate_documentation.pyMerge gate
Two independent current-head APPROVEs required. Author/bot COMMENTED is not independent APPROVE. Exact-head Checks on this SHA only. Predecessor Checks do not transfer. Do not self-approve. Do not merge without two independent approvals.