No description
Find a file
kopper 7173373330
[backend/federation] Improved reply backfill
Instead of backfilling every note we come across that has a reply
collection, only schedule a backfill job if someone wants to see the
replies (on GET MastoAPI /context, or Iceshrimp API /descendants)

Reply backfilling is also done on a ThreadIdOrId basis as opposed to the
previous way of backfilling individual notes. This allows us finer
grained control over the recursion and frees up the job queue, alongside
allowing for easier implementation of context collection backfill in the
future (by mapping each context collection to a thread)

---

Currently, note threads are implicit based on the "threadId" column of a
note, which can be null (where it's the same as the note's "id")

This commit turns note threads into an actual entity, and as a part of
that, makes "threadId" non-nullable (by specifically setting it to "id"
for those cases)

This is done to attach extra metadata to the entire thread, currently
just the time of when it was last backfilled, but more may be added in
the future (the context collection associated with this thread, for example)

---

The data format for backfill jobs have backwards-incompatibly changed
since the introduction of the feature. We can drop all old jobs without
causing too much trouble as they will be re-scheduled on demand

---

Signed-off-by: Laura Hausmann <laura@hausmann.dev>
2024-10-24 21:18:57 +02:00
.docker [docker] Drop docker-engine from ci-env images 2024-07-08 03:49:46 +02:00
.forgejo/workflows [ci] Disable dotnet terminal logger in all workflows 2024-07-24 05:58:38 +02:00
.idea/.idea.Iceshrimp.NET/.idea [sln] Add the YouTrack url to the repository 2024-04-16 00:10:38 +02:00
Iceshrimp.Backend [backend/federation] Improved reply backfill 2024-10-24 21:18:57 +02:00
Iceshrimp.Frontend [frontend/components] Add some bits of missing alt text to the profile. 2024-10-24 20:55:07 +02:00
Iceshrimp.Parsing [parsing] Add cw search filter expression (ISH-517) 2024-10-19 03:00:43 +02:00
Iceshrimp.Shared [backend/api] Add PaginationWrapper<TData> & associated helper methods 2024-10-24 18:20:48 +02:00
Iceshrimp.Tests [parsing] Add cw search filter expression (ISH-517) 2024-10-19 03:00:43 +02:00
.gitignore [make] Fix phony, allow specifying target rid for publish, change publish output directory 2024-07-07 04:56:04 +02:00
.noai Initial commit 2023-12-24 00:57:07 +01:00
CHANGELOG.md [docs] Fix typo 2024-09-15 21:42:17 +02:00
Directory.Build.props [sln] Prevent unnecessary frontend rebuilds during CI runs 2024-09-13 04:55:46 +02:00
Dockerfile [docker] Update dockerfile 2024-07-30 01:51:57 +02:00
FEDERATION.md [docs] Add FEP-9fde to FEDERATION.md 2024-10-23 05:04:55 +02:00
global.json [sln] Add global.json 2024-07-06 14:50:59 +02:00
Iceshrimp.NET.sln [frontend] Bootstrap shared DTOs, API abstractions, SignalR & more 2024-04-01 20:22:45 +02:00
Iceshrimp.NET.sln.DotSettings [sln] Update team-shared DotSettings 2024-09-20 17:53:38 +02:00
LICENSE Replace unicode quotes with regular quotes in LICENSE 2024-03-22 17:12:01 +01:00
Makefile [make] Remove self-contained flag, update help text 2024-09-06 16:49:15 +02:00
NuGet.Config [backend] Update dependencies 2024-10-18 19:50:02 +02:00
README.md [docs] Update README.md 2024-10-19 17:42:10 +02:00
SECURITY.md [docs] Add SECURITY.md 2024-10-23 04:49:26 +02:00

Iceshrimp

Iceshrimp is a decentralized and federated social networking service, implementing the ActivityPub standard.

  • Highlighted features:
    • All-new, blazingly fast & resource-efficient backend, powered by .NET
    • All-new frontend, powered by Blazor WASM
    • All-new, configurable, HTML-only public preview
    • Well-supported migration path from Iceshrimp-JS
    • So much more - Read the changelog and join the chat room to follow the development!
  • Don't like the Web UI? We test our Mastodon-compatible API against the following clients:
  • Project goals:
    • Provide a community-centric alternative to the big ActivityPub SNS projects
    • Strong focus on maintainability, stability & performance, as well as user choice and configurability
    • Prioritization bug fixes over features
  • Project anti-goals:
    • Flashy marketing
    • Commercialization of any kind
  • Want to set up an instance?
    • Have a look at the documentation & the feature comparison matrix!
    • Please note that we do not operate a "flagship instance", the only project-affiliated domains are iceshrimp.dev and iceshrimp.net.
  • Want to join development efforts?
  • Want to donate to the project?
    • Our frontend dev (Lilian) needs help paying for healthcare costs. You can contribute here. Money from the fund will be used for co-pays, and medical expenses not covered by insurance.

Note

This is beta software. The Mastodon client API is relatively complete, the frontend is rapidly improving. Nonetheless, we don't recommend to upgrade existing Iceshrimp-JS instances quite yet. Setting up new instances and reporting bugs is very appreciated, however, and will help us ensure eventual upgrades go as smoothly as possible.

If everything goes well, we estimate that there'll be a stable release by the end of 2024.


Shoutouts to JetBrains for providing us with free access to their awesome developer tools.