# Phase 1 Summary ## Scope Executed the base architecture phase only. This phase focused on structure, boundaries, shared contracts and compatibility without changing UX, overlay visuals or large feature logic. ## Completed - Added the `src/nodecg` boundary: - `src/nodecg/browser` - `src/nodecg/extension` - centralized `replicantNames` - centralized `messageNames` - Moved browser replicant access out of `src/browser_shared`. - Moved dashboard stores to `src/dashboard/stores`. - Moved pure country helpers to `src/shared/domain/players`. - Moved pack config and pack types to `src/shared/domain/packs`. - Added pack replicant schemas: - `installedPacks` - `packRegistry` - `downloadStates` - `availableUpdates` - Added generated TypeScript declarations for the new pack schemas. - Removed dead example code: - `exampleReplicant` schema/type - `ExampleType` - `src/extension/example.ts` - Removed redundant stale JS files from `src/shared`. - Updated extension bootstrap to use an explicit NodeCG context boundary. - Routed browser messages through `src/nodecg/browser/messages.ts`. - Routed extension message registration through `src/nodecg/extension/messages.ts`. - Routed pack replicant creation through NodeCG pack boundary services. - Updated build config so generated NodeCG/shared extension outputs are ignored and cleaned. ## Preserved - No overlay UX, CSS, SVG, layout or animation logic was intentionally changed. - No large dashboard view was split or rewritten. - `pack-manager.ts` behavior was preserved; only imports, types, replicant/message names and boundaries were normalized. - Public NodeCG message names were kept unchanged for compatibility. - Public replicant names and defaults were kept unchanged. ## Verification - `pnpm.cmd exec vue-tsc -p tsconfig.browser.json --noEmit`: passed. - `pnpm.cmd exec tsc -b tsconfig.extension.json --pretty false`: passed. - `pnpm.cmd exec eslint`: passed with 0 errors and existing Vue formatting warnings. - `pnpm.cmd run build`: passed. ## Remaining For Later Phases - Controlled rewrite of `pack-manager.ts`. - Controlled rewrite of `usePackRegistry` and `fighting-characters.ts`. - Formal provider module split for Start.gg and Challonge. - Splitting `Players.vue` and `Settings.vue`. - Overlay view models and visual baseline work.