Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
0c5bacb
feat(frontend): v1 scaffold, strict TypeScript and import boundary (U…
jaseemjaskp Oct 26, 2026
5c55a7c
fix(frontend): close v1 guardrail bypasses found in self-review (UN-4…
jaseemjaskp Oct 26, 2026
87c803c
feat(frontend): run v1 checks in CI and tighten what pages may import…
jaseemjaskp Oct 27, 2026
f86de0b
refactor(frontend): address SonarCloud findings on the v1 guardrails …
jaseemjaskp Oct 27, 2026
67be34b
refactor(frontend): split the contract-matrix builder to cut its comp…
jaseemjaskp Oct 27, 2026
81e15b1
fix(frontend): check every glob pattern and v0 -> v1 imports Biome ca…
jaseemjaskp Oct 27, 2026
7e66cc5
UN-4286 [FEAT] Add the v1 plugin manifest, slots and build check
athul-rs Oct 24, 2026
1f426f9
UN-4286 [FEAT] Pass VITE_DISTRIBUTION through the frontend Docker build
athul-rs Oct 24, 2026
7ae6de5
UN-4286 [FEAT] Keep overlaid v1 plugins out of OSS commits
athul-rs Oct 24, 2026
cbfd332
UN-4286 [FEAT] Build the plugin registry in plugins/ and hand Slot to…
athul-rs Oct 27, 2026
1babd39
UN-4286 [FIX] Let v1 tests typecheck until the scaffold settles the c…
athul-rs Oct 27, 2026
861c7b6
UN-4286 [FIX] Retry a slot's import after a failed load
athul-rs Oct 28, 2026
6c31314
UN-4286 [FIX] Reject unknown slots and distributions and load manifes…
athul-rs Oct 28, 2026
927f4e0
UN-4286 [FIX] Load esbuild only under Node, so the cloud overlay runs…
athul-rs Oct 28, 2026
664d1cf
fix(frontend): typecheck v1 tests that import vitest; skip cloud plug…
jaseemjaskp Oct 29, 2026
8ede7ec
UN-4286 [FIX] Write the plugin matrix to a file given without --dir, …
athul-rs Oct 29, 2026
787bf8b
fix(frontend): close v1 guardrail gaps from team review (UN-4270)
jaseemjaskp Oct 29, 2026
b9bed0d
feat(frontend): add an assets/ folder to the v1 taxonomy (UN-4270)
jaseemjaskp Oct 29, 2026
3889a34
fix(frontend): find v1 imports only in executable code, not in string…
jaseemjaskp Oct 29, 2026
feb8c5f
fix(frontend): don't read JSX apostrophes as strings in the v1 scanne…
jaseemjaskp Oct 29, 2026
5312a6b
Merge remote-tracking branch 'origin/UN-4270-v1-scaffold' into UN-428…
athul-rs Oct 29, 2026
6b2df4d
UN-4286 [FIX] Give the missing-import test a template the v1 guard ca…
athul-rs Oct 29, 2026
7af9264
fix(frontend): read v1 imports from a Babel AST, not a hand-written t…
jaseemjaskp Oct 30, 2026
daa1a18
fix(frontend): read v1 import specifiers through TypeScript assertion…
jaseemjaskp Oct 30, 2026
73b9ffa
fix(frontend): close v1 boundary gaps from the daa1a182d review (UN-4…
jaseemjaskp Nov 2, 2026
7fdcb02
fix(frontend): read CSS image-set() and escaped url()s; allowlist v1 …
jaseemjaskp Nov 2, 2026
ee517cb
chore: git-ignore cloud v1 plugins copied into src/v1/plugins/ (UN-4270)
jaseemjaskp Nov 2, 2026
6fe2322
UN-4286 [MISC] Merge the final v1 scaffold head (#2380, ee517cb4e)
athul-rs Nov 3, 2026
9cdbf7b
UN-4286 [MISC] Merge main after the v1 scaffold landed (#2380)
athul-rs Nov 3, 2026
fc7a131
UN-4286 [MISC] Merge main into the plugin manifest branch
athul-rs Nov 9, 2026
000ae0d
UN-4286 [MISC] Merge main (v1 icons lint) into the plugin manifest br…
athul-rs Nov 9, 2026
365c924
UN-4286 [FIX] Test the v1 guard in both plugin-import resolvers directly
athul-rs Nov 10, 2026
c015c25
Merge remote-tracking branch 'origin/main' into UN-4286-plugin-manifest
athul-rs Nov 10, 2026
8b94e7c
Merge origin/main into UN-4286-plugin-manifest
athul-rs Nov 11, 2026
b3a667a
UN-4286 [FIX] Address review: check plugin routes against OSS pages, …
athul-rs Nov 11, 2026
5cc28d7
UN-4286 [FEAT] Match plugin routes by overlap and report every render…
athul-rs Nov 12, 2026
98623d6
UN-4286 [FEAT] Use a fixed overlap rule in the registry test
athul-rs Nov 12, 2026
7367906
UN-4286 [FIX] Address review: check manifest shape and route patterns…
athul-rs Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -641,10 +641,10 @@ workers/pluggable_worker/*
# FE Plugins
frontend/src/plugins/*
frontend/public/llm-whisperer/
# v1 cloud plugins are copied in at build time; only the placeholder manifest
# is public.
# v1 plugins come from the cloud overlay; only the placeholder and the loader are OSS.
frontend/src/v1/plugins/*
!frontend/src/v1/plugins/manifest.ts
!frontend/src/v1/plugins/.gitkeep
!frontend/src/v1/plugins/index.ts


# TODO: Ensure its made generic to abstract subfolder and file names
Expand Down
13 changes: 9 additions & 4 deletions docker/dockerfiles/frontend.Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ COPY ${BUILD_CONTEXT_PATH}/ /app/
COPY ${BUILD_CONTEXT_PATH}/generate-runtime-config.sh /app/generate-runtime-config.sh
RUN chmod +x /app/generate-runtime-config.sh

# VITE_DISTRIBUTION: as in the builder stage below. The dev server reads it
# from the environment when it starts, so the dev-live image of a cloud or
# on-prem overlay needs it here too.
ARG VITE_DISTRIBUTION=""
ENV VITE_DISTRIBUTION=${VITE_DISTRIBUTION}

# Set dev server to run on port 80 to match production nginx
ENV PORT=80
EXPOSE 80
Expand Down Expand Up @@ -52,10 +58,9 @@ COPY ${BUILD_CONTEXT_PATH}/ .
# VITE_V1_DEV_ROUTES: "true" only for the E2E image (ci-test.yaml); registers
# the v1 demo pages that prove the version switch and honours the v1 preview
# override. Release builds leave it empty.
# VITE_DISTRIBUTION: oss (default when empty), cloud or onprem; the
# v1 route registry ignores pages the distribution lacks. The same name as
# P0-T07's plugin manifest (UN-4286). The cloud and on-prem builds do not set
# it yet, so every image builds as oss until P0-T07 wires them.
# VITE_DISTRIBUTION: oss (default when empty), cloud or onprem. It picks the
# v1 plugins the build offers (P0-T07) and the pages the v1 route registry
# keeps; the cloud workflows set it. See frontend/src/v1/README.md.
ARG VITE_V1_DEV_ROUTES=""
ARG VITE_DISTRIBUTION=""

Expand Down
1 change: 1 addition & 0 deletions frontend/bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@
"tokens:v1": "bun scripts/build-v1-tokens.mjs",
"typecheck:v1": "node scripts/check-v1.mjs --files && tsc -p src/v1/tsconfig.json",
"lint:v1": "biome lint --error-on-warnings src/v1/ && node scripts/check-v1.mjs --code && node scripts/check-v1-styles.mjs && node scripts/check-v1-icons.mjs",
"test:v1": "vitest run --config vitest.v1.config.mts --coverage && vitest run --config vitest.v1-plugins.config.mts --coverage && node --test test-fixtures/v1-boundary/boundary.fixtures.mjs test-fixtures/v1-harness/harness.fixtures.mjs test-fixtures/v1-unit-gate/unit-gate.fixtures.mjs",
"test:v1": "vitest run --config vitest.v1.config.mts --coverage && vitest run --config vitest.v1-plugins.config.mts --coverage && node --test test-fixtures/v1-boundary/boundary.fixtures.mjs test-fixtures/v1-harness/harness.fixtures.mjs test-fixtures/v1-unit-gate/unit-gate.fixtures.mjs scripts/v1-plugins.fixtures.mjs",
"seam:v1": "node scripts/check-v1-seam.mjs --base origin/main",
"separation:v1": "node scripts/check-v1-separation.mjs",
"bundle:v1": "node scripts/check-v1-bundle.mjs"
Expand Down Expand Up @@ -120,6 +120,7 @@
"autoprefixer": "^10.5.4",
"axe-core": "4.14.0",
"baseline-browser-mapping": "^2.9.19",
"esbuild": "^0.27.0",
"happy-dom": "^20.10.2",
"msw": "2.15.0",
"postcss": "^8.5.23",
Expand Down
Loading
Loading