Leave: share balance, balance-status and update results between CLI and MCP
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- csharp
- Ambito
- api, backend-api-design, cli
Direzione di ricerca
Start with RateLookupResult, LeaveCreateService.ApplyAsync, LeaveCreateResult, and the listed LeaveBalanceLookup, LeaveBalanceStatusResult, LeaveUpdateService.ApplyAsync, and LeaveBalanceImportService entry points. Trace how the CLI commands and MCP handlers currently serialize each result, then use the migration checklist and #62 to define done, including the 0.4.0 contract or PermittedDifferences handling.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Why
Leave create, update and list share services well. The remaining leave reads and the update result are still per-surface, and the difference is visible to agents:
GetLeaveBalance: a miss is{"error":"No leave stats found for …"}on MCP but{found:false, empId}with exit 0 ontp leave balance --json. A new starter with no leave history looks like a failure to an agent.GetLeaveBalanceStatusandleave balances statusduplicate theLastImportedAt == null → imported:falsebranch.LeaveUpdateService.ApplyAsyncreturns nothing, soUpdateCommandandUpdateLeaveeach hand-build the same{success, leaveId, changes}and dry-run objects.LeaveListServicereturns the envelope, but both adapters throw awaycancelledCountand paging (#62).ImportLeaveBalancesaddsmayHaveBeenApplied:trueon an uncertain import; the CLI emits a plain error for the same case.
Migrate
-
LeaveBalanceLookupreturningLeaveBalanceResult { found, empId, daysSinceLastLeave, leaveTakenInLast12Months }, used byleave balanceandGetLeaveBalance. -
LeaveBalanceStatusResultshared byleave balances statusandGetLeaveBalanceStatus. -
LeaveUpdateService.ApplyAsyncreturns aLeaveUpdateResult; both adapters serialise it. - One typed "may have been applied" outcome from
LeaveBalanceImportService, rendered the same way on both surfaces. - Fold in #62.
How
RateLookupResult for "a miss shares the hit's schema"; LeaveCreateService.ApplyAsync / LeaveCreateResult for the update result.
Contract
The MCP GetLeaveBalance miss and the leave-list envelope change shape: hold for 0.4.0 or declare them in PermittedDifferences until then.
Part of #38.
- Lingua principale
- C#
- Stelle
- 3
- Fork
- 0
- Merge medio
- 11m
- PR unite (30g)
- 4
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Nessuna guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di SSWConsulting/TimePro.Tools
-
Priority: P3 Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
SSWConsulting/TimePro.Tools#101 ·
-
Priority: P3 Type: Refactor
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
SSWConsulting/TimePro.Tools#100 ·
-
Accounting: share product, SKU, rate, unbilled and recurring reads (unbilled paging is a no-op)ApertaPriority: P3 Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Priority: P2 Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
-
Priority: P2 Type: Bug Type: Refactor
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
Tutte le issue di SSWConsulting/TimePro.Tools
Issue simili
-
area-TableView bug needs-triage team-Controls
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
microsoft/microsoft-ui-xaml#12351 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
AudioClient and ImageClient file path overloads send the full local path as the multipart file nameForse già presa @sebxt l’ha presa oggi. Apertaarea: audio area: images feature-request
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
openai/openai-dotnet#1453 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 73/100
I maintainer di solito rispondono entro 1 giorno
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
elsa-workflows/elsa-foundation#3130 ·
I maintainer di solito rispondono entro 1 giorno
-
遥测历史查询始终返回 HTTP 400,页面静默无结果Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100