Files
social-media/docs/TASKS/release-communications/003-developer-commit-reconciliation.md
Jonathan Bourdon b6eb348605
All checks were successful
deploy-socialize / image (push) Successful in 1m12s
deploy-socialize / deploy (push) Successful in 19s
feat: add release communications
2026-05-07 21:04:29 -04:00

2.6 KiB

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

dotnet build backend/Socialize.slnx
dotnet test backend/Socialize.slnx
cd frontend
npm run build

Done When

  • Developers can import commits idempotently.
  • Developers can list and filter imported commits.
  • Developers can link commits to release updates.
  • Developers can unlink commits.
  • Developers can mark commits internal-only.
  • Developers can mark commits ignored.
  • Release update detail shows linked commits to developers.
  • Unreviewed commit count is visible to developers.
  • Non-developer users cannot access commit reconciliation APIs or UI.
  • User-facing update views do not expose commit metadata.