tenseleyflow/shithub / bd52201

Browse files

S16 followup: correct cron sprint reference (S37, not S26); document deferrals

Authored by mfwolffe <wolffemf@dukes.jmu.edu>
SHA
bd5220181c349c8222051a093fea45ea58c97f50
Parents
9c78d0f
Tree
fa92166

2 changed files

StatusFile+-
M docs/internal/repo-lifecycle.md 14 1
M internal/worker/jobs/lifecycle_sweep.go 3 2
docs/internal/repo-lifecycle.mdmodified
@@ -123,7 +123,7 @@ from "redirected" to "never existed."
123123
 
124124
 ## Operational pointers
125125
 
126
-* The `lifecycle:sweep` worker is enqueued ad-hoc today; S26 ships
126
+* The `lifecycle:sweep` worker is enqueued ad-hoc today; S37 ships
127127
   cron scheduling. To run it manually:
128128
   ```sql
129129
   INSERT INTO jobs (kind, payload) VALUES ('lifecycle:sweep', '{}'::jsonb);
@@ -152,3 +152,16 @@ from "redirected" to "never existed."
152152
 | `repo_transfer_accepted`        | recipient accepts                 |
153153
 | `repo_transfer_declined`        | recipient declines                |
154154
 | `repo_transfer_canceled`        | sender cancels                    |
155
+
156
+## Deferred work (S16 → later sprints)
157
+
158
+Two pieces of S16's spec are intentionally deferred; the receiving
159
+sprints have explicit bullets so the work doesn't fall off:
160
+
161
+* **Email notifications** for archive / unarchive / visibility flip /
162
+  soft-delete / restore / transfer requested / accepted / declined /
163
+  canceled / expired → tracked in S29 (notifications). The audit rows
164
+  already exist; S29's `domain_events` table is the consumer.
165
+* **Periodic enqueue of `lifecycle:sweep`** → tracked in S37 (deploy
166
+  automation), under `shithubd-cron.timer`. Today operators kick the
167
+  job manually with the SQL above.
internal/worker/jobs/lifecycle_sweep.gomodified
@@ -33,8 +33,9 @@ type LifecycleSweepDeps struct {
3333
 //     small.
3434
 //  2. Flip pending transfer requests past expires_at to "expired".
3535
 //
36
-// Enqueue this kind from a cron timer (S26 owns scheduling); for now
37
-// the operator can `INSERT` a job manually or call it once at boot.
36
+// Enqueue this kind from a cron timer (S37 ships the systemd cron
37
+// service); for now the operator can `INSERT` a job manually or call
38
+// it once at boot.
3839
 func LifecycleSweep(deps LifecycleSweepDeps) worker.Handler {
3940
 	return func(ctx context.Context, _ json.RawMessage) error {
4041
 		// 1. Hard-delete past-grace repos.