Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
c2117a1
Revert core decider refactor
sij411 Jul 28, 2026
664a218
Merge pull request #41 from sij411/feat/experiment/architecture
sij411 Jul 28, 2026
4b4b109
Add actor cryptographic public keys
sij411 Jul 17, 2026
e4e559a
Add feature-gated, Fedify-compatible 4096-bit RSA actor keys to Fede…
sij411 Jul 17, 2026
6d251e3
Persist actor RSA key pairs in SQLite
sij411 Jul 19, 2026
5a6544a
Move runtime tests to integration tests
sij411 Jul 19, 2026
f5d6978
Persist actor key pairs during startup
sij411 Jul 19, 2026
aa359d2
Publish actor RSA public keys
sij411 Jul 19, 2026
a905e26
Execute outgoing activity deliveries
sij411 Jul 19, 2026
9835dc9
Sign outgoing ActivityPub requests
sij411 Jul 19, 2026
1f11b41
Include query strings in signed request targets
sij411 Jul 19, 2026
9436471
Harden outgoing ActivityPub delivery
sij411 Jul 19, 2026
e0a72d9
Rename outbound_network.rs to url.rs
sij411 Jul 19, 2026
1b7cbc0
Fetch ID-only Follow actors before core handling, persist their disco…
sij411 Jul 19, 2026
d4654b4
Verify incoming HTTP signatures
sij411 Jul 19, 2026
d5fe01c
Resolve signing keys independently from actors
sij411 Jul 19, 2026
4192b14
Accept public keys without an explicit type
sij411 Jul 19, 2026
4691fe4
Handle Undo Follow activities
sij411 Jul 20, 2026
160e70f
Add followers collection vocabulary
sij411 Jul 20, 2026
86a3101
Serve the followers collection
sij411 Jul 20, 2026
ac35ae5
Negotiate ActivityPub actor and follower responses
sij411 Jul 20, 2026
284774f
Mark negotiated 406 responses with Vary Accept
sij411 Jul 20, 2026
9776630
Compare supported representations during content negotiation
sij411 Jul 21, 2026
ad8d6fe
Expand Note addressing and representation fields
sij411 Jul 21, 2026
1cd7c28
Persist ActivityPub objects in the runtime store
sij411 Jul 21, 2026
db9b196
Serve persisted Notes through ActivityPub object routes
sij411 Jul 21, 2026
998e6f9
Coordinate local Note persistence and delivery in the runtime
sij411 Jul 21, 2026
e5a3ed0
Resolve Note recipients from persisted followers
sij411 Jul 21, 2026
ad07e50
Address Note delivery recipients
sij411 Jul 21, 2026
2f37216
Add Follow type and signed sender
sij411 Jul 22, 2026
d34c1f8
Add Follow test
sij411 Jul 22, 2026
d05b504
Add sending activities when actor is given
sij411 Jul 27, 2026
7c021a6
Send activities to to and cc
sij411 Jul 27, 2026
ef1cb71
Add to and cc delivery test
sij411 Jul 27, 2026
4415661
Add public only guard when getting object
sij411 Jul 27, 2026
0dffa37
Add visibility tests
sij411 Jul 27, 2026
0cbc265
Clear stale shared inbox on actor refresh
sij411 Jul 27, 2026
5866ea4
Protect SQLite signing keys on Unix
sij411 Jul 28, 2026
fe967fe
Continue delivery after actor resolution failures
sij411 Jul 28, 2026
b13d924
Deduplicate inboxes across outbound recipients
sij411 Jul 28, 2026
61449c0
Avoid duplicate delivery to direct followers
sij411 Jul 28, 2026
5180800
Parse inbox Content-Type as a media type
sij411 Jul 28, 2026
cea6b89
Bind inbox signatures to the configured host
sij411 Jul 29, 2026
43340ee
Return 202 Accepted before Follow-specific deserialization
sij411 Jul 29, 2026
c7833b3
Merge pull request #42 from sij411/feat/microblog
sij411 Jul 29, 2026
f56aaaf
Add temporary crates for refactoring
sij411 Jul 29, 2026
8f3f20f
Add new architecture applied crates
sij411 Jul 30, 2026
6ecc7c7
Move actor related features to actor.rs
sij411 Jul 30, 2026
f6283b2
Change function name
sij411 Jul 30, 2026
6eecb47
Add actor key pair primitives to reference core
sij411 Jul 31, 2026
8f4f8b0
Add WebFinger endpoint to reference server runtime
sij411 Jul 31, 2026
5e92f43
Add Follow handling to reference server runtime
sij411 Jul 31, 2026
1a461d3
Add server storage capability to reference core
sij411 Aug 1, 2026
91195ee
Add signed networking to reference server runtime
sij411 Aug 1, 2026
c23e283
Block deprecated IPv6 site-local destinations
sij411 Aug 1, 2026
d216b1f
Add follower removal storage capability
sij411 Aug 1, 2026
15571e5
Add pure Undo Follow transition
sij411 Aug 1, 2026
d8a6a3d
Handle Undo Follow activities in reference inbox
sij411 Aug 2, 2026
69ec638
Add shared inbox dispatch to reference runtime
sij411 Aug 2, 2026
a91b0bf
Expose followers collection in reference runtime
sij411 Aug 2, 2026
ea671ae
Add outbound Follow orchestration
sij411 Aug 2, 2026
7a9fc88
Confirm accepted outbound Follow relationships
sij411 Aug 2, 2026
3ea2b88
Add local Note creation and typed persistence
sij411 Aug 2, 2026
c888e69
Deliver Create activities to Note recipients
sij411 Aug 2, 2026
6789e07
Expose persisted public Notes
sij411 Aug 2, 2026
ad26128
Validate WebFinger against the configured handle host
sij411 Aug 2, 2026
c4aaed3
Verify signatures against the selected inbox endpoint
sij411 Aug 2, 2026
879aeb0
Make HTTP signatures optional in the reference core
sij411 Aug 2, 2026
17aa654
Use compact follower delivery targets
sij411 Aug 2, 2026
81b6fea
Add SQLite storage to the reference server
sij411 Aug 2, 2026
5b67083
Provision persistent actor signing keys
sij411 Aug 2, 2026
5d9521e
Migrate the single-user server to the reference runtime
sij411 Aug 2, 2026
2446f3e
Port migration coverage into the reference crate test suites
sij411 Aug 2, 2026
056c2cd
Promote the reference architecture to Feder's public crates
sij411 Aug 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 11 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,20 +75,23 @@ execution. The intended crate roles are:

- `feder-vocab`: Type-safe representations of Activity Vocabulary objects,
such as actors, notes, and activities.
- `feder-core`: The portable ActivityPub protocol engine, responsible for
protocol decisions and state transitions.
- Runtime crates: Platform-specific execution layers for networking, storage,
clocks, timers, async runtimes, and operating system or hardware
integration.
- `feder-core`: Portable ActivityPub protocol decisions and capability traits.
It derives transient outcomes from facts supplied by its caller and does
not retain protocol state.
- `feder-server`: The standard operating system runtime for HTTP networking,
SQLite storage, actor resolution, request verification, and activity
delivery.
- Future runtime crates: Platform-specific implementations for other async
runtimes, operating systems, or hardware environments.

When contributing to `feder-core`, avoid adding direct dependencies on HTTP
clients or servers, databases, filesystems, async runtimes, system clocks, or
platform-specific crates. Runtime crates may use those dependencies when
appropriate, but those choices should not leak into the portable core.

Core behaviour should generally be tested by feeding an input into the core and
asserting the returned actions. Core tests should not require real networking,
storage, or async execution.
Core behaviour should generally be tested by feeding stored facts and protocol
input into a core function and asserting the returned transient outcome. Core
tests should not require real networking, storage, or async execution.

### Git pre-commit hook

Expand Down
Loading