summaryrefslogtreecommitdiff
path: root/makima/frontend/src/lib
diff options
context:
space:
mode:
authorsoryu <soryu@soryu.co>2026-02-16 17:59:38 +0000
committerGitHub <noreply@github.com>2026-02-16 17:59:38 +0000
commitb3de779d87450033f1e0361144c621a1d5f1dbf8 (patch)
tree7cb84c2f953bf86f1dd3ec8ff305d70810ac55de /makima/frontend/src/lib
parent7d2079d7c13804766405af8044574bfc93a86897 (diff)
downloadsoryu-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.ts24
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();