Conversation
- Fix test runner exception handling to catch only AssertionError - Add reduced-motion support and clean up accessibility in loading spinner - Fix database query depth validation to prevent unbounded queries - Replace string-length with element-count for accurate path filtering - Add defensive null checking in item query service 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
…ones - Update current.json: mark MCP integration complete, reorganize priorities - Rework dogfood milestone: specify concrete tile structure and executable prompts - Add Jay AI orchestration milestone: define future AI orchestration vision - Create complete Goals hierarchy in HexFrame tiles via MCP - Delete obsolete BRIEF.md and update dependencies This completes Priority 1 (Workflow Migration) and establishes foundation for MCP chat integration and executable prompt system. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Contributor
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the You can disable this status message by setting the ✨ Finishing touches🧪 Generate unit tests
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
…loading - Change loading spinner color from green to primary for consistency - Add hierarchy panel to MapLoadingUI so it's visible during initial loading - Remove conditional rendering of hierarchy in MapUI to ensure consistent layout - Hierarchy now shows Hexframe logo immediately on page load before data loads 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Added preview field to support progressive disclosure pattern in tiles. Fixed missing preview field throughout the entire stack after investigation revealed field was being lost during MapItem retrieval. Changes: - Add preview column to base_items database schema - Update domain objects to include preview field - Fix missing preview field in MapItem mapper (key fix) - Update API contracts and adapters to include preview - Fix MCP field name mismatches (title→name, link→url) - Add preview support in tRPC endpoints - Add extensive debug logging for preview field tracking This resolves the issue where preview field was null despite being provided during creation, enabling progressive disclosure for issue #135. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
5 tasks
Tests were expecting 'name' property but implementation uses 'title' for API contract consistency. Updated test expectations to match actual optimistic update structure. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Major refactoring to align data structures across frontend and backend: - **API Contract Updates**: Standardize field names from name/url to title/link - **Preview Field**: Add progressive disclosure support with preview field - **Parameter Validation**: Add CreateMapItemParams and UpdateMapItemAttrs schemas - **Code Consolidation**: Remove deprecated map-item.actions.ts, consolidate logic - **Test Updates**: Align all tests with new data structure contracts - **Cache Layer**: Update cache services to support new field structure This establishes consistency between HexFrame API contracts and internal data models, enabling progressive disclosure patterns and improved type safety. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Added debug logs throughout the mutation chain to trace preview field: - Frontend preview handlers (🟦) - Mutation callbacks (🟨) - tRPC router (🔴) - Domain service (🟫) - Actions layer (🟪) - Creation helpers (🟩) - Database repository (🟥) Fixed critical bug in mutation coordinator where preview field was accepted but not forwarded to tRPC mutation. Updated: - MutationCoordinator interface to include preview parameter - updateItem method to pass preview to tRPC - _prepareOptimisticUpdate to handle preview field - _reconstructApiData to use tile.data.preview instead of undefined Note: Type safety issue remains - MutationOperations uses Record<string, unknown> which allowed this bug to slip through. Will be addressed in upcoming type system refactor. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
BREAKING CHANGE: Renamed field `descr` to `content` throughout codebase ## Summary Established domain layer as single source of truth for MapItem attributes. All layers now use consistent field names: title, content, preview, link. ## Changes ### Domain Layer (Single Source of Truth) - Created canonical types in `types/item-attributes.ts`: - MapItemAttributes - MapItemUpdateAttributes - MapItemCreateAttributes - Exported from `~/lib/domains/mapping/utils` (architecture rule) - Updated BaseItem, repositories, services, and actions ### Database - Migration: Renamed `descr` → `content` in base_items table - Updated schema in `base-items.ts` ### API Layer - Updated tRPC schemas and routers to use `content` - Updated API contracts and adapters - Removed `Record<string, unknown>` in favor of typed interfaces ### Frontend - Updated TileData adapter: `name` → `title`, `description` → `content` - Updated all Cache handlers and coordinators - Fixed mutation types to use domain types - Updated all components and hooks - Fixed 80+ test files ### Benefits ✅ Single source of truth for field names ✅ Strong typing throughout (no more Record<string, unknown>) ✅ Consistent naming across all layers ✅ Clear architectural boundaries ✅ TypeScript catches field name errors ### Files Changed - 82 files modified - 2 new files (migration + canonical types) - ~3000+ lines changed 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Move separator border from ContentDisplay to TileHeader to prevent visual flicker during state transitions. Border now stays on header when any content exists (preview or expanded), rather than switching between header border-bottom and content border-top. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Removed outdated interface.client.ts file and migrated all imports to use utils/index.ts. The utils/index.ts file now serves as the centralized export point for client-safe domain exports. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Removed the mutation-handler layer as mutations are now handled directly through the mutation-coordinator pattern. This simplifies the architecture by removing an unnecessary abstraction layer. Changes: - Deleted mutation-handler.ts and its tests - Updated mutation coordinator to work without mutation handler - Removed mutation handler exports from index 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Renamed PreviewWidget to TileWidget to better reflect that it displays and manages map tiles, not just previews. This improves code clarity and aligns with the domain terminology. Changes: - Renamed PreviewWidget directory to TileWidget - Updated all imports and references - Renamed preview-handlers.ts to tile-handlers.ts - Updated documentation and tests 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Removed debug console.log statements from navigation utilities, prefetch operations, auth, and email services. These were used during development but are no longer needed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Removed debug console.log statements across domain services, repositories, and API routers. Also simplified BaseItem Attrs from interface to type alias. Changes: - Removed console.log from agentic services and repositories - Removed console.log from mapping actions and repositories - Removed console.log from server API routers - Simplified BaseItem Attrs to type alias for MapItemAttributes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
- Add built-in exception for domain utils to reexport from parent domain - Create Services subsystem with proper index.ts and dependencies.json - Update all imports to use Services index instead of direct file imports - Declare Services as subsystem in Cache/dependencies.json 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Consolidate tile creation and editing into a single TileWidget component with consistent styling and behavior. **Unified Components:** - Create TileForm component with labeled fields for both creation and editing modes - Update TileWidget to support 'view', 'edit', and 'create' modes - Update TileHeader to handle creation mode with proper tile preview icon - Simplify ContentDisplay to only handle read-only display **Key Improvements:** - Add labels to all form fields (Title, Preview, Content) - Fix spacing: preview field no longer touches header in edit mode - Increase hexagon icon size in creation mode from 8 to 10 (matching edit mode) - Calculate tile color from coordId for non-existent tiles in creation mode - Unified keyboard shortcuts and help text across both modes **Deleted:** - Remove CreationWidget.tsx (functionality merged into TileWidget) **Benefits:** - Single source of truth for tile forms - Consistent styling and behavior - Reduced code duplication - Better maintainability 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Move title editing to TileHeader for both creation and edit modes, removing the redundant title field from TileForm. This creates a more consistent UX where the title is always edited inline in the header. **Changes:** - Remove title field from TileForm (now only Preview and Content fields) - Update TileHeader to show inline title input in creation mode - Remove "Create X child of Y" context message from creation mode - Auto-focus preview field on creation mode mount - Update keyboard shortcuts: Enter in title moves to Preview field **Benefits:** - Simpler, cleaner creation form - Consistent title editing across creation and edit modes - Reduced code complexity (85 lines removed) - Less visual clutter in creation mode 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
**Placeholder Updates:** - Remove "..." from all placeholder text for cleaner appearance - Create mode title: "Your new tile's title" - Edit mode title: "Enter title" - Preview: "Enter preview for AI context (helps AI decide whether to load full content)" - Content: "Enter content (optional)" **Focus Improvements:** - Auto-focus title input when opening TileWidget in create mode - Remove unused auto-focus logic from TileForm - Title input always auto-focuses in both create and edit modes **Code Cleanup:** - Remove unused useEffect import from TileForm - Mark unused mode parameter in TileForm 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Consolidate delete confirmation into TileWidget by adding internal mode state that switches from view to delete mode in-place. **Unified Components:** - Add 'delete' mode to TileWidget supporting view, edit, create, and delete - Implement internal mode state allowing seamless transitions between modes - Delete confirmation now renders within the same widget instance **Key Improvements:** - Single widget instance for all tile operations (no widget stacking) - Click delete from context menu transitions widget to delete confirmation - Consistent cancel behavior across all modes - Removed ConfirmDeleteWidget.tsx (functionality merged into TileWidget) **Benefits:** - Single source of truth for tile operations - Better UX with in-place mode transitions - Reduced code duplication - Improved maintainability 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
The tooltip was incorrectly positioned due to canvas transform. Fixed by using createPortal to render at document.body level and tracking cursor position for proper placement. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Export TileTooltip from Canvas subsystem and use it in hierarchy tiles to show preview on hover, matching the behavior of canvas tiles. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Add automatic preview generation using AI when tile content exceeds 250 characters. Users can click the AI sparkle icon in the preview field to generate intelligent, concise summaries. - Add PreviewGeneratorService in agentic domain with programmatic length check - Add preview-specific prompt template optimized for tooltips and AI context - Add generatePreview Inngest function with queuing and rate limiting - Add generatePreview tRPC endpoint with immediate/queued response handling - Add AI sparkle button to TileForm with loading states and polling - Support both direct generation (dev) and queued generation (production) - Auto-fill preview field when job completes 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Fix architecture violations by importing PreviewGeneratorService through the domain index (~/lib/domains/agentic) instead of directly from the service file. This maintains proper subsystem boundaries. - Fix import in agentic.ts router - Fix import in inngest/functions.ts 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Fix all 10 linting issues across the codebase: - Convert relative imports to absolute imports in Cache/Services/index.ts (5 errors) - Remove unused debug variables in widget-selectors.ts (2 warnings) - Remove unused variables in mcp/auth.ts (2 warnings) - Remove unused function parameter (1 warning) All files now pass ESLint with zero errors and zero warnings. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
Update test assertion to match implementation which correctly uses <title> tags instead of <name> tags for tile elements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <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.
No description provided.