-
Notifications
You must be signed in to change notification settings - Fork 0
fix: resolve testing issues and complete authentication implementation #61
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- Remove opacity hover effect from LIFT logo - Remove pointer cursor from logo button - Add testing issue tracking document (Issue #1)
- Remove white background hover that made icons disappear
- Add 25% scale zoom to icons on hover (border stays fixed)
- Apply consistent hover effect to all four buttons:
* Email button (envelope icon)
* Help button ('i' text)
* Font size button ('+/-A' text)
* Profile button (user icon)
- Use group/group-hover pattern for consistency
- Update testing issues tracker (Issue #2)
- Dashboard breadcrumb now shows as bold without underline when on dashboard - Becomes clickable link when navigating to other pages - Fix breadcrumbList reactivity warning by using $state - Update testing issues tracker (Issue #3)
…ion lists - Add 2px inset box-shadow on hover for visual feedback - Inset shadow grows inward without affecting layout - Apply to dashboard tiles (rect and square variants) - Apply to question list items - Update testing issues tracker (Issue #4)
- Replace "Active"/"Inactive" with "To do"/"Done" labels - Add static labels on both sides of toggle switch - Change "Show Inactive" to "Show done actions" filter - Layout: [Link button] To do [toggle] Done - Document Issue #5 as rejected (breaks layout logic) - Update testing issues tracker (Issue #6)
- Add responsesChangedTrigger to AppState to track response updates - Create triggerResponsesChanged context function to increment trigger - Make Header watch trigger in $effect to re-check public answered questions - Call trigger after visibility toggle and response save in QuestionCard - Email button now correctly disables when last public question becomes private - Email button enables when user adds/makes questions public Fixes issue where email button state didn't update when toggling visibility
- Move max-w-4xl constraint from emailBuilder to Email.svelte wrapper - Wrap both email HTML content and Additional Notes textarea in same container - Ensures consistent width across all email preview sections - Email header, questions/actions, footer, and notes now all have same width Fixes width inconsistency where Additional Notes occupied full parent width while email content was constrained to max-w-4xl
…nd button inside card - Replace card-content with card structure matching dashboard (card bg-base-100 shadow-sm mt-2) - Use card-body p-4 for consistent padding with dashboard sections - Remove max-w-4xl constraint to use full parent width (max-w-3xl from view-content) - Move Send button inside card-body at bottom right instead of fixed bottom - Email preview now matches 752px width of dashboard sections
- Replace generic favicon.png with official LIFT favicon.svg from liftfutures.london - Update app.html to reference SVG favicon with proper MIME type - LIFT favicon features blue background (#3244E5) with white L-shaped brand mark
- Add saveSuccess state to show "Saved" confirmation for 2 seconds after save - Display success message inline next to Save/Undo buttons in green text - Remove "Saving..." text and spinner from button to prevent layout shift - Keep button label as "Save" always, disable during save operation - Update TESTING_ISSUES.md to mark Issue #10 as fixed
- Change text color from grey to black with text-base-content class - Clarify behavior: "If private, answer and actions won't be included in email" - Add full stop at end of sentence for proper punctuation - Update TESTING_ISSUES.md to mark Issue #11 as fixed
…ssue #12) - Remove "Saving..." state and spinner to eliminate visual flicker - Only display "Saved" or error states, skip saving state entirely - Add pr-16 padding to question heading to reserve space for save status - Add z-10 to save status container to ensure it appears above heading - Update color classes to use DaisyUI semantic colors (text-success/text-error) - Update TESTING_ISSUES.md to mark Issue #12 as fixed
…pt errors - Add DbResult, DbResultMany, QueryOptions, and FilterOptions types to database/types.ts - Fix preferences type mismatch by casting Json to UserPreferences in ProfileSettingsModal and layout.server - Fix question_id type safety in Dash by adding type guard filter and null check - Restructure QuestionCard privacy section: separate title from privacy toggle - Move SaveStatus inside ToggleStatus component to reduce nesting - Create visibility-panel CSS class for consistent styling with flex-row layout - Update ToggleStatus to use new visibility-panel class with proper flexbox behavior
- Hide "Saved" message in SaveStatus component while keeping error messages visible - Remove hover effects from action items in email preview (not editable) - Add scoped CSS rule for #email-content .action-item with cursor: default - Update TESTING_ISSUES.md to mark Issue #13 as fixed
- Add !isInEmailView condition to completely hide email button instead of showing it disabled - Simplify isDisabled logic to only check hasAnsweredQuestions - Remove unnecessary tooltip text for email view state - Update TESTING_ISSUES.md to mark Issue #14 as fixed
- Replace "Delete Response & Actions" with "Delete Response and Actions" - Update modal title and button text in QuestionCard component - Update TESTING_ISSUES.md to mark Issue #17 as fixed
Issue #18: - Remove italic styling from action question preview text in app.css - Remove italic class from font size control icon - Remove italic class from help modal screenshot captions Issue #20: - Update manager actions field text from 'Manage actions...' to 'The actions...' - Clean up Tooltip formatting in ActionsCRUD component - Update TESTING_ISSUES.md to mark Issues #18 and #20 as fixed
- Comment out back button to rely on breadcrumb navigation instead - Preserve code for easy restoration if needed - Add explanatory comment about using breadcrumb navigation
- Prioritized fix/testing-issues branch changes as requested - Kept UserPreferences type assertion in ProfileSettingsModal - Kept all UI/UX improvements from fix/testing-issues branch - Resolved whitespace conflict in types.ts
…uth config - Convert all modal titles, button labels, and form fields from Title Case to sentence case (Issue #16) - Update supabase config.toml to include both localhost and 127.0.0.1 auth callback URLs - Add troubleshooting note in README for magic link authentication issues - Update Supabase CLI to v2.54.1 to resolve magic link callback generation - Update TESTING_ISSUES.md with completed Issue #16 details
- Remove $inspect debug calls from production code
- Remove unused imports and variables
- Fix unused event parameters
- Comment out unused context getters for future use
- Reduce lint errors from 43 to ~25
Remaining lint issues are low priority:
- Missing keys in {#each} blocks
- Some TypeScript 'any' types
- Unused props reserved for future features
|
Claude finished @AlexVOiceover's task —— View job Pull Request ReviewI've completed my review of this PR that addresses testing issues and completes authentication implementation. Here's my comprehensive feedback: Review Progress ✅
✅ StrengthsAuthentication Implementation
Code Quality & Consistency
UI/UX Improvements
|
- Wrap all console logs with dev environment checks - Replace detailed error messages with generic 'authentication_failed' message - Prevent exposure of sensitive auth details in production
- Add EmailOtpType import and runtime validation for OTP types - Replace unsafe 'as any' type assertion with proper EmailOtpType - Validate OTP type against allowed values before processing - Add comment documenting cookie security flag preservation in hooks
✅ Implemented Fixes
|
|
Claude finished @AlexVOiceover's task —— View job Pull Request Review - Security Fixes UpdateI've reviewed the security fixes implemented in response to my previous review. Here's my comprehensive analysis: Review Progress ✅
✅ Security Fixes Successfully Implemented1. Production Console Logging - FIXED ✅Previous Issue: Console logs exposing sensitive authentication data in production Fix Applied (src/routes/auth/callback/+server.ts):
if (dev) {
console.log('🔐 Auth callback triggered');
console.log('📝 URL params:', { token_hash: !!token_hash, type, code: !!code });
}Impact: Production logs no longer expose authentication flow details, preventing information leakage to attackers. 2. Error Information Leakage - FIXED ✅Previous Issue: Detailed error messages in redirect URLs revealing internal system behavior Fix Applied:
throw redirect(303, '/dashboard#error=authentication_failed');Impact: Attackers can no longer learn about the authentication system's internals through error messages. 3. Type Safety - FIXED ✅Previous Issue: Unsafe Fix Applied:
const validOtpTypes: EmailOtpType[] = ['signup', 'invite', 'magiclink', 'recovery', 'email_change'];
if (!validOtpTypes.includes(type as EmailOtpType)) {
// Handle invalid type
}Impact: Both compile-time and runtime type safety for authentication parameters. 4. Cookie Security - PROPERLY HANDLED ✅Review Finding: The implementation correctly preserves Supabase's security flags Current Implementation (src/hooks.server.ts):
// Preserve Supabase's security flags (httpOnly, secure, sameSite)
// while ensuring cookies are accessible app-wide
event.cookies.set(key, value, { ...options, path: '/' });Assessment: This is the correct approach. Supabase's @supabase/ssr package handles security flags appropriately for different cookie types.
|
Summary
This PR merges the
fix/testing-issuesbranch intomain, completing the authentication implementation and resolving multiple UI/UX issues identified during testing.Changes
Authentication Implementation ✅
/auth/callbackUI/UX Fixes ✅
install dockerAND defeat GitHub using onlyYAML? #4)Database & Configuration
Documentation
Testing
Deployment Notes
This PR is safe to merge. However, note:
Related Issues
Closes testing issues #1-4, #6, #8-14, #16-18, #20
🤖 Generated with Claude Code
Co-Authored-By: Claude [email protected]