feat(analysis): bind exhaustive case-deletion refit to an analysis-run profile - #413
feat(analysis): bind exhaustive case-deletion refit to an analysis-run profile#413seonghobae wants to merge 1 commit into
Conversation
…n profile
GAP-004 leftover / ADR 0056. Bind existing fit_exhaustive_case_deletion to
cutoff-safe case_deletion_refit_v1. Actual D\{i} fits; reweighting and a
fixed posterior cannot substitute. Not a Bayesian sampler and not
implemented-main.
seonghobae
left a comment
There was a problem hiding this comment.
Operator COMMENT on exact head 1ebb626.
This is not an APPROVE. Author COMMENTED is not an independent review. Ruleset 18156473 still needs two independent current-head APPROVEs from non-author, non-bot reviewers.
Bind is exhaustive actual case-deletion as case_deletion_refit_v1 (ADR 0056). Distinct from composed fitted-lineage (#412 / ADR 0055), Pareto (#409 / ADR 0053), fitted Schwarz-only (#404 / ADR 0049), and export retrieval (#411 / ADR 0054). Reweighting cannot substitute for an actual deleted-data fit. Not a Bayesian sampler. Not implemented-main.
Do not self-approve. Do not merge without two independent approvals. Predecessor Checks do not transfer.
|
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: Pro Plus Run ID: 📒 Files selected for processing (8)
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 |
| let fits = | ||
| fit_exhaustive_case_deletion(input.documents(), input.seed_domain_base(), input.fitter()) |
There was a problem hiding this comment.
🔴 Unbounded refits can exhaust workers
execute_case_deletion_refit_run launches unlimited refits and retains every deleted corpus plus posterior. Large requests grow quadratically and can exhaust or monopolize a worker.
Prompt for agents
Add an explicit case-deletion document-count limit and reject oversized inputs before calling fit_exhaustive_case_deletion in crates/analysis_engine/src/case_deletion_refit_artifact.rs. Size the limit for the runner's quadratic retained_document_ids allocation and fitter-owned posterior retention, rather than relying on the constant-size artifact limit or the unrelated AnalysisCorpus limit. Add a boundary test proving no fitter call occurs when the limit is exceeded. Consider streaming summaries if larger corpora must be supported.
Was this helpful? React with 👍 or 👎 to provide feedback.
| ## Verification | ||
|
|
||
| The PR includes Rust unit and integration tests for successful exhaustive | ||
| counts, invalid corpora, fitter refusal, snapshot/profile/cutoff mismatch | ||
| including reuse of live sibling profiles, and artifact tampering. Run: | ||
|
|
||
| ```text | ||
| cargo fmt --all -- --check | ||
| cargo test -p analysis_engine | ||
| cargo clippy -p analysis_engine --all-targets -- -D warnings | ||
| python3 scripts/validate_documentation.py | ||
| ``` |
There was a problem hiding this comment.
| pub const fn new( | ||
| documents: &'a [CaseDeletionDocument<D>], | ||
| seed_domain_base: &'a str, | ||
| fitter: &'a F, | ||
| ) -> Self { | ||
| Self { | ||
| documents, | ||
| seed_domain_base, | ||
| fitter, | ||
| } |
There was a problem hiding this comment.
Summary
GAP-004 leftover / ADR 0056. Bind existing
analysis_engine::fit_exhaustive_case_deletionto a cutoff-safecase_deletion_refit_v1analysis-run profile (tepp.case_deletion_refit.v1).D \\ {i}runner already on protected main. Does not reimplement leave-one-out fitting.exhaustive_actual_deletion_not_reweighting_approx.composed_fitted_lineage_v1,fitted_candidate_k_v1,pareto_candidate_k_v1, andtrsl_topic_lineage_v1.Not composed fitted-K+lineage (#412 / ADR 0055). Not export retrieval (#411 / ADR 0054). Not Pareto candidate-
K(#409 / ADR 0053). Not joint Laplace draws (#408 / ADR 0052). Not topic activity (#407 / ADR 0051). Not interpreter/verifier (#405 / ADR 0050). Not standalone fitted candidate-K(#404 / ADR 0049). Not a Bayesian sampler. Not GPU. Not topic birth/split/merge. Not implemented-main.Distinct from live slices
Does not duplicate #412 (composed fitted-lineage), #411 (export retrieval), #410 (export authorize CLI), #409 (Pareto candidate-K), #408 (joint posterior Laplace draws), #407 (topic activity), #406 (wait CLI), #405 (interpreter/verifier), #404 (fitted candidate-K), #398 (membership-posterior ICC), #376 (ESEM/DSEM), #374 (Rubin), #372 (CWC), #389 (irregular event-time), #364 (TDT/CHRONOS), #356/#358/#359 (GAP-003A), #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.