Release v7.0.1 - #111
Merged
Merged
Conversation
Merge main back into develop
…xt-responses Add UTF-8 charset to text response content types
Remove the "All Applications" from the add modals
This was
linked to
issues
Jun 23, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
Releases v7.0.1 with a CMS 13 bugfix update and adds a Playwright-based UI test suite that exercises robots/llms routing, environment-level robots overrides, and Opal tool endpoints against the sample site.
Changes:
- Bump package version to 7.0.1 and adjust release notes.
- Fix/standardize plain-text responses to include
charset=utf-8, and add/align AppId validation in save flows (robots + llms) with updated unit tests. - Add a full Playwright + TypeScript UI test harness (config, global setup, page objects, and specs) for end-to-end coverage of routing/precedence and Opal behaviors.
Reviewed changes
Copilot reviewed 48 out of 55 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| ui-tests/tsconfig.json | Adds TS compiler configuration for the Playwright UI test suite. |
| ui-tests/tests/robots-routing.spec.ts | E2E coverage for robots.txt host-based routing across frontend/editor domains. |
| ui-tests/tests/robots-priority.spec.ts | E2E coverage for robots.txt host-specific vs site-wide default precedence. |
| ui-tests/tests/opal.spec.ts | E2E coverage for Opal discovery + authenticated robots GET tool. |
| ui-tests/tests/opal-save.spec.ts | E2E coverage for Opal robots save tool (write vs read, validation cases). |
| ui-tests/tests/opal-llms.spec.ts | E2E coverage for authenticated llms GET Opal tool. |
| ui-tests/tests/opal-llms-save.spec.ts | E2E coverage for llms Opal save tool (write vs read, validation cases). |
| ui-tests/tests/llms-routing.spec.ts | E2E coverage for llms.txt routing and 404 behavior on editor domains. |
| ui-tests/tests/llms-priority.spec.ts | E2E coverage for llms.txt host-specific vs site-wide default precedence. |
| ui-tests/tests/environment-robots.spec.ts | E2E coverage for environment-level robots meta + header overrides. |
| ui-tests/tests/content-type.spec.ts | E2E assertion that robots.txt and llms.txt are served as text/plain; charset=utf-8. |
| ui-tests/tests/admin-smoke.spec.ts | Basic SPA smoke test to ensure admin UI loads and shows sample sites. |
| ui-tests/src/textFile.ts | Adds cache-bypassing HTTP fetch helper for validating plain-text endpoints and headers. |
| ui-tests/src/RobotsAdminPage.ts | Playwright page object for editing/clearing/deleting robots configs via admin UI. |
| ui-tests/src/OpalTokenAdminPage.ts | Playwright page object for creating/deleting API tokens for Opal endpoint tests. |
| ui-tests/src/opal.ts | Low-level Opal request helpers and response parsing for the UI tests. |
| ui-tests/src/LlmsAdminPage.ts | Playwright page object for editing/clearing/deleting llms configs via admin UI. |
| ui-tests/src/EnvironmentAdminPage.ts | Playwright page object for toggling environment robots override switches. |
| ui-tests/src/domains.ts | Centralizes sample hostnames/URLs and marker content used by the UI tests. |
| ui-tests/README.md | Documents how to set up and run the new UI test suite. |
| ui-tests/playwright.config.ts | Playwright config to auto-start sample site + reuse authenticated storage state. |
| ui-tests/package.json | Adds Playwright/TS dependencies and scripts for the UI tests. |
| ui-tests/package-lock.json | Locks Playwright/TS dependency tree for UI tests. |
| ui-tests/global-setup.ts | Global login step that persists authenticated session to .auth/state.json. |
| ui-tests/.gitignore | Ignores UI test artifacts (node_modules, reports, .auth, .env). |
| ui-tests/.env.example | Template env vars for admin credentials and target environment name. |
| src/Stott.Optimizely.RobotsHandler/Stott.Optimizely.RobotsHandler.csproj | Version bump to 7.0.1 + updated release notes/copyright year. |
| src/Stott.Optimizely.RobotsHandler/Static/index-DbtI8-Zp.js | Updates built admin SPA bundle to reflect UI changes. |
| src/Stott.Optimizely.RobotsHandler/Robots/RobotsTextController.cs | Serve robots.txt as text/plain; charset=utf-8. |
| src/Stott.Optimizely.RobotsHandler/Robots/RobotsContentService.cs | Correct AppId validation to string emptiness checks. |
| src/Stott.Optimizely.RobotsHandler/Robots/RobotsApiController.cs | Adds explicit AppId bad-request validation before conflict/save checks. |
| src/Stott.Optimizely.RobotsHandler/Llms/LlmsTextController.cs | Serve llms.txt as text/plain; charset=utf-8. |
| src/Stott.Optimizely.RobotsHandler/Llms/LlmsApiController.cs | Adds explicit AppId bad-request validation before conflict/save checks. |
| src/Stott.Optimizely.RobotsHandler/Llms/DefaultLlmsContentService.cs | Correct AppId validation to string emptiness checks. |
| src/Stott.Optimizely.RobotsHandler/Applications/ApplicationDefinitionController.cs | Removes synthetic “All Applications” entry from applications API result. |
| src/Stott.Optimizely.RobotsHandler.Ui/src/NavigationContainer.jsx | Renames container class to match new scrolling/layout styles. |
| src/Stott.Optimizely.RobotsHandler.Ui/src/LlmsConfigurationList.jsx | Makes container fluid for improved layout/scrolling. |
| src/Stott.Optimizely.RobotsHandler.Ui/src/index.css | Adds layout rules for new container class and root element spacing. |
| src/Stott.Optimizely.RobotsHandler.Ui/src/ConfigurationList.jsx | Makes container fluid for improved layout/scrolling. |
| src/Stott.Optimizely.RobotsHandler.Ui/src/AddSiteRobots.jsx | Increases modal size to xl for editing larger content. |
| src/Stott.Optimizely.RobotsHandler.Ui/src/AddSiteLlms.jsx | Fixes indentation/formatting in JSX markup block. |
| src/Stott.Optimizely.RobotsHandler.Ui/package.json | Pins UI build dependencies and adds Volta node version. |
| src/Stott.Optimizely.RobotsHandler.Test/Robots/RobotsTextControllerTests.cs | Updates expected robots.txt Content-Type to include charset. |
| src/Stott.Optimizely.RobotsHandler.Test/Robots/RobotsApiControllerTests.cs | Updates tests for required AppId and adds missing-AppId coverage. |
| src/Stott.Optimizely.RobotsHandler.Test/Llms/LlmsTextControllerTests.cs | Updates expected llms.txt Content-Type to include charset. |
| src/Stott.Optimizely.RobotsHandler.Test/Llms/LlmsApiControllerTests.cs | Updates tests for required AppId and adds missing-AppId coverage. |
| Sample/OptimizelyTwelveTest/Startup.cs | Enables Stott.Security middleware in sample app (used by UI suite). |
| Sample/OptimizelyTwelveTest/OptimizelyTwelveTest.csproj | Updates Optimizely packages + adds Stott.Security.Optimizely dependency. |
| Sample/OptimizelyTwelveTest/appsettings.Development.json | Removes development appsettings file (and ignores it going forward). |
| .gitignore | Adds ignore rule for appsettings.Development.json. |
| .claude/settings.json | Adds Claude tool permission settings (repo automation config). |
Files not reviewed (2)
- src/Stott.Optimizely.RobotsHandler.Ui/package-lock.json: Generated file
- ui-tests/package-lock.json: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Closes 106, 107, 109