Add rollback snapshot controls

This commit is contained in:
ZacharyZhang-NY committed 2026-05-23 18:57:18 -04:00
1 parent 6768d19239
commit 89763592de
19 files changed
+551 -7

No files matched your search

+13
View File
@@ -211,6 +211,19 @@ export interface CreateMigrationReportInput {
sourceDatabasePath: string;
}
export interface CreateRollbackSnapshotInput {
orgId: string;
migrationReportId: string;
createdByEmployeeId: string;
}
export interface SetRollbackSnapshotActiveInput {
orgId: string;
snapshotId: string;
active: boolean;
employeeId: string;
}
export interface SearchInput {
orgId: string;
employeeId: string;
@@ -16,6 +16,7 @@ import type {
CreateOrganizationInput,
CreateProviderResponseInput,
CreateRetentionFreezeInput,
CreateRollbackSnapshotInput,
CreateScheduledPostInput,
CreateSocialAccountInput,
CreateTaskInput,
@@ -38,6 +39,7 @@ import type {
SetFeatureFlagInput,
SetLegalHoldStateInput,
SetPrBotGateInput,
SetRollbackSnapshotActiveInput,
SetRetentionFreezeStateInput,
SetScheduledPostStateInput,
SyncEmployeeIdentityInput,
@@ -81,6 +83,8 @@ export interface DesktopApi {
importFile(input: ImportFileInput): Promise<DesktopResult<AppSnapshot>>;
setFilePinned(input: SetFilePinnedInput): Promise<DesktopResult<AppSnapshot>>;
createMigrationReport(input: CreateMigrationReportInput): Promise<DesktopResult<AppSnapshot>>;
createRollbackSnapshot(input: CreateRollbackSnapshotInput): Promise<DesktopResult<AppSnapshot>>;
setRollbackSnapshotActive(input: SetRollbackSnapshotActiveInput): Promise<DesktopResult<AppSnapshot>>;
setFeatureFlag(input: SetFeatureFlagInput): Promise<DesktopResult<AppSnapshot>>;
runChaosDrill(input: RunChaosDrillInput): Promise<DesktopResult<AppSnapshot>>;
runSdlcReview(input: RunSdlcReviewInput): Promise<DesktopResult<AppSnapshot>>;
+3
View File
@@ -5,6 +5,7 @@ import type { AccessDecisionRecord, EmployeeIdentityRecord, RoleGrantRecord, Ser
import type { ApprovalAssignmentRecord, ApprovalRoutingRuleRecord, HiringPolicyRecord, OrgDepartmentRecord } from "./org-governance-domain";
import type { ChaosDrillRecord, ChaosDrillRunRecord, FeatureFlagRecord, OperationalEventRecord, SloTargetRecord } from "./operations-domain";
import type { ProviderDataPolicy, ProviderExecutionMode } from "./provider-policy-domain";
import type { RollbackSnapshotRecord } from "./rollback-domain";
import type { EvalCaseRecord, EvalRunRecord, EvalSuiteRecord, PrBotGateRecord, SdlcReviewAgentRecord, SdlcReviewRunRecord } from "./sdlc-domain";
export { BOARD_INTERVENTION_ACTION, BOARD_INTERVENTION_MODE, CHAT_THREAD_BOARD_STATE, type BoardInterventionAction, type BoardInterventionMode, type BoardInterventionRecord, type ChatThreadBoardState } from "./board-domain";
export type { AuditReplayRunRecord } from "./audit-domain";
@@ -13,6 +14,7 @@ export { ACCESS_DECISION, IDENTITY_SOURCE, ROLE_KEY, type AccessDecision, type A
export { ROUTE_TO_TYPE, type ApprovalAssignmentRecord, type ApprovalRoutingRuleRecord, type HiringPolicyRecord, type OrgDepartmentRecord, type RouteToType } from "./org-governance-domain";
export { CHAOS_DRILL_SCENARIO, CHAOS_DRILL_STATE, FEATURE_FLAG_KEY, SLO_SIGNAL_KEY, type ChaosDrillRecord, type ChaosDrillRunRecord, type ChaosDrillScenario, type ChaosDrillState, type FeatureFlagKey, type FeatureFlagRecord, type OperationalEventRecord, type SloSignalKey, type SloTargetRecord } from "./operations-domain";
export { PROVIDER_DATA_POLICY, PROVIDER_EXECUTION_MODE, type ProviderDataPolicy, type ProviderExecutionMode } from "./provider-policy-domain";
export type { RollbackSnapshotRecord } from "./rollback-domain";
export { EVAL_SUITE_KEY, PR_BOT_GATE_KEY, SDLC_REVIEW_AGENT_KEY, SDLC_REVIEW_TARGET_TYPE, SDLC_RUN_STATE, type EvalCaseRecord, type EvalRunRecord, type EvalSuiteKey, type EvalSuiteRecord, type PrBotGateKey, type PrBotGateRecord, type SdlcReviewAgentKey, type SdlcReviewAgentRecord, type SdlcReviewRunRecord, type SdlcReviewTargetType, type SdlcRunState } from "./sdlc-domain";
export { SEARCH_ENTITY_TYPES, type SearchEntityType, type SearchResultRecord } from "./search-domain";
export const TASK_STATUS = { BACKLOG: "backlog", IN_PROGRESS: "in_progress", REVIEW: "review", DONE: "done" } as const;
@@ -474,6 +476,7 @@ export interface AppSnapshot {
browserActions: BrowserActionRecord[];
policyRules: PolicyRuleRecord[];
migrationReports: MigrationReportRecord[];
rollbackSnapshots: RollbackSnapshotRecord[];
complianceExports: ComplianceExportRecord[]; legalHolds: LegalHoldRecord[]; retentionFreezes: RetentionFreezeRecord[];
employeeIdentities: EmployeeIdentityRecord[]; serviceIdentities: ServiceIdentityRecord[]; roleGrants: RoleGrantRecord[]; accessDecisions: AccessDecisionRecord[];
orgDepartments: OrgDepartmentRecord[]; hiringPolicies: HiringPolicyRecord[]; approvalRoutingRules: ApprovalRoutingRuleRecord[]; approvalAssignments: ApprovalAssignmentRecord[];
+2
View File
@@ -30,6 +30,8 @@ export const IPC_CHANNELS = {
importFile: "agentcompany:import-file",
setFilePinned: "agentcompany:set-file-pinned",
createMigrationReport: "agentcompany:create-migration-report",
createRollbackSnapshot: "agentcompany:create-rollback-snapshot",
setRollbackSnapshotActive: "agentcompany:set-rollback-snapshot-active",
setFeatureFlag: "agentcompany:set-feature-flag",
runChaosDrill: "agentcompany:run-chaos-drill",
runSdlcReview: "agentcompany:run-sdlc-review",
@@ -0,0 +1,16 @@
export interface RollbackSnapshotRecord {
id: string;
orgId: string;
migrationReportId: string;
sourceDatabasePath: string;
sourceFingerprint: string;
sourceDatabaseSha256: string;
workspaceManifestJson: string;
workspaceManifestSha256: string;
deltaJournalJson: string;
restorePlanJson: string;
active: boolean;
createdByEmployeeId: string | null;
createdAt: string;
activatedAt: string | null;
}