Timesheets: finish CLI/MCP sharing (ts copy bypasses the create service, delete, read document, check summary)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
- Issue type
- Refactor
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- csharp
- Domain
- api, cli, testing-qa
Research direction
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.
Written by the indexing model from the issue text.
Description
Why
Create, update and accept are genuinely shared. What is left on the timesheet side:
ts copybypassesTimesheetCreateService. It builds its ownTimesheetRequest(no sell price, the source row'sCategorycopied intoCategoryIdrather than resolved, no rate check, no read-back), counts aSuccess=falseresponse as copied and exits 0, reports the normal empty success body as "Failed: Unknown error", and skips the confirmation on--jsonwithout--yes. CLAUDE.md says a create request is never built outside the service.GetTimesheetsdrops fields agents need. The MCP projection omitsiteration/iterationId, category,less, location id and billable flags.UpdateTimesheetandAcceptSuggestedTimesheettake 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 checksummary and--strictverdict are computed only inCheckCommand(CheckEvaluator.Summarize);CheckWeekhas no summary or strict field.ts getfor a single day does not go throughTimesheetLookup.
Migrate
-
ts copy: oneTimesheetCreateService.PrepareAsync/ApplyAsyncper row; count only verified outcomes; exit non-zero on any failed row; require--yeson--json; tests for success,Success=falseand partial failure. -
TimesheetDeleteService(guard + delete + result) used byts deleteandDeleteTimesheet; dropDeleteTimesheetfromTimesheetToolsUsingApiDirectly. - One timesheet-row document for
ts get --jsonandGetTimesheets(keep the weekend policy an explicit argument). - Put the summary line and strict verdict in
WeekCheckResult. -
ts get <date>reads throughTimesheetLookup.
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.
- Dominant language
- C#
- Stars
- 3
- Forks
- 0
- Avg merge
- 7m
- Merged PRs (30d)
- 30
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- No pull request template
- No 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 SSWConsulting/TimePro.Tools
-
Priority: P3 Type: Refactor
Difficulty 5/5 Over a week Newbie friendliness 38/100
SSWConsulting/TimePro.Tools#101 ·
Maintainers usually reply within 1 day
-
Priority: P3 Type: Refactor
Difficulty 4/5 3-5 days Newbie friendliness 42/100
SSWConsulting/TimePro.Tools#100 ·
Maintainers usually reply within 1 day
-
Accounting: share product, SKU, rate, unbilled and recurring reads (unbilled paging is a no-op)OpenPriority: P3 Type: Refactor
Difficulty 5/5 Over a week Newbie friendliness 35/100
SSWConsulting/TimePro.Tools#99 ·
Maintainers usually reply within 1 day
-
Priority: P2 Type: Refactor
Difficulty 5/5 Over a week Newbie friendliness 35/100
SSWConsulting/TimePro.Tools#98 ·
Maintainers usually reply within 1 day
-
Priority: P2 Type: Feature
Difficulty 4/5 3-5 days Newbie friendliness 55/100
SSWConsulting/TimePro.Tools#96 ·
Maintainers usually reply within 1 day
All issues in SSWConsulting/TimePro.Tools
Similar issues
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
Maintainers usually reply within 1 day
-
:watch: Not Triaged aspnet-core/svc fundamentals/subsvc Source - Docs.ms
Difficulty 1/5 Under an hour Newbie friendliness 85/100
dotnet/AspNetCore.Docs#37785 ·
Maintainers usually reply within 1 day
-
needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 66/100
Azure/azure-sdk-tools#17204 ·
Maintainers usually reply within 1 day
-
Проблема с Dotnet RUOpenarea-tutorials needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
dotnet/website-feedback#1779 ·
-
[Bug] SwipeControl in Execute mode with more than one item replaces the whole UI with an error panelPossibly taken A pull request linked to this issue is open or already merged. Openbug needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
microsoft/microsoft-ui-reactor#1344 ·
Maintainers usually reply within 1 day