[Bug] API Contract vs Implementation Mismatch - Invoice Creation Endpoint #4
Labels
No labels
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-implement
blocked:gate-plan
blocked:needs-attention
blocked:needs-decision
blocked:needs-human
blocked:no-procedure
blocked:preflight
bug
feature-request
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-task
quickfix
security/medium
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/msp_c2#4
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Issue
There's a discrepancy between the API contract documentation and the actual implementation for invoice creation.
Details
API Contract (
docs/api_contract.mdline 87):Current Implementation (
backend/api/v1/endpoints/invoices.py):Looking at the router, invoices are primarily created via:
Questions
POST /invoicesmeant to be a standalone invoice creation endpoint?from-ticketendpoint remain as-is, or be refactored?POST /invoices?Proposed Resolution
Option A: Implement standalone
POST /invoicesfor manual invoice creationOption B: Update API contract to reflect current implementation
Option C: Support both methods with clear documentation
Acceptance Criteria
Priority
🟡 MEDIUM
Effort Estimate
Low (1-2 days)
Needs architectural decision: standalone POST /invoices endpoint vs only from-ticket. The two open questions in the issue need resolution before implementation.
🤖 Claimed by
gsd-issue-fixer-msp_c2-4— starting work🤖 Claimed by
gsd-issue-fixer-msp_c2-4— starting work🤖 Claimed by
gsd-issue-fixer-msp_c2-4— starting work🤖 Claimed by
gsd-issue-fixer-msp_c2-4— starting work🤖 [
gsd-issue-fixer-msp_c2-4] still working — claimed — starting pipeline🤖 [
gsd-issue-fixer-msp_c2-4] still working — claimed — starting pipeline🤖 [
gsd-issue-fixer-msp_c2-4] still working — claimed — starting pipeline🤖 [
gsd-issue-fixer-msp_c2-4] still working — claimed — starting pipeline🤖 [
gsd-issue-fixer-msp_c2-4] still working — research🤖 [
gsd-issue-fixer-msp_c2-4] still working — researchGSD pipeline blocked at RESEARCH: prerequisite gate (fetch) not passed.
Pipeline state needs reset. Check if another run is in progress.
GSD pipeline blocked at RESEARCH: prerequisite gate (fetch) not passed.
Pipeline state needs reset. Check if another run is in progress.
🤖 [
gsd-issue-fixer-msp_c2-4] still working — plan🤖 [
gsd-issue-fixer-msp_c2-4] still working — plan🤖 [
gsd-issue-fixer-msp_c2-4] still working — implement attempt 1GSD VERIFY phase found no changes after implementation.
Worker output: ]11;?\API call failed after 3 retries: HTTP 404: 404 page not found
Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Auto-triage: needs decompose
Marked
triage-approved+needs-decompose. decompose-executor will pick this up and break it into implementable sub-issues.Closed by overseer: issue already resolved by commit
86ac2a6on main (1 commit ahead of origin).Acceptance criteria satisfied:
Uncommitted working-tree changes relate to other issues (#32 SLA / webhooks) and are out of scope for #4.