Fix stale Undo Follow deactivating newer followers #26

Merged
erik merged 1 commit from fix/task-3873c73a-stale-undo-follow into main 2026-10-26 16:40:30 -05:00
Owner

Summary

  • Adapt Slugkit fixes 5fdff3bf and 797a579 to site-owned follower code.
  • Require the Undo actor and current stored Follow ID to match in an atomic conditional update.
  • Normalize new Follow JSON-LD to compact id; support legacy @id and preserve records with unknown/malformed identities.
  • Add signed, queue-processed inbox tests for both inbox routes and ID aliases, plus persistence tests for replay, reactivation, and malformed data.

Verification

  • Regression proof before fix: 12 new inbox cases failed; 2 non-Follow cases passed.
  • Targeted suites: 60 tests passed.
  • Full npm test: 579 tests passed (56 files).
  • npm run lint, npm run build, git diff --check: passed.
  • Build-only generated CSS drift was excluded as unrelated.
  • No dependency update, migration, release automation, development-port change, or production deployment.

Task: task-3873c73a

Independent review and CI required before merge.

## Summary - Adapt Slugkit fixes 5fdff3bf and 797a579 to site-owned follower code. - Require the Undo actor and current stored Follow ID to match in an atomic conditional update. - Normalize new Follow JSON-LD to compact `id`; support legacy `@id` and preserve records with unknown/malformed identities. - Add signed, queue-processed inbox tests for both inbox routes and ID aliases, plus persistence tests for replay, reactivation, and malformed data. ## Verification - Regression proof before fix: 12 new inbox cases failed; 2 non-Follow cases passed. - Targeted suites: 60 tests passed. - Full `npm test`: 579 tests passed (56 files). - `npm run lint`, `npm run build`, `git diff --check`: passed. - Build-only generated CSS drift was excluded as unrelated. - No dependency update, migration, release automation, development-port change, or production deployment. Task: task-3873c73a Independent review and CI required before merge.
fix: ignore stale Undo Follow activities
All checks were successful
CI / build-lint-test (push) Successful in 41s
ceaa107555
Match the current Follow identity and actor before deactivating a follower. Normalize stored JSON-LD identities and accept legacy @id records without a migration. Add persistence and signed inbox regression coverage.\n\nTask: task-3873c73a
Author
Owner

No actionable findings for PR #26 at ceaa107.

The changes correctly require matching Undo/Follow actors and atomically match the current stored Follow ID. Compact JSON-LD normalization, legacy @id support, malformed-data preservation, and stale/repeated Undo handling align with the task and supplied Slugkit fixes. No prohibited scope changes found.

Independent verification:

  • Persistence and signed-inbox suites: 60 tests passed
  • Lint, TypeScript checking, and diff whitespace checks passed
  • Working tree remained clean

Limits: Did not rerun the full 579-test suite or CSS-producing build, verify remote CI, or test production federation. No files or PR/task state were changed.

**No actionable findings** for PR #26 at `ceaa107`. The changes correctly require matching Undo/Follow actors and atomically match the current stored Follow ID. Compact JSON-LD normalization, legacy `@id` support, malformed-data preservation, and stale/repeated Undo handling align with the task and supplied Slugkit fixes. No prohibited scope changes found. Independent verification: - Persistence and signed-inbox suites: **60 tests passed** - Lint, TypeScript checking, and diff whitespace checks passed - Working tree remained clean Limits: Did not rerun the full 579-test suite or CSS-producing build, verify remote CI, or test production federation. No files or PR/task state were changed.
Author
Owner

Delivery gates satisfied for ceaa107555:

  • Full local suite: 579 tests in 56 files passed; lint/build/diff checks passed.
  • Independent read-only review: no actionable findings; independently reran 60 targeted tests, lint and type checking.
  • Forgejo Actions task #91: build-lint-test success. (fj pr status could not decode Forgejo relative URLs; status verified with fj actions tasks.)
  • Scope remains site-owned code/tests only; no dependency or migration changes and no production deployment.
Delivery gates satisfied for ceaa1075551a63f4b2f42272ac007c5974579bfe: - Full local suite: 579 tests in 56 files passed; lint/build/diff checks passed. - Independent read-only review: no actionable findings; independently reran 60 targeted tests, lint and type checking. - Forgejo Actions task #91: build-lint-test success. (`fj pr status` could not decode Forgejo relative URLs; status verified with `fj actions tasks`.) - Scope remains site-owned code/tests only; no dependency or migration changes and no production deployment.
erik merged commit ead999d551 into main 2026-10-26 16:40:30 -05:00
erik deleted branch fix/task-3873c73a-stale-undo-follow 2026-10-26 16:40:30 -05:00
Sign in to join this conversation.
No reviewers
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
erik/erikvancraddock.com!26
No description provided.