Skip to content

Revert core decider refactor - #41

Merged
sij411 merged 1 commit into
fedify-dev:mainfrom
sij411:feat/experiment/architecture
Jul 28, 2026
Merged

Revert core decider refactor#41
sij411 merged 1 commit into
fedify-dev:mainfrom
sij411:feat/experiment/architecture

Conversation

@sij411

@sij411 sij411 commented Jul 28, 2026

Copy link
Copy Markdown
Member

Temporarily restore the stateful core architecture so the HTTP signature runtime work can be evaluated and integrated before reconsidering the decision-based architecture separetely. This reverts the changes introduced by PR #39.

Assisted-by: Codex:gpt-5.6-sol

Summary by CodeRabbit

  • New Features

    • Added stateful federation handling for incoming follow requests and local note creation.
    • Follow requests can now record follower relationships, maintain delivery targets, and generate acceptance responses.
    • Local notes can be stored and delivered to known federation targets.
    • Runtime storage now persists generated federation actions.
  • Documentation

    • Updated documentation to clarify federation responsibilities and runtime capabilities.
    • Simplified server documentation and noted that signature verification and delivery remain planned capabilities.

Temporarily restore the stateful core architecture so the HTTP signature runtime work
can be evaluated and integrated before reconsidering the decision-based
architecture separetely. This reverts the changes introduced by PR fedify-dev#39.

Assisted-by: Codex:gpt-5.6-sol
@sij411
sij411 merged commit 664a218 into fedify-dev:main Jul 28, 2026
4 of 5 checks passed
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 561cb998-c863-43fb-8223-e40e82257ec7

📥 Commits

Reviewing files that changed from the base of the PR and between 8843ea6 and c2117a1.

📒 Files selected for processing (10)
  • README.md
  • crates/feder-core/README.md
  • crates/feder-core/src/lib.rs
  • crates/feder-core/tests/received_follow_decider.rs
  • crates/feder-runtime-server/README.md
  • crates/feder-runtime-server/src/app.rs
  • crates/feder-runtime-server/src/inbox.rs
  • crates/feder-runtime-server/src/storage/mod.rs
  • crates/feder-runtime-server/src/storage/sqlite.rs
  • examples/single-user-server/README.md

📝 Walkthrough

Walkthrough

The federation core now owns in-memory state, processes follow and note inputs, and returns runtime actions. The server wires this core into inbox handling, while SQLite persists follower-related actions through the updated storage interface.

Changes

Stateful federation flow

Layer / File(s) Summary
Core state and action model
crates/feder-core/src/lib.rs, README.md
FederCore now manages FederState, handles follows and local note creation, and emits storage and delivery actions.
Inbox integration and runtime wiring
crates/feder-runtime-server/src/app.rs, crates/feder-runtime-server/src/inbox.rs, crates/feder-runtime-server/README.md, examples/single-user-server/README.md
The server initializes a shared core, routes received follows through handle, and updates related runtime documentation and tests.
Action-based SQLite persistence
crates/feder-runtime-server/src/storage/mod.rs, crates/feder-runtime-server/src/storage/sqlite.rs
The storage contract now accepts actions, and SQLite persists follower and delivery-target data through action-based upserts.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

  • fedify-dev/feder#21: Introduces the portable stateful FederCore and Input/Action boundary expanded here.
  • fedify-dev/feder#37: Connects received Follow inbox handling to FederCore::handle.
  • fedify-dev/feder#38: Implements the SQLite-side persist_actions storage flow used by this refactor.

Suggested labels: enhancement, phase 1

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant