Spaces:
Running on Zero
Running on Zero
deploy: update Space from deploy_preflight --push
Browse files- .codeboarding/logs/wrapper-server.log +6 -0
- app.py +24 -21
- core/theme.py +13 -0
.codeboarding/logs/wrapper-server.log
CHANGED
|
@@ -273,3 +273,9 @@ INFO: 127.0.0.1:44498 - "GET /health HTTP/1.1" 200 OK
|
|
| 273 |
[stderr] 2026-06-14 06:28:29 INFO [watchfiles.main:308] 1 change detected
|
| 274 |
[stderr] 2026-06-14 06:28:30 WARNING [codeboarding_pro.analysis_controller:506] Skipping incremental update: full analysis artifacts not ready yet
|
| 275 |
[stderr] 2026-06-14 06:28:30 INFO [codeboarding_pro.analysis_controller:314] No cached analysis results; skipping health report
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 273 |
[stderr] 2026-06-14 06:28:29 INFO [watchfiles.main:308] 1 change detected
|
| 274 |
[stderr] 2026-06-14 06:28:30 WARNING [codeboarding_pro.analysis_controller:506] Skipping incremental update: full analysis artifacts not ready yet
|
| 275 |
[stderr] 2026-06-14 06:28:30 INFO [codeboarding_pro.analysis_controller:314] No cached analysis results; skipping health report
|
| 276 |
+
[stderr] 2026-06-14 06:31:26 INFO [watchfiles.main:308] 1 change detected
|
| 277 |
+
[stderr] 2026-06-14 06:31:27 WARNING [codeboarding_pro.analysis_controller:506] Skipping incremental update: full analysis artifacts not ready yet
|
| 278 |
+
[stderr] 2026-06-14 06:31:27 INFO [codeboarding_pro.analysis_controller:314] No cached analysis results; skipping health report
|
| 279 |
+
[stderr] 2026-06-14 06:31:34 INFO [watchfiles.main:308] 1 change detected
|
| 280 |
+
[stderr] 2026-06-14 06:31:34 WARNING [codeboarding_pro.analysis_controller:506] Skipping incremental update: full analysis artifacts not ready yet
|
| 281 |
+
[stderr] 2026-06-14 06:31:34 INFO [codeboarding_pro.analysis_controller:314] No cached analysis results; skipping health report
|
app.py
CHANGED
|
@@ -582,26 +582,29 @@ def build() -> gr.Blocks:
|
|
| 582 |
with gr.Tabs() as tabs:
|
| 583 |
# βββββββββββββββββββββββββ BUILD Β· define the job ββββββββββββββββββββββββ
|
| 584 |
with gr.Tab("BUILD", id="studio"):
|
| 585 |
-
|
| 586 |
-
|
| 587 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 588 |
with gr.Row(equal_height=False):
|
| 589 |
-
# Column 1:
|
| 590 |
-
with gr.Column(scale=
|
| 591 |
-
gr.HTML(rule("ENVIRONMENT (SIMULATED)"))
|
| 592 |
-
sensors_readout = gr.HTML()
|
| 593 |
-
with gr.Row():
|
| 594 |
-
roll_btn = gr.Button("RANDOMIZE",
|
| 595 |
-
elem_classes=["ce-pillbtn", "ce-icon-shuffle"], scale=0)
|
| 596 |
-
gr.HTML("<button class='ce-pillbtn ce-icon-sliders' "
|
| 597 |
-
"data-popup-trigger='override' type='button' "
|
| 598 |
-
"style='background:var(--ao-surface);color:var(--ao-orange);"
|
| 599 |
-
"border:none;padding:5px 15px;border-radius:999px;"
|
| 600 |
-
"text-transform:uppercase;letter-spacing:.5px;font-size:12px;"
|
| 601 |
-
"font-weight:700;cursor:pointer;display:inline-flex;"
|
| 602 |
-
"align-items:center;gap:6px;'>OVERRIDE</button>")
|
| 603 |
-
# Column 2: BUILD-PLATE POSITION + NOTES
|
| 604 |
-
with gr.Column(scale=1, min_width=240):
|
| 605 |
gr.HTML(rule("BUILD-PLATE POSITION"))
|
| 606 |
gr.HTML("<div class='ce-sub' style='margin:-2px 0 4px;'>"
|
| 607 |
"edges/corners run cooler β warp/adhesion risk</div>")
|
|
@@ -609,8 +612,8 @@ def build() -> gr.Blocks:
|
|
| 609 |
elem_classes=["ce-pills"])
|
| 610 |
description = gr.Textbox(label="NOTES (OPTIONAL)",
|
| 611 |
placeholder="e.g. 45Β° bracket, 60mm tall")
|
| 612 |
-
# Column
|
| 613 |
-
with gr.Column(scale=1, min_width=
|
| 614 |
gr.HTML(rule("MATERIAL"))
|
| 615 |
material = gr.Radio(MATERIALS, value="PLA", show_label=False, elem_classes=["ce-pills"])
|
| 616 |
gr.HTML(_model_callout())
|
|
|
|
| 582 |
with gr.Tabs() as tabs:
|
| 583 |
# βββββββββββββββββββββββββ BUILD Β· define the job ββββββββββββββββββββββββ
|
| 584 |
with gr.Tab("BUILD", id="studio"):
|
| 585 |
+
# Top row: ENVIRONMENT readout (left) + RESET/SLICE (right) on the same line.
|
| 586 |
+
with gr.Row(elem_classes=["ce-actionbar", "ce-envbar"]):
|
| 587 |
+
sensors_readout = gr.HTML(elem_classes=["ce-envbar-readout"])
|
| 588 |
+
roll_btn = gr.Button("RANDOMIZE",
|
| 589 |
+
elem_classes=["ce-pillbtn", "ce-icon-shuffle"], scale=0)
|
| 590 |
+
gr.HTML("<button class='ce-pillbtn ce-icon-sliders' "
|
| 591 |
+
"data-popup-trigger='override' type='button' "
|
| 592 |
+
"style='background:var(--ao-surface);color:var(--ao-orange);"
|
| 593 |
+
"border:none;padding:5px 15px;border-radius:999px;"
|
| 594 |
+
"text-transform:uppercase;letter-spacing:.5px;font-size:12px;"
|
| 595 |
+
"font-weight:700;cursor:pointer;display:inline-flex;"
|
| 596 |
+
"align-items:center;gap:6px;'>OVERRIDE</button>")
|
| 597 |
+
# spacer pushes the action buttons to the right edge
|
| 598 |
+
gr.HTML("<div style='flex:1;'></div>")
|
| 599 |
+
reset_s = gr.Button("RESET", elem_classes=["ce-pillbtn", "ce-act"], scale=0)
|
| 600 |
+
run_btn = gr.Button("SLICE", variant="primary",
|
| 601 |
+
elem_classes=["ce-act"], elem_id="ce-run", scale=0)
|
| 602 |
+
|
| 603 |
+
# 2-column setup: BUILD-PLATE+NOTES | MATERIAL
|
| 604 |
+
# (ENVIRONMENT moved up into the action bar above)
|
| 605 |
with gr.Row(equal_height=False):
|
| 606 |
+
# Column 1: BUILD-PLATE POSITION + NOTES
|
| 607 |
+
with gr.Column(scale=2, min_width=320):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 608 |
gr.HTML(rule("BUILD-PLATE POSITION"))
|
| 609 |
gr.HTML("<div class='ce-sub' style='margin:-2px 0 4px;'>"
|
| 610 |
"edges/corners run cooler β warp/adhesion risk</div>")
|
|
|
|
| 612 |
elem_classes=["ce-pills"])
|
| 613 |
description = gr.Textbox(label="NOTES (OPTIONAL)",
|
| 614 |
placeholder="e.g. 45Β° bracket, 60mm tall")
|
| 615 |
+
# Column 2: MATERIAL
|
| 616 |
+
with gr.Column(scale=1, min_width=220):
|
| 617 |
gr.HTML(rule("MATERIAL"))
|
| 618 |
material = gr.Radio(MATERIALS, value="PLA", show_label=False, elem_classes=["ce-pills"])
|
| 619 |
gr.HTML(_model_callout())
|
core/theme.py
CHANGED
|
@@ -228,6 +228,19 @@ textarea:focus, input:focus {{ border-color:var(--ao-orange) !important; box-sha
|
|
| 228 |
.ce-card {{ padding:0 !important; margin:0 !important; gap:8px !important;
|
| 229 |
display:flex !important; flex-direction:column !important; }}
|
| 230 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 231 |
/* ββ OVERRIDE ENVIRONMENT POPUP ββ
|
| 232 |
Hidden by default; toggled via JS clicking the OVERRIDE button.
|
| 233 |
Modal-style overlay with the override fields inside. */
|
|
|
|
| 228 |
.ce-card {{ padding:0 !important; margin:0 !important; gap:8px !important;
|
| 229 |
display:flex !important; flex-direction:column !important; }}
|
| 230 |
|
| 231 |
+
/* ENVIRONMENT bar: env readout + RANDOMIZE + OVERRIDE on LEFT, RESET + SLICE on RIGHT */
|
| 232 |
+
.ce-envbar {{ align-items:center !important; gap:10px !important;
|
| 233 |
+
flex-wrap:wrap !important; margin-bottom:14px !important;
|
| 234 |
+
padding:8px 12px !important;
|
| 235 |
+
border-top:1px solid var(--ao-outline-dim) !important;
|
| 236 |
+
border-bottom:1px solid var(--ao-outline-dim) !important; }}
|
| 237 |
+
.ce-envbar .ce-envbar-readout {{ flex:0 1 auto; min-width:0;
|
| 238 |
+
color:var(--ao-text); font-size:12px; letter-spacing:1px;
|
| 239 |
+
text-transform:uppercase; white-space:nowrap;
|
| 240 |
+
overflow:hidden; text-overflow:ellipsis;
|
| 241 |
+
max-width:55%; }}
|
| 242 |
+
.ce-envbar .ce-envbar-readout * {{ font-size:12px !important; }}
|
| 243 |
+
|
| 244 |
/* ββ OVERRIDE ENVIRONMENT POPUP ββ
|
| 245 |
Hidden by default; toggled via JS clicking the OVERRIDE button.
|
| 246 |
Modal-style overlay with the override fields inside. */
|