-
Notifications
You must be signed in to change notification settings - Fork 0
Adopt the SolidJS front-end as the default gateway UI (4.5.1) (4.5.2) (4.5.3) (4.5.4) (4.5.5) (4.5.6) #275
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
leynos
wants to merge
37
commits into
main
Choose a base branch
from
adopt-solidjs-ui
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
37 commits
Select commit
Hold shift + click to select a range
4ed0532
Add ExecPlan for SolidJS front-end adoption
7d84ada
Import axinite-mockup SolidJS workspace as web-src
7d3e50c
Retarget web-src build from GitHub Pages to gateway serving
7466c5a
Align browser contracts with the real gateway payloads
84cbd68
Add gateway bearer-token boot flow to the SolidJS app
2e62740
Serve the SolidJS app as the default gateway UI
ce15622
Expose browser feature flags at GET /api/features
6a9e4ce
Harden the stub runtime contract and add coverage for it
0d71487
Fix three defects surfaced by stub browser validation
b665108
Document the SolidJS front-end and pin the Python e2e suite to legacy
1a8b61b
Remove stray css-view scratch snapshots
2613e78
Satisfy lint and spelling gates for the SolidJS adoption
9f16236
Close out the SolidJS adoption ExecPlan
3872757
Add ExecPlan for SolidJS adoption follow-ups
5082a04
Promote logs to a top-level SolidJS route
016fd05
Extend the stub runtime with pairing, chat auth, and media surfaces
15423c0
Persist deployment-scoped feature flags per RFC 0009
a09971c
Align the db sub-trait table with the MD060 column style
e2ddc8e
Add chat media, auth cards, and job-start cards to the SolidJS chat
2988691
Add restart, TEE attestation, and pairing surfaces to the SolidJS UI
9091a64
Rebuild the jobs detail view with legacy fidelity
b911863
Add an e2e testability contract to the SolidJS app
b428253
Refresh embedded SolidJS assets with the parity surfaces
b1ff8f9
Migrate the Python e2e suite to the SolidJS DOM
cb08ec4
Update front-end and e2e documentation for the parity follow-ups
071986d
Fix spelling-gate findings and rewrap ExecPlan progress lines
bcc628b
Close out the follow-ups ExecPlan
b3965bb
Use typographic apostrophes in French and Italian locale strings
373a14a
Wire the semantic and full verification chains into Make and CI
dddaed3
Resolve RFC 0009 open questions for the feature-flag layer
c0a2381
Implement deployment-flag methods in the settings trybuild fixture
92f1455
Pin the Playwright browsers path in the Frontend workflow
93ff779
Address CodeScene code-health findings in the browser workspace
d9c7156
Use Oxford spelling in a skills-preview comment
bfb6121
Scope CodeScene rules for generated assets and the browser workspace
8c3162d
Clear the remaining CodeScene findings
3edd57b
Make the mock-backend CodeScene rule set self-contained
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,54 @@ | ||
| --- | ||
| name: Frontend | ||
| "on": | ||
| pull_request: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - "web-src/**" | ||
| - "src/channels/web/static/solid/**" | ||
| - "Makefile" | ||
| - ".github/workflows/frontend.yml" | ||
| push: | ||
| branches: | ||
| - main | ||
| paths: | ||
| - "web-src/**" | ||
| - "src/channels/web/static/solid/**" | ||
| - "Makefile" | ||
| - ".github/workflows/frontend.yml" | ||
|
|
||
| jobs: | ||
| frontend: | ||
| name: Frontend verification | ||
| runs-on: ubicloud-standard-8 | ||
| env: | ||
| # playwright.config.ts pins the hermetic browsers path at test time; | ||
| # the install step must target the same location. | ||
| PLAYWRIGHT_BROWSERS_PATH: "0" | ||
| steps: | ||
| - name: Checkout repository | ||
| uses: actions/checkout@v6 | ||
| - name: Install Bun | ||
| uses: oven-sh/setup-bun@v2 | ||
| with: | ||
| bun-version: latest | ||
| - name: Install uv | ||
| # `semantic` and `verify:full` fetch semgrep and moz-fluent-linter | ||
| # through uvx. | ||
| uses: astral-sh/setup-uv@v5 | ||
| - name: Install dependencies | ||
| run: make frontend-install | ||
| - name: Install Playwright Chromium | ||
| working-directory: web-src | ||
| run: bunx playwright install --with-deps chromium | ||
| - name: Full verification chain | ||
| # Tailwind compile check, Biome lint, TypeScript, vitest unit and | ||
| # accessibility suites, Fluent variable/coverage checks, the | ||
| # semantic-CSS rules, the workspace Playwright spec, and | ||
| # moz-fluent-lint. | ||
| run: make frontend-full | ||
| - name: Embedded asset staleness gate | ||
| # Rebuild the SPA and fail when src/channels/web/static/solid does | ||
| # not match the web-src sources. | ||
| run: make frontend-verify | ||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -66,10 +66,47 @@ AUDIT_FLAGS ?= \ | |
| --ignore RUSTSEC-2024-0370 \ | ||
| --ignore RUSTSEC-2025-0134 | ||
|
|
||
| .PHONY: all install install-with-overrides sync-local-wasm-overrides build-github-tool-wasm fmt check-fmt typecheck lint lint-clippy lint-whitaker markdownlint spelling spelling-phrase-check spelling-config spelling-config-write spelling-helper-test nixie audit rust-audit test test-cargo test-matrix test-matrix-cargo test-workflow-contracts clean | ||
| .PHONY: all install install-with-overrides sync-local-wasm-overrides build-github-tool-wasm fmt check-fmt typecheck lint lint-clippy lint-whitaker markdownlint spelling spelling-phrase-check spelling-config spelling-config-write spelling-helper-test nixie audit rust-audit test test-cargo test-matrix test-matrix-cargo test-workflow-contracts clean frontend-install frontend-build frontend-verify frontend-check frontend-test frontend-full frontend-stub | ||
|
|
||
| all: check-fmt lint test spelling | ||
|
|
||
| BUN ?= $(shell command -v bun 2>/dev/null || printf '%s' "$$HOME/.bun/bin/bun") | ||
| FRONTEND_DIR := web-src | ||
| FRONTEND_DIST := $(FRONTEND_DIR)/dist | ||
| FRONTEND_EMBED_DIR := src/channels/web/static/solid | ||
|
|
||
| frontend-install: | ||
| cd $(FRONTEND_DIR) && $(BUN) install --frozen-lockfile | ||
|
|
||
| # Build the SolidJS app and refresh the embedded copy served by the gateway. | ||
| frontend-build: frontend-install | ||
| cd $(FRONTEND_DIR) && $(BUN) run build | ||
| rsync -a --delete $(FRONTEND_DIST)/ $(FRONTEND_EMBED_DIR)/ | ||
|
|
||
| # Fail when the committed embedded assets are stale relative to web-src. | ||
| frontend-verify: frontend-build | ||
| git diff --exit-code -- $(FRONTEND_EMBED_DIR) || { echo "error: $(FRONTEND_EMBED_DIR) is stale; commit the output of 'make frontend-build'" >&2; exit 1; } | ||
|
|
||
| # Static checks and unit suites for the browser workspace. `semantic` | ||
| # covers the classlist, semgrep, and stylelint rules and fetches semgrep | ||
| # through uvx on first use. | ||
| frontend-check: frontend-install | ||
| cd $(FRONTEND_DIR) && $(BUN) run check:fmt && $(BUN) run lint && $(BUN) run check:types && $(BUN) run semantic | ||
|
|
||
| frontend-test: frontend-check | ||
| cd $(FRONTEND_DIR) && $(BUN) run test && $(BUN) run test:a11y && $(BUN) run lint:ftl-vars | ||
|
|
||
| # The mockup's full verification chain: Tailwind compile check, lint, | ||
| # typecheck, unit + a11y + Fluent + semantic suites, the workspace | ||
| # Playwright spec (browsers must be installed), and moz-fluent-lint. | ||
| frontend-full: frontend-install | ||
| cd $(FRONTEND_DIR) && $(BUN) run verify:full | ||
|
|
||
| # Daemon-free stub runtime: Bun mock API (HTTP + SSE + /api/features) plus a | ||
| # preview server for the built SPA on http://127.0.0.1:2020. | ||
| frontend-stub: | ||
| cd $(FRONTEND_DIR) && $(BUN) run dev | ||
|
Comment on lines
+107
to
+108
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🎯 Functional Correctness | 🟠 Major | ⚡ Quick win Install workspace dependencies before starting the stub runtime. Make Proposed fix-frontend-stub:
+frontend-stub: frontend-install
cd $(FRONTEND_DIR) && $(BUN) run dev🤖 Prompt for AI Agents |
||
|
|
||
| install: | ||
| ./scripts/build-wasm-extensions.sh | ||
| $(CARGO) install --path . | ||
|
|
||
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: leynos/axinite
Length of output: 231
🏁 Script executed:
Repository: leynos/axinite
Length of output: 12221
Pin the workflow actions and drop checkout credentials. Replace
actions/checkout@v6,oven-sh/setup-bun@v2, andastral-sh/setup-uv@v5with commit SHAs, and setpersist-credentials: falseonactions/checkout; the checkout token should not remain available to later repository scripts.🧰 Tools
🪛 zizmor (1.26.1)
[warning] 30-31: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false
(artipacked)
[error] 31-31: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)
(unpinned-uses)
[error] 33-33: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)
(unpinned-uses)
[error] 39-39: unpinned action reference (unpinned-uses): action is not pinned to a hash (required by blanket policy)
(unpinned-uses)
🤖 Prompt for AI Agents
Source: Linters/SAST tools