kylebrodeur commited on
Commit
e86f649
Β·
verified Β·
1 Parent(s): eac8106

deploy: update Space from deploy_preflight --push

Browse files
Files changed (3) hide show
  1. .codeboarding/logs/wrapper-server.log +6 -0
  2. app.py +24 -21
  3. 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
- reset_s, run_btn = _action_bar(primary_label="SLICE", primary_id="ce-run")
586
-
587
- # 3-column setup: ENVIRONMENT | BUILD-PLATE+NOTES | MATERIAL
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
588
  with gr.Row(equal_height=False):
589
- # Column 1: ENVIRONMENT readout + RANDOMIZE + OVERRIDE (popup trigger)
590
- with gr.Column(scale=1, min_width=220):
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 3: MATERIAL
613
- with gr.Column(scale=1, min_width=200):
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. */