Commit Graph

34 Commits

Author SHA1 Message Date
giles
dfaef3a0bb Update shared submodule — add list_marketplaces
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 50s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 23:35:20 +00:00
giles
b8de936397 Update shared: AP_DOMAIN default to federation.rose-ash.com
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 42s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 21:12:55 +00:00
giles
c5a295b55b Update shared: origin_app isolation for EventProcessor
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 20:59:47 +00:00
giles
2919b98f26 Update shared: fix AP re-publish versioned object IDs
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 37s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 20:04:24 +00:00
giles
187f4cf64d Update shared submodule — restore deleted templates
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 37s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 19:29:51 +00:00
giles
90d6e1ed73 Update shared submodule (remove dead code)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 18:11:41 +00:00
giles
38e2820308 Update shared submodule (remove dead cart template)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 45s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 18:05:36 +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
f2c71c8136 Update shared submodule (cart sign-in fix)
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 47s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 17:38:17 +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
a41d5e6a52 Tech debt cleanup: fix path_setup comment, sync shared submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 15:36:10 +00:00
giles
04c7c97116 Fix Jinja2 error: set() is not a builtin, use [] instead
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:55:09 +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
0df06f6d32 Fix actor links: followers link to their remote profile
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m24s
Following links to local actor timeline (cached posts), followers
link to their profile on their own instance to avoid 404s.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 14:46:34 +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
e3bc854805 Update shared: fix AP Delete Tombstone id mismatch
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 09:26:04 +00:00
giles
84556c1798 Update shared: widget Phase 2 nav templates
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 09:14:29 +00:00
giles
d852dcc2be Update shared: fix AP object id domain for Mastodon
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 08:53:23 +00:00
giles
fb0e9243da Update shared: inline federation publish + AP delivery fixes
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 08:28:13 +00:00
giles
cdb7c5fb11 Update shared submodule: inline federation publication
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 07:56:04 +00:00
giles
836eec5b8a Update shared: fix AP edit/unpublish MultipleResultsFound crash
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 23:52:21 +00:00
giles
324248e8b5 Update shared submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 41s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 23:27:30 +00:00
giles
f20de85e16 Update shared submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 40s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 22:54:22 +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
6dbe2be369 Update shared submodule
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 42s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 22:33:53 +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
f70f7d2f49 Update shared submodule: fix adopt_entries login bug
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 39s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 21:20:54 +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
f2136d0cc2 Add CSRF token to logout form in base template
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 38s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:46:54 +00:00
giles
0bb057d65b Add CSRF tokens to login and choose-username forms
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 37s
Both forms were missing the hidden csrf_token input,
causing 400 Bad Request on POST.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 15:43:01 +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