# Modifications to the Unfolded Circle Web Configurator

## Build identification

- **Modified build:** `2.1.0-unfoldedtools.1`
- **Upstream release:** Unfolded Circle Web Configurator `2.1.0`
- **Modification date:** 25 July 2026
- **Modified by:** Justin Jäger / Unfolded.Tools
- **Project:** Unfolded.Tools Remote Simulator
- **License for the modified Web Configurator:** GNU General Public License version 3.0 only

This document identifies the changes made to the Web Configurator included with the Unfolded.Tools Remote Simulator. Unfolded.Tools is an independent community project and is not operated by, endorsed by or affiliated with Unfolded Circle ApS.

## Source-level changes

The published readable source contains the upstream application source recovered from the official `2.1.0` production source maps together with the Unfolded.Tools modifications. The main modified integration points are:

- `src/simulator/config.ts`: defines the immutable public simulator capability model and blocked settings routes.
- `src/api/index.ts`: uses the session-prefixed REST and SSE base URL.
- `src/api/local.ts`: scopes browser storage to the simulator session token.
- `src/mixins/router.ts`: adds the native `#/remote-simulator` route and simulator route guards.
- `src/mixins/menuItems.ts`: adds the Remote navigation item and marks unavailable settings.
- `src/views/settings/SettingsView.vue`: prevents disabled settings from navigating or issuing API calls.
- `src/views/integrations/DevicesIntegrations.vue`: limits the public simulator to its configured demo integration.
- `src/components/integration/IntegrationList.vue`: presents the configured simulator instance only.
- `src/components/integration/IntegrationListItem.vue`: removes destructive integration controls from public sessions.
- `src/components/settings/About.vue`: identifies the community build and appends license, source and modification entries to the existing right-hand About data column.
- `src/mixins/icon.ts`: replaces Font Awesome font detection with Material Symbols Sharp compatibility handling.

## Added browser-side files

- `assets/unfolded-simulator-bootstrap.js`: exposes immutable simulator context, adds simulator body classes and appends the legal/source entries to the existing Settings → About data fields.
- `assets/ucvr-simulator.js`: implements the interactive Remote 3 simulator surface and entity controls.
- `assets/ucvr-enhancements.js`: contains simulator-specific integration update and setup-progress enhancements used by standalone UC Virtual Remote builds.
- `assets/unfolded-simulator-source-integration.css`: styles simulator restrictions and the About-page legal/source links.
- `assets/material-symbols-compat.css`: maps legacy icon identifiers in the compiled upstream templates to the locally hosted Material Symbols Sharp font.
- `assets/remote-simulator-background.svg`: simulator background artwork.

## Material Symbols migration

The modified build no longer ships or loads Font Awesome fonts, Font Awesome runtime CSS, Font Awesome JavaScript, or Font Awesome glyph data.

It reuses the Material Symbols Sharp variable font already included in the Unfolded.Tools project. Former icon styles are mapped explicitly as follows:

- Thin → Material Symbols weight `100`
- Light → Material Symbols weight `300`
- Regular → Material Symbols weight `400`
- Solid → Material Symbols weight `400` with `FILL=1`

The already-compiled upstream templates still contain legacy `fa-*` identifier strings. `material-symbols-compat.css` treats those strings only as lookup keys and renders Material Symbols ligatures. The published mapping manifest is `MATERIAL-SYMBOLS-MAPPING.json`.

## Functional differences from upstream

- Each visitor receives an isolated simulator session, PIN, SQLite database, REST endpoint and WebSocket endpoint.
- The configurator is mounted below a session-specific URL prefix instead of the device root.
- Browser storage is isolated per simulator session.
- A Remote 3 simulation route is included in the configurator navigation.
- Hardware-dependent, destructive or security-sensitive settings are disabled in public simulator mode.
- Integration installation and deletion controls are restricted for public sessions.
- A predefined demo integration and demo entities are exposed by the simulator runtime.
- Settings → About identifies the project as an unofficial community build and links to licenses, source and this modification notice.
- Custom-build metadata identifies Unfolded.Tools rather than Unfolded Circle ApS as the developer of the modified build.

## Build and packaging changes

- The build version is suffixed as `2.1.0-unfoldedtools.1` to distinguish it from the official upstream release.
- `release.json`, `version.txt` and the compiled Git information helper use the custom version.
- The generated dependency notice identifies the Web Configurator as `GPL-3.0-only` instead of `UNLICENSED`.
- The deployment HTML contains a modification and GPL notice.
- The source-disclosure endpoints are served from `/remote-simulator/licensing/` before session proxy routes.
- The official `2.1.0` source-map distribution is retained as archival provenance after removal of separately licensed Font Awesome payloads.

## Source provenance and remaining build-material gaps

The source archive supplied later contains the official compiled Web Configurator `2.1.0` and 39 production source maps. Those maps embed 555 source files, which have been extracted into a normalized tree and used to construct the readable modified source tree.

The source maps do not include every original repository-level build input. In particular, the original lockfile, package manifest, Vite/TypeScript configuration, translation JSON files, some type-only modules and the original global SCSS entrypoint were not present. The disclosure therefore provides the exact deployed object code, its available embedded source, all Unfolded.Tools modifications, checksums and preparation tools, while accurately documenting those remaining reproducibility gaps.

## Files not relicensed

The GPL applies to the modified browser Web Configurator. The Unfolded.Tools backend, simulator orchestration service and UC Virtual Remote runtime are separate works and retain their respective licensing terms. Third-party libraries, fonts, icons, images and other assets remain subject to their own licenses and ownership.
