Add profile setup wizard to project chat#1141
Merged
simple-agent-manager[bot] merged 6 commits intoMay 28, 2026
Merged
Conversation
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
useProjectChatState, creates profiles through the existing agent profile endpoint, and auto-creates a default single-agent profile on first submit.ProviderCataloghelpers, hides pricing without BYOC credentials, and keeps the composer disabled only when onboarding requires it.Validation
pnpm lintpnpm typecheckpnpm testAdditional validation:
pnpm --filter @simple-agent-manager/web typecheckpnpm --filter @simple-agent-manager/web lint(existing warnings only)pnpm --filter @simple-agent-manager/web test -- tests/unit/pages/project-chat.test.tsx(25 tests passed)npx playwright test tests/playwright/project-chat-composer-audit.spec.ts --project="iPhone SE (375x667)" --project="Desktop (1280x800)"(10 tests passed)pnpm buildStaging Verification (REQUIRED for all code changes — merge-blocking)
All checkboxes below are mandatory for any PR that changes runtime code (
.ts,.tsx,.go, etc.). WriteN/A: docs-onlyONLY if the PR contains zero runtime code changes. See.claude/rules/13-staging-verification.md.Deploy Stagingworkflow triggered manually and passed for this branchapp.sammy.party(staging) using test credentials and actively tested the application+ Newwizard completed on live staging and created a profile through the APIStaging Verification Evidence
26588104250passed deploy and smoke-tests jobs.app.sammy.party, created a temporary GitHub-backed project, observed the existing profile selector, opened+ New, completed work type, VM size, and name steps at 375x667, verified the created profile viaGET /api/projects/:projectId/agent-profiles, checked no horizontal overflow, and deleted the temporary project..codex/tmp/playwright-screenshots/:staging-profile-wizard-existing-profiles-mobile.png,staging-profile-wizard-vm-mobile.png,staging-profile-wizard-final-mobile.png.UI Compliance Checklist (Required for UI changes)
.codex/tmp/playwright-screenshots/End-to-End Verification (Required for multi-component changes)
.claude/rules/10-e2e-verification.md)Data Flow Trace
ProjectChatpasses agents, profiles, provider catalogs, BYOC state, and wizard handlers intoChatInput(apps/web/src/pages/project-chat/index.tsx).ChatInputrenders the default banner, no-profile gate/wizard, or profile pill bar and usesselectProviderCatalog()/lookupSizeInfo()for VM card details (apps/web/src/pages/project-chat/ChatInput.tsx).createProfileFromWizard()inuseProjectChatState, which validates duplicates and callscreateAgentProfile()(apps/web/src/pages/project-chat/useProjectChatState.ts)./api/projects/:projectId/agent-profilesendpoint (apps/web/src/lib/api/agents.ts).agentProfileId; single-agent/no-profile submit first callsensureDefaultProfileForSingleAgent()beforesubmitTask()(apps/web/src/pages/project-chat/useProjectChatState.ts).Untested Gaps
Live staging account already had profiles available, so staging verified the existing-profile
+ Newwizard path. Single-agent default and multi-agent no-profile gate paths are covered by unit tests and local Playwright mock audit.Post-Mortem (Required for bug fix PRs)
N/A: not a bug fix.
Specialist Review Evidence (Required for agent-authored PRs)
needs-human-reviewlabel added and merge deferred to humanProviderCataloghelpers andVM_SIZE_LABELSfallback.Exceptions (If any)
Agent Preflight (Required)
Classification
External References
N/A: implementation used existing in-repo APIs and prototype reference only.
Codebase Impact Analysis
Affected code paths:
apps/web/src/pages/project-chat/ChatInput.tsxapps/web/src/pages/project-chat/useProjectChatState.tsapps/web/src/pages/project-chat/index.tsxapps/web/src/components/project-chat/ProjectChatComposer.tsxapps/web/tests/unit/pages/project-chat.test.tsxapps/web/tests/playwright/project-chat-composer-audit.spec.tsDocumentation & Specs
Task file archived at
tasks/archive/2026-05-28-profile-setup-wizard.md. No product docs required for this internal UX change.Constitution & Risk Check
Checked Principle XI: no hardcoded values. VM pricing/specs are not hardcoded in production code; provider catalog values are read through
selectProviderCatalog()andlookupSizeInfo(), with generic labels fromVM_SIZE_LABELSwhen catalog data is absent.