diff options
| author | soryu <soryu@soryu.co> | 2026-02-16 17:59:38 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-02-16 17:59:38 +0000 |
| commit | b3de779d87450033f1e0361144c621a1d5f1dbf8 (patch) | |
| tree | 7cb84c2f953bf86f1dd3ec8ff305d70810ac55de /makima/frontend/src/lib | |
| parent | 7d2079d7c13804766405af8044574bfc93a86897 (diff) | |
| download | soryu-b3de779d87450033f1e0361144c621a1d5f1dbf8.tar.gz soryu-b3de779d87450033f1e0361144c621a1d5f1dbf8.zip | |
Fix contracts page overflow, remove contract link from orders, add directive name (#65)
* feat: soryu-co/soryu - makima: Add frontend pick-up-orders button and API integration
* WIP: heartbeat checkpoint
* feat: soryu-co/soryu - makima: Remove contract link from orders and add directive name to order metadata (frontend)
* fix: contracts page overflow - use contained scrolling layout
Changed the contracts page to use contained scrolling matching the
orders/directives pages, preventing the page from growing beyond
viewport height.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix: resolve completion_task_id FK violation and duplicate button
The completion_task_id column has an FK to tasks(id), but
claim_directive_for_completion was being called with a placeholder UUID
that did not exist in the tasks table, causing FK constraint violations.
Fix: Create the task FIRST via create_task_for_owner, then use the real
task.id when calling claim_directive_for_completion. Applied in all three
locations: phase_completion Part 1 (idle directives), Part 3 (verification
tasks), and trigger_completion_task (manual PR creation).
Also removes a duplicate "Pick Up Orders" button in DirectiveDetail.tsx.
* fix: restore Order type changes lost during rebase conflict resolution
Re-apply changes from the orders-refactor commit that were dropped when
resolving rebase conflicts with --ours:
- Replace contractId with directiveName in Order interface
- Make directiveId required in CreateOrderRequest
- Remove contractId from UpdateOrderRequest
- Change listOrders parameter from contractId to search
- Remove linkOrderToContract function
- Simplify convertOrderToStep to single argument
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Diffstat (limited to 'makima/frontend/src/lib')
| -rw-r--r-- | makima/frontend/src/lib/api.ts | 24 |
1 files changed, 5 insertions, 19 deletions
diff --git a/makima/frontend/src/lib/api.ts b/makima/frontend/src/lib/api.ts index a496412..17bc20f 100644 --- a/makima/frontend/src/lib/api.ts +++ b/makima/frontend/src/lib/api.ts @@ -3295,7 +3295,7 @@ export interface Order { labels: string[]; directiveId: string | null; directiveStepId: string | null; - contractId: string | null; + directiveName: string | null; repositoryUrl: string | null; createdAt: string; updatedAt: string; @@ -3313,8 +3313,7 @@ export interface CreateOrderRequest { status?: OrderStatus; orderType?: OrderType; labels?: string[]; - directiveId?: string | null; - contractId?: string | null; + directiveId: string; repositoryUrl?: string | null; } @@ -3327,7 +3326,6 @@ export interface UpdateOrderRequest { labels?: string[]; directiveId?: string | null; directiveStepId?: string | null; - contractId?: string | null; repositoryUrl?: string | null; } @@ -3336,14 +3334,14 @@ export async function listOrders( type?: OrderType, priority?: OrderPriority, directiveId?: string, - contractId?: string, + search?: string, ): Promise<OrderListResponse> { const params = new URLSearchParams(); if (status) params.set("status", status); if (type) params.set("type", type); if (priority) params.set("priority", priority); if (directiveId) params.set("directiveId", directiveId); - if (contractId) params.set("contractId", contractId); + if (search) params.set("search", search); const qs = params.toString(); const res = await authFetch(`${API_BASE}/api/v1/orders${qs ? `?${qs}` : ""}`); if (!res.ok) throw new Error(`Failed to list orders: ${res.statusText}`); @@ -3391,21 +3389,9 @@ export async function linkOrderToDirective(orderId: string, directiveId: string) return res.json(); } -export async function linkOrderToContract(orderId: string, contractId: string): Promise<Order> { - const res = await authFetch(`${API_BASE}/api/v1/orders/${orderId}/link-contract`, { - method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ contractId }), - }); - if (!res.ok) throw new Error(`Failed to link order to contract: ${res.statusText}`); - return res.json(); -} - -export async function convertOrderToStep(orderId: string, directiveId: string): Promise<DirectiveStep> { +export async function convertOrderToStep(orderId: string): Promise<DirectiveStep> { const res = await authFetch(`${API_BASE}/api/v1/orders/${orderId}/convert-to-step`, { method: "POST", - headers: { "Content-Type": "application/json" }, - body: JSON.stringify({ directiveId }), }); if (!res.ok) throw new Error(`Failed to convert order to step: ${res.statusText}`); return res.json(); |
