Commit Graph

324 Commits

Author SHA1 Message Date
Sven
2670cfc9fa chore: update AP fork lockfile pin to 6f76ec4 (fix resolveAuthor import) 2026-03-27 09:40:12 +01:00
Sven
e4da0f99af chore: update AP fork lockfile pin to b595734 (fix missing tokenRequired imports) 2026-03-27 09:35:54 +01:00
Sven
ad58bc45db chore: update AP fork lockfile pin to 230bfd1 (upstream v3.9.x merge)
Fedify 2.1.0, 5 FEPs (Tombstone, Activity Intents, indexable, NodeInfo,
Collection Sync), security audit fixes, architecture refactor (syndicator.js,
batch-broadcast.js, init-indexes.js, CSS split). All fork patches retained:
DM support, pin/unpin, edit post, timeout guard, signed fetch, ap_timeline mirror.
2026-03-27 09:31:51 +01:00
Sven
77442ec837 chore: update AP fork lockfile pin to 42f8c2d (own posts in ap_timeline)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 20:46:14 +01:00
Sven
3b2925d764 docs: document linkify trailing punctuation fix (bd3a623)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 19:57:48 +01:00
Sven
b28443c844 chore: update AP fork lockfile pin to bd3a623 (linkify trailing punct fix)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-24 19:57:15 +01:00
Sven
e63734ee2a fix(start): kill node process on service stop to prevent orphaned port binding
Trap previously only killed the webmention poller, leaving the node process
orphaned on service stop. On restart, the new node instance would fail to bind
port 3000 (EADDRINUSE) causing 502s with clean logs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 12:12:56 +01:00
Sven
a7b48a2606 docs: document edit post implementation (e319c34)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 11:33:41 +01:00
Sven
0a973266fc chore: update AP fork lockfile pin to e319c34 (edit post)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 11:33:12 +01:00
Sven
359db32858 docs: document pin/unpin status implementation (b5ebf6a)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 11:17:07 +01:00
Sven
ec856c962d chore: update AP fork lockfile pin to b5ebf6a (pin/unpin status)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 11:16:34 +01:00
Sven
ba1dbc6ceb docs: document timezone-aware status lookup fix (2660a1a)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 10:54:16 +01:00
Sven
7b5d1ed2c6 chore: update AP fork lockfile pin to 2660a1a (timezone-aware status lookup)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 10:53:47 +01:00
Sven
36c7f33a34 feat(changelog): add chore and refactor commit categories
The patch now recognises chore: and refactor: commit prefixes as their
own categories instead of lumping them into "other".

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-23 10:05:04 +01:00
Sven
bc73558641 docs: document upstream raw signed fetch fallback merge (b33932f)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 09:33:41 +01:00
Sven
42e06f31f8 chore: update AP fork lockfile pin to b33932f (raw signed fetch fallback)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 09:32:59 +01:00
Sven
989ae4cb5d chore: update AP fork lockfile pin to 01f6f81 (favourite + profile fixes)
package-lock.json was pinned to 7b838ea, meaning all fixes since
(favourite 404, resolveAuthor timeout, avatar cache, created_at
normalisation) were never installed on the server.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:52:25 +01:00
Sven
25bcce2f1a docs: document resolveAuthor timeout fix for favourite/reblog (01f6f81)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:40:04 +01:00
Sven
78b9f77d96 docs: document favourite 404 fix and profile avatar/created_at fixes (a259c79, da89554)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 08:31:36 +01:00
Sven
5f388bc9d5 docs: document follower created_at fix and URL-type AP lookup (6c13eb8)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-23 07:31:23 +01:00
Sven
615dcd849d docs: document DM no-data and 404 follow-up fixes (4816033, 7b838ea)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 21:25:40 +01:00
Sven
61fbdcd7ae docs: document remote profile fix (lookupWithSecurity + timeouts)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 21:24:42 +01:00
Sven
728fa9d682 fix(deps): update activitypub fork (addTimelineItem wrong arg in DM path)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 21:04:03 +01:00
Sven
777b2cc306 fix(deps): update activitypub fork (DM no data — full status response)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:57:50 +01:00
Sven
2379a5e1d5 docs: document Mastodon API DM public post leak fix
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:48:43 +01:00
Sven
6678c67972 fix(deps): update activitypub fork (DM visibility=direct public post leak)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:45:28 +01:00
Sven
df4e4061a1 docs: document Mastodon client like/reblog fix and patch cleanup
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:29:27 +01:00
Sven
ab1912b24b fix(deps): update activitypub fork (resolveAuthor collection.get fix)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:28:24 +01:00
Sven
6f6641b34d docs: document removal of 11 obsolete AP patches
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:23:58 +01:00
Sven
18a946c9ea chore(patches): remove 10 obsolete AP patches now baked into fork
All of the following are now native in svemagie/indiekit-endpoint-activitypub:
- patch-ap-url-lookup-api (AP URL lookup endpoint)
- patch-ap-allow-private-address (allowPrivateAddress in federation-setup)
- patch-ap-like-note-dispatcher (fake-Note revert)
- patch-ap-like-activity-id (canonical Like activity id URI)
- patch-ap-like-activity-dispatcher (Like setObjectDispatcher)
- patch-ap-url-lookup-api-like (likeOf URL in /api/ap-url)
- patch-ap-remove-federation-diag (inbox diagnostic log removed)
- patch-ap-og-image (orphan, not in package.json)
- patch-ap-normalize-nested-tags (orphan, no-op)
- patch-ap-object-url-trailing-slash (orphan, no-op)

patch-ap-skip-draft-syndication kept — draft guard in syndicate() not yet in fork.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:21:26 +01:00
Sven
81abaee160 chore(patches): remove patch-ap-repost-commentary (baked into fork)
Repost commentary changes are now native in svemagie/indiekit-endpoint-activitypub.
Patch is no longer needed and was causing a duplicate repost block on every deploy.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:16:22 +01:00
Sven
dc850c350f fix(patches): update repost-commentary patch to detect native fork implementation
Fix D's old snippet (the bare `} else {` content block) still matched after
the fork absorbed the repost-commentary changes natively, causing a duplicate
`} else if (postType === "repost") {` block to be inserted on every deploy
and preventing startup. Added NATIVE_MARKER check for the fork's own repost
branch so the patch skips cleanly when the changes are already present.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:13:48 +01:00
Sven
c230feff7f docs: document 2026-03-22 activitypub upstream sync and merge artifact fixes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:03:37 +01:00
Sven
7087ad5375 chore(deps): sync activitypub fork with upstream/main
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:02:36 +01:00
Sven
9336705179 fix(deps): update activitypub fork (tags.pub direct follow workaround)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 20:01:00 +01:00
Sven
4b1dfa20be fix(patches): update federation-diag silence patch for new fork version
The fork added an Accept-header upgrade block between the diagnostic
log and the return statement, breaking the OLD_SNIPPET match. Patch
now handles both the original form and the updated form.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:26:12 +01:00
Sven
49e8a109c8 fix(deps): update activitypub fork (remove duplicate cachedUrl merge artifact)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:33:24 +01:00
Sven
c5a905b9be fix(deps): update activitypub fork (remove duplicate import merge artifact)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 16:30:14 +01:00
Sven
599312ba2f fix: bookmark main version 2026-03-22 16:27:44 +01:00
Sven
786cf5b7e9 fix(deps): update activitypub fork (duplicate import fix)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:56:24 +01:00
Sven
64b489d2bc chore(deps): sync activitypub fork with upstream/main (merge 14 behind commits)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:52:10 +01:00
Sven
33c10eafaf fix(deps): update activitypub fork (tags.pub AP JSON + signature fixes)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 15:31:48 +01:00
Sven
67eacf6b99 fix(webmention): livefetch v6 with diagnostic log + reset-stale v11
livefetch v6:
- Adds console.log showing which property links were built per post
  (e.g. "in-reply-to" for replies) — makes it debuggable without server access
- Fixes retryPatchedBlock to include the two comment lines the retry patch
  actually inserts (was missing them, causing "Target block not found" on
  fresh upstream → retry → livefetch path)
- Adds v5 to priorMarkersNoContinue with contentToProcess-line end detection
  so v5 → v6 in-place upgrade works correctly

reset-stale: bump to v11 to retry ca3d8 and any other posts stuck
before v5/v6 deployment.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 11:40:57 +01:00
Sven
3d361c85aa chore(deps): update activitypub fork to v3.8.1 (tags.pub hashtag discovery)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 11:27:03 +01:00
Sven
2a674c8eea feat(draft): prevent draft posts from being syndicated or federated
Add two new patches:
- patch-ap-skip-draft-syndication: guards the AP syndicator's syndicate()
  method against draft posts (mirrors existing unlisted visibility check)
- patch-microsub-compose-draft-guard: forwards post-status from microsub
  compose to Micropub and suppresses mp-syndicate-to targets for drafts

The syndicate endpoint DB queries already filter post-status != draft
(patch-federation-unlisted-guards). These patches add defence in depth
at the AP syndicator and at the microsub compose submission layer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 11:10:23 +01:00
Sven
072b803308 chore: update youtube endpoint fork (fix double video embed)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 10:00:43 +01:00
svemagie
ad05bf3f04 Merge pull request #1 from svemagie/claude/fix-activitypub-og-image-CrCGI
fix(ap): fix OG image not included in ActivityPub activities
2026-03-21 21:17:13 +01:00
svemagie
58478f1885 Merge branch 'main' into claude/fix-activitypub-og-image-CrCGI 2026-03-21 21:16:59 +01:00
Claude
769720b33f fix(ap): use slug-only OG image path /og/{slug}.png
The previous fix incorrectly generated /og/{year}-{month}-{day}-{slug}.png
but the Eleventy blog generates OG images at /og/{slug}.png (e.g. /og/2615b.png).
Remove the unnecessary date extraction and simplify to slug-only.

https://claude.ai/code/session_0124D41vdLYE3DkJxhPqYthX
2026-03-21 20:04:19 +00:00
Sven
c0b9878033 fix(webmention): silence retry noise for all livefetch versions, bump stale migration to v10
retry patch: regex now matches [patched:livefetch] and [patched:livefetch:vN]
so it silently skips for any livefetch version, not just v2.

reset-stale: bump to v10 to retry posts stuck during v5 rollout.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-21 20:56:02 +01:00