|
| 1 | +# Legacy Product Prefix Cleanup Plan |
| 2 | + |
| 3 | +## Goal |
| 4 | + |
| 5 | +Finish the product rename by replacing every remaining repo-owned legacy product prefix with the `PrompterOne` and `prompterOne` naming, without regressing the standalone Blazor WebAssembly runtime, JS interop, or browser acceptance suite. |
| 6 | + |
| 7 | +## Scope |
| 8 | + |
| 9 | +### In Scope |
| 10 | + |
| 11 | +- rename remaining repo-owned runtime identifiers that still use the old product prefix in tracked source files |
| 12 | +- rename matching browser-test constants and harness globals so the browser suite stays aligned with production contracts |
| 13 | +- rename local ignored IDE artifacts that still use the old product name when that can be done safely without changing tracked repo state |
| 14 | +- re-scan tracked content and relevant local metadata for any residual legacy product-prefix references after the code changes |
| 15 | + |
| 16 | +### Out Of Scope |
| 17 | + |
| 18 | +- broad refactors unrelated to the rename cleanup |
| 19 | +- changes to third-party brand names such as `LiveKit` where `Live` is part of the vendor or protocol name rather than the old product name |
| 20 | +- generated `bin/`, `obj/`, or other rebuild output |
| 21 | + |
| 22 | +## Current State |
| 23 | + |
| 24 | +- The main solution, projects, namespaces, and docs already use `PrompterOne`. |
| 25 | +- Remaining tracked hits are limited to browser JS globals, interop method names, and browser-test harness constants. |
| 26 | +- Remaining filesystem-name hits are in ignored local IDE artifacts such as `.idea/` state and `*.DotSettings.user`. |
| 27 | + |
| 28 | +## Constraints And Risks |
| 29 | + |
| 30 | +- The repo mandates a root-level plan file and a full baseline before non-trivial edits. |
| 31 | +- Browser acceptance is the primary gate, so any renamed JS global or interop string must be changed consistently in production and tests. |
| 32 | +- `LiveKit` identifiers must stay intact where they refer to the external SDK rather than the product prefix. |
| 33 | +- Ignored IDE files are local-only and must not distract from tracked source correctness, but renaming them is acceptable if it is safe and improves workspace consistency. |
| 34 | + |
| 35 | +## Testing Methodology |
| 36 | + |
| 37 | +- Establish a full repo baseline with the required `build` and `test` commands before edits. |
| 38 | +- After the rename changes, run targeted source scans to confirm the legacy product prefix is gone from tracked content. |
| 39 | +- Run the full repo quality pass in repo order: `build`, `test`, `coverage`, then `format`. |
| 40 | +- Quality bar: |
| 41 | + - no tracked legacy product-prefix references remain unless documented as an intentional vendor name |
| 42 | + - `dotnet build /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx -warnaserror` succeeds |
| 43 | + - `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` succeeds |
| 44 | + - `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx --collect:"XPlat Code Coverage"` succeeds |
| 45 | + - `dotnet format /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` succeeds |
| 46 | + |
| 47 | +## Ordered Steps |
| 48 | + |
| 49 | +### 1. Freeze Scope And Inventory The Remaining Hits |
| 50 | + |
| 51 | +- [x] Search tracked file contents for the legacy product prefix and related case variants while excluding generated output. |
| 52 | +- [x] Search file paths for legacy-name leftovers and classify which ones are tracked repo content versus ignored local metadata. |
| 53 | +- [x] Record the rename target set and validation sequence in this plan file. |
| 54 | +- Verify before moving on: |
| 55 | + - the remaining hit list is concrete and small enough to change intentionally rather than with blind global replacement |
| 56 | + - vendor names such as `LiveKit` are explicitly excluded from the rename |
| 57 | + |
| 58 | +### 2. Establish The Full Baseline Before Edits |
| 59 | + |
| 60 | +- [x] Run `dotnet build /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx -warnaserror`. |
| 61 | +- [x] Run `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx`. |
| 62 | +- [x] Record each baseline failure below with symptom, suspected cause, and intended fix path before changing source. |
| 63 | +- Verify before moving on: |
| 64 | + - baseline build status is captured |
| 65 | + - baseline test status is captured |
| 66 | + - every failing baseline test, if any, is tracked below as a checklist item |
| 67 | + |
| 68 | +## Baseline Failures |
| 69 | + |
| 70 | +- [x] No baseline failures. |
| 71 | + - Symptom: none. `dotnet build /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx -warnaserror` and `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` both passed before edits. |
| 72 | + - Suspected cause: not applicable. |
| 73 | + - Intended fix path: preserve the green baseline through the rename cleanup and rerun the same required gates afterward. |
| 74 | + |
| 75 | +### 3. Rename Tracked Repo-Owned Contracts |
| 76 | + |
| 77 | +- [x] Update production browser interop identifiers in `/Users/ksemenenko/Developer/PrompterOne/src/PrompterOne.Shared/wwwroot/media/browser-media.js`, `/Users/ksemenenko/Developer/PrompterOne/src/PrompterOne.Shared/wwwroot/theme/browser-theme.js`, and `/Users/ksemenenko/Developer/PrompterOne/src/PrompterOne.Shared/Settings/Services/BrowserThemeInteropMethodNames.cs`. |
| 78 | +- [x] Update the matching browser-test constants and synthetic harness globals in `/Users/ksemenenko/Developer/PrompterOne/tests/PrompterOne.App.UITests/Media/synthetic-media-harness.js`, `/Users/ksemenenko/Developer/PrompterOne/tests/PrompterOne.App.UITests/Media/BrowserTestConstants.Media.cs`, `/Users/ksemenenko/Developer/PrompterOne/tests/PrompterOne.App.UITests/Support/BrowserTestConstants.cs`, and `/Users/ksemenenko/Developer/PrompterOne/tests/PrompterOne.App.Tests/Support/AppTestData.cs`. |
| 79 | +- [x] Re-scan tracked source for legacy product-prefix references to confirm only intentional vendor names remain. |
| 80 | +- Verify before moving on: |
| 81 | + - each renamed production contract has a matching test-side update |
| 82 | + - the remaining tracked hits, if any, are intentional and documented |
| 83 | +- Outcome: |
| 84 | + - tracked source scans are clean for the legacy product prefix after the contract rename |
| 85 | + - `LiveKit` vendor identifiers remain intact while only the repo-owned harness global prefix changed |
| 86 | + |
| 87 | +### 4. Rename Safe Local Metadata Leftovers |
| 88 | + |
| 89 | +- [x] Rename or remove ignored local IDE artifacts that still use the old product name, including the legacy solution `.DotSettings.user` file and the stale Rider `.idea` directory, if they still exist after source changes. |
| 90 | +- [x] Re-scan local file paths for old-product-name leftovers outside generated output. |
| 91 | +- Verify before moving on: |
| 92 | + - the rename does not modify tracked repo content unexpectedly |
| 93 | + - local-only leftovers are either renamed or explicitly called out as intentionally untouched |
| 94 | +- Outcome: |
| 95 | + - the stale Rider `.idea` directory was removed because a current `.idea.PrompterOne` directory already existed |
| 96 | + - the local solution settings file now follows the current solution name as `PrompterOne.slnx.DotSettings.user` |
| 97 | + - the local filesystem scan is clean for the old product name outside excluded generated output |
| 98 | + |
| 99 | +### 5. Final Validation And Plan Closeout |
| 100 | + |
| 101 | +- [x] Run `dotnet build /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx -warnaserror`. |
| 102 | +- [x] Run `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx`. |
| 103 | +- [x] Run `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx --collect:"XPlat Code Coverage"`. |
| 104 | +- [x] Run `dotnet format /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx`. |
| 105 | +- [x] Update this plan with the final scan results, validation outcomes, and any intentionally untouched local-only residue. |
| 106 | +- Verify before moving on: |
| 107 | + - all required repo commands pass |
| 108 | + - scans are clean for tracked repo-owned old-name prefixes |
| 109 | + - this plan reflects the actual end state |
| 110 | +- Final outcome: |
| 111 | + - `dotnet build /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx -warnaserror` passed after the cleanup |
| 112 | + - focused `PrompterOne.App.Tests` and `PrompterOne.App.UITests` runs passed after the contract rename |
| 113 | + - `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` passed after the cleanup |
| 114 | + - `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx --collect:"XPlat Code Coverage"` passed and produced coverage artifacts for core, component, and browser suites |
| 115 | + - `dotnet format /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` completed successfully |
| 116 | + - tracked source scans and local filesystem-name scans are clean for the legacy product prefix |
| 117 | + |
| 118 | +## Final Validation Skills And Commands |
| 119 | + |
| 120 | +1. `dotnet-blazor` |
| 121 | + - Action: verify the Blazor WebAssembly host and JS interop contract names still line up after the rename cleanup. |
| 122 | + - Outcome: production browser scripts and C# interop constants stay consistent. |
| 123 | +2. `playwright` |
| 124 | + - Action: rely on the browser acceptance suite executed through the repo `dotnet test` workflow to validate real-browser behavior after the renamed JS globals. |
| 125 | + - Outcome: browser flows keep working with the updated test harness contract names. |
| 126 | +3. Repo quality commands |
| 127 | + - `dotnet build /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx -warnaserror` |
| 128 | + - `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` |
| 129 | + - `dotnet test /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx --collect:"XPlat Code Coverage"` |
| 130 | + - `dotnet format /Users/ksemenenko/Developer/PrompterOne/PrompterOne.slnx` |
| 131 | + - Reason: these are the mandatory repo-defined gates for this task. |
0 commit comments