You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Bootstrap an isolated daemon for real-model memory evals and always finalize cleanup #4205
The advertised real-model memory runner cannot initialize its own fresh profile with the current CLI. It creates isolated storage, immediately calls tracedecay init, and never starts the daemon that initialization now requires.
create_eval_environment() allocates a new home and TRACEDECAY_DATA_DIR. build_fixture() creates a separate fixture directory and issues init before host/model setup. The main loop contains no daemon bootstrap. The current CLI initialization path returns code_index_scheduler_unavailable when no daemon is connectable for that profile.
Audit basis
This is a static control-flow finding at 30c23baa1967d4bb04aee3f20deb7a19f302ba61, not a claimed live-model reproduction. A normal fresh isolated profile has no separately launched daemon, so initialization fails before a model turn. No live agent or operator profile was used in the audit.
There are two connected failure-handling defects. run() calls sys.exit on failed initialization, bypassing the final report. The caller's fixture assignment occurs only after build_fixture() returns; if initialization exits, cleanup sees fixture=None and leaves the separately allocated fixture directory behind.
Proposed change
Reuse a maintained isolated-daemon lifecycle helper. Allocate the profile and fixture under one owned lifecycle, launch the selected binary's daemon with explicit isolated inputs, wait for readiness, then initialize and seed the project. Stop the owned daemon and remove all temporary state on every exit path. Convert operational failures into explicit scenario/error reports before returning a failing status. Pinning the evaluated binary to the shipping build is tracked separately.
Behavioral acceptance
A fresh environment can initialize, seed memory, and execute a selected scenario with the current CLI.
Initialization failure, daemon startup failure, agent failure, and cancellation each write an error report and clean all owned temporary directories/processes.
Setup failure never leaves an orphan fixture because an assignment did not complete.
The runner cannot fall back to the operator's daemon or storage.
Existing model-cost opt-in remains effective; lifecycle verification must not require spending model tokens.
Audit provenance
Source evidence is pinned to 30c23baa. Relevant implementation was rechecked against master at 5daa37d1; the finding remains applicable. Verification performed and its limits are stated above.
Full-backlog execution: implement the isolated real-model eval lifecycle in #4205, building on the actual shipping-binary work in active #4323/#4206 and distribution retirement #4266. Inspect those PRs/current files and preserve their changes instead of resurrecting a Cargo build or arbitrary PATH fallback. One owned profile/fixture/daemon scope must bootstrap readiness before init, report all setup/agent/cancellation failures, and clean processes/directories even if fixture construction fails. Add deterministic no-model tests for every failure boundary and execute representative setup/seed/query with the selected identified Bazel artifact. Keep existing explicit model-cost opt-in; this assignment does NOT authorize paid live-model runs or use of an operator's profile/daemon. Coordinate #4219's product-effectiveness work through a documented reusable lifecycle, not a second harness/framework. Headers <=72; preserve timeouts and test coverage; real commands/nonzero counts, no fake results. Deliver implementation in a reviewable PR with exact remaining acceptance limits.
Activity
ScriptedAlchemy commentedon Oct 19, 2026
Full-backlog execution: implement the isolated real-model eval lifecycle in #4205, building on the actual shipping-binary work in active #4323/#4206 and distribution retirement #4266. Inspect those PRs/current files and preserve their changes instead of resurrecting a Cargo build or arbitrary PATH fallback. One owned profile/fixture/daemon scope must bootstrap readiness before init, report all setup/agent/cancellation failures, and clean processes/directories even if fixture construction fails. Add deterministic no-model tests for every failure boundary and execute representative setup/seed/query with the selected identified Bazel artifact. Keep existing explicit model-cost opt-in; this assignment does NOT authorize paid live-model runs or use of an operator's profile/daemon. Coordinate #4219's product-effectiveness work through a documented reusable lifecycle, not a second harness/framework. Headers <=72; preserve timeouts and test coverage; real commands/nonzero counts, no fake results. Deliver implementation in a reviewable PR with exact remaining acceptance limits.