Files
svemagie d9f26beac5 merge: upstream 6436763..b71b4a9 — settings page, ObjectId pagination, edit history, keyword filters
Key upstream changes merged:
- Settings admin page (ap_settings collection, GET/POST controller, Nunjucks template)
- ObjectId-based status IDs (fixes same-second collision bug in cursor pagination)
- Status edit history stored in ap_status_edits, GET /statuses/:id/history endpoint
- Keyword filters for Mastodon API timelines (apply-filters.js middleware)
- resolve-reply-ids.js helper for threading
- Filter replies from public/local/hashtag timelines
- Non-expiring access tokens
- Media upload improvements (express-fileupload, bridge IndieAuth token)
- Startup gate: defer background tasks until host readiness signal
- Own posts exempt from timeline retention cleanup
- Various Mastodon API fixes (account IDs, update_credentials, interactions)

Conflict resolutions:
- pagination.js: adopted upstream's ObjectId approach (removed cursor-based encodeCursor/decodeCursor)
- statuses.js: adopted upstream's PUT rewrite (cleaner ownership check, edit history storage via Micropub fetch); kept GET /statuses/:id with pinnedIds/replyIdMap; adopted ObjectId-only findTimelineItemById
- compose.js: kept our isDirect/senderActorUrl (DM feature) + added upstream's mediaEndpoint
- activitypub-compose.njk: kept DM notice block + added enctype="multipart/form-data"
- Removed unused processStatusContent function and Update import from statuses.js

Fork-specific changes preserved:
- allowPrivateAddress: true in federation-setup.js
- Canonical Like activity IDs + Like dispatcher in federation-setup.js
- Repost commentary in jf2-to-as2.js
- /api/ap-url endpoint in index.js
- Direct Follow workaround for tags.pub

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-09 15:23:54 +02:00
..