Commit Graph

22 Commits

Author SHA1 Message Date
giles
b2b853c052 Fix actors.profile → activitypub.actor_profile endpoint references
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 51s
The AP blueprint was consolidated but 4 references to the old
'actors.profile' endpoint remained, causing BuildError on social pages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 12:46:04 +00:00
giles
cd3cc4def0 Add fragment blueprint + sync shared: micro-frontend infrastructure
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 46s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 08:27:52 +00:00
giles
1cb9323167 Remove dead wellknown/actors BPs, update shared submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 57s
These blueprints are fully replaced by the shared AP blueprint.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:31:05 +00:00
giles
bcfeec99e9 Use shared AP blueprint, drop custom wellknown/actors BPs
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 52s
Webfinger, actor profile, inbox, outbox, and followers are now served
by the shared AP blueprint registered in create_base_app(). Federation
keeps identity + social blueprints for UI routes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 19:02:53 +00:00
giles
ffad7ffea9 Remove auth blueprint, federation is now an OAuth client
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 47s
Auth server responsibilities moved to account app.
Federation uses the shared OAuth client blueprint via factory.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 12:00:22 +00:00
giles
f197dcffcb Add /auth/clear to reset stale cookies
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 55s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:45:34 +00:00
giles
5bf710a5ce Add /auth/sso-logout/ endpoint for cross-app logout
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 54s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:31:53 +00:00
giles
c7618b8a65 Set sso_hint cookie on login, clear on logout
Some checks failed
Build and Deploy / build-and-deploy (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 11:23:31 +00:00
giles
36c152674a Add OAuth authorize endpoint, move account routes to account app
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 47s
- /oauth/authorize: validates client_id, redirect_uri, issues auth codes
- Remove account/newsletters/widget routes (now in account microservice)
- Default post-login redirect: federation home instead of /auth/

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:59:16 +00:00
giles
6bd7d9cfcc Move account pages from blog to federation
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 48s
Add OOB account page system with newsletters, widget pages,
and toggle routes. Update shared submodule for federation_url.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 09:01:14 +00:00
giles
87ce2d4970 Add actor search with infinite scroll
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 49s
Replace single WebFinger lookup with paginated search across cached
remote actors and local profiles. New _search_results.html partial
with htmx infinite scroll sentinel. Form submits via hx-get for
seamless pagination.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 08:18:59 +00:00
giles
f4fc7d2058 Store cross-app cart_sid on login for cart adoption
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 43s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 17:46:32 +00:00
giles
1b87bb8f08 Switch to unified AP activity bus
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 42s
emit_event → emit_activity for login event. Update shared submodule.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 16:20:13 +00:00
giles
45377648c1 Fix follower links, HTMX follow/unfollow, update shared submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
- Follower profile links now go to https://domain/@username (web profile)
  instead of the AP actor URL which 404s
- Follow Back/Unfollow buttons update via HTMX without full page refresh
- Update shared submodule to decoupling branch with new protocol methods

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:52:11 +00:00
giles
27e86c580b Add following/followers lists and per-actor timeline pages
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
- 6 new routes: following list, followers list, actor timeline (each
  with HTMX infinite-scroll page endpoint)
- 4 new templates: following.html, followers.html, _actor_list_items.html,
  actor_timeline.html
- Nav links for Following/Followers in base.html
- Follow/unfollow redirects back to referrer page
- Timeline items template handles actor timeline type
- Update shared submodule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 13:42:16 +00:00
giles
b694d1f4f9 Add full fediverse social service
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 52s
Social blueprint with timeline, compose, search, follow/unfollow,
like/boost interactions, and notifications. Inbox handler extended
for Create/Update/Delete/Accept/Like/Announce with notification
creation. HTMX-powered infinite scroll and interaction buttons.
Nav updated with Timeline, Public, Search, and Notifications links.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 11:57:24 +00:00
giles
25d21b93af Fix duplicate AP posts + backfill posts on new follow
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 38s
- Stable object IDs per source (no more duplicates)
- Dedup Update activities (Ghost double-webhook)
- Backfill: deliver recent Create activities to new follower inbox

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 10:18:36 +00:00
giles
44dbc063ee Make followers/following collections public (paginated format)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
Mastodon requires OrderedCollection with a `first` page link to
consider the collection public. Without it, it shows "This user
has chosen to not make this information available."

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 09:59:26 +00:00
giles
06d694eff2 Fix AP Accept: add activity id + upsert followers
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
- Accept activity now includes required 'id' field (uuid-based)
- Updated shared submodule: add_follower upserts to prevent IntegrityError

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 22:43:33 +00:00
giles
725546f298 Fix Accept delivery for Follow activities and actor profile
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
- Fix sign_request() call: parse URL into path/host (was passing 'url' kwarg that doesn't exist)
- Fix verify_request_signature() call to match actual function signature
- Add manuallyApprovesFollowers: false to actor JSON-LD so Mastodon auto-accepts follows

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 21:55:46 +00:00
giles
ea2a2c87b6 Enhanced inbox: Follow/Accept, Undo, HTTP sig verification
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
- Inbox POST now handles Follow (add follower + send Accept),
  Undo (remove follower), Like/Announce (logged)
- HTTP signature verification (best-effort, logs but doesn't block)
- CSRF exempt on inbox (external servers POST here)
- Updated shared submodule with event handlers + delivery + anchoring

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 16:00:20 +00:00
giles
41e9670975 Initial federation app — ActivityPub server for Rose-Ash
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
Phase 0+1 of AP integration. New 5th Quart microservice:

Blueprints:
- wellknown: WebFinger, NodeInfo 2.0, host-meta
- actors: AP actor profiles (JSON-LD + HTML), outbox, inbox, followers
- identity: username selection flow (creates ActorProfile + RSA keypair)
- auth: magic link login/logout (ported from blog, self-contained)

Services:
- Registers SqlFederationService (real impl) for federation domain
- Registers real impls for blog, calendar, market, cart
- All cross-domain via shared service contracts

Templates:
- Actor profiles, username selection, platform home
- Auth login/check-email (ported from blog)

Infrastructure:
- Dockerfile + entrypoint.sh (matches other apps)
- CI/CD via Gitea Actions
- shared/ as git submodule

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:11:52 +00:00