Fix testenv runtime links#234
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (24)
💤 Files with no reviewable changes (1)
✅ Files skipped from review due to trivial changes (2)
🚧 Files skipped from review as they are similar to previous changes (3)
📝 WalkthroughWalkthroughIntroduces a ChangesSite-Config URL System
Domain Keyword Argument Validation
Sequence DiagramsequenceDiagram
participant HTMLPage as HTML Page
participant ViteConfig as Vite Config
participant SiteConfigModule as Site Config Module
participant PlaceholderMap as Placeholder Map
participant SiteConfig as Site Config Factory
ViteConfig->>SiteConfigModule: dynamic import (overridable path)
SiteConfigModule-->>ViteConfig: siteConfig instance
ViteConfig->>PlaceholderMap: createSiteLinkPlaceholderMap(siteConfig)
PlaceholderMap-->>ViteConfig: %ANYWAYDATA_*% → href map
ViteConfig->>ViteConfig: register transformIndexHtml plugin
HTMLPage->>ViteConfig: build request with %ANYWAYDATA_*% placeholders
ViteConfig->>PlaceholderMap: transformStandaloneHtmlWithSiteConfig(html, siteConfig)
PlaceholderMap-->>ViteConfig: resolved HTML with final hrefs
ViteConfig-->>HTMLPage: output with injected URLs
🎯 4 (Complex) | ⏱️ ~75 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 ESLint
packages/core-ui/js/site/site-config-core.jsOops! Something went wrong! :( ESLint: 10.4.1 A config object is using the "root" key, which is not supported in flat config system. Flat configs always act as if they are the root config file, so this key can be safely removed. packages/core-ui/src/tests/grid/generation/test-data-generation-service.test.jsOops! Something went wrong! :( ESLint: 10.4.1 A config object is using the "root" key, which is not supported in flat config system. Flat configs always act as if they are the root config file, so this key can be safely removed. packages/core-ui/src/tests/shared/schema-row-validation.test.jsOops! Something went wrong! :( ESLint: 10.4.1 A config object is using the "root" key, which is not supported in flat config system. Flat configs always act as if they are the root config file, so this key can be safely removed.
🔧 ast-grep (0.44.0)packages/core-ui/src/tests/grid/generation/test-data-generation-service.test.jsThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
packages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.js (1)
27-33:⚠️ Potential issue | 🟠 Major | ⚡ Quick winHandle
/docsroot URLs in owned-path normalization.
normaliseOwnedSitePathrewrites/docs/...but not/docs(anddocs). That makes thesitePath === '/docs'branch inresolveRuntimeDocsUrleffectively unreachable for relative/root docs links, so those links stay pointed at production instead of the runtime/testenv host.Suggested fix
- if (value.startsWith('/docs/')) { + if (value === '/docs' || value.startsWith('/docs/')) { return value; } - if (value.startsWith('docs/')) { + if (value === 'docs' || value.startsWith('docs/')) { return `/${value}`; } ... if ( parsed.pathname === '/' || + parsed.pathname === '/docs' || parsed.pathname.startsWith('/docs/') || parsed.pathname === '/blog' || parsed.pathname.startsWith('/blog/') ) {Also applies to: 48-53, 98-100
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@packages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.js` around lines 27 - 33, The `normaliseOwnedSitePath` function in the diff handles paths starting with `/docs/` and `docs/` but does not handle the root paths `/docs` and `docs` themselves. Add logic to check if the value equals `/docs` and return it as-is, and if the value equals `docs` return `/docs`. This will ensure that root documentation links are properly normalized and the `sitePath === '/docs'` branch in `resolveRuntimeDocsUrl` becomes reachable for relative/root docs links, allowing them to point to the runtime/testenv host instead of production.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@apps/web/src/tests/jest/testenv-root-page-links.test.js`:
- Around line 4-16: The test function `rewrites docs and blog links to the
nested site path` currently only validates docs subpaths like `docs/intro` and
the blog path, but it is missing test coverage for root docs paths. Add test
cases in the html string within this test function to include anchor elements
that reference `/docs` (the absolute docs root path) and other root
documentation paths, then add corresponding expect statements to verify that
these root paths are properly rewritten to `./site/docs` format. This will
ensure that root docs path leakage is caught by the tests.
In `@packages/core-ui/src/tests/shared/runtime-docs-url.test.js`:
- Around line 23-35: The test suite for resolveRuntimeDocsUrl only validates
rewrites for paths like /docs/test-data/domain/number but lacks a regression
case for the root /docs path itself. Add a new test case to this suite that
calls resolveRuntimeDocsUrl with just /docs as the input parameter (using the
same windowObj structure with github pages configuration) and verify that it
correctly rewrites to include the nested site path in the output URL, matching
the pattern demonstrated in the existing test.
In `@scripts/create-testenv.mjs`:
- Around line 211-227: The resolveTestEnvRootHref function handles docs subpaths
but misses the root forms of documentation URLs (https://anywaydata.com/docs,
/docs, and docs without trailing slashes), allowing them to bypass rewriting and
remain production-facing. Add additional condition checks before the existing
logic to handle these root URL forms specifically, ensuring that
https://anywaydata.com/docs returns ./site/docs, /docs returns ./site/docs, and
docs returns ./site/docs. Insert these root URL checks early in the function to
intercept these cases before they fall through to other conditions.
---
Outside diff comments:
In
`@packages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.js`:
- Around line 27-33: The `normaliseOwnedSitePath` function in the diff handles
paths starting with `/docs/` and `docs/` but does not handle the root paths
`/docs` and `docs` themselves. Add logic to check if the value equals `/docs`
and return it as-is, and if the value equals `docs` return `/docs`. This will
ensure that root documentation links are properly normalized and the `sitePath
=== '/docs'` branch in `resolveRuntimeDocsUrl` becomes reachable for
relative/root docs links, allowing them to point to the runtime/testenv host
instead of production.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 5a438cd0-ee47-4fe2-96a9-5e4f009bcf5c
📒 Files selected for processing (6)
apps/web/src/tests/jest/testenv-root-page-links.test.jspackages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.jspackages/core-ui/js/help/help-tooltips.jspackages/core-ui/src/tests/shared/runtime-docs-url.test.jspackages/core-ui/src/tests/utils/help-tooltips.test.jsscripts/create-testenv.mjs
| test('rewrites docs and blog links to the nested site path', () => { | ||
| const html = ` | ||
| <div class="header"> | ||
| <a href="docs/intro">Docs</a> | ||
| <a href="/blog">Blog</a> | ||
| </div> | ||
| `; | ||
|
|
||
| const rewritten = rewriteTestEnvRootPageLinks(html); | ||
|
|
||
| expect(rewritten).toContain('href="./site/docs/intro"'); | ||
| expect(rewritten).toContain('href="./site/blog"'); | ||
| }); |
There was a problem hiding this comment.
Add assertions for docs-root rewrites (/docs and absolute docs root).
Current tests validate docs subpaths only; they won’t catch root docs leakage.
Also applies to: 18-26
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@apps/web/src/tests/jest/testenv-root-page-links.test.js` around lines 4 - 16,
The test function `rewrites docs and blog links to the nested site path`
currently only validates docs subpaths like `docs/intro` and the blog path, but
it is missing test coverage for root docs paths. Add test cases in the html
string within this test function to include anchor elements that reference
`/docs` (the absolute docs root path) and other root documentation paths, then
add corresponding expect statements to verify that these root paths are properly
rewritten to `./site/docs` format. This will ensure that root docs path leakage
is caught by the tests.
| test('rewrites docs links into the nested site path for github pages root pages', () => { | ||
| const resolved = resolveRuntimeDocsUrl('/docs/test-data/domain/number', { | ||
| windowObj: { | ||
| location: { | ||
| origin: 'https://eviltester.github.io', | ||
| hostname: 'eviltester.github.io', | ||
| pathname: '/grid-table-editor/generator.html', | ||
| }, | ||
| }, | ||
| }); | ||
|
|
||
| expect(resolved).toBe('https://eviltester.github.io/grid-table-editor/site/docs/test-data/domain/number'); | ||
| }); |
There was a problem hiding this comment.
Add a regression case for /docs root rewriting.
The suite validates /docs/... but not /docs, so it won’t catch the root-path miss in the resolver.
Suggested test addition
+ test('rewrites docs root links into the nested site path for github pages root pages', () => {
+ const resolved = resolveRuntimeDocsUrl('/docs', {
+ windowObj: {
+ location: {
+ origin: 'https://eviltester.github.io',
+ hostname: 'eviltester.github.io',
+ pathname: '/grid-table-editor/generator.html',
+ },
+ },
+ });
+
+ expect(resolved).toBe('https://eviltester.github.io/grid-table-editor/site/docs');
+ });📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| test('rewrites docs links into the nested site path for github pages root pages', () => { | |
| const resolved = resolveRuntimeDocsUrl('/docs/test-data/domain/number', { | |
| windowObj: { | |
| location: { | |
| origin: 'https://eviltester.github.io', | |
| hostname: 'eviltester.github.io', | |
| pathname: '/grid-table-editor/generator.html', | |
| }, | |
| }, | |
| }); | |
| expect(resolved).toBe('https://eviltester.github.io/grid-table-editor/site/docs/test-data/domain/number'); | |
| }); | |
| test('rewrites docs links into the nested site path for github pages root pages', () => { | |
| const resolved = resolveRuntimeDocsUrl('/docs/test-data/domain/number', { | |
| windowObj: { | |
| location: { | |
| origin: 'https://eviltester.github.io', | |
| hostname: 'eviltester.github.io', | |
| pathname: '/grid-table-editor/generator.html', | |
| }, | |
| }, | |
| }); | |
| expect(resolved).toBe('https://eviltester.github.io/grid-table-editor/site/docs/test-data/domain/number'); | |
| }); | |
| test('rewrites docs root links into the nested site path for github pages root pages', () => { | |
| const resolved = resolveRuntimeDocsUrl('/docs', { | |
| windowObj: { | |
| location: { | |
| origin: 'https://eviltester.github.io', | |
| hostname: 'eviltester.github.io', | |
| pathname: '/grid-table-editor/generator.html', | |
| }, | |
| }, | |
| }); | |
| expect(resolved).toBe('https://eviltester.github.io/grid-table-editor/site/docs'); | |
| }); |
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@packages/core-ui/src/tests/shared/runtime-docs-url.test.js` around lines 23 -
35, The test suite for resolveRuntimeDocsUrl only validates rewrites for paths
like /docs/test-data/domain/number but lacks a regression case for the root
/docs path itself. Add a new test case to this suite that calls
resolveRuntimeDocsUrl with just /docs as the input parameter (using the same
windowObj structure with github pages configuration) and verify that it
correctly rewrites to include the nested site path in the output URL, matching
the pattern demonstrated in the existing test.
There was a problem hiding this comment.
Pull request overview
This PR aims to make all docs/blog/runtime links shown in GitHub Pages “testenv” surfaces resolve into the nested site/ path (instead of pointing at anywaydata.com), and adds regression tests to prevent link drift.
Changes:
- Add a runtime “site URL” resolver + HTML snippet link rewriter, and use it when rendering tooltip content.
- Rewrite root-page HTML links (app/generator/etc) during
create-testenvso their docs/blog links point to./site/.... - Add focused Jest tests covering the resolver, tooltip rewriting, and testenv root-page link rewriting.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| scripts/create-testenv.mjs | Adds href-rewriting utilities and applies them to built root pages so docs/blog/home links point to ./site/.... |
| packages/core-ui/js/help/help-tooltips.js | Rewrites tooltip HTML through the shared runtime site link resolver before rendering. |
| packages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.js | Expands runtime URL logic to handle site + docs/blog and provides HTML rewriting for <a href>. |
| packages/core-ui/src/tests/utils/help-tooltips.test.js | Adds a regression test asserting tooltip HTML rewrites docs/blog links in GitHub Pages environments. |
| packages/core-ui/src/tests/shared/runtime-docs-url.test.js | Adds unit tests for runtime site/docs resolution + HTML snippet rewriting. |
| apps/web/src/tests/jest/testenv-root-page-links.test.js | Adds tests for the create-testenv root page HTML link rewriting behavior. |
| root.innerHTML = | ||
| '<span class="helpicon" data-help-role="help-icon" data-help-text=\'<p><a href="/docs/intro">Docs</a> <a href="blog">Blog</a></p>\'></span>'; |
| @@ -22,10 +32,26 @@ function toDocsPath(url) { | |||
| return `/${value}`; | |||
| } | |||
| if ( | ||
| parsed.pathname === '/' || | ||
| parsed.pathname.startsWith('/docs/') || | ||
| parsed.pathname === '/blog' || | ||
| parsed.pathname.startsWith('/blog/') | ||
| ) { | ||
| return `${parsed.pathname}${parsed.search}${parsed.hash}`; | ||
| } |
Greptile SummaryThis PR replaces runtime-resolved docs/blog links in the testenv with build-time URL resolution via a new centralized
Confidence Score: 5/5Safe to merge — all link resolution is now build-time and the testenv override is written and cleaned up correctly. The link-rewriting logic is replaced by a build-time abstraction with thorough test coverage for every edge case (exact root, sub-path, cross-config rewriting). The testenv override file is generated before Vite starts and cleaned up in a finally block. The new argsValidator for domain keywords uses numeric/lexicographic comparison that is correct for both number and ISO-date arg types. No regressions were introduced in existing call sites. No files require special attention. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[create-testenv.mjs] -->|writes| B[_site-config.override.mjs]
B -->|ANYWAYDATA_SITE_CONFIG_OVERRIDE_PATH env| C[vite.config.mjs async factory]
D[site-config.production.js] -->|default, no env var| C
C -->|dynamic import| E[siteConfig object]
E -->|Vite alias @anywaydata/site-config| F[inline-help-content.js
buildDocsUrl at module load]
E -->|Vite alias @anywaydata/site-config| G[help-model-builder.js
resolveOwnedSiteUrl]
E -->|transformIndexHtml plugin| H[HTML placeholder replacement
%ANYWAYDATA_*_HREF%]
H --> I[app.html / generator.html
combinatorial.html / webmcp.html
index.html]
A -->|finally block cleanup| J[rm _site-config.override.mjs]
subgraph site-config-core.js
K[createSiteConfig]
L[resolveOwnedSiteUrl]
M[serializeSiteConfigModuleSource]
end
D --> K
B --> M
%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%%
flowchart TD
A[create-testenv.mjs] -->|writes| B[_site-config.override.mjs]
B -->|ANYWAYDATA_SITE_CONFIG_OVERRIDE_PATH env| C[vite.config.mjs async factory]
D[site-config.production.js] -->|default, no env var| C
C -->|dynamic import| E[siteConfig object]
E -->|Vite alias @anywaydata/site-config| F[inline-help-content.js
buildDocsUrl at module load]
E -->|Vite alias @anywaydata/site-config| G[help-model-builder.js
resolveOwnedSiteUrl]
E -->|transformIndexHtml plugin| H[HTML placeholder replacement
%ANYWAYDATA_*_HREF%]
H --> I[app.html / generator.html
combinatorial.html / webmcp.html
index.html]
A -->|finally block cleanup| J[rm _site-config.override.mjs]
subgraph site-config-core.js
K[createSiteConfig]
L[resolveOwnedSiteUrl]
M[serializeSiteConfigModuleSource]
end
D --> K
B --> M
Reviews (5): Last reviewed commit: "Fix site config root links and cleanup" | Re-trigger Greptile |
| const sitePath = normaliseOwnedSitePath(value); | ||
| if (!sitePath || (!sitePath.startsWith('/docs/') && sitePath !== '/docs')) { | ||
| return value; | ||
| } |
There was a problem hiding this comment.
sitePath !== '/docs' is dead code. normaliseOwnedSitePath never returns the exact string '/docs': the bare path '/docs' doesn't match the startsWith('/docs/') guard (needs trailing slash), 'docs' without a slash fails the startsWith('docs/') check and then throws as an invalid URL, and https://anywaydata.com/docs produces parsed.pathname === '/docs' which isn't in the URL-branch allow-list. The branch is permanently false, so the condition can be simplified.
| const sitePath = normaliseOwnedSitePath(value); | |
| if (!sitePath || (!sitePath.startsWith('/docs/') && sitePath !== '/docs')) { | |
| return value; | |
| } | |
| const sitePath = normaliseOwnedSitePath(value); | |
| if (!sitePath || !sitePath.startsWith('/docs/')) { | |
| return value; | |
| } |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
scripts/create-testenv.mjs (1)
601-674:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winEnsure temp artifacts are cleaned up on failure paths.
tempSiteConfigOverridePath(andtempWebDir) are cleaned only on the success path. If a command fails between Line 608 and Line 669, these files can remain and pollute later local runs.Suggested fix
async function main() { await clearDirectoryContents(outputDir); const buildMetadata = resolveBuildMetadata(); const fullSiteBaseUrl = resolveFullSiteBaseUrl(); await writeGeneratedTestEnvSiteConfigOverride(tempSiteConfigOverridePath); - runCommand( - 'pnpm', - [ - 'exec', - 'vite', - 'build', - '--config', - path.join(repoRoot, 'apps', 'web', 'vite.config.mjs'), - '--base', - './', - '--outDir', - tempWebDir, - ], - { - env: { - ANYWAYDATA_SITE_CONFIG_OVERRIDE_PATH: tempSiteConfigOverridePath, - }, - } - ); + try { + runCommand( + 'pnpm', + [ + 'exec', + 'vite', + 'build', + '--config', + path.join(repoRoot, 'apps', 'web', 'vite.config.mjs'), + '--base', + './', + '--outDir', + tempWebDir, + ], + { + env: { + ANYWAYDATA_SITE_CONFIG_OVERRIDE_PATH: tempSiteConfigOverridePath, + }, + } + ); - await copyWebBuildIntoDirectory(tempWebDir, outputDir); - ... - await rm(tempWebDir, { - recursive: true, - force: true, - }); - await rm(tempSiteConfigOverridePath, { force: true }); + await copyWebBuildIntoDirectory(tempWebDir, outputDir); + ... + } finally { + await rm(tempWebDir, { recursive: true, force: true }); + await rm(tempSiteConfigOverridePath, { force: true }); + }🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@scripts/create-testenv.mjs` around lines 601 - 674, The main function creates temporary artifacts (tempSiteConfigOverridePath and tempWebDir) but only cleans them up at the end of the success path. If any runCommand call fails between creation and cleanup, these files persist and pollute subsequent runs. Wrap the entire main function body in a try-finally block (similar to the docusaurus build section that already uses try-finally) to ensure the cleanup code that removes tempSiteConfigOverridePath and tempWebDir at the end is guaranteed to execute regardless of command failures or exceptions.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@packages/core-ui/js/site/site-config-core.js`:
- Around line 41-49: The normalizeDocsPath function only removes the `docs/`
prefix but does not handle the exact `docs` path without a trailing slash, which
causes duplicate paths like `<base>/docs/docs` when processing exact URLs.
Modify the return statement in normalizeDocsPath to check if the trimmed path is
exactly equal to `docs` or starts with `docs/`, and remove it in both cases.
Apply the same fix to the corresponding blog path normalization function located
in the lines 51-59 range, ensuring both functions handle exact path matches
(`docs` and `blog`) in addition to prefixed matches (`docs/` and `blog/`).
---
Outside diff comments:
In `@scripts/create-testenv.mjs`:
- Around line 601-674: The main function creates temporary artifacts
(tempSiteConfigOverridePath and tempWebDir) but only cleans them up at the end
of the success path. If any runCommand call fails between creation and cleanup,
these files persist and pollute subsequent runs. Wrap the entire main function
body in a try-finally block (similar to the docusaurus build section that
already uses try-finally) to ensure the cleanup code that removes
tempSiteConfigOverridePath and tempWebDir at the end is guaranteed to execute
regardless of command failures or exceptions.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 1622d0bd-39ac-4bbe-96eb-6a3ce4d3815e
📒 Files selected for processing (28)
.storybook/main.jsapps/web/app.htmlapps/web/combinatorial.htmlapps/web/generator.htmlapps/web/index.htmlapps/web/site-config-html.mjsapps/web/src/tests/jest/site-config-html.test.jsapps/web/src/tests/jest/testenv-site-config-override.test.jsapps/web/vite.config.mjsapps/web/webmcp.htmljest.config.cjspackages/core-ui/js/gui_components/app/test-data-population-toolbar/test-data-population-toolbar-view.jspackages/core-ui/js/gui_components/generator/constants.jspackages/core-ui/js/gui_components/generator/controls/generator-controls-view.jspackages/core-ui/js/gui_components/shared/domain-command-help-metadata.jspackages/core-ui/js/gui_components/shared/test-data/help/help-model-builder.jspackages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.jspackages/core-ui/js/gui_components/shared/test-data/ui/method-picker-modal.jspackages/core-ui/js/gui_components/shared/test-data/ui/params-editor-modal.jspackages/core-ui/js/help/help-tooltips.jspackages/core-ui/js/help/inline-help-content.jspackages/core-ui/js/site/site-config-core.jspackages/core-ui/js/site/site-config.production.jspackages/core-ui/src/tests/shared/help-model-builder.test.jspackages/core-ui/src/tests/shared/site-config.test.jspackages/core-ui/src/tests/utils/help-tooltips.test.jspackages/core-ui/src/tests/utils/method-picker-modal.test.jsscripts/create-testenv.mjs
💤 Files with no reviewable changes (1)
- packages/core-ui/js/gui_components/shared/test-data/help/runtime-docs-url.js
✅ Files skipped from review due to trivial changes (11)
- apps/web/src/tests/jest/site-config-html.test.js
- packages/core-ui/js/gui_components/generator/constants.js
- apps/web/index.html
- packages/core-ui/js/gui_components/generator/controls/generator-controls-view.js
- apps/web/generator.html
- packages/core-ui/js/site/site-config.production.js
- apps/web/site-config-html.mjs
- packages/core-ui/src/tests/shared/site-config.test.js
- jest.config.cjs
- .storybook/main.js
- apps/web/src/tests/jest/testenv-site-config-override.test.js
|
closes #233 |
Summary
Why
Issue #233 called out that testenv pages were mixing live-site and nested-site links. That created inconsistent docs destinations for users and for AI tooling reading the environment.
Validation
Summary by CodeRabbit
Release Notes
New Features
Refactor
aria-expanded.Bug Fixes
min/maxordering across relevant keyword types.Tests