Lock the right pane while focused, add project focus, quiet lead

This commit is contained in:
Ian Gulliver
2026-10-15 09:59:13 -07:00
parent bdd1ae48f0
commit fdd005b591
32 changed files with 576 additions and 227 deletions
+47 -1
View File
@@ -96,7 +96,7 @@ export interface paths {
cookie?: never;
};
get: operations["getFocus"];
/** @description Records the human switching the right pane's task or tab. The lead agent is told. */
/** @description Records the human switching the right pane's project, task or tab. */
put: operations["setFocus"];
post?: never;
delete?: never;
@@ -105,6 +105,23 @@ export interface paths {
patch?: never;
trace?: never;
};
"/api/me/pane-focus": {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
get?: never;
/** @description Records whether the human is working in the right pane. While they are, the lead agent can't move it. */
put: operations["setPaneFocus"];
post?: never;
delete?: never;
options?: never;
head?: never;
patch?: never;
trace?: never;
};
"/api/push/key": {
parameters: {
query?: never;
@@ -989,12 +1006,18 @@ export interface components {
created_at: string;
};
Focus: {
/** @description The project the right pane shows; the task's project when task_id is set */
project_id?: string;
/** @description The task the right pane shows; absent for none. */
task_id?: string;
/** @description The tabs the lead put first, in order. The other task tabs follow them. */
tabs: components["schemas"]["TaskTab"][];
tab: components["schemas"]["TaskTab"];
};
PaneFocus: {
/** @description True while the browser window has focus and the focused element is inside the right pane. */
focused: boolean;
};
/** @enum {string} */
TaskTab: "transcript" | "changes" | "files" | "inbox" | "todo";
Status: {
@@ -1307,6 +1330,29 @@ export interface operations {
404: components["responses"]["Error"];
};
};
setPaneFocus: {
parameters: {
query?: never;
header?: never;
path?: never;
cookie?: never;
};
requestBody: {
content: {
"application/json": components["schemas"]["PaneFocus"];
};
};
responses: {
/** @description Recorded. */
204: {
headers: {
[name: string]: unknown;
};
content?: never;
};
400: components["responses"]["Error"];
};
};
getPushKey: {
parameters: {
query?: never;