Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Timesheets: finish CLI/MCP sharing (ts copy bypasses the create service, delete, read document, check summary)

Aperta
#97 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
5/5
Tempo stimato
Più di una settimana
Idoneità per principianti
38/100
Tipo di issue
Refactoring
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp
Ambito
api, cli, testing-qa

Direzione di ricerca

Read TimesheetUpdateService and TimesheetAcceptService as patterns, then trace ts copy, ts delete, DeleteTimesheet, GetTimesheets, CheckCommand/CheckWeek, and single-day ts get. The work is done when the listed service migrations, shared documents, summary and strict fields, lookup path, and copy success/failure tests are complete without breaking the stated MCP wire changes.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Priority: P2 Type: Bug Type: Refactor

Why

Create, update and accept are genuinely shared. What is left on the timesheet side:

  • ts copy bypasses TimesheetCreateService. It builds its own TimesheetRequest (no sell price, the source row's Category copied into CategoryId rather than resolved, no rate check, no read-back), counts a Success=false response as copied and exits 0, reports the normal empty success body as "Failed: Unknown error", and skips the confirmation on --json without --yes. CLAUDE.md says a create request is never built outside the service.
  • GetTimesheets drops fields agents need. The MCP projection omits iteration/iterationId, category, less, location id and billable flags. UpdateTimesheet and AcceptSuggestedTimesheet take an iteration, but an agent cannot read a row's current one.
  • Delete shares only the suggestion guard; guard → DELETE → result is written twice (DeleteCommand, DeleteTimesheet).
  • ts check summary and --strict verdict are computed only in CheckCommand (CheckEvaluator.Summarize); CheckWeek has no summary or strict field.
  • ts get for a single day does not go through TimesheetLookup.

Migrate

  • ts copy: one TimesheetCreateService.PrepareAsync/ApplyAsync per row; count only verified outcomes; exit non-zero on any failed row; require --yes on --json; tests for success, Success=false and partial failure.
  • TimesheetDeleteService (guard + delete + result) used by ts delete and DeleteTimesheet; drop DeleteTimesheet from TimesheetToolsUsingApiDirectly.
  • One timesheet-row document for ts get --json and GetTimesheets (keep the weekend policy an explicit argument).
  • Put the summary line and strict verdict in WeekCheckResult.
  • ts get <date> reads through TimesheetLookup.

How

TimesheetUpdateService / TimesheetAcceptService are the pattern. The copy change and the delete service are patch-safe; the GetTimesheets document and the CheckWeek fields are MCP wire changes for 0.4.0.

Part of #38.

Lingua principale
C#
Stelle
3
Fork
0
Merge medio
28m
PR unite (30g)
31

Preparare l'ambiente

Apri in Codespaces

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

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di SSWConsulting/TimePro.Tools

Tutte le issue di SSWConsulting/TimePro.Tools

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.