Implement monthly changelog drafts with staff approval #987

Open
opened 2026-10-19 10:35:06 -05:00 by Codex · 0 comments
Member

Follow-up to #984: implement monthly changelog drafting after maintainer review of the recorded recommendation. Publishing must remain an explicit staff action. The database, admin publication workflow, and initial history import are delivered by #984; this issue owns the recurring generator and draft delivery.

  • Reuse the repository's existing Forgejo schedule / workflow_dispatch pattern from .forgejo/workflows/renovate.yaml on a self-hosted runner. Run at 06:00 UTC on the first day of each month for the preceding UTC calendar month, with explicit-month manual recovery.
  • Read full master history and confirmed deployed-revision evidence. Consolidate related user-facing changes, exclude dependency/CI/internal/gated work, and retain supporting commit hashes. Missing release evidence must produce a reviewable failure rather than an invented announcement.
  • Start with a deterministic candidate list and staff editing: no new dependency or external-model cost. If an LLM is proposed, obtain provider/data-sharing/spending approval before adding it. Treat commit/issue text as untrusted input and exclude credentials and sensitive security detail.
  • Deliver validated drafts through a restricted deployment/SSH command, not a public write API or generator database credentials. Design and test a new draft-only import command; the historical import in #984 publishes reviewed backfill and must not be reused unchanged for unattended generation.
  • Lock each month's run and use the unique month/import identity for safe retries. Preserve any existing staff-authored, edited, published, or unpublished entry. Skip empty months and retain a processed/skipped result. Notify maintainers only for failed/actionable runs through an approved operational channel.
  • October 2026 is already backfilled through October 19. The first run must prepare the October 20–31 supplement for staff to merge into the existing entry, rather than overwrite it or insert a second October row.

Acceptance criteria

  • Maintainer reviews the recommendation and confirms the release-evidence source, scheduler, notification channel, and any optional generator/provider budget.
  • Add a tested draft-only import contract with validation, supporting hashes, explicit environment selection, transactional persistence, and created/skipped/failed results.
  • Add scheduled and manual workflows using read-only repository/release access and narrowly scoped delivery credentials stored in Forgejo secrets.
  • Test month boundaries, empty months, unreleased work carried forward, missing release evidence, duplicate/overlapping retries, immutable staff edits, and failed delivery/recovery.
  • Verify that draft creation cannot publish public content; staff review and publish through the changelog admin page.
  • Handle the partial October entry explicitly without duplicate or automatic overwrite.
  • Document runtime and cost (runner minutes only for the default), credential ownership/rotation, failure handling, and recovery.
  • Complete a supervised manual run before enabling the recurring schedule.

No recurring job or external provider is enabled by creating this follow-up.

Follow-up to #984: implement monthly changelog drafting after maintainer review of the recorded recommendation. Publishing must remain an explicit staff action. The database, admin publication workflow, and initial history import are delivered by #984; this issue owns the recurring generator and draft delivery. ## Recommended design for review - Reuse the repository's existing Forgejo `schedule` / `workflow_dispatch` pattern from `.forgejo/workflows/renovate.yaml` on a self-hosted runner. Run at 06:00 UTC on the first day of each month for the preceding UTC calendar month, with explicit-month manual recovery. - Read full master history and confirmed deployed-revision evidence. Consolidate related user-facing changes, exclude dependency/CI/internal/gated work, and retain supporting commit hashes. Missing release evidence must produce a reviewable failure rather than an invented announcement. - Start with a deterministic candidate list and staff editing: no new dependency or external-model cost. If an LLM is proposed, obtain provider/data-sharing/spending approval before adding it. Treat commit/issue text as untrusted input and exclude credentials and sensitive security detail. - Deliver validated drafts through a restricted deployment/SSH command, not a public write API or generator database credentials. Design and test a new draft-only import command; the historical import in #984 publishes reviewed backfill and must not be reused unchanged for unattended generation. - Lock each month's run and use the unique month/import identity for safe retries. Preserve any existing staff-authored, edited, published, or unpublished entry. Skip empty months and retain a processed/skipped result. Notify maintainers only for failed/actionable runs through an approved operational channel. - October 2026 is already backfilled through October 19. The first run must prepare the October 20–31 supplement for staff to merge into the existing entry, rather than overwrite it or insert a second October row. ## Acceptance criteria - [ ] Maintainer reviews the recommendation and confirms the release-evidence source, scheduler, notification channel, and any optional generator/provider budget. - [ ] Add a tested draft-only import contract with validation, supporting hashes, explicit environment selection, transactional persistence, and created/skipped/failed results. - [ ] Add scheduled and manual workflows using read-only repository/release access and narrowly scoped delivery credentials stored in Forgejo secrets. - [ ] Test month boundaries, empty months, unreleased work carried forward, missing release evidence, duplicate/overlapping retries, immutable staff edits, and failed delivery/recovery. - [ ] Verify that draft creation cannot publish public content; staff review and publish through the changelog admin page. - [ ] Handle the partial October entry explicitly without duplicate or automatic overwrite. - [ ] Document runtime and cost (runner minutes only for the default), credential ownership/rotation, failure handling, and recovery. - [ ] Complete a supervised manual run before enabling the recurring schedule. No recurring job or external provider is enabled by creating this follow-up.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
MyVideoGameList/myvideogamelist.com#987
No description provided.