Conversation
Vue 2 does not make properties reactive when added to an already-observed
object via direct assignment. editSettings was declared as {} in data(),
so properties set in resetEditSettings() were invisible to the dependency
tracker — hasChanges never re-evaluated and buttons stayed disabled.
Fix: replace the object wholesale in resetEditSettings() so Vue observes
all properties on the new object, and use this.$set() in resetForm() for
the same reason.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
The Vue 3 SessionList.vue was sending an empty POST body to
/api/v1/show/sessions/start, causing a JSONDecodeError on the server.
The endpoint requires {"session_id": "<uuid>"} to identify the
initiating client, matching the pattern already used by the navbar.
Also removes the unreachable Stop Session button from both the Vue 2
and Vue 3 SessionList components — the START_SHOW WebSocket message
pushes all clients to /live the moment a session starts, making the
button inaccessible. Stop Session remains available via the navbar.
Adds E2E coverage in spec 12 for the sessions tab Start button,
including cleanup via the navbar to leave clean state for spec 13.
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add server hostname, IP address, and port rows to System Config page Adds a new authenticated GET /api/v1/system/info endpoint that returns the server's FQDN, primary outbound IP, and listening port. Both the Vue 2 and Vue 3 System Config pages display these as three new table rows, fetched once on mount. Includes backend tests and E2E coverage. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Restrict system/info endpoint to admin users The hostname, IP address, and port are sensitive network information that should only be accessible to administrators, not all authenticated users. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix Prettier formatting in Vue 2 ConfigSystem.vue Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix SonarCloud findings: extract auth helpers and named IP constant - Move _create_and_login_admin/_create_and_login_user to DigiScriptTestCase base class, removing duplication between test_system_info and test_db_backups - Extract hardcoded 8.8.8.8 to named _PROBE_HOST/_PROBE_PORT constants with a comment clarifying no data is sent Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* Add merge characters feature Adds a merge operation to the Characters tab of show config. Clicking "Merge" on any character opens a modal with a searchable dropdown to select a destination character. On confirm, the backend reassigns all ScriptLinePart rows to the destination, updates CharacterGroup memberships (with deduplication), and deletes the source character (cascading its mic allocations). - POST /api/v1/show/character/merge endpoint with full validation - 11 new backend tests covering all error cases and merge side-effects - Merge button + modal in both client/ (Vue 2) and client-v3/ (Vue 3) - 5 new Playwright E2E tests in 06-show-config-characters.spec.ts Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix linting and formatting issues Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * Fix missing cancelModal import in E2E spec; revert accidental modal change Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Client V3 Test Results23 tests 23 ✅ 0s ⏱️ Results for commit 322c61f. ♻️ This comment has been updated with latest results. |
Client Test Results128 tests 128 ✅ 0s ⏱️ Results for commit 322c61f. ♻️ This comment has been updated with latest results. |
Python Test Results 1 files 1 suites 1m 41s ⏱️ Results for commit 322c61f. ♻️ This comment has been updated with latest results. |
Playwright E2E Results (firefox)160 tests 160 ✅ 1m 38s ⏱️ Results for commit 322c61f. ♻️ This comment has been updated with latest results. |
Playwright E2E Results (chromium)160 tests 160 ✅ 1m 36s ⏱️ Results for commit 322c61f. ♻️ This comment has been updated with latest results. |
The goToLivePage handler was gating on `await v$.value.$validate()` using a non-standard Vuelidate setup (flat rules + direct ref state). This caused the async validation to silently fail or hang, hitting the early return before `sendObj` was ever called. Replace with the same pattern used by ScriptEditor.vue: a plain ref with `v-model.number`, a synchronous bounds check, and `@ok.prevent` to match the established async OK handler pattern in this codebase. Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Convert dynamic import() calls for stores and the router to static imports at the file top, keeping useXStore()/router access inside function bodies where Pinia is already active. Eliminates all three Rollup INEFFECTIVE_DYNAMIC_IMPORT warnings without any bundle size change (the modules were already in the main chunk via other static importers). Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Bumps [ruff](https://github.com/astral-sh/ruff) from 0.15.15 to 0.15.16. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.15.15...0.15.16) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.15.16 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
|


No description provided.