docs: document Like/Announce addressing patch and update fork reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
18
README.md
18
README.md
@@ -19,7 +19,7 @@ Four packages are installed directly from GitHub forks rather than the npm regis
|
||||
|
||||
In `package.json` these use the `github:owner/repo[#branch]` syntax so npm fetches them directly from GitHub on install.
|
||||
|
||||
> **Lockfile caveat:** The fork dependency is resolved to a specific commit in `package-lock.json`. When fixes are pushed to the fork, run `npm update @rmdes/indiekit-endpoint-activitypub` to pull the latest commit. The current lockfile pins to `eefa46f` (v2.10.1); the fork HEAD is at `8b9bff4` with additional AP reliability fixes baked in.
|
||||
> **Lockfile caveat:** The fork dependency is resolved to a specific commit in `package-lock.json`. When fixes are pushed to the fork, run `npm update @rmdes/indiekit-endpoint-activitypub` to pull the latest commit. The current lockfile pins to `eefa46f` (v2.10.1); the fork HEAD is at `d143abf` with Like/Announce addressing and nested tag fixes baked in.
|
||||
|
||||
---
|
||||
|
||||
@@ -130,8 +130,8 @@ Posts are converted from Indiekit's JF2 format to ActivityStreams 2.0 in two mod
|
||||
|---|---|---|---|
|
||||
| note | Create | Note | Plain text/HTML content |
|
||||
| article | Create | Article | Has `name` (title) and optional `summary` |
|
||||
| like | Like | URL | Outbox serves as Note for Mastodon compatibility |
|
||||
| repost | Announce | URL | Outbox serves as Note for Mastodon compatibility |
|
||||
| like | Like | URL | `to: Public, cc: followers`; outbox serves as Note for Mastodon compat |
|
||||
| repost | Announce | URL | `to: Public, cc: followers`; outbox serves as Note for Mastodon compat |
|
||||
| bookmark | Create | Note | Content prefixed with bookmark emoji + URL |
|
||||
| reply | Create | Note | `inReplyTo` set, author CC'd and Mentioned |
|
||||
|
||||
@@ -166,6 +166,7 @@ These patches are applied to `node_modules` via postinstall and at serve startup
|
||||
| `patch-ap-allow-private-address` | federation-setup.js | Adds `signatureTimeWindow` and `allowPrivateAddress` to `createFederation()` |
|
||||
| `patch-ap-object-url-trailing-slash` | federation-setup.js | Object dispatcher uses `$in` query to match URLs with/without trailing slash |
|
||||
| `patch-ap-url-lookup-api` | Adds new route | Public `GET /activitypub/api/ap-url` resolves blog URL → AP object URL |
|
||||
| `patch-ap-like-announce-addressing` | jf2-to-as2.js | Adds `to: Public, cc: followers` to Like and Announce activities for shared inbox routing |
|
||||
| `patch-ap-normalize-nested-tags` | jf2-to-as2.js | Strips path prefix from nested hashtags (`on/art/music` → `#music`) |
|
||||
| `patch-inbox-skip-view-activity-parse` | federation-bridge.js | Buffers body, skips PeerTube View, preserves `_rawBody` for Digest verification |
|
||||
| `patch-inbox-ignore-view-activity` | inbox-listeners.js | Registers no-op View handler to suppress "Unsupported activity type" errors |
|
||||
@@ -405,6 +406,9 @@ Patches are Node.js `.mjs` scripts in `scripts/` that surgically modify files in
|
||||
**`patch-ap-allow-private-address.mjs`**
|
||||
Adds `signatureTimeWindow: { hours: 12 }` and `allowPrivateAddress: true` to `createFederation()`. Handles both fresh v2.10.1 and already-patched files. Without this, Fedify rejects Mastodon retry signatures and blocks own-site URL resolution on the private LAN.
|
||||
|
||||
**`patch-ap-like-announce-addressing.mjs`**
|
||||
Adds `to: Public, cc: followers` to Like activities and `cc: followers` to Announce activities in `jf2ToAS2Activity()`. Without this, Mastodon shared inboxes accept the activities (HTTP 202) but silently drop them because they lack the followers collection in their addressing. Create/Note activities were already correctly addressed.
|
||||
|
||||
**`patch-ap-normalize-nested-tags.mjs`**
|
||||
Strips path prefix from nested hashtags in JF2→AS2 conversion (`on/art/music` → `#music`). Mastodon doesn't support slash-delimited tag paths.
|
||||
|
||||
@@ -660,6 +664,14 @@ Environment variables are loaded from `.env` via `dotenv`. See `indiekit.config.
|
||||
|
||||
## Changelog
|
||||
|
||||
### 2026-03-19
|
||||
|
||||
**fix: add cc:followers addressing to AP Like/Announce activities** (`bee8df2`)
|
||||
Like and Announce activities were missing the followers collection in their `to`/`cc` addressing. Mastodon shared inboxes silently drop activities without `cc: followers`, so likes and reposts were delivered (HTTP 202) but never appeared on remote instances. Fix applied to both the fork source and as a patch script (`patch-ap-like-announce-addressing.mjs`).
|
||||
|
||||
**chore: update activitypub endpoint fork** (`d143abf`)
|
||||
Pushed Like/Announce addressing fix and nested tag normalization directly to the `svemagie/indiekit-endpoint-activitypub` fork.
|
||||
|
||||
### 2026-03-14
|
||||
|
||||
**chore: upgrade checkout and setup-node actions to v4** (`d3fb055`)
|
||||
|
||||
Reference in New Issue
Block a user