# Task: Developer commit reconciliation ## Goal Add the developer back-office workflow for importing shipped commits and matching them to curated release update entries. ## Feature Spec - `docs/FEATURES/release-communications.md` ## Scope - Add release commit persistence and EF Core model configuration. - Add enum/value support for communication status: - `Unreviewed` - `Linked` - `InternalOnly` - `Ignored` - Add developer API endpoints: - list imported commits - import commits for a bounded range - link a commit to a release update - unlink a commit from a release update - mark a commit internal-only - mark a commit ignored - Add developer-only frontend screens: - `/app/developer/release-commits` - linked commits on `/app/developer/updates/:id` - Support filters for: - communication status - linked update - author - date range - text search by subject or SHA - Show an unreviewed commit count. - Keep user-facing update views free of commit metadata. - Keep automatic CI deployment integration out of this task. ## Likely Files - `backend/src/Socialize.Api/Data/AppDbContext.cs` - `backend/src/Socialize.Api/Modules/ReleaseCommunications/**` - `frontend/src/router/router.js` - `frontend/src/layouts/main/**` - `frontend/src/features/release-communications/**` - `frontend/src/locales/en.json` - `frontend/src/locales/fr.json` - `backend/tests/Socialize.Tests/**` ## Notes - Commit import must be idempotent by SHA. - A commit can be linked to at most one release update in v1. - A release update can have many linked commits. - Imported commits default to `Unreviewed`. - Import must use either a submitted commit payload or configured repository connection settings. Do not discover or read a local `.git` directory from the deployed app filesystem. - Repository URL and access credentials must come from configuration/secrets. - Do not generate user-facing update entries automatically from commits. ## Validation ```bash dotnet build backend/Socialize.slnx dotnet test backend/Socialize.slnx cd frontend npm run build ``` ## Done When - [x] Developers can import commits idempotently. - [x] Developers can list and filter imported commits. - [x] Developers can link commits to release updates. - [x] Developers can unlink commits. - [x] Developers can mark commits internal-only. - [x] Developers can mark commits ignored. - [x] Release update detail shows linked commits to developers. - [x] Unreviewed commit count is visible to developers. - [x] Non-developer users cannot access commit reconciliation APIs or UI. - [x] User-facing update views do not expose commit metadata.