Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

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

Abierto
#97 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
38/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
api, cli, testing-qa

Línea de trabajo

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.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

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.

Lenguaje dominante
C#
Estrellas
3
Forks
0
Merge medio
7 min
PR fusionados (30 d)
30

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

  • Sin Dockerfile ni archivo de Docker Compose
  • Sin plantilla de pull request
  • Sin guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de SSWConsulting/TimePro.Tools

Todos los issues de SSWConsulting/TimePro.Tools

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.