Skip to content

Refactor client architecture from inheritance to composition#12

Merged
VoxSecundus merged 2 commits intomainfrom
feature/composition-client-architecture
Apr 12, 2026
Merged

Refactor client architecture from inheritance to composition#12
VoxSecundus merged 2 commits intomainfrom
feature/composition-client-architecture

Conversation

@VoxSecundus
Copy link
Copy Markdown
Owner

Summary

  • Replace Client → AuthenticatableClient → UserClient/ListenClient inheritance hierarchy with composition
  • Overhear::Client validates the token once and lazily exposes service objects (client.listens, client.user)
  • HttpConnection owns Faraday HTTP primitives and is injected into service objects rather than inherited from
  • New service classes live under lib/overhear/services/ — adding future API groups means adding a new service file and accessor, with no class length pressure

@VoxSecundus VoxSecundus force-pushed the feature/composition-client-architecture branch from 669830a to 9d643f2 Compare April 12, 2026 20:06
@VoxSecundus VoxSecundus merged commit 570f1b0 into main Apr 12, 2026
1 check passed
@VoxSecundus VoxSecundus deleted the feature/composition-client-architecture branch April 12, 2026 20:07
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