arch: IIncidentSession/IUiDispatcher/ITrustStore live in LageBuch.Sync; collapse the 5-file-per-operation session ceremony
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
Research direction
Start with the architecture review and inspect src/LageBuch.Sync/IIncidentSession.cs, LocalIncidentSession, RemoteIncidentSession, SyncCommand, and CommandApplier; the issue names no file paths for the latter four. Trace how view-models and the host apply commands, then assess the proposed interface move and session consolidation. Done means the session abstractions are owned by AppLogic or a contracts project and the local/remote operation surface is consolidated as described.
Written by the indexing model from the issue text.
Description
From the 2026-09-09 architecture review of main (35d86e1). Related: the "Local/Remote session lockstep" item still open in #167.
IIncidentSession (src/LageBuch.Sync/IIncidentSession.cs:22), the application layer's primary port that every view-model drives, lives in LageBuch.Sync together with IUiDispatcher and ITrustStore. AppLogic therefore depends on the sync assembly for its core abstraction, and LocalIncidentSession (in AppLogic) implements an interface owned by Sync.
Adding one domain operation today touches five files: the interface, the LocalIncidentSession forwarder, the RemoteIncidentSession forwarder, a SyncCommand record and a CommandApplier case.
Proposal
- Move
IIncidentSession,IUiDispatcherandITrustStoreto AppLogic (or aLageBuch.Contractsproject); Sync implements them. - Collapse the session surface: let
LocalIncidentSessionapplySyncCommands throughCommandApplierexactly as the host does, so the interface becomesApply(SyncCommand)plus the three file operations and the lifecycle members. View-models then construct commands, and the local/remote split is one method instead of ~40.
- Dominant language
- C#
- Stars
- 1
- Forks
- 3
- Avg merge
- 4h 34m
- Merged PRs (30d)
- 182
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from CodeForFire/lagebuch
-
bug ux
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
CodeForFire/lagebuch#714 ·
Maintainers usually reply within 1 day
-
bug ux
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
CodeForFire/lagebuch#713 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
CodeForFire/lagebuch#405 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CodeForFire/lagebuch#349 ·
Maintainers usually reply within 1 day
-
documentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
CodeForFire/lagebuch#348 ·
Maintainers usually reply within 1 day
All issues in CodeForFire/lagebuch
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
KnifeLemon/Filee#363 ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
-
area-Native untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
dotnet/machinelearning#7837 ·
Maintainers usually reply within 2 days