Push-driven checkout diff subscriptions for changes sidebar (#24)
* Implement push-driven checkout diff subscriptions * Remove legacy checkout diff polling RPC * Fix checkout diff watcher coverage and fallback refresh
This commit is contained in:
@@ -707,13 +707,19 @@ export const CheckoutStatusRequestSchema = z.object({
|
||||
requestId: z.string(),
|
||||
});
|
||||
|
||||
export const CheckoutDiffRequestSchema = z.object({
|
||||
type: z.literal("checkout_diff_request"),
|
||||
export const SubscribeCheckoutDiffRequestSchema = z.object({
|
||||
type: z.literal("subscribe_checkout_diff_request"),
|
||||
subscriptionId: z.string(),
|
||||
cwd: z.string(),
|
||||
compare: CheckoutDiffCompareSchema,
|
||||
requestId: z.string(),
|
||||
});
|
||||
|
||||
export const UnsubscribeCheckoutDiffRequestSchema = z.object({
|
||||
type: z.literal("unsubscribe_checkout_diff_request"),
|
||||
subscriptionId: z.string(),
|
||||
});
|
||||
|
||||
export const CheckoutCommitRequestSchema = z.object({
|
||||
type: z.literal("checkout_commit_request"),
|
||||
cwd: z.string(),
|
||||
@@ -987,7 +993,8 @@ export const SessionInboundMessageSchema = z.discriminatedUnion("type", [
|
||||
AgentPermissionResponseMessageSchema,
|
||||
GitDiffRequestSchema,
|
||||
CheckoutStatusRequestSchema,
|
||||
CheckoutDiffRequestSchema,
|
||||
SubscribeCheckoutDiffRequestSchema,
|
||||
UnsubscribeCheckoutDiffRequestSchema,
|
||||
CheckoutCommitRequestSchema,
|
||||
CheckoutMergeRequestSchema,
|
||||
CheckoutMergeFromBaseRequestSchema,
|
||||
@@ -1455,16 +1462,25 @@ export const CheckoutStatusResponseSchema = z.object({
|
||||
]),
|
||||
});
|
||||
|
||||
export const CheckoutDiffResponseSchema = z.object({
|
||||
type: z.literal("checkout_diff_response"),
|
||||
payload: z.object({
|
||||
cwd: z.string(),
|
||||
files: z.array(ParsedDiffFileSchema),
|
||||
error: CheckoutErrorSchema.nullable(),
|
||||
const CheckoutDiffSubscriptionPayloadSchema = z.object({
|
||||
subscriptionId: z.string(),
|
||||
cwd: z.string(),
|
||||
files: z.array(ParsedDiffFileSchema),
|
||||
error: CheckoutErrorSchema.nullable(),
|
||||
});
|
||||
|
||||
export const SubscribeCheckoutDiffResponseSchema = z.object({
|
||||
type: z.literal("subscribe_checkout_diff_response"),
|
||||
payload: CheckoutDiffSubscriptionPayloadSchema.extend({
|
||||
requestId: z.string(),
|
||||
}),
|
||||
});
|
||||
|
||||
export const CheckoutDiffUpdateSchema = z.object({
|
||||
type: z.literal("checkout_diff_update"),
|
||||
payload: CheckoutDiffSubscriptionPayloadSchema,
|
||||
});
|
||||
|
||||
export const CheckoutCommitResponseSchema = z.object({
|
||||
type: z.literal("checkout_commit_response"),
|
||||
payload: z.object({
|
||||
@@ -1800,7 +1816,8 @@ export const SessionOutboundMessageSchema = z.discriminatedUnion("type", [
|
||||
AgentArchivedMessageSchema,
|
||||
GitDiffResponseSchema,
|
||||
CheckoutStatusResponseSchema,
|
||||
CheckoutDiffResponseSchema,
|
||||
SubscribeCheckoutDiffResponseSchema,
|
||||
CheckoutDiffUpdateSchema,
|
||||
CheckoutCommitResponseSchema,
|
||||
CheckoutMergeResponseSchema,
|
||||
CheckoutMergeFromBaseResponseSchema,
|
||||
@@ -1909,8 +1926,16 @@ export type GitDiffRequest = z.infer<typeof GitDiffRequestSchema>;
|
||||
export type GitDiffResponse = z.infer<typeof GitDiffResponseSchema>;
|
||||
export type CheckoutStatusRequest = z.infer<typeof CheckoutStatusRequestSchema>;
|
||||
export type CheckoutStatusResponse = z.infer<typeof CheckoutStatusResponseSchema>;
|
||||
export type CheckoutDiffRequest = z.infer<typeof CheckoutDiffRequestSchema>;
|
||||
export type CheckoutDiffResponse = z.infer<typeof CheckoutDiffResponseSchema>;
|
||||
export type SubscribeCheckoutDiffRequest = z.infer<
|
||||
typeof SubscribeCheckoutDiffRequestSchema
|
||||
>;
|
||||
export type UnsubscribeCheckoutDiffRequest = z.infer<
|
||||
typeof UnsubscribeCheckoutDiffRequestSchema
|
||||
>;
|
||||
export type SubscribeCheckoutDiffResponse = z.infer<
|
||||
typeof SubscribeCheckoutDiffResponseSchema
|
||||
>;
|
||||
export type CheckoutDiffUpdate = z.infer<typeof CheckoutDiffUpdateSchema>;
|
||||
export type CheckoutCommitRequest = z.infer<typeof CheckoutCommitRequestSchema>;
|
||||
export type CheckoutCommitResponse = z.infer<typeof CheckoutCommitResponseSchema>;
|
||||
export type CheckoutMergeRequest = z.infer<typeof CheckoutMergeRequestSchema>;
|
||||
|
||||
Reference in New Issue
Block a user