Skip to content

Commit 1337359

Browse files
chore(plans): slug-references progress (PR #240)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011Q2tgjZEUrtvVk6k8SpdXJ
1 parent 69143a2 commit 1337359

1 file changed

Lines changed: 27 additions & 5 deletions

File tree

‎plans/slug-references.md‎

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ specs:
66
- specs/data-model.md
77
- specs/behaviors/storage.md
88
- specs/behaviors/slug-handles.md
9+
pr: 240
910
---
1011

1112
# Plan: child records reference path-keyed parents by slug
@@ -82,15 +83,15 @@ Out:
8283

8384
## Validation
8485

85-
- [ ] The six schemas hold slug references; reference map derived; v2
86+
- [x] The six schemas hold slug references; reference map derived; v2
8687
contracts published, v1 unchanged
87-
- [ ] No `projectId`/`personId`/`eventId` left on the six sheets' records
88+
- [x] No `projectId`/`personId`/`eventId` left on the six sheets' records
8889
or in their indexes (grep), API responses unchanged (existing API
8990
tests green)
90-
- [ ] Generic rename test covers every entry in the reference map
91-
- [ ] Migration: idempotent; refuses to write if any reference doesn't
91+
- [x] Generic rename test covers every entry in the reference map
92+
- [x] Migration: idempotent; refuses to write if any reference doesn't
9293
resolve; `contracts verify` passes after it on every branch
93-
- [ ] `type-check` + `lint` + full suite green
94+
- [x] `type-check` + `lint` + full suite green
9495
- [ ] `published` migrated and adopted in lockstep with the release;
9596
sandbox and production boot
9697

@@ -105,4 +106,25 @@ Out:
105106

106107
## Notes
107108

109+
- Rehearsed on a copy of production `published`: 1,450 records rewritten
110+
(the diff is deletions only, since the slugs were already on disk from
111+
write-time injection), `contracts verify` ok, the second run a no-op, and
112+
the new code boots in declared mode and loads in 1.9s.
113+
- `empty`, `fixture` and `legacy-import` adopted v2 from `a60d226` (pinned in
114+
`sources.toml`; merge #240 with a merge commit so it stays reachable),
115+
migrated, and verify.
116+
- Fixes from the refactor: prune-spam's member protection compared ids
117+
that no longer exist (it protected no one); it also deletes the pruned
118+
person's RSVPs. Account-claim merge re-points the requester's RSVPs.
119+
scrub-data pseudonymizes every person-slug reference consistently.
120+
- Remaining before `done`: migrate and adopt on `published` in lockstep
121+
with the release, then boot sandbox and production.
122+
108123
## Follow-ups
124+
125+
- Tracked as: a buzz item's own `?regenerateSlug` still doesn't carry its
126+
image attachment (pre-existing; gitsheets 2.8+ rename-on-upsert fixes it
127+
with the 2.9 bump).
128+
- Tracked as: the gitsheets 2.9 bump ([`gitsheets-2.8`](gitsheets-2.8.md),
129+
to be retitled) lands next. #304's open-time check passes because every
130+
template field is now required.

0 commit comments

Comments
 (0)