| Deploy URL | Target | Commit / Ref | Status | Date & Time | Action |
|---|---|---|---|---|---|
View detailed registry info, git integration pathways, and the full deployment timeline for this application.
| Deploy URL | Target | Commit / Ref | Status | Date & Time | Action |
|---|---|---|---|---|---|
| phc-k99745lv2-pradhankukiran-projects.vercel.app | prod | "style: caps wordmark, amber em-dash favicon, banner and rebuilt readme - Workspace topbar wordmark back to caps "PHC—AI" (still Fraunces italic, em-dash in accent). - New src/app/icon.svg: burnt-amber em-dash on cream — the single most distinctive mark in the wordmark, reduced to 32x32. Replaces the default Next favicon.ico, which is removed. - New public/banner.svg: a Swiss-poster hero for the README — thick ink rules, italic serif "PHC—AI" wordmark, mirrored italic "00" numeral anchor, mono micro-bands above and below. - README rewritten: - Banner at top, live-demo / status / license badges, tech-stack badges (Next 16, React 19, TypeScript 5, Tailwind 4, shadcn/ui, ai-elements, Modal, Vercel) all on ink with light logos. - Design-system section with the 7-token color palette table (paper / paper-soft / ink / ink-soft / ink-faint / accent / accent-soft) and the typography assignment (Geist Sans / Geist Mono / Fraunces). - Stack table updated for the actual current stack (drop Mantine, add shadcn/ui + " Branch: master | Ready | May 17, 2026, 05:51 PM | Inspector ↗ |
| phc-3ynvnxw83-pradhankukiran-projects.vercel.app | prod | "style: serif wordmark in topbar, drop portfolio/version chrome The all-caps mono topbar read as utility label, not brand. Switch both topbar wordmarks to Fraunces italic — same display serif the hero uses for "Personal · Health · Clinic." — so the masthead carries the same renaissance/Italian-art feel from the very first pixel. Landing top band: - Drop the "Portfolio Prototype · Stockholm · MMXXVI" right-side dateline. - Drop the v0.1 mark. - Replace mono "PERSONAL HEALTH CLINIC / AI ASSISTANT" caps with serif italic "Personal Health Clinic · AI Assistant" in font-display, mixed case. Workspace header logo: - Replace font-sans "PHC—AI" caps with font-display italic "Phc—Ai". Em-dash stays in accent. - Drop the trailing v0.1 micro-text." Branch: master | Ready | May 17, 2026, 05:43 PM | Inspector ↗ |
| phc-pykb364el-pradhankukiran-projects.vercel.app | prod | "fix: replace vendored prompt-input with a plain html form Stop fighting ai-elements PromptInput (1500 lines, internal Context providers, base-ui event shims, controlled/uncontrolled state machine, field-sizing-content reflows) just to render a textarea and a submit button. The chat input is now a plain <form> with a plain <textarea> and two plain <button>s. Native browser handles typing; we own Enter-to-send, Shift+Enter newline, IME composition guard, submit via ref read, isEmpty toggle for the Send disabled state. Same visual treatment, same Swiss styling, same imperative API to the parent (fill / clear / focus) — just without the vendored layers in between." Branch: master | Ready | May 17, 2026, 05:37 PM | Inspector ↗ |
| phc-p7s2wppm9-pradhankukiran-projects.vercel.app | prod | "perf: take react state out of the chat keystroke path entirely Previous fix isolated state to ChatInputBar but the textarea was still controlled with value={draft} + onChange. Every keystroke still re-rendered the input subtree, and the vendored 1500-line PromptInput sits in that subtree. Switch the textarea to uncontrolled: - Drop value={draft} / onChange. Use defaultValue="" and let the native textarea own its value. - Read the text via FormData on submit (which PromptInput already does internally). - Track only a single isEmpty boolean via onInput. Most keystrokes don't cross the empty/non-empty boundary, so setIsEmpty bails (same value) and no re-render fires. Only the first character typed and the last character deleted trigger one render each — to toggle the Send button's disabled state. - writeValue helper sets textarea.value via ref for the suggestion-fill, clear-conversation, and post-submit reset paths, and keeps isEmpty in sync. - Forced [field-sizing:fixed] on the textarea to prevent the field-s" Branch: master | Ready | May 17, 2026, 05:33 PM | Inspector ↗ |
| phc-lw8ddso2f-pradhankukiran-projects.vercel.app | prod | "perf: stop typing from re-rendering the whole chat tree Typing felt one-letter-at-a-time because the draft state lived on ChatWorkflow. Every keystroke called setDraft, which re-rendered ChatWorkflow and its entire subtree: TitleRail, Conversation (StickToBottom does scroll-position work on every render), EmptyState (re-renders all 6 question buttons), and the 1500-line vendored PromptInput plus its internal Context providers. Each character cascaded through all of that before the next paint, which on lower-end machines reads as letters appearing one at a time. Fix: - Extract <ChatInputBar> as a forwardRef child component that owns draft locally. Keystrokes now only re-render the input subtree. - Parent exposes imperative methods (fill / clear / focus) via useImperativeHandle so suggestion-fill, error-restore-draft, and clear-conversation still work without lifting state. - Memoize TitleRail, EmptyState, ChatMessageItem, and PendingAssistant so parent re-renders (when messages or pending change) don't casca" Branch: master | Ready | May 16, 2026, 10:22 PM | Inspector ↗ |
| phc-gz4ebuzua-pradhankukiran-projects.vercel.app | prod | "fix: make the chat textbox unmistakable The Swiss styling on the chat input dressed the placeholder as a tiny mono uppercase label, so it read like a section header rather than "type here". Combined with an oversized empty-state poster pushing the input below the fold on shorter laptops, users couldn't find the text box. - Add a clear "Message · 01 / 06" mono label and a right-aligned "Type below" hint above the input, mirroring the media-workflow section header pattern so chat doesn't feel like a different surface. - Placeholder restyled: sans-serif, normal case, base size — looks like an input affordance, not a label. Copy changed to "Type your question about your visit…". - Wrapper gets focus-within:border-accent so the box pulses on focus. - Auto-focus the textarea on mount via a ref + useEffect keyed on workflow.route — first frame shows a live cursor. - Bumped textarea min-h to 24 (6rem) for more presence. - Shrunk empty-state numerals from text-[10rem]/[14rem] to text-[6rem]/[9rem] and tightened py f" Branch: master | Ready | May 16, 2026, 10:15 PM | Inspector ↗ |
| phc-6moynweux-pradhankukiran-projects.vercel.app | prod | "feat: swiss/brockmann visual redesign with poster landing Visual conviction pass. Replace the default-shadcn neutral palette and generic chat surface with a Swiss/International Typographic style — disciplined grid, mono micro-labels, single warm accent, hairline rules, oversized numerals as anchors. Targets a portfolio-grade patient-facing surface that doesn't read as another generic AI chat. Design system (globals.css): - Palette swapped to warm paper-on-ink: paper #FAF6EE, ink #1A1612, accent burnt amber #C2410C used sparingly. All radius vars set to 0 — square corners everywhere. - New Tailwind utility tokens: bg-paper, bg-paper-soft, text-ink, text-ink-soft, text-ink-faint, text-accent, bg-accent, bg-accent-soft, border-ink. Plus font-display for Fraunces. - Selection style flipped to ink-on-paper for visual punch. Typography (layout.tsx): - Load Fraunces as a variable serif with SOFT/WONK/opsz axes for one-display-moment-per-surface (oversized numerals on the landing poster + empty states). - Geist Sa" Branch: master | Ready | May 16, 2026, 10:02 PM | Inspector ↗ |
| phc-374c0aa82-pradhankukiran-projects.vercel.app | prod | "feat: replace mantine with shadcn/ui and ai-elements - drop @mantine/core and @mantine/hooks; remove MantineProvider, ColorSchemeScript, mantineHtmlProps - providers reduced to <TooltipProvider> - globals.css rewritten as a shadcn theme with teal-tinted oklch tokens and a light/dark scale - phc-workspace shell: thin sticky header (logo, nav, "Not for diagnosis" tag), nav uses Link with prefetch and aria-current, flex-column layout fills the viewport - chat-workflow rebuilt on ai-elements: Conversation + ConversationContent + ConversationScrollButton (use-stick-to-bottom), Message + MessageContent + MessageResponse (Streamdown markdown), PromptInput with autosize textarea, status-aware submit, suggestion chips for empty state, copy-on-assistant-message, timestamps, race-safe optimistic rollback, prompt restored to draft on error - media-workflow rebuilt with shadcn primitives: Card-driven input/output layout, drag-and-drop file picker, image preview (lazy useState + URL.revoke on unmount), audio playback elem" Branch: master | Ready | May 16, 2026, 09:38 PM | Inspector ↗ |
| phc-n7uifzoyl-pradhankukiran-projects.vercel.app | prod | "feat: redesign chat as sticky-input layout" Branch: master | Ready | May 16, 2026, 09:20 PM | Inspector ↗ |