Skip to content

Add optional spaday-based frontend provider for the gateway UI - #300

Draft
timkpaine wants to merge 1 commit into
v3from
tkp/spaday-ui
Draft

Add optional spaday-based frontend provider for the gateway UI#300
timkpaine wants to merge 1 commit into
v3from
tkp/spaday-ui

Conversation

@timkpaine

@timkpaine timkpaine commented Jul 11, 2026

Copy link
Copy Markdown
Member

Adds an optional spaday-based frontend alongside the built-in Perspective/React UI, selected per gateway via Settings.UI_PROVIDER == "spaday" (default stays "default"); nothing changes unless opted in.

  • New ui(self, app: GatewayUI) module hook (mirrors rest()), invoked during web build only when the spaday provider is active.
  • GatewayUI collects module contributions into named shell regions and mounts a single spaday page onto the FastAPI app via spaday's AppShell; spaday is imported lazily (new spaday extra).
  • Modules contribute UI: perspective (workspace + layout selector), channels_graph and outputs (drawer links), controls (shutdown confirm), and a presentation-only MountSendForm (a schema-driven send panel via spaday form() + declarative CallEndpoint).
  • demo_spaday / omnibus_spaday configs extend the demos with the provider.

@timkpaine
timkpaine marked this pull request as draft July 11, 2026 16:45
@timkpaine
timkpaine force-pushed the tkp/spaday-ui branch 2 times, most recently from 2ebab68 to 5b26df8 Compare July 11, 2026 17:05
@github-actions

github-actions Bot commented Jul 11, 2026

Copy link
Copy Markdown
Contributor

Test Results

693 tests  +2   684 ✅ +1   7m 42s ⏱️ -6s
  1 suites ±0     9 💤 +1 
  1 files   ±0     0 ❌ ±0 

Results for commit d0cb633. ± Comparison against base commit c9494f3.

♻️ This comment has been updated with latest results.

@codecov

codecov Bot commented Jul 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 10.00000% with 414 lines in your changes missing coverage. Please review.
✅ Project coverage is 85.23%. Comparing base (c9494f3) to head (d0cb633).

Files with missing lines Patch % Lines
csp_gateway/server/web/spaday_ui.py 0.00% 238 Missing ⚠️
csp_gateway/tests/server/web/test_spaday_ui.py 7.63% 121 Missing ⚠️
csp_gateway/server/modules/web/send_form.py 22.91% 37 Missing ⚠️
csp_gateway/server/modules/web/perspective.py 12.50% 7 Missing ⚠️
csp_gateway/server/modules/controls/controls.py 40.00% 3 Missing ⚠️
csp_gateway/server/web/app.py 72.72% 3 Missing ⚠️
csp_gateway/server/modules/web/channels_graph.py 50.00% 2 Missing ⚠️
csp_gateway/server/modules/web/outputs.py 50.00% 2 Missing ⚠️
csp_gateway/server/gateway/gateway.py 50.00% 1 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##               v3     #300      +/-   ##
==========================================
- Coverage   87.38%   85.23%   -2.16%     
==========================================
  Files         147      150       +3     
  Lines       15933    16385     +452     
==========================================
+ Hits        13923    13965      +42     
- Misses       2010     2420     +410     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Adds an optional spaday-based frontend alongside the built-in Perspective/React
UI, selected per gateway via Settings.UI_PROVIDER == "spaday" (default stays
"default"); nothing changes unless opted in.

- New ui(self, app: GatewayUI) module hook (mirrors rest()), invoked during web
  build only when the spaday provider is active.
- GatewayUI collects module contributions into named shell regions and mounts a
  single spaday page onto the FastAPI app via spaday's AppShell; spaday is
  imported lazily (new `spaday` extra).
- Modules contribute UI: perspective (workspace + layout selector), channels_graph
  and outputs (drawer links), controls (shutdown confirm), and a presentation-only
  MountSendForm (a schema-driven send panel via spaday form() + declarative
  CallEndpoint).
- demo_spaday / omnibus_spaday configs extend the demos with the provider.

Signed-off-by: Tim Paine <3105306+timkpaine@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant