# v190.19 — Eval archive effective outcomes + owner flush - Eval records now preserve automatic outcome and add effective outcome metadata for linked Space Test validations. - Backend archive publishing enriches records with linked validation summaries, endpoint discovery metrics, smoke retry metrics and stricter privacy flags without storing prompts, args, target Space IDs or generated code. - Eval publish statuses now use schema v1.3 and republish when a parent Build Run gains new effective validation state. - Instance owners / configured eval admins can flush archived eval records from the mounted eval bucket while preserving archive configuration. # v190.19 — Build completion matrix + endpoint discovery-first Space Test - Added canonical `space_test_policy` for replay/complete/recover/blocked/unavailable Build Run states. - Linked Space Test can now discover Gradio endpoints before validation when a Build Run has no known endpoint schema. - Space Test UI consumes policy labels/messages and shows discovery-first validation state. - Runs Explorer/Stats can surface recoverable and needs-validation states without treating Space Test as standalone. ## v190.19 — Linked validation hardening and effective status UX - Fixed linked Space Test parent update after smoke success by sourcing `api_name` and `expected_output_type` from the smoke payload/environment instead of out-of-scope variables. - Prevented failed linked validation attempts from downgrading a parent Build Run that already has a successful linked validation. - Clarified effective status filters/stats, Eval Archive effective hints, Space Test context, and latency/ZeroGPU recommendation provenance. ## v190.16 — Cascade delete linked Space Tests - Deleting a Build Run now cascades to its linked Space Test validation runs so no hidden validation artifacts are orphaned. - Deleting a linked validation run updates the parent Build Run linked validation metadata and manual validation status. - The delete modal now reports linked validation counts and the frontend removes parent/child cache entries together. ## v190.16 — Build-first explorer compatibility cleanup - Keeps Runs Explorer simple after the linked-only Space Test change: Build Runs remain the primary list items, linked validations are summarized on their parent, and no standalone/legacy validation section is introduced. - Hardens the run cache, stats, pagination, and selection paths against null, partial, or legacy Build Run records that do not contain manual validation metadata. - Fixes linked validation parent selection without duplicating variables in the snapshot path. - Keeps the v190.12 generic Gradio schema-choice smoke retry intact. ## v190.16 hotfix — Runs Explorer null-safe linked validation cache - Hardened Runs Explorer against null or malformed run summaries returned by stale bucket/list responses. - Preserved build-first linked validation grouping while filtering invalid cache entries safely. - Added regression coverage for null-safe linked validation parent lookup. ## v190.16 — Build-first explorer and linked validation stats polish - Treat linked validation runs as children of Build Runs in Runs Explorer by default. - Rework Run Stats around Build Runs, linked tests, automatic success, and effective success. - Stop the Active Run elapsed clock for partial/completed-with-warnings/manual-validated terminal states. - Add softer Runs Explorer CSS spacing with borderless cards and linked-validation chips that breathe. ## v190.13 — Linked-only Space Test and parent Build validation update - Disabled standalone Space Test validation in the product UI/API path; validations must now be linked to a completed Build Run target Space. - Prefill Space Test now carries a parent Build Run id and locks the target Space to the generated Space from that parent. - Linked validation Jobs persist `parent_build_run_id`, `source_kind`, and linked target metadata. - Successful linked validations write `manual_validation_status.json` and `linked_validations.json` back into the parent Build Run folder. - Active Run snapshots and run summaries can now surface manual validation status, effective verdict, latency, and ZeroGPU duration measurements sourced from linked Space Test. - Runs Explorer labels linked validation runs, shows manual validation passed on Build cards, and opens the parent Build Run when a linked validation is selected. # Agentic Space Factory v190.16 ## v190.16 smoke retry and final summary hardening - Generation smoke payloads now preserve Gradio schema choice value types before calling predict. - If Gradio rejects a smoke payload with a choice type mismatch, the worker records the first error, coerces args to schema choices, and retries once. - Final worker completion now writes a terminal summary.json so lightweight run cards and bucket audits do not stay stuck on running. - The worker writes live_status.json for micro-stage telemetry during live validation and smoke retry. - Live Validation surfaces schema-choice retry details and next actions. - Gated the Active Run “Prefill Space Test” action until a build reaches a final exploitable Space state (`success`, `partial`, or manual-action-required with a target Space). - Added live validation telemetry to the canonical timeline model: Space runtime stage, health, Gradio schema/endpoints, generation smoke state, severity, and next action. - Removed the redundant running subtitle “The pipeline is still in progress.” from the progress header. - Tightened visible polling cadence for active build and validation runs so events feel less batched while preserving terminal stop/final refresh behavior. # Agentic Space Factory v190.10 - Live polling now uses the same canonical run snapshot as run selection/reload, so terminal builds converge across Active Run, Runs Explorer, Run Stats, and Eval Archive without a page refresh. - Intermediate fallback/wait/test failures no longer mark the whole build as failed unless the canonical timeline is terminal. - Initial build launch shows a quiet snapshot wait state instead of rendering the legacy full vertical timeline. - Current step meta was removed; the canonical timeline owns phase context. - Timeline phase details are hidden on normal happy-path phases and shown only for warnings, fallback, recovery, manual actions, archive issues, or terminal diagnostics. # 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.