# Repository Instructions ## Git Completion - After completing and verifying requested repository changes, create a Git commit and push the current branch to `origin` unless the user explicitly asks not to commit or push. - Stage only files that belong to the completed task. Leave unrelated local changes, reference material, exports, and generated artifacts untouched. - Report the commit hash and pushed branch to the user. - This Git rule does not authorize any TFS check-in or upload. ## TFS and Git - TFS remains active for the Matrix42 ESM 12.1.3-25.x legacy implementation. - Import TFS changes into Git with `tools/Sync-TfsLegacy.ps1` and review them on a dedicated `sync/tfs-legacy` branch. - Never copy a complete TFS workspace over the sandbox projects. - Never push, check in, or otherwise publish changes to TFS automatically. - The final transfer from Git into TFS is always performed and reviewed manually by the user in Visual Studio. - Do not run `tf checkin`, `tf reconcile`, scripted TFS uploads, or equivalent commands. ## Platform Ownership - `Legacy/` contains the .NET Framework 4.7.2 host for Matrix42 ESM 12.1.3-25.x. - `F4SDM42WebApi/` and `PackageTemplate/` contain the sandboxed .NET 8 host for Matrix42 ESM 26.1 and newer. - `F4SDHelper/Common/C4IT.F4SD.WebApi.Contracts.cs` contains contracts shared only by both Web API variants. - The external `_Common/C4IT.F4SD.Base.Ticket.cs` is shared with other F4SD products and must not be changed merely to simplify this Web API. - Keep platform-specific dependency resolution, controllers, package metadata, and journal access in their respective host. ## Builds - Use `C4IT - F4SD - M42WebApi.sln` for the sandbox build. - Use `C4IT - F4SD - M42WebApi.Legacy.sln` for the legacy build. - `Release_signed` is the optional signed configuration for both variants. - Package versions are derived from `SharedAssemblyInfo.cs`.