Rebuild AgentCompany-New renderer to match design spec

- Port design tokens, sidebar, topbar, and icons to inline SVG set
- Rewrite each page (Home/Team/Work/Chat/Files/Approvals/Social/Settings)
  to drive real snapshot data and match the bento, kanban, three-pane chat,
  file tree + pinned cards, approval queue, social schedule + calendar,
  and settings sub-nav layouts
- Split Chat and Settings into per-concern subcomponents so every file
  stays under 500 lines
- Add schema v4 for pinned files and scheduled posts plus IPC + service
  wiring; cover new behavior in unit tests
- Update onboarding labels and Hire form to remove ambiguity for the
  expanded e2e suite (all settings tabs + 8 routes at 1280 and 980)
This commit is contained in:
ZacharyZhang-NY committed 2026-05-21 19:42:38 -04:00
1 parent 00736d5719
commit 74266566b7
47 files changed
+4609 -1552

No files matched your search

+21
View File
@@ -143,6 +143,27 @@ export interface CreateMigrationReportInput {
sourceDatabasePath: string;
}
export interface CreateScheduledPostInput {
orgId: string;
socialAccountId: string;
bodyMd: string;
scheduledFor: string;
state: "draft" | "scheduled";
createdByEmployeeId: string | null;
}
export interface SetScheduledPostStateInput {
orgId: string;
scheduledPostId: string;
state: "draft" | "scheduled" | "published" | "cancelled";
}
export interface SetFilePinnedInput {
orgId: string;
fileId: string;
pinned: boolean;
}
export interface BootstrapOnboardingInput {
companyName: string;
companyDescription: string;
@@ -10,6 +10,7 @@ import type {
CreateMigrationReportInput,
CreateOrganizationInput,
CreateProviderResponseInput,
CreateScheduledPostInput,
CreateSocialAccountInput,
CreateTaskInput,
DecideApprovalInput,
@@ -19,6 +20,8 @@ import type {
ResolveAgentSkillsInput,
SaveProviderCredentialInput,
SendMessageInput,
SetFilePinnedInput,
SetScheduledPostStateInput,
UpdateTaskStatusInput,
} from "./commands";
@@ -44,7 +47,10 @@ export interface DesktopApi {
resolveAgentSkills(input: ResolveAgentSkillsInput): Promise<DesktopResult<AppSnapshot>>;
createSocialAccount(input: CreateSocialAccountInput): Promise<DesktopResult<AppSnapshot>>;
launchSocialLogin(input: LaunchSocialLoginInput): Promise<DesktopResult<null>>;
createScheduledPost(input: CreateScheduledPostInput): Promise<DesktopResult<AppSnapshot>>;
setScheduledPostState(input: SetScheduledPostStateInput): Promise<DesktopResult<AppSnapshot>>;
importFile(input: ImportFileInput): Promise<DesktopResult<AppSnapshot>>;
setFilePinned(input: SetFilePinnedInput): Promise<DesktopResult<AppSnapshot>>;
createMigrationReport(input: CreateMigrationReportInput): Promise<DesktopResult<AppSnapshot>>;
subscribe(callback: (event: RendererEvent) => void): () => void;
platform: "win32" | "darwin" | "linux";
+17
View File
@@ -234,7 +234,23 @@ export interface FileObjectRecord {
storagePath: string;
ownerType: "employee" | "agent" | "system";
ownerId: string | null;
spaceId: string | null;
pinned: boolean;
createdAt: string;
updatedAt: string | null;
}
export interface ScheduledPostRecord {
id: string;
orgId: string;
socialAccountId: string;
bodyMd: string;
scheduledFor: string;
state: "draft" | "scheduled" | "published" | "cancelled";
approvalId: string | null;
createdByEmployeeId: string | null;
createdAt: string;
updatedAt: string;
}
export interface ProviderRecord {
@@ -392,6 +408,7 @@ export interface AppSnapshot {
chatAttachments: ChatAttachmentRecord[];
chatPresence: ChatPresenceRecord[];
files: FileObjectRecord[];
scheduledPosts: ScheduledPostRecord[];
providers: ProviderRecord[];
providerCatalog: ProviderCatalogEntry[];
providerRequests: ProviderRequestRecord[];
+3
View File
@@ -16,7 +16,10 @@ export const IPC_CHANNELS = {
resolveAgentSkills: "agentcompany:resolve-agent-skills",
createSocialAccount: "agentcompany:create-social-account",
launchSocialLogin: "agentcompany:launch-social-login",
createScheduledPost: "agentcompany:create-scheduled-post",
setScheduledPostState: "agentcompany:set-scheduled-post-state",
importFile: "agentcompany:import-file",
setFilePinned: "agentcompany:set-file-pinned",
createMigrationReport: "agentcompany:create-migration-report",
rendererEvent: "agentcompany:renderer-event",
windowMinimize: "agentcompany:window-minimize",