File size: 12,207 Bytes
2c4c6fc 8c6315b 2c4c6fc 9a1b2e2 226d90a 5086f7d 6707b93 5086f7d 844998b 62add84 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 |
## V40 β Tabbed product UI and link/progress polish
- Replaced the left sidebar with a compact top tab workflow: **Run new build**, **Live progress**, and **Test Space**.
- Kept the Run Explorer inside the Live progress cockpit, so previous runs are inspectable without confusing the build form.
- Added a visible Logout action in the header.
- Made the Job link more reliable for historical runs by reconstructing it from `job_id` when the stored URL is missing.
- Reworked the live progress timeline to a compact wrapped step grid instead of a scrolling panel.
- Automatically switches to Live progress after launching a build or validation.
- Preserved bucket gating, per-user buckets, OAuth checks, hardware strategy, and validation Jobs.
## V36 - Docker OAuth dependency fix
- Added `huggingface_hub[oauth]>=1.0.0` to the runtime requirements so FastAPI OAuth via `attach_huggingface_oauth(...)` can initialize inside the Docker Space.
- Keeps the V35 Docker/FastAPI custom UI startup model unchanged: one `uvicorn` server, custom UI at `/`, `/custom` alias.
# Changelog
## V35 β Docker FastAPI root custom UI startup
- Switches the public product Space to `sdk: docker`.
- Adds a Dockerfile running exactly one uvicorn process: `uvicorn app:app --host 0.0.0.0 --port 7860`.
- Attaches Hugging Face OAuth directly to FastAPI with `attach_huggingface_oauth`.
- Removes the Gradio-mounted debug app from the normal startup path.
- Updates login/logout links to `/oauth/huggingface/login` and `/oauth/huggingface/logout`.
- Keeps the custom dashboard at `/` and `/custom`.
## V34 β Space startup fix
- Removed the explicit `uvicorn.run(app, host="0.0.0.0", port=7860)` launcher from `app.py`.
- Kept the custom FastAPI/ASGI `app` object exposed at module level so Spaces can run it without binding port 7860 twice.
- Added a regression test to prevent reintroducing a second server start.
## v32 β Mockup-aligned custom dashboard
- Reworked the custom Build page to match the validated dashboard mockup.
- Restored the Run Explorer as a first-class right-side panel on the main Build view.
- Moved live progress into the main cockpit with compact progress metadata and a vertical timeline.
- Added right-rail Run details, quick links, report preview, and βHow it worksβ panels.
- Kept the full Runs page for deeper run inspection while making recent runs visible from the home dashboard.
- Preserved the V31 functional feedback, OAuth, bucket gating, and polling behavior.
# Changelog
## V33 β Root custom dashboard
- Serve the custom dashboard directly at `/` and `/custom`.
- Move the legacy Gradio controls behind `/_gradio` for OAuth/debug only.
- Remove the product-facing Gradio iframe/preview experience.
- Keep OAuth-backed API routes and custom dashboard behavior intact.
- Add `uvicorn` as an explicit runtime dependency.
## v31 β Functional feedback verification
- Added stronger Custom UI feedback states so bucket checks, build launch, validation launch, and polling always show visible status.
- Added client-side validation for required build fields and JSON validation payloads before launching Jobs.
- Improved API error parsing so browser messages show clean backend errors instead of raw JSON blobs.
- Added backend bucket preflight checks for `/api/build` and `/api/validate` to prevent Jobs from launching against a missing user bucket.
- Added terminal-status handling so polling stops cleanly on `manual_hardware_required`, `technical_blocker`, `full_inference_candidate_health_passed`, and other final states.
- Added last-polled visibility and non-blocking retry feedback for live progress.
## v30 β Custom UI robustness cleanup
- Fixed the custom UI flex layout to avoid horizontal overflow on laptop-width screens.
- Removed duplicate auth-panel CSS and cleaned responsive behavior.
- Made the Run Explorer horizontally scrollable on medium screens and card-like on mobile.
- Restyled JSON textareas as monospace code inputs.
- Made the ZeroGPU-first checkbox user-controllable.
- Added build gating: users must check or create their private run bucket before launching a build from the custom UI.
- Removed leftover mockup-only readiness behavior and replaced it with a real bucket status pill.
## v25 β Custom UI OAuth bridge
- Wired the `/custom` frontend to real OAuth-backed API endpoints.
- Added custom UI actions for bucket check/create, build launch, validate launch, run progress polling, and run explorer.
- Added `/api/me`, `/api/bucket/status`, `/api/bucket/create`, `/api/build`, `/api/validate`, `/api/runs/{run_id}`, and `/api/runs/{run_id}/progress`.
- Added bucket run listing support for the Run Explorer.
- Kept the Gradio UI as a fallback while the custom frontend is validated.
## v24 β Custom UI shell + progress API skeleton
- Added a custom product UI shell served at `/custom` with dedicated HTML/CSS/JS assets.
- Added a live job progress visualization model based on `events.jsonl`.
- Added `/api/app-info`, `/api/progress/from-events`, and a placeholder `/api/runs` endpoint for the upcoming custom frontend auth bridge.
- Added a Custom UI preview tab while preserving the functional Gradio workflows as the source of truth.
- Added tests for the custom shell assets and progress mapping.
## V23 β Hardware-at-creation strategy
- Requests Space hardware as early as possible via `create_repo(..., space_hardware=...)`.
- Falls back through ZeroGPU β preferred hardware β fixed GPU fallback before creating a default CPU Space.
- Writes `hardware_strategy.json` alongside `hardware_attempts.json`.
- Stops treating OAuth hardware errors as transient retries; if automatic hardware is not authorized, the run is marked `manual_hardware_required` and the user can validate after manual hardware selection.
## V21 β Per-user bucket onboarding
- Added Run storage controls to check or create the signed-in user's private run bucket from the UI.
- Jobs now preflight the per-user bucket before launch and show a clear error if it is missing or inaccessible.
- The app no longer requires users to leave the workflow to manually create `space-factory-runs` before first use.
## v20 β Per-user Bucket isolation
- Reverted to the V17 product UI baseline.
- Replaced the hardcoded shared bucket source with a per-user bucket policy.
- Jobs now mount `<signed-in-username>/<bucket-name>` dynamically.
- Refresh/readback and artifacts links now use the signed-in user's bucket.
- Added a Run Bucket name field to Build and Validate workflows.
- Updated docs to require each user to create their own private `space-factory-runs` bucket.
## v28 β Custom UI live polish
- Added Run Explorer status filters and a manual refresh action.
- Persisted the active run in browser localStorage so progress resumes after refresh.
- Added a non-blocking polling warning when live progress cannot be refreshed.
- Highlighted the selected run row in the explorer.
## v17-product-button-links
- Replaced custom HTML/Markdown quick links with native Gradio `gr.Button(link=..., link_target="_blank")` controls.
- Quick link buttons are available in both public workflows:
- Build from model card
- Validate existing Space
- Kept the product workflow unchanged: ZeroGPU-first, fixed GPU fallback, manual hardware fallback, and existing-Space validation.
## v16-product-links
- Added quick links after launching jobs:
- open HF Job in a new tab
- open target Space in a new tab
- open Space settings in a new tab
- open run artifacts in the configured Bucket
- Added the same link panel to both Build and Validate workflows.
## v15-product-verified
- Removed legacy phase launchers from product code.
- Kept only the public workflows:
- Build from model card
- Validate existing Space
- Cleaned documentation to match the public-preview product workflow.
- Removed duplicate UI component in the build events tab.
- Rechecked previously observed failure modes:
- Gradio Client auth parameter compatibility
- endpoint discovery instead of hardcoded `/predict`
- generic README metadata sanitation
- ZeroGPU-first with fixed-GPU/manual fallback
- separate validation/smoke-test workflow
## v14-product
- Public product UI without experimental tabs.
- Universal model-card builder and existing-Space validator.
## V22 β dependency compatibility and build repair
- Removed the obsolete generated-Space constraint `huggingface_hub<1.0.0`.
- Generated Spaces now normalize Hub requirements to a modern compatible range (`huggingface_hub>=0.34.0,<2.0.0`, or `>=1.5.0,<2.0.0` when Transformers 5.x is detected).
- Added one automatic Pi repair pass when the generated Space fails build/runtime validation.
- The repair pass collects Space build/runtime logs, asks Pi for a minimal patch, reuploads the workspace, and retries validation once.
- Repair artifacts are stored under `runs/<run_id>/repair/` and logs under `logs/pi_repair_output.txt`.
## v27 β Custom run actions workflow
- Adds selected-run actions in the custom Run Explorer.
- Adds a manual hardware action panel in live progress.
- Lets users prepare the Validate existing Space form directly from a selected run.
- Keeps the Gradio fallback UI and backend workflow unchanged.
## v26-custom-run-explorer
- Expanded the custom UI Run Explorer from a simple list into a usable run-detail view.
- Added per-run detail rendering for status, model, target Space, hardware, validation result, artifacts, and report preview.
- Enhanced `/api/runs/{run_id}` and `/api/runs/{run_id}/progress` to expose `inference_gate`, `generation_smoke`, `hardware_strategy`, `technical_blockers`, file indexes, and normalized run summaries.
- Added frontend rendering for validation metrics sourced from live progress and smoke-test artifacts.
- Kept the Gradio fallback UI and core backend workflows unchanged.
## v37 β Premium simplified custom UI
- Simplified the Custom UI navigation to the two real product workflows: **Run build** and **Test Space**.
- Kept the Run Explorer visible on the build dashboard instead of exposing it as a redundant tab.
- Reworked the dashboard layout to feel closer to the validated premium mockup while reducing confusion.
- Replaced ambiguous timeline dots with explicit step states: completed / active / pending / failed.
- Fixed run artifact links to consistently target the run folder: `runs/<run_id>` inside the connected bucket.
- Reduced persistent banners: success/info messages now auto-clear and the OAuth OK state is reflected in the header instead of a permanent banner.
- Preserved the Docker/FastAPI Custom UI architecture, OAuth flow, per-user buckets, build Jobs, validation Jobs, and live polling.
## V38 β Build/run separation and faster Run Explorer
- Added an explicit **Prepare new build** action to separate the fresh build form from selected past runs.
- Added a build mode notice explaining that selecting a run only changes progress/details and never mutates the build form.
- Run Explorer filters and search now operate locally from a cached run list for a much snappier interaction.
- Refresh now explicitly reloads the connected bucket; ordinary filter/search changes no longer re-query the bucket.
- Selecting a run highlights it, switches the detail/progress context, and keeps the build form independent.
## V42 β Product tabs and run recovery hardening
- Renamed the custom UI top-level workflow tabs to the intended product model: **New Build**, **Live Progress**, and **Space Test**.
- Kept the build form isolated from selected historical runs; selecting a run only updates Live Progress and details.
- Hardened run discovery from the connected bucket by combining `ls` and targeted `glob` patterns so partial/in-progress runs are recovered more reliably.
- Persisted `launch.json`, `summary.json`, and a minimal `state.json` immediately after a Job launch, so running Jobs appear in the Run Explorer before the worker writes final artifacts.
- Progress polling now falls back to launch metadata when `state.json`/`events.jsonl` are not ready yet.
- Job links are preserved or reconstructed from launch metadata for active and historical runs.
|