Commit Graph

73 Commits

Author SHA1 Message Date
Sven
fe0f347e49 chore(ai): remove custom AI patches superseded by upstream endpoint-posts@beta.44
- Remove patch-preset-eleventy-ai-frontmatter: upstream now writes AI
  frontmatter natively using hyphenated keys (ai-text-level etc.)
- Remove patch-endpoint-posts-ai-cleanup: upstream beta.44 natively
  removes empty ai-text-level/ai-code-level/ai-tools/ai-description fields
- Remove patch-endpoint-posts-ai-fields: upstream beta.44 has AI form UI
  inline in post-form.njk; our separate templates would have duplicated fields
- Remove patch-micropub-ai-block-resync: one-time stale-block migration,
  no longer relevant
- Remove patch-endpoint-posts-prefill-url: upstream beta.44 has native
  prefill from query params; our patch would have conflicted
- Remove patch-endpoint-posts-search-tags: upstream beta.44 has native
  search/filter/sort UI; patch already detected this and was a no-op
- Bump @rmdes/indiekit-endpoint-posts beta.25→beta.44,
  override beta.41→beta.44
- Update indiekit.config.mjs: remove camelCase ai field names from
  all postTypes.fields (ai-* fields now rendered inline by upstream)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-20 14:37:04 +01:00
Sven
f7e8eba46a feat: integrate YouTube likes sync via forked endpoint
Switch @rmdes/indiekit-endpoint-youtube to forked repo with OAuth 2.0
liked-videos sync. Add OAuth client config and likes sync settings.
Also document outgoing webmentions architecture in README.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 21:05:15 +01:00
Sven
533557ad43 fix(config): change CV editor mountPath to /cv-editor to avoid nginx conflict
The static Eleventy CV page at /cv was being served by nginx try_files
before the request could fall through to the @indiekit proxy.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-18 18:50:42 +01:00
Sven
3beac515cd feat: add indiekit-endpoint-readlater 2026-03-17 12:26:40 +01:00
Sven
757c931408 fix(syndicate): register endpoint-syndicate plugin to enable /syndicate route
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 23:55:25 +01:00
Sven
15fb4bb914 chore: application.locale:de 2026-03-15 22:46:23 +01:00
Sven
0898df1b66 chore: rss back out 2026-03-15 22:23:02 +01:00
Sven
98f059614e chore: rss back in 2026-03-15 22:15:11 +01:00
Sven
7104094ce0 chore: no rss reader for now 2026-03-15 19:46:37 +01:00
Sven
0331271cb5 chore: update to upstream 2026-03-15 19:31:10 +01:00
Sven
3708dd92c3 chore: remove Mastodon syndicator and related patches
Blog is now a native ActivityPub actor; Mastodon syndication via
troet.cafe is no longer needed. Removes the syndicator package,
config vars, patch script, and env example entries.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 22:31:37 +01:00
Sven
37ac8c0ce9 Revert "chore: remove all occurrences of https://troet.cafe and https://troet.cafe/svemagie"
This reverts commit 5c137f01f3.
2026-03-14 22:00:59 +01:00
Sven
5c137f01f3 chore: remove all occurrences of https://troet.cafe and https://troet.cafe/svemagie 2026-03-14 20:58:42 +01:00
Sven
304c75f64a feat: add gardenStage and ai fields to all post type presets
- gardenStage: added to all post types (article, note, bookmark, like,
  repost, photo, reply, page) so Indiekit preserves it in frontmatter
- aiTextLevel/aiCodeLevel/aiTools/aiDescription: extended from article+note
  to all content post types (bookmark, repost, photo, reply, page)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-14 18:49:35 +01:00
Sven
c4299b73b1 fix: dual-mount blogroll at /blogrollapi and /rssapi
/blogroll static page hardcodes /blogrollapi/api/* calls.
/news static page hardcodes /rssapi/api/* calls.
Both must work simultaneously.

- Revert mountPath to /blogrollapi (restores /blogroll page)
- Patch init() to also register publicRouter at /rssapi via a
  thin Indiekit.addEndpoint() alias (fixes /news page)
- /api/feeds alias retained for /news page (maps to listBlogs)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 19:09:48 +01:00
Sven
64e5f99526 fix: mount blogroll at /rssapi and add /api/feeds alias
The /news/ page fetches /rssapi/api/items, /rssapi/api/feeds and
/rssapi/api/status. The blogroll endpoint was mounted at /blogrollapi,
so all three requests returned a 404 HTML page — causing the
"Unexpected token '<'" JSON parse error.

- Change blogroll mountPath from /blogrollapi to /rssapi
- Add patch-endpoint-blogroll-feeds-alias.mjs: injects a /api/feeds
  route alias pointing to listBlogs (page expects /feeds, endpoint
  only had /blogs)
- Wire new patch into postinstall and serve scripts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 18:54:24 +01:00
svemagie
77dd85b507 fix: disable Mastodon external like/repost status posts
AP endpoint already sends native Like/Announce activities to fediverse
authors, making the "❤️ URL" / "🔁 URL" Mastodon status posts redundant.
Disabling syndicateExternalLikes + syndicateExternalReposts prevents the
"did not return a URL" error from the scope-limited Mastodon token.

Native same-instance favourites/reblogs still route through Mastodon
(requires write:favourites + write:statuses scope on the token).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 13:58:34 +01:00
svemagie
6a2c38d798 fix: replace startup sleep with readiness check, clean up stale env/config
- start.example.sh: replace fixed sleep 30 with /status poll loop (up to 2min)
  so the webmention poller waits exactly until indiekit is ready, not longer
- indiekit.config.mjs: remove redundant webmentionIoMountPath variable and
  mountPath from webmention-io config (package default /webmentions is correct)
- .env.example: remove all stale proxy and unused WEBMENTION_SENDER_* vars
  (HOST, PORT, ENDPOINT, READY_TIMEOUT, STOP_TIMEOUT, AUTO_POLL) that were
  never read by start.example.sh; keep only WEBMENTION_SENDER_POLL_INTERVAL

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 20:30:55 +01:00
svemagie
cdc437ea8c fix: remove webmentions-proxy, fix sender timing, explicit mountPath
- Remove @rmdes/indiekit-endpoint-webmentions-proxy (redundant with
  webmention-io which already provides a public JSON API from MongoDB)
- Remove proxy-related variables (webmentionsProxyMountPath, cacheTtl)
- Add explicit mountPath to webmention-io config to avoid future surprises
- Increase WEBMENTION_SENDER_POLL_INTERVAL to 600s so deploys complete
  before the poller fires, preventing silent data loss where posts with
  no stored content get marked webmention-sent before the page is live

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-11 20:00:12 +01:00
svemagie
548450a12a chore: update webmentionSenderMountPath config to default /webmention-sender 2026-03-11 12:23:12 +01:00
svemagie
be67f61792 feat: update webmention sender endpoint path to /webmentions-sender 2026-03-11 11:55:47 +01:00
svemagie
6520c13b8a fix: config for endpoint-auth 2026-03-10 20:57:19 +01:00
svemagie
c591b6fe37 feat(auth): add IndieAuth endpoint plugin and config for /auth 2026-03-10 20:47:20 +01:00
svemagie
e98dba777c feat: add @indiekit/endpoint-micropub to plugins
Wires up the already-installed Micropub endpoint (aliased to
@rmdes/indiekit-endpoint-micropub) at /micropub.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 10:17:04 +01:00
svemagie
1be5baa60f feat: install and configure @rmdes/indiekit-endpoint-microsub
Adds Microsub social reader endpoint at /microsub, enabling feed
subscription and management via the Microsub protocol.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 10:17:04 +01:00
svemagie
038b94a606 feat: install and configure @rmdes/indiekit-endpoint-blogroll
Mounts blogroll API at /blogrollapi — syncs RSS/Atom feeds hourly,
caches 50 items per blog, deletes items after 7 days.
Public endpoints: /blogrollapi/api/blogs, /items, /categories, /status, /opml

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 10:17:03 +01:00
svemagie
bc83e2bbb7 feat: Add @rmdes/indiekit-syndicator-indienews plugin and config block 2026-03-10 10:17:01 +01:00
svemagie
696f5b3336 feat: added youtube endpoint 2026-03-10 10:17:00 +01:00
svemagie
220ccc9113 feat: add indiekit-endpoint-youtube plugin configuration 2026-03-10 00:06:06 +01:00
svemagie
98051bce41 fix(config): set explicit application URL for proxied auth/assets 2026-03-09 21:38:50 +01:00
svemagie
1365f696f0 fix(activitypub): handle publication host private DNS lookups 2026-03-09 19:39:04 +01:00
svemagie
8375e62ad1 Scope AI disclosure to article/note and extend note AI fields 2026-03-09 18:38:02 +01:00
svemagie
7d13d5dbfa Add and configure comments endpoint 2026-03-09 18:23:32 +01:00
svemagie
c2a24b9162 Expose AI fields in /posts article editor 2026-03-09 15:24:00 +01:00
svemagie
f8aa318342 Harden listening endpoint sync, stats, and runtime guards 2026-03-09 15:04:49 +01:00
svemagie
fed5657957 Add webmentions proxy endpoint integration 2026-03-09 14:10:59 +01:00
svemagie
8d77f0d259 Configure syndicate endpoint with Bluesky and Mastodon syndicators 2026-03-09 13:48:49 +01:00
svemagie
bff1ffa104 Fix podroll plugin config for IndieKit loader 2026-03-09 09:42:25 +01:00
svemagie
be0f7e1823 Add webmention sender endpoint integration 2026-03-09 09:36:29 +01:00
svemagie
3153cf95f2 Add podroll endpoint integration and env docs 2026-03-09 09:30:36 +01:00
svemagie
12de20913d fix(homepage): add de locale patch and robust contentDir for saves 2026-03-08 18:34:07 +01:00
svemagie
0a6de5b4ad feat(homepage): add homepage endpoint and mount path 2026-03-08 18:19:45 +01:00
svemagie
9919b1decc Normalize ActivityPub profile URLs to fix WebFinger invalid URL 2026-03-08 11:16:17 +01:00
svemagie
6565b47c48 Enable ActivityPub federation endpoint and configuration 2026-03-08 10:18:56 +01:00
svemagie
867a982fa6 Enable dedicated repost post type in admin 2026-03-08 07:39:59 +01:00
svemagie
59e34af629 Revert "Enable CV endpoint at /cvapi"
This reverts commit a81180e8e9.
2026-03-08 06:42:03 +01:00
svemagie
a81180e8e9 Enable CV endpoint at /cvapi 2026-03-08 06:36:12 +01:00
svemagie
bcd0652538 Always register listening endpoints and keep routes public 2026-03-08 06:07:41 +01:00
svemagie
540d83afc3 Enable optional Funkwhale and Last.fm listening endpoints 2026-03-08 06:04:12 +01:00
svemagie
88c8d24ea2 Rollback admin redirect overrides to root auth paths 2026-03-08 04:12:56 +01:00