# Agentic Space Factory v190.9 - Persists/canonicalizes terminal Space Test validation status across page reloads so terminal artifacts/events override stale `running` launch metadata. - Prevents HF Job stage or old summary data from resurrecting failed/success/partial validations as running in `/api/runs` and `/api/runs/{id}/progress`. - Makes the delete confirmation modal use the same canonical validation status, so failed validations no longer warn that they still look active. - Keeps validation auto-resume/polling from restarting terminal validations after reload; explicit “Run validation again” remains the only relaunch path. # Agentic Space Factory v190.6 - Locks terminal Space Test validation states so stale running/pending data cannot override failed/success/partial/manual outcomes. - Keeps validation panels stable during slow refreshes using stale-while-revalidate semantics. - Preserves terminal validation status in Runs Explorer while backend summaries refresh. # Agentic Space Factory v190.5 ## Active Run timeline + Space Test prefill hotfix - Restores the canonical Active Run timeline as a horizontal fit-to-width row across narrow central columns. - Keeps the active timeline phase pulsing while a phase is running. - Ensures the Agent phase remains `running` while `pi_run` is `started` or `running`, instead of prematurely showing complete. - Improves Space Test prefill from partial/failed builds by reading nested `inference_gate.generation_smoke` payloads and endpoint parameters when available. - Keeps the validation prefill in new-validation draft mode rather than reusing a previous validation selection. # v190.5 — Space Test explicit prefill mode - Fixed Active Run → Space Test prefill so it prepares a new validation draft instead of re-opening the previous validation run. - Clearing a prefilled Space Test now clears `selectedValidationId`/validation polling state and disables delete until a new validation is launched. - Existing validation cards in Runs Explorer still open in view-existing-validation mode. - Added regression tests for explicit validation prefill vs existing validation selection. # v190.5 — Active Run timeline hotfix - Restores the Active Run canonical timeline as a horizontal row on desktop/tablet after the fit-to-width consolidation. - Lowers the horizontal breakpoint to avoid accidental vertical stacking in narrow center columns while keeping a true mobile fallback. - Restores the running-step pulse/ring animation on the active canonical timeline node. - Keeps `pi_run` started/running as Agent `running` instead of marking Agent complete because earlier setup events succeeded. - Leaves Space Test and worker/runtime behavior unchanged. # v190.1 — Space Test Validation UI/State Model - Adds a dedicated canonical Space Test timeline: Start, Runtime, API, Endpoint, Payload, Smoke test, Result, Report. Validation views no longer reuse build/recovery phases such as repair upload, manual hardware, or upload files. - Fixes Run Explorer status normalization for validation runs so terminal validation verdicts such as `full_inference_success` override stale `running` summaries. - Humanizes Gradio endpoint schema rendering: component metadata objects are normalized into labels, choices/defaults are summarized, and `[object Object]` is never displayed. - Adapts Space Test labels for completed validation runs: terminal runs can show `Run validation again`, latency displays `Not recorded` when missing, and running validations keep actions disabled. - Keeps build worker/runtime behavior unchanged. # v190.0 — Active Run layout consolidation - Consolidates the Active Run UI without runtime changes: canonical timelines now fit the center column on desktop, hide the redundant Done dot, and relabel Hardware as GPU. - Keeps Run notes as the only compact home for non-blocking signals, with explicit Pi assistant mismatch / GPU fallback wording. - Makes Recovery phase details compact when Agent recovery provides the full diagnosis, avoiding duplicate Diagnose/Decide/Patch/Revalidate rows. - Improves Agent recovery text wrapping so blocker explanations and next actions are not truncated. # v189.9 — Timeline polish and Run notes clarity ## UI polish - Keeps Recovery phase details compact when the dedicated Agent recovery panel is available. - Uses `Run notes` as the single compact place for non-blocking warnings such as Pi model routing and hardware fallback. - Removes opaque `+N more` style note summaries from the canonical warning banner. - Keeps timeline phase details as navigation summaries rather than duplicating specialized diagnostic panels. ## Runtime - No worker/runtime behavior changed from v189.8. The v189.7 guardrails remain: quoted safe `python_version`, torch added when imported, and `.cache/` excluded from generated Space uploads. # v189.8 — Runtime Sanitation + Failed Timeline Truth - Sanitizes README `python_version` to quoted safe values (`3.10`, `3.11`, `3.12`) so `3.10` is never interpreted as YAML float `3.1`. - Adds `torch>=2.0.0` automatically when generated `app.py` imports torch but requirements omit it. - Excludes transient `.cache/` files from generated Space uploads. - Makes canonical timeline archive state prefer confirmed `published=true` over stale `record_not_ready` events. - Improves failed recovery summaries so final build blockers are surfaced distinctly from initial repaired blockers. - Keeps timeline node labels compact in both canonical and legacy render paths. - Prioritizes failed-run documents: Report, Blockage, Build error, Space logs, Decision, Repair. # v189.6 — Timeline State Hotfix - Derives canonical phase status from the latest status per worker step, not any historical event. - Prevents terminal runs from leaving early phases visually `running` because of older `started` events. - Prevents resolved Space log collection warnings from over-marking Deploy when final log quality is full. - Refines terminal active-phase selection so full-success runs focus Live test/Archive/Done while non-blocking warnings stay grouped separately. - Keeps the validated worker/runtime path unchanged. # v189.4 — Mobile Timeline Polish - Adds an Active Run phase details panel for the canonical `run_timeline_model.v1`. - Uses a mobile-first vertical canonical timeline on narrow screens. - Shows compact phase details and Needs attention summaries without changing the validated runtime worker path. - Keeps legacy timeline fallback behavior for older runs without `timeline_model`. # v189.2 — Canonical Timeline UI bridge - Active Run now uses `run_timeline_model.v1` for the progress header and main timeline whenever the backend view model provides it. - The legacy compact worker timeline remains as a fallback for old or partial payloads. - Timeline phases now represent product-level phases instead of re-inferred worker step groups, reducing conflicting progress states. # v184 — Compact Model Pre-scan Card - Refined the default Model pre-scan card to be more visible without adding heavy borders. - Reworked successful model pre-scan results into a compact premium summary with metadata icon chips, inline signal pills, and a single recommendation line. - Reduced the visual footprint of safe scans while preserving pipeline, library, expected output, good signals, and recommendations. # v176 — startup import fix for eval archive build - Fixed a syntax error in `src/bucket.py` caused by nested quotes inside the launch summary `artifacts_url` f-string. - Verified that the app imports/compiles cleanly again and that the full test suite passes. # v174 — Bucket run-prefix mount and robust worker bootstrap writes - Mounted the `runs/` Storage Bucket prefix explicitly into Jobs using `Volume(type="bucket", source=..., path="runs", mount_path="/output/runs")`. - Preserved the worker contract: `OUTPUT_ROOT=/output`, `run_dir=/output/runs/`, and remote objects under `runs//`. - Hardened API-side `_worker.py` persistence with `HfFileSystem.write_text`, `pipe_file`, `open(..., "wb")`, and a final `sync_bucket` fallback. - Removed virtual-directory creation for Bucket prefixes and kept deletion/listing/document links aligned with the configurable run prefix. - Raised the minimum `huggingface_hub` requirement to `>=1.11.0`. # v173 — Bucket path separation fix - Reverts the v172 API-side `makedirs` workaround for fresh run prefixes. - Keeps a strict distinction between remote bucket object URIs (`hf://buckets///runs//...`) and Job mount paths (`/output/runs//...`). - Writes API-side bucket objects directly with `HfFileSystem.pipe_file(...)`, with `open(..., "w")` as a compatibility fallback. - Adds tests to prevent treating virtual `runs/` prefixes as directories/repositories. # v172 — fresh bucket writes and pre-scan polish - Keeps Hugging Face Space metadata at the very top of `README.md` so the app archive cannot boot with a configuration error. - Makes fresh Bucket run-prefix writes more robust by creating parent prefixes before writing `_worker.py`, `launch.json`, `summary.json`, `state.json`, and other API-authored artifacts. - Restyles the Model pre-scan card into a calmer premium status panel with compact metadata chips and less oversized success treatment. # v171 — delete Space option, ghost-run cleanup, storage polish - Added an opt-in checkbox in the premium delete modal to delete the associated generated Space for build runs. - Kept validation runs protected from accidental associated Space deletion. - Made ghost/unknown run prefixes deletable from Run Explorer. - Compacted the Run Storage setup error card. - Preserved the v170 real recursive bucket deletion behavior. # v120 — Agent recovery UI - Added the Agent recovery section to summarize Pi recovery decisions, blockers, evidence, and repair/revalidation status. - Kept detailed source files in Run traces instead of duplicating raw recovery logs in the summary card.