trails/apps/journal/app
Ullrich Schäfer 5db983386d feat(journal): dereferenceable Note objects at /activities/:id
The Notes we emit (outbox + push delivery) use /activities/{id} as
their id, but that URL only served HTML — so Mastodon's search-fetch
of an activity URL failed, and strict instances that re-fetch pushed
objects to verify them would drop our deliveries.

- Fedify object dispatcher for Note at /activities/{id}: serves the
  same activityToNote mapping used everywhere else; 404 unless the
  activity is public AND the owner's profile is public (private owners
  don't federate, mirroring the actor).
- Content-negotiation middleware on the activity detail route, same
  pattern as the actor route: AP Accept headers short-circuit to
  Fedify, browsers get HTML.

Found during the staging soak (Mastodon showed the outbox post count
but couldn't fetch the posts).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 23:18:30 +02:00
..
components chore(ts): drop two more redundant casts 2026-05-26 01:02:49 +02:00
hooks Implement notifications + supporting fixes 2026-04-26 01:28:55 +02:00
jobs feat(journal): federation outbox + push delivery to remote followers 2026-06-06 15:32:52 +02:00
lib feat(journal): dereferenceable Note objects at /activities/:id 2026-06-06 23:18:30 +02:00
routes feat(journal): dereferenceable Note objects at /activities/:id 2026-06-06 23:18:30 +02:00
entry.client.tsx Add legal pages, ToS acceptance, and alpha banner 2026-04-18 00:08:48 +02:00
entry.server.tsx Consolidate Sentry config into shared package; fix inconsistencies 2026-04-18 00:30:09 +02:00
root.tsx fix(journal): remove ineffective dynamic imports 2026-05-24 12:05:08 +02:00
routes.ts feat(journal): federation outbox + push delivery to remote followers 2026-06-06 15:32:52 +02:00