Q176: onboarding progress survives a restart, and an unfinished setup reopens
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
43dcb1e7d3
commit
fd79f059ca
20 files changed
+341
-71
No files matched your search
@@ -15,6 +15,21 @@ export interface BootstrapOnboardingInput {
|
||||
providerModel: string;
|
||||
}
|
||||
|
||||
/** The unfinished wizard as saved between launches; it has no key field, so a key is never stored before launch. */
|
||||
export interface OnboardingDraft {
|
||||
step: "welcome" | "provider" | "company" | "mode" | "mission";
|
||||
companyName: string;
|
||||
companyDescription: string;
|
||||
employeeName: string;
|
||||
workspacePath: string;
|
||||
executionMode: "ai_ceo" | "ai_cofounder";
|
||||
providerKey: string;
|
||||
providerBaseUrl: string;
|
||||
providerModel: string;
|
||||
goalTitle: string;
|
||||
goalDescription: string;
|
||||
}
|
||||
|
||||
export interface BootstrapOnboardingSummary {
|
||||
orgId: string;
|
||||
employeeId: string;
|
||||
|
||||
@@ -74,6 +74,7 @@ import type {
|
||||
SaveProviderCredentialInput,
|
||||
SetProviderModelInput,
|
||||
ProviderEndpoint,
|
||||
OnboardingDraft,
|
||||
ProviderDisconnectImpact,
|
||||
ConnectComposioToolkitInput,
|
||||
ConnectComposioToolkitResult,
|
||||
@@ -122,6 +123,8 @@ export interface DesktopApi {
|
||||
loadSnapshot(): Promise<DesktopResult<AppSnapshot>>;
|
||||
/** Restarts the app, which a display-language change needs; the user asks for it after seeing what it interrupts. */
|
||||
relaunchApp(): Promise<DesktopResult<null>>;
|
||||
saveOnboardingDraft(input: { draft: OnboardingDraft | null }): Promise<DesktopResult<null>>;
|
||||
completeSetup(input: { orgId: string }): Promise<DesktopResult<AppSnapshot>>;
|
||||
/** Every agent session running now, in every company: what a restart interrupts. */
|
||||
runningSessionCount(): Promise<DesktopResult<number>>;
|
||||
bootstrapOnboarding(input: BootstrapOnboardingInput): Promise<DesktopResult<BootstrapOnboardingSummary>>;
|
||||
|
||||
@@ -50,6 +50,8 @@ export interface OrganizationRecord {
|
||||
auditModelId: string | null;
|
||||
/** The language its agents work in unless a task sets its own. */
|
||||
workLanguage: WorkLanguage;
|
||||
/** When the steps after creation (connectors) were finished; null reopens the setup wizard. */
|
||||
setupCompletedAt: string | null;
|
||||
createdAt: string;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
export const IPC_CHANNELS = {
|
||||
loadSnapshot: "agentcompany:load-snapshot",
|
||||
relaunchApp: "agentcompany:relaunch-app",
|
||||
saveOnboardingDraft: "agentcompany:save-onboarding-draft",
|
||||
completeSetup: "agentcompany:complete-setup",
|
||||
runningSessionCount: "agentcompany:running-session-count",
|
||||
bootstrapOnboarding: "agentcompany:bootstrap-onboarding",
|
||||
setActiveOrganization: "agentcompany:set-active-organization",
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import type { OnboardingDraft } from "./commands";
|
||||
import type { UsageStatsRecord } from "./usage-stats";
|
||||
import type { IntegrationKeyStatus } from "./commands/integration-keys";
|
||||
import type { BoardInterventionRecord as BoardInterventionRecordModel } from "./board-domain";
|
||||
@@ -70,6 +71,8 @@ export interface UiPreferences {
|
||||
export interface AppSnapshot {
|
||||
activeOrgId: string | null;
|
||||
uiPreferences: UiPreferences;
|
||||
/** The setup wizard left unfinished, resumed on the next launch. */
|
||||
onboardingDraft: OnboardingDraft | null;
|
||||
/** True while the operator has paused the autonomous run engine. */
|
||||
autonomousPaused: boolean;
|
||||
integrationKeys: IntegrationKeyStatus[];
|
||||
|
||||
Reference in new issue
Block a user