test(evolver): validate durable loops in isolated databases - #181
Conversation
Deploying inalpha-web with
|
| Latest commit: |
6cec331
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://51d223f2.inalpha-web.pages.dev |
| Branch Preview URL: | https://codex-e2-runtime-validation.inalpha-web.pages.dev |
|
Review base: e15417a 🤖 DeepSeek V4 Pro PR ReviewReviewI rebuilt the intent from the diff: this PR adds I traced the interaction between the URL normalization, the subprocess env, and the test suite. Findings below (nothing below is lint-level). Findings1. [major] 2. [medium] 3. [medium] **4. [medium] 5. [medium] 6. [medium] Not flagged
Net: the isolation core (local-only guard, random DB, forced drop) is sound. The gaps are (a) child-process/DB cleanup on timeout, (b) the child's actual DB target and offline-model guarantee being asserted rather than proven, and (c) reproduction/error-message quality. I would not block on 4–6 alone, but 1 and 3 are worth addressing before merge. |
Summary
Database-dependent loop tests were previously skipped locally, and the existing development database contains synthetic event fixtures. Add a repeatable validation command that creates a fresh local PostgreSQL database, applies all migrations, runs durable-loop checks, writes logs/JUnit results, and removes only its disposable database. Reject non-local database URLs and never invoke paid model calls.
Document the observed validation results and real-data blockers in the current-state document. Existing five-generation development records use synthetic/test events and cannot establish real-market Forward or holdout readiness. Real news archives are not equivalent to extracted event facts.
Validation
Scope
This validates PostgreSQL reuse, competing workers, abrupt worker exit, stale-lease fencing, checkpoints, handoff, budget accounting, and offline five-generation rejection behavior. It does not validate a paid end-to-end experiment, live Forward accumulation, or real-world holdout consumption. Existing development records and credentials were preserved; no service configuration or production behavior changed.
CR follow-up
PGHOSTADDRfrom redirecting validation.test_loop_*.pyautomatically; five-generation evaluation remains an explicit option.Latest CR follow-up: require the actual opt-in five-generation suite to exist and verify its repository discovery delta; use a bounded connect timeout, 120-second migration limit and 600-second test limit; unwind SIGTERM through cleanup. Document SIGKILL/host failure leftovers explicitly. Timeout cleanup and signal regressions pass (19 total unit tests).