Release v1.2.0: Process Mode Enhancements & Smart Hub Improvements#5
Merged
Conversation
## New Features - Unified `/create` entry point with three processing modes: - Generate: Create presentations from text input - Process: Edit/modify existing documents/images - Extract: Extract content from documents - Smart mode detection based on input type (text/PDF/image) - Image provider switching (Yunwu / Z-Image-Turbo) - Tavily web search integration for outline generation - Image annotation tools (circle, rectangle, arrow, pen) - Comprehensive export options (PDF, PPTX, PNG, ZIP, Markdown) ## Technical Changes - New unified session management via S3 (hub-session-service) - Zustand state management (smart-hub-state) - Bedrock Claude as default for outline generation - Configurable presentation settings (style, aspect ratio, resolution) ## Migration - Merged `/presentation` and `/document-processor` into `/create` - Removed legacy presentation and document-processor components - Updated navigation in HomePage and GlobalSidebar Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Workflow Jobs 1. **Lint & Type Check** - TypeScript type checking (pnpm type) - Biome linting (pnpm lint) 2. **Build** (depends on lint) - Next.js production build verification 3. **CDK Synth** (depends on lint) - AWS CDK template synthesis verification ## Triggers - Push to main/dev branches - Pull requests to main Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Bug Fixes 1. **Input text not passed to generate page** - SmartHubLanding now passes inputText when creating session - session/route.ts accepts and forwards inputText - hub-session-service stores inputText in session 2. **Config settings not persisting** - generate/page.tsx now saves config to backend via PATCH - Settings changes are immediately persisted to session 3. **Add theme selection** - Added PresentationTheme type with 6 theme options - GenerateConfigDialog includes theme selector with color preview - Slide generation prompts include theme color instructions - Modification prompts maintain theme consistency ## Files Changed - SmartHubLanding.tsx: Pass inputText on session creation - session/route.ts: Accept inputText parameter - hub-session-service.ts: Store inputText and theme in session - generate/page.tsx: Persist config changes to backend - GenerateConfigDialog.tsx: Add theme selector UI - smart-hub.ts: Add PresentationTheme type - slide/route.ts: Include theme in generation prompts - modify/route.ts: Include theme in modification prompts Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Changes 1. **Style Template Presets** - Added 7 preset style templates: - ✏️ Hand-Drawn Sketchbook - Warm, creative illustration style - 📐 Modern Blueprint - Technical architectural style - ▫️ Minimal Modern - Clean, bold typography - 💼 Corporate Professional - Traditional business style - 🎨 Vibrant Creative - Colorful, energetic design - 🌙 Tech Dark Mode - Modern dark theme with neon accents - ✨ Custom Style - Write your own description 2. **Style Prompt Editor** - Users can: - Select a preset to fill the prompt - Customize the prompt after selection - Write their own style from scratch 3. **Simplified Config Dialog** - Replaced style + theme with single customStylePrompt approach 4. **Updated slide generation** - customStylePrompt overrides all default styling when provided Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Outline Format Changes 1. **Restored detailed slide structure** - Each slide now includes: - NARRATIVE GOAL (叙事目标) - Emotional/strategic purpose - KEY CONTENT (关键内容) - Main text elements - VISUAL (视觉画面) - Visual description for AI image generation - LAYOUT (布局结构) - Spatial arrangement guidance 2. **Updated all outline generators**: - OUTLINE_GENERATION_PROMPT in outline/route.ts - generateWithLLMAndSearch system prompt - Bedrock buildContentGenerationSystemPrompt ## Outline Editor Enhancements 3. **Add/Delete/Move controls**: - "Add Slide" button to add new slides - Move up/down buttons (on hover) - Delete button for each slide - Slide count display 4. **Improved editor UX**: - Larger textarea (min-h-[120px]) - Monospace font for better formatting - Hover effects for action buttons Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
## Changes 1. **Removed DATABASE_URL** - Project migrated from PostgreSQL to S3 - Removed from env.js validation schema - Removed from .env.example 2. **Added UPLOADS_BUCKET** - S3 storage configuration - Added to env.js with optional validation - Added to .env.example with documentation 3. **Made many env vars optional** - For flexible local development - LLM_API_KEY, YUNWU_API_KEY, DASHSCOPE_API_KEY - TAVILY_API_KEY, UNSPLASH_ACCESS_KEY 4. **Cleaned up .env.example** - Simplified and reorganized - Removed deprecated DATABASE_URL section - Added S3 Storage section - Better documentation Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add dual storage service for image redundancy (UploadThing + S3) - Images now upload to both UploadThing (primary) and S3 (backup) - Add ImageUrls type to track both primary and backup URLs - Add S3 image upload capability (uploadImageToS3) - Update YunwuService and ZImageTurboService to use dual storage - Add SlideGallery component for viewing all generated slides - Add gallery/single view toggle in generate page - Gallery view shows thumbnails with fullscreen lightbox - Support keyboard navigation and slide download in lightbox Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Gallery improvements: - Add gradient backgrounds and glassmorphism effects - Better hover animations with scale and shadow - Progress indicator showing completion percentage - Image loading states with skeleton - Auto-play slideshow feature with Space key toggle - Keyboard navigation hints in lightbox - Current slide indicator badge - Edit count badge with icon Fixes: - Constrain thumbnail sizes with proper aspect ratio - Add max-height constraint on single slide view (60vh) - Fix lightbox z-index to prevent content overlap - Absolute positioning for thumbnail images Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use aspect-video class instead of inline style for proper aspect ratio - Simplify image container with direct img element - Reduce lightbox size to 95vw/95vh for better visibility - Simplify hover overlay and badges - Compact header with inline progress bar - Clean up lightbox bottom bar with smaller thumbnails - Remove unused icon imports (Sparkles, Edit3) - Add max-height constraint to single slide view Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update initializePagesFromOutline to also update main session title - Add inline title editing in generate page header - Click title to edit, press Enter to save, Escape to cancel - Show pencil icon on hover to indicate editable - Title is now generated by AI based on content Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Pass uploaded page images to Process session on creation - Rewrite Process page with gallery/single view toggle - Add thumbnail strip for easy page navigation - Add progress bar with completion percentage - Improve side-by-side comparison layout - Add view mode toggle buttons Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Store original image dimensions when loading - Scale annotations to original resolution when exporting - Display preview at manageable size but export at full quality - Show original resolution info in annotation canvas Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed from static import to dynamic import for pdfjs-dist - Initialize PDF.js only when needed and only in browser environment - Prevents DOMMatrix is not defined error during server-side rendering Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed key from session.id to session.sessionId - sessionId is the guaranteed unique identifier for sessions - Fixes React warning about duplicate/missing keys Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Calculate canvas size based on original image aspect ratio - Keep canvas within max bounds (800x600) while preserving ratio - No more image distortion when annotating Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Always show Export button when pages exist in Process mode - Export original images if no processed images available - Update export dialog description to show available vs processed pages - ZIP export now includes originals when no processed version exists Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add aspect ratio and image size settings to Process page - Auto-detect original image aspect ratio as default - Show settings panel with collapsible UI - Pass generation config through API chain to yunwu service - Update document processor to use YunwuService directly - Show warning when output ratio differs from original Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9 Supported sizes: 1K, 2K, 4K Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove internal fetch to /api/document-processor/process - Call YunwuService directly from process route - Fixes ECONNREFUSED error when making HTTP request to self - Also save imageUrls (dual storage) to session Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update YunwuService to include conversation history in API request - This allows the API to see the source image when processing - Improve error handling to show specific error messages - Map conversation roles correctly (assistant -> model for Gemini) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Without relative, the absolute inset-0 green overlay positioned relative to the page instead of the button - This caused the entire page to turn green and be unclickable Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
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
This release includes significant improvements to the Process mode, dual storage backup, and various bug fixes.
New Features
Improvements
Bug Fixes
Infrastructure
Test Plan
🤖 Generated with Claude Code