Changelog

Latest improvements to HelloZenno, in reverse chronological order.

March 2025

Auth & Security

  • 2025-03-31 Auto-focus on search languages box Co-Authored-By: Claude <noreply@anthropic 86c75e5
  • 2025-03-30 Added buttons to main language page Co-Authored-By: Claude <noreply@anthropic 27bf109
  • 2025-03-30 Removed extraneous `static_folder` arg Co-Authored-By: Claude <noreply@anthropic 2dc6f6d
  • 2025-03-30 Doc thinking about page titles Co-Authored-By: Claude <noreply@anthropic 4a45986
  • 2025-03-27 Trying to get Supabase_local MCP to work I don't think this succeeded 899a2de
  • 2025-03-22 Moved auth out of system_views and updated Blueprint prefixes 3286003
  • 2025-03-16 Create 250701_Supabase_Authentication_Integration a494e64
  • 2025-03-16 Updated Supabase auth plan 0d8747e
  • 2025-03-16 Updated Supabase authentication implementation details - Transformed original plan into implementation report - Documented completed work on Supabase authentication - Added details on challenges faced and solutions implemented - Included code samples and future improvement recommendations 20e8e10
  • 2025-03-15 Create 250317_Supabase_Realtime_for_wordforms 34c49c4
  • 2025-03-14 Supabase init ee24368

Backend & Database

  • 2025-03-31 Tidied up Python code into `api/` e9243d6
  • 2025-03-31 deploy_api 6014479
  • 2025-03-30 Remove the get_api_url function from utils d5de21b
  • 2025-03-30 Update search functions in api 6b9d3ed
  • 2025-03-29 Move languages_list_vw to dedicated Blueprint and add languages API endpoint - Created a new languages_views_bp Blueprint to properly modularize the language views - Extracted core get_languages_list() function for reuse - Created new languages_api_bp with /api/lang/languages endpoint - Updated template references to use new endpoint name - Registered both blueprints in app initialization 7209eac
  • 2025-03-29 Add API endpoint for detailed sentence view - Created get_detailed_sentence_data utility function in sentence_utils 340c1e0
  • 2025-03-22 Fixed database MCP a61eb36
  • 2025-03-22 We don't need core_api 3d73186
  • 2025-03-22 Move API endpoints from sourcefile_views to sourcefile_api 384e9b8
  • 2025-03-22 Update JS code to use API endpoint constants instead of view constants - Update sourcefile c3e31e7
  • 2025-03-18 Update tests to use the new URL patterns - Updated API tests to use /api/lang/ 805dd39
  • 2025-03-18 Fix redirect loop in wordform view - Added wordform database creation before redirect to prevent infinite redirect loops - Used existing Wordform 89ce4a3
  • 2025-03-17 Update MIGRATIONS 46f4cca
  • 2025-03-17 Standardize API URL structure with domain-specific API files - Create domain-specific API files with consistent URL patterns - Implement /api/lang/<resource>/ 03fa3f4
  • 2025-03-17 Update 250317_API_URL_Structure_Standardization 7db702d
  • 2025-03-17 Standardize API URL structure across app This commit implements a standardized API URL structure following the pattern /api/lang/<resource>/ eeb4922
  • 2025-03-16 First stage of Vercel migration (NOT DEPLOYED SUCCESSFULLY) 5e0f5d7
  • 2025-03-16 Add description field to Sourcedir model - Created migration 028_add_sourcedir_description 3f5010d
  • 2025-03-16 Fixed Vercel migrations f71e4bd
  • 2025-03-15 Fix N+1 database query issue in sourcefile_words view Optimized database queries in inspect_sourcefile_words() by using proper joins to prefetch related data in a single query rather than making separate queries for each record d23bb52
  • 2025-03-15 Optimize sourcefile view functions with improved database query methods - Added support for object-based filtering in Wordform 024f80c
  • 2025-03-15 Simplify database query methods for cleaner API - Remove sourcedir_slug and sourcefile_slug arguments from get_all_phrases_for() - For both get_all_phrases_for() and get_all_wordforms_for(), automatically perform join when sourcefile is provided - Remove include_junction_data parameter as it's now implicit - Unify return behavior across methods for consistent API - Update documentation to reflect changes 8034895
  • 2025-03-15 Fix PostgreSQL query issue with DISTINCT and ORDER BY - Fixed a PostgreSQL error where ORDER BY expressions must appear in SELECT list when using DISTINCT - Modified get_all_lemmas_for in Lemma model to include fn aa296fb
  • 2025-03-15 Optimize sentence loading with efficient database queries - Add get_all_sentences_for() method to Sentence model - Use a two-query strategy to avoid N+1 database queries - Fetch sentences first, then efficiently fetch all related lemmas - Preload lemma data to eliminate per-sentence queries - Fix template issue with undefined vite_entries variable ca64f7a
  • 2025-03-14 Add rename button to sourcefile header • Added a button to rename sourcefiles in the header template • Leverages existing backend endpoint and JavaScript functionality b9cd297
  • 2025-03-14 Add ability to move sourcefiles between sourcedirs - Add API endpoint for moving a sourcefile to a different sourcedir - Add dropdown selector in sourcefile views to select a target directory - Position the selector in the navigation bar for compact layout - Exclude current sourcedir from dropdown options - Add visual feedback during move operation - Implement error handling with appropriate messages - Consolidate selector styling in base cb0ed64

Deployment & Ops

  • 2025-03-31 Update Vercel deployment strategy with dual-project organization 24d70d5
  • 2025-03-23 Fix route names in JavaScript files to match routes e4fd50c
  • 2025-03-23 Fix circular imports 8d63e48
  • 2025-03-23 Avoid circular dependencies 6421dfa
  • 2025-03-23 Move frontend and generation earlier in deploy 9aa8c43
  • 2025-03-22 Add endpoint_for function and improve documentation - Added endpoint_for function to make url_for more robust against function renames - Updated documentation to explain TypeScript enum benefits - Removed unnecessary code complexity after weighing trade-offs 8aae12d
  • 2025-03-22 Implement URL registry for templates and JavaScript - Added endpoint_for to global context processor - Created view function references in context processor - Updated base bbedcf9
  • 2025-03-22 Update URL Registry documentation - Add implementation status section showing completed work - Update planning document to reflect documentation progress - Document templates and JavaScript files that use the registry - Mark real-world usage examples as complete f5723cc
  • 2025-03-22 Improve URL registry generation for production - Update deploy 0b02f6b
  • 2025-03-17 Copy Vite manifest to accessible location for Vercel compatibility 90de93d
  • 2025-03-16 Add Flask Hello World app for Vercel serverless deployment b0f6a3d
  • 2025-03-16 Slow progess on Vercel deployment 157506a
  • 2025-03-16 /languages works on Vercel 4441ae3
  • 2025-03-16 Fix URL encoding issues with Greek characters in Vercel deployment - Add middleware solution to handle URL decoding centrally for all routes - Create utility functions for fixing various URL encoding scenarios - Comment out redundant explicit URL decoding in view handlers - Add comprehensive unit tests for URL utilities - Update templates to correctly display language names - Document the approach and decision in planning/250316_vercel_url_encoding_fix 3cd8e3d
  • 2025-03-16 Fix health check URL in deploy script Updated deploy 96f81be
  • 2025-03-16 Update URL encoding fix documentation after Vercel testing - Add testing results from Vercel deployment - Document approach change to defense-in-depth strategy - Mark explicit step for restoring route handler decoding - Refine implementation details based on real-world testing 71d2d18
  • 2025-03-16 Preserve original title when creating sourcefiles from text Previously, when creating a sourcefile from text, the title was being slugified for the filename, leading to a loss of special characters in the display name 1e503c5
  • 2025-03-16 Update 250316_vercel_url_encoding_fix 2b498eb
  • 2025-03-16 Removing Hello World Vercel app da24ab4
  • 2025-03-15 Optimize Docker image size - Update 185d87d
  • 2025-03-14 Fix page loading performance issues by optimizing script loading - Add defer attribute to third-party scripts to prevent render blocking - Move base 3196423
  • 2025-03-02 Fixed description issue in tests and other syntax error d390a6e

Documentation & Testing

  • 2025-03-30 Tidying and docs b5654ea
  • 2025-03-30 Docs dc280ed
  • 2025-03-29 Playwright MCP e6af7d6
  • 2025-03-29 Update documentation with Bootstrap theme details - Added Bootstrap styling documentation to README 513ac76
  • 2025-03-29 Renamed docs be247f0
  • 2025-03-29 Moved Python docs 534d56e
  • 2025-03-26 Docs and tweaks b6f2bb3
  • 2025-03-23 Remove endpoint_for from additional templates, update test utils and view functions 750106d
  • 2025-03-23 Add production frontend testing improvements - Add LOCAL_CHECK_OF_PROD_FRONTEND environment variable - Update run_flask b7e41e3
  • 2025-03-23 Working frontend local/prod testing, but still feels over-complicated a0c28df
  • 2025-03-23 Fix failing sourcefile view tests: slugify filenames in create_from_text, fix audio test assertions ec368fb
  • 2025-03-23 Fix failing sourcefile tests with improved mocks and test approach 1c248bc
  • 2025-03-22 Consolidate test fixture functions and remove redundant code - Enhanced fixture functions in fixtures_for_tests f90894f
  • 2025-03-22 Delete routes_test 2d0a36f
  • 2025-03-22 Obsolete docs f850fa5
  • 2025-03-15 Renamed planning docs 2d19705
  • 2025-03-15 Docs b52dafd
  • 2025-03-15 Docs tidying e44f140
  • 2025-03-14 Reduce margins and increase font size on mobile (UNTESTED) f972181
  • 2025-03-02 Docs 234cc8b
  • 2025-03-02 Tidying up docs etc re testing 65bf797
  • 2025-03-02 More test fixes 93547bd
  • 2025-03-02 Tidy up tests e5972ab
  • 2025-03-02 Fixed tests d60bc2c

Flashcards & Content

  • 2025-03-30 Refactor phrase queries into shared utility function - Created new utils/phrase_utils 6315009
  • 2025-03-30 Update to $app/state from deprecated $app/stores - Updated imports from $app/stores to $app/state for phrase pages - Removed $ prefix from page references (page 8ffed17
  • 2025-03-30 Fix wordform page to handle enhanced search responses 65ce7ce
  • 2025-03-29 Added sentences_list 7a3b0b5
  • 2025-03-29 Lemmas list vw 8f1ee2d
  • 2025-03-28 Abortive experiment in auto-creating lemmas fac1268
  • 2025-03-28 Don't return words/phrases if empty text 678e019
  • 2025-03-28 Added Delete Phrase button (with icon) b8fac50
  • 2025-03-27 Prompts to handle max_new_words and max_new_phrases UNTESTED 22a1728
  • 2025-03-27 Setting limits on max phrases/words because of timeouts and max_tokens (not sure why this is only suddenly an issue now) 4f49b09
  • 2025-03-27 If unprocessed, do a double-round of extracting wordforms and phrases 3de9ecd
  • 2025-03-23 Fix audio URL in Sentence 04fab35
  • 2025-03-23 Skip test_random_flashcard_vw 1455023
  • 2025-03-23 Fix 500 error on phrases page by adding proper Undefined checks for JSON serialization 7451ab6
  • 2025-03-22 Update more templates to use URL registry - Update lemmas 95a339f
  • 2025-03-22 Fixed skipped wordform view smoke tests by following redirects 676786f
  • 2025-03-18 Add English translation search feature This implementation enables searching for English words in non-English language sections be8a804
  • 2025-03-18 Restored delete_wordform() erroneously deleted as part of search changes 4cd2ad6
  • 2025-03-18 Fix delete wordform function and update tests for new search format - Restored delete_wordform function to wordform_views 75a2cfc
  • 2025-03-17 Don't open lemmas in a new window 02c8bac
  • 2025-03-16 Still broken Sentence c014095
  • 2025-03-16 Restructure URLs with consistent prefixes Reorganize URL structure to use consistent prefixes for different types of routes: - /lang/* - Language-related routes (wordforms, lemmas, flashcards, etc 01cd5a6
  • 2025-03-15 Add commonality sorting to get_all_wordforms_for and update wordform_views - Added commonality sorting option to Wordform cf276a5
  • 2025-03-15 Add Lemma 82a7a93
  • 2025-03-15 Update remaining use of Lemma 1dc557a
  • 2025-03-15 Remove legacy get_all_for_language methods for simplicity - Removed Wordform c56ad3e
  • 2025-03-15 Prevent slashes in lemmas and wordforms to avoid URL routing issues - Added explicit instructions to all relevant prompt templates - Ensures lemmas and wordforms generated by LLM won't contain slashes - Simpler solution than adding slug fields or URL encoding d26a72f
  • 2025-03-15 Fix Sentence 0039586
  • 2025-03-15 Fixed Sentence 2878bf1
  • 2025-03-15 Fix mobile audio autoplay in flashcards by using HTML autoplay attribute - Changed audio initialization approach to match v1 flashcards - Added autoplay attribute to audio element in the HTML markup - Improved error message with clearer instructions - Removed programmatic Audio creation that was causing mobile autoplay issues 6ba03fd
  • 2025-03-09 Allow for phrase commonality & guessability to be None e9250aa
  • 2025-03-03 Don't lower-case wordforms for proper nouns 689bca5
  • 2025-03-03 Handle missing phrase commonality b759505
  • 2025-03-03 Fixed commonality sort for lemmas a273e81
  • 2025-03-03 MiniWordform v1 a338240
  • 2025-03-03 More MiniWordforms in lemma c74f8a3
  • 2025-03-03 Using MiniWordform for wordforms 83be621
  • 2025-03-02 Cascade delete wordform 7834a8a
  • 2025-03-02 Tweaks to prompt template for wordforms b783856
  • 2025-03-02 Added phrase slug bd0f0d5
  • 2025-03-02 Failed case-insensitive wordform and lemma sorting 23f5256
  • 2025-03-02 Failing to get Tailwind to work with Sentence 272b2ac
  • 2025-03-02 Added Sentence playback speed 76195f9
  • 2025-03-02 Separate Sourcefile text/words/phrases tabs 8655b65

Miscellaneous

  • 2025-03-30 Working on Sourcefile page d00f7a5
  • 2025-03-30 Sourcefile tabs in progress feb661b
  • 2025-03-30 Update STYLING 37d3dfb
  • 2025-03-30 Fixed sourcedir url ac345e3
  • 2025-03-30 In progress on URL standardisation 19abf8b
  • 2025-03-30 Renaming views /lang -> /language c1cf6cd
  • 2025-03-30 Avoiding duplicate headings in Sourcefile f425753
  • 2025-03-30 Still fixing urls 1921761
  • 2025-03-30 Update CLAUDE f645861
  • 2025-03-30 Refactor search functionality by extracting common code to search_utils 34e1ec4
  • 2025-03-30 Update SEARCH c8eedff
  • 2025-03-29 Moved out iOS a3f668b
  • 2025-03-29 Moved languages_list_vw -> languages_views 80da008
  • 2025-03-29 Improve homepage design and styling to match dark theme 472b090
  • 2025-03-28 Added delete button 15fa2d4
  • 2025-03-27 Prompts: adding delimiters and dealing with empty ced02cd
  • 2025-03-27 Default language level and types 44296f2
  • 2025-03-27 Improving Source* header & buttons - cosmetic bb7cad0
  • 2025-03-27 Refactor/malgamate process & update Sourcefile bb77225
  • 2025-03-27 Don't check Git twice - it's not worth it e7e8b22
  • 2025-03-27 Fire and forget 7f31bca
  • 2025-03-27 Improved parallelisation 675b12f
  • 2025-03-26 Add more languages 1b618f6
  • 2025-03-26 Tidying sourcefile processing and more robust 4564c34
  • 2025-03-23 Replace endpoint_for with direct endpoint strings in templates c5e9f6b
  • 2025-03-23 Removing machinery for endpoint_for in templates 6958881
  • 2025-03-23 Replace redirect_to_view with redirect(url_for(endpoint_for())) pattern da3ffcb
  • 2025-03-23 Use endpoint_for in Python code ebaf013
  • 2025-03-23 Delete flask_view_utils c9851d6
  • 2025-03-23 Remove weird hardcoded hack for search_views 9c55dd4
  • 2025-03-23 Updated import 9342778
  • 2025-03-23 Output Vite logs to both file and stdout bb90d82
  • 2025-03-23 Refactor sort options template to simplify and remove if/elif chains - Modified _sort_options 2a32330
  • 2025-03-23 Breadcrumbs 8fd554e
  • 2025-03-23 MCP servers 1d9460d
  • 2025-03-23 Consolidate Vite helpers and fix environment detection - Create unified Vite helpers implementation in utils/vite_helpers 1f57606
  • 2025-03-23 Using Jinja globals - working 9fc1efe
  • 2025-03-23 51174d7
  • 2025-03-22 Implement URL registry for frontend and template use This implements Option 4 from planning/250317_passing_urls_to_frontend 68ab949
  • 2025-03-22 Update URL registry planning document - Reorganized planning document for better clarity - Added action items for remaining work - Moved rejected options to an appendix - Updated implementation progress 1a9b45a
  • 2025-03-22 Add Jinja template URL demo - Add URL demo template with endpoint_for usage example - Inject endpoint_for into all templates via context processor - Add URL demo route in system_views d1f9067
  • 2025-03-22 Add Jinja template example for URL registry - Created demo page showing URL generation with endpoint_for - Fixed function name for sourcedirs_for_language - Added example of how nested function calls work in templates 62bd62c
  • 2025-03-22 Remove URL demo page - Removed demo template and view function as it's no longer needed - Moving to a more integrated approach with endpoint_for 92a7743
  • 2025-03-22 Moved list_code_files 8a9aaf4
  • 2025-03-22 Update CLAUDE 940382a
  • 2025-03-22 Update sourcefiles template to use endpoint_for - Add additional blueprint and view function references to context processor - Update sourcefiles dcc49c9
  • 2025-03-22 Fix AttributeError with Blueprint objects in URL registry - Remove Blueprint objects from view context - Provide view functions directly in context processor - Update templates to use direct function references instead of blueprint a50e277
  • 2025-03-22 Update planning document with implementation challenges - Document Blueprint vs Function resolution issue - Add solution approach used for endpoint_for function - Add consideration for function naming conflicts - Update QA section with AttributeError fix 2b62fe6
  • 2025-03-22 Fix /lang route to handle both with and without trailing slash This ensures the language selection page is properly displayed when visiting /lang directly, matching the pattern used for other routes like /favicon 2ada6fa
  • 2025-03-22 Refactor context processor to use minimal function-based approach - Replace large inject_view_functions() with minimal inject_base_view_functions() - Update base a2ae49f
  • 2025-03-22 Fix URL registry blueprint naming consistency - Renamed views b252091
  • 2025-03-22 Renamed and refactored view functions, e 1958520
  • 2025-03-22 Moved stuff out of base 53b363f
  • 2025-03-22 Fixing a lot of endpoint_for 23c14a9
  • 2025-03-22 Remove route-registry-example page - Remove the route-registry-example view function from core_views 1c673f3
  • 2025-03-22 Updating view function names and jinja imports 1e2fcc1
  • 2025-03-22 We don't need get_route_registry 2e7cb9a
  • 2025-03-22 Add 404 error handler and fix template links - Register custom 404 error handler in Flask app to use 404 9adf01b
  • 2025-03-22 Removed extraneous prefixes 6ec10c1
  • 2025-03-22 Standardize URL parameter names to target_language_code - Updated parameter names in routes from language_code to target_language_code - Modified view functions in sourcefile_views d0c2c5e
  • 2025-03-22 Count lines by file e5c1180
  • 2025-03-22 Updating urls and machinery b1f93a1
  • 2025-03-22 Renamed languages_vw -> languages_list_vw 58c9a6a
  • 2025-03-22 Trying to be surgical about renaming target_language_code 4f1d167
  • 2025-03-22 Create 250322_REST_url_tidying_proposal 95ba538
  • 2025-03-22 Gah, it's a mess 0615521
  • 2025-03-19 Fixed broken urls for word preview and generate_audio ee943a9
  • 2025-03-19 Removing urls() list 72859d6
  • 2025-03-19 One more word preview url fix 46dbe3d
  • 2025-03-18 Working on English search 6e8d9d5
  • 2025-03-18 Next draft of prompt template for English search 0bdade2
  • 2025-03-18 More minor steps on planning the English search c00d93a
  • 2025-03-18 Create 250317_passing_urls_to_frontend a87bdc1
  • 2025-03-18 Delete simple 7df0eda
  • 2025-03-18 Create list_code_files 54189b5
  • 2025-03-18 Fixed doc extension e07745f
  • 2025-03-17 Update CLAUDE 34d336a
  • 2025-03-17 Minor breadcrumbs fix 452265a
  • 2025-03-17 Breadcrumbs d6459d0
  • 2025-03-17 Tidied up index 568c30d
  • 2025-03-17 Fix disabled button styling to ensure consistent size with regular buttons Added span 8e7c943
  • 2025-03-17 Rename doc 24a2e1c
  • 2025-03-16 simple 3b9026e
  • 2025-03-16 We don't need set_secrets c7416b1
  • 2025-03-16 Modify check_git_status 294d21d
  • 2025-03-16 Use index a4ea8a8
  • 2025-03-16 Improve breadcrumbs 4b2cfa2
  • 2025-03-16 Gitignore screenshots 3d06109
  • 2025-03-16 Sort sourcefiles case-insensitively Modified sorting of sourcefiles to use case-insensitive comparison with fn d776ee0
  • 2025-03-16 Add Delete button to sourcefile view 7c71259
  • 2025-03-16 Fix migrate dcac61b
  • 2025-03-16 Update references from Fly 26572ec
  • 2025-03-16 Fixed url encoding for search views 4109ed9
  • 2025-03-16 Move search views to dedicated search_views 97e1e74
  • 2025-03-16 Remaining update for app 5f01958
  • 2025-03-16 Improved Flask logging 0a251ed
  • 2025-03-15 Show mobile upload options based on device detection instead of screen width - Added isMobileOrTablet() device detection function to base 923b234
  • 2025-03-15 Add line-limited logging with loguru - Replace standard logging with loguru for improved formatting and features - Create LimitingFileWriter class to maintain logs at max 100 lines - Set up interception for Flask/Werkzeug logs to capture all web requests - Refactor logging code into utils/logging_utils aa19778
  • 2025-03-15 Add logs directory to gitignore - Ignore logs/ directory and all * 5d716fb
  • 2025-03-15 Add include_junction_data parameter to query methods bf59295
  • 2025-03-15 Create CLAUDE 9f9d5f5
  • 2025-03-15 Add frontend logging to capture Vite dev server output - Configure run_frontend_dev 798eba7
  • 2025-03-15 Update c3eb2a8
  • 2025-03-15 cursor-tools 61a26b9
  • 2025-03-15 Updated cursor-tools rule 4c59339
  • 2025-03-15 Disable Debug Toolbar 0aa09b5
  • 2025-03-15 Update 00bccf5
  • 2025-03-15 Store screenshots 765bd8b
  • 2025-03-15 Prompt template for inflected word forms 9d7ac11
  • 2025-03-15 Update CLAUDE 59755a1
  • 2025-03-15 Fix JSON serialization error with Anthropic client object Fix "Processing failed: Object of type Anthropic is not JSON serializable" error by using gjdutils a25d0f8
  • 2025-03-15 Create e34a34d
  • 2025-03-15 Rules 58a438c
  • 2025-03-15 Planning re hosting 7248bed
  • 2025-03-14 First attempt at MCP 54531c9
  • 2025-03-14 Fixed browser-tools-mcp 51f8d2f
  • 2025-03-14 Experim frontend view aafa884
  • 2025-03-14 Updated the frontend documentation 1c25986
  • 2025-03-14 Updated mcp 450dc66
  • 2025-03-14 Update deb79f1
  • 2025-03-09 Reduce number of threads for processing fd65466
  • 2025-03-03 Don't need this doc any more 1a81f9a
  • 2025-03-02 Tweak to Greek language display, and to prompt templates re modern f4707b3
  • 2025-03-02 Fixed hard-coded link to /el/ 608605a
  • 2025-03-02 Cursor don't ignore 606f673
  • 2025-03-02 Fixes for renamed Greek language in config e6584aa
  • 2025-03-02 Added lots of other cascade constraints 0b53e95
  • 2025-03-02 Fixed utils path issue 2a57157
  • 2025-03-02 Changing db connections config 6adfd4d
  • 2025-03-02 First set of changes for helloworld Vite etc 85aef0a
  • 2025-03-02 helloworld_newtech works with simple env switching 1b8e870
  • 2025-03-02 Got rid of Tailwind 4a93050
  • 2025-03-02 Fixed link fca22a8

Profile & User

  • 2025-03-17 Fix auth redirection and profile form issues - Fix profile 93168b8
  • 2025-03-17 Update 029_add_profile_table 2b9744c
  • 2025-03-16 Auth v1 nearly works - still an issue with the profile page 9c3fd75
  • 2025-03-15 Improve directory deletion error messages Added more descriptive error message when a user tries to delete a directory containing files 30cc50d

UI & Components

  • 2025-03-31 Warning in out-of-date docs re SvelteKit f942aab
  • 2025-03-31 Prepare SvelteKit for Vercel deployment and update Flask CORS settings 6310ce6
  • 2025-03-31 Update deployment scripts for dual Vercel setup (API + SvelteKit) bd6f287
  • 2025-03-30 Extract LemmaCard component and implement across application 8b0b268
  • 2025-03-30 Add MetadataCard component for consistent timestamp display across pages 11c72d9
  • 2025-03-30 Add phrases_list_api and SvelteKit phrases route - Created phrases_list_api function in phrase_api 9885ec4
  • 2025-03-30 Enhance phrases page with improved styling and component design - Implemented a responsive grid layout for phrase cards - Added PhraseCard component with proper styling - Enhanced visual appeal with card shadows, hover effects, and transitions - Improved sort buttons with better styling - Updated color scheme to match project's design system - Better spacing and typography for improved readability 0ec4905
  • 2025-03-30 Added Phrase SvelteKit 49810a2
  • 2025-03-30 Improved Phrase in SvelteKit 0fda6fe
  • 2025-03-30 Implement Sourcefile page components and fix API routing - Create SourcefileWords component with WordformCard integration - Create SourcefilePhrases component with PhraseCard integration - Update SourcefileHeader component with API actions (process, rename, delete) - Fix language_name error in page 57cf915
  • 2025-03-30 Implement dedicated tab routes for Sourcefile pages - Created separate route directories and files for Words and Phrases tabs - Added MetadataCard to both tab pages for consistent UI - Implemented WordformCard integration on Words page - Added PhraseCard integration on Phrases page - Implemented text tab redirect back to main sourcefile page - Updated main sourcefile page links to point to dedicated tab routes - Improved styling for tab navigation - Enhanced structure for better SEO with individual page URLs 5b0f1b8
  • 2025-03-30 Update Sourcefile routing to redirect bare URL to /text - Changed base Sourcefile URL to redirect to /text tab - Moved data fetching logic from root route to text tab - Created text tab page component with proper navigation - Updated links in all tab pages to consistently point to /text - Ensured breadcrumbs correctly link to the text tab for the file name - Maintained consistent tab styling and navigation across all pages 8588c29
  • 2025-03-30 Add timestamp metadata to Phrase to_dict method to display in MetadataCard component 835aa2e
  • 2025-03-30 Implement type-safe route integration between Flask and SvelteKit - Move TypeScript route generation to SvelteKit's lib/generated folder - Create type-safe API utilities (getApiUrl, apiFetch) - Update components to use typed route parameters - Standardize on target_language_code parameter naming - Update documentation with type-safety benefits - Refactor phrase detail and sources page to use the new approach This change provides compile-time checking of API routes and parameters, creates a single source of truth for routes, and improves IDE support with autocomplete 80b664f
  • 2025-03-30 Fixed run_sveltekit 7e98f31
  • 2025-03-30 Fix route URLs using type-safe route resolution - Update Flask view URLs to use consistent /language/[code]/source/[dir]/[file] pattern - Refactor SvelteKit page server files to use RouteName enum with proper parameters - Replace hardcoded URLs with type-safe getApiUrl function calls - Fix inconsistencies between SvelteKit routing and Flask endpoints - Update routes 8201976
  • 2025-03-30 Fix languages search functionality Added proper reactivity to the language search feature on the languages page, using Svelte's reactive declarations for filtering and grouping languages 66e9c12
  • 2025-03-30 First stage of search -> SvelteKit Co-Authored-By: Claude <noreply@anthropic 3570976
  • 2025-03-30 Add search bar to all language-specific pages using SvelteKit layouts bd99e62
  • 2025-03-30 Replace get_api_url with type-safe getApiUrl function in SvelteKit codebase - Replaced all occurrences of get_api_url with getApiUrl in flashcard components - Updated get_language_name function to use getApiUrl - Updated README a44d6cf
  • 2025-03-30 Implement enhanced search functionality for SvelteKit - Create comprehensive search documentation in SEARCH 4a10490
  • 2025-03-29 Init sveltekit_hz f14a814
  • 2025-03-29 Add language name API and improve SvelteKit backend integration - Added new language_name API endpoint in languages_api 813151b
  • 2025-03-29 Docs, including sveltekit_hz README b9f120e
  • 2025-03-29 Tweaks for sveltekit_hz Sentence 533e795
  • 2025-03-29 Implement Bootstrap styling for SvelteKit - Added Bootstrap 5 46038a6
  • 2025-03-29 Refactor Bootstrap implementation for reusability - Created reusable UI components (Card, SourceItem) - Restructured CSS with separate theme-variables dc975ad
  • 2025-03-29 Enhance languages page with modern design and fix search functionality - Redesigned the languages page with modern UI featuring animations, gradients and responsive layout - Fixed search functionality to filter by both language name and code - Made cards more compact to display more languages at once - Added hero section with stats and illustration - Improved card design with large letter background for visual interest - Implemented alphabetical navigation - Enhanced mobile responsiveness - Updated Card component to support the new styling 03e8763
  • 2025-03-29 Restructure SvelteKit documentation into separate files 2fdc676
  • 2025-03-29 Update run_sveltekit 73135a4
  • 2025-03-29 Add API endpoint for source directories and connect SvelteKit sources page to real API data 382329a
  • 2025-03-29 Improve Card component to prevent nested anchor tag errors - Added clear documentation to warn about nested anchor tags - Renamed href prop to linkUrl for clearer API semantics - Updated all component usages to match the new API - This change prevents the HierarchyRequestError that occurs when nesting <a> tags 16b4deb
  • 2025-03-29 Abstract sentences into SentenceCard component with dark theme styling 55cecbe
  • 2025-03-29 Add Lemma view in SvelteKit with SentenceCard component integration dd967a2
  • 2025-03-29 Add wordforms API, components and route for SvelteKit implementation - Created wordforms_list_api endpoint in wordform_api 5570ee3
  • 2025-03-29 Add wordform metadata SvelteKit page - Create get_wordform_metadata API endpoint - Abstract common functionality into get_wordform_metadata utility - Add SvelteKit route for wordform detail page - Style wordform page with improved layout and badges - Split inflection_type field into individual badges - Use subtle styling for metadata badges - Make lemma link prominent with a large button d7f7262
  • 2025-03-29 Add flashcard API, utilities, and SvelteKit routes - Create a dedicated flashcard_utils a7c5df9
  • 2025-03-29 Fix flashcards functionality in SvelteKit port This commit resolves issues with the flashcards functionality: 1 8dcb00e
  • 2025-03-23 Update all Svelte components to use URL registry Instead of hardcoded URL strings, Svelte components now use the URL registry system: - FlashcardApp 70f31aa
  • 2025-03-23 Frontend seems to work with --prod-frontend and not showing "Loading xxx component" 7faa1df
  • 2025-03-22 Add URL registry testing utilities and tests - Added build_url_with_query helper function for tests to safely create URLs with query parameters - Added get_route_registry helper to access the route registry in tests - Created test_url_registry 4220ec8
  • 2025-03-22 Add Jinja template integration for URL registry, examples, and documentation - Added comprehensive documentation for Jinja template URL generation - Created example Svelte component using TypeScript route utilities - Updated sourcefile b423c3a
  • 2025-03-22 Update URL registry planning document - Mark completed template updates - Update Phase 3 status to 'In Progress' - Refine next steps for continuing the implementation - Add details about JavaScript and template migration a86226f
  • 2025-03-22 Fix trailing slash issue with wordforms view and use build_url_with_query for all tests - Added trailing slash to wordforms URL route (`/lang/{lang}/wordforms/`) - Updated utils_for_testing bb06f2f
  • 2025-03-22 Replace hardcoded URLs with build_url_with_query in remaining tests - Updated test_lemma_views c5c7345
  • 2025-03-22 In progress replacing test hardcoded urls with build_url_with_query 92ebb70
  • 2025-03-22 More build_url_with_query and languages_list_vw rename fd640e9
  • 2025-03-17 Fixed tooltips with new URL structure a5aa6cc
  • 2025-03-17 Fix Svelte components CSS loading in production - Added dedicated Flask route to serve CSS files dynamically - Modified template to use a consistent CSS path that doesn't depend on hash values - Simple solution that automatically adapts to new CSS files after rebuilds 5a1dbb2
  • 2025-03-17 Add draft investigation document for Svelte CSS loading issues 2a56d4f
  • 2025-03-17 Fix URL structure for audio generation in Sentence component - Update API routes in sentence_views 5832946
  • 2025-03-16 Fix CSS scoping issue for sentence component in production Changed from nested :global() selectors to top-level :global() blocks for better CSS compatibility between development and production b82ba62
  • 2025-03-16 Further simplify CSS global styles in Sentence component Made paragraph and line break styles globally available instead of restricting to target-lang-text class, resolving CSS issues in production 1cd743d
  • 2025-03-16 Switched to functions instead of builds ec61779
  • 2025-03-16 Update build-frontend 0bd3172
  • 2025-03-16 Always build frontend assets 5b8c675
  • 2025-03-16 Trying to fix Svelte imports 0d0696e
  • 2025-03-16 Add Practice Flashcards buttons to language pages - Add Practice Flashcards button to language index page (/el/) - Style the buttons consistently with existing design patterns 13f8e4f
  • 2025-03-16 Fix Svelte component styling in production environment This commit resolves styling issues with Svelte components in production by: - Adding CSS manifest loading to the Flask app - Configuring Vite to generate a single CSS file instead of code-splitting - Explicitly loading the CSS file in the base_svelte template - Adding fallback paths for when the manifest isn't available f527b68
  • 2025-03-16 Fix tooltip preview by adding explicit URL unquote to API endpoints Added explicit URL unquoting to both word-preview and phrase-preview API endpoints to handle Greek character encoding properly in Vercel environment 79022b0
  • 2025-03-16 Implement WhiteNoise for static file serving in Vercel serverless environment - Add WhiteNoise dependency to requirements 00c0845
  • 2025-03-16 Fix auth redirect issue with trailing slashes - Fixed issue where auth redirect with trailing slash causes language code error - Added check in AuthPage component to remove trailing slash from auth URLs - Added server-side handling to redirect /auth/ to /auth 0d599fe
  • 2025-03-16 Fix profile page route to handle language codes properly - Updated profile route to handle language codes and trailing slashes - Added target_language_code=None to profile template context to avoid errors - Improved UserStatus component to ensure clean profile URL link 7fd6a78
  • 2025-03-16 Fix profile page redirect and template errors - Fixed profile page template to explicitly include target_language_name - Improved page_auth_required decorator to handle redirect URLs better - Enhanced UserStatus component to avoid trailing slash issues dc81578
  • 2025-03-15 Static local versions of most js and css 89d61f7
  • 2025-03-15 Fixing Svelte naming issues e68eb3d
  • 2025-03-15 Enhance sentence view with rich lemma displays - Add API endpoint to fetch detailed lemma information - Replace simple lemma links with MiniLemma Svelte component in sentences - Show full lemma info including part of speech and translations - Improve lemma detection by combining database links and matched wordforms - Add loading indicator during lemma data fetching c0278ba
  • 2025-03-15 Fix inconsistent Svelte entry naming in vite e6e490f
  • 2025-03-15 Add MiniWordformList component for better encapsulation - Create new MiniWordformList Svelte component and entry point - Update vite 5aaa39d
  • 2025-03-15 Fix Svelte component loading in production environment - Remove incorrect '-entry' suffix from production JS imports to match Vite output - Fix debugLog function to be a proper no-op in production - Simplify component loading code for better reliability - Remove redundant debug logging and fetch test 97b96a3
  • 2025-03-15 Add MiniPhrase Svelte component for consistent phrase display - Create MiniPhrase Svelte component for displaying phrases with consistent styling - Add phrase-preview API endpoint for future tooltip functionality (currently disabled) - Update templates to use MiniPhrase in sourcefile_phrases 87b7a3b
  • 2025-03-15 Fix Svelte components in production environment - Add custom Vite plugin to ensure component exports are correctly generated - Fix component URL path in production template (remove -entry 7b910cf
  • 2025-03-15 Simplify and fix frontend tests - Updated test fixtures to handle existing data with get_or_create pattern - Simplified frontend tests to remove debugging-focused code - Changed Flask test port to avoid conflicts - Added skip markers to frontend component tests requiring special setup - Used patterns from backend tests for improved consistency bfe8191
  • 2025-03-15 Add Svelte-based flashcards2 system with staged learning This commit adds a new flashcard system built with Svelte and TypeScript: - Created flashcard2_views 09f7533
  • 2025-03-15 Fix URL paths for Svelte components in production - Update base_svelte a4665c0
  • 2025-03-15 Fix Svelte components in production using library mode - Implement Vite's library mode for component building - Create central component registry in index e69124c
  • 2025-03-15 Fix Docker build: add b4080c9
  • 2025-03-15 Implement Svelte-based flashcards system with UMD pattern - Fixed module loading issues using UMD pattern - Updated ENTER keyboard shortcut to work document-wide - Added detailed documentation about the implementation approach - Added improved test coverage for the flashcard components - Updated FRONTEND_INFRASTRUCTURE 1013fb1
  • 2025-03-15 Bundle Svelte runtime into UMD build to avoid CDN dependencies - Updated vite ebea815
  • 2025-03-15 Include static/build in Docker deployment c9b3713
  • 2025-03-15 Create 250315_UMD_for_Svelte e3ece2f
  • 2025-03-15 Add sourcefile/sourcedir filtering to Flashcards v2 - Added "Practice Flashcards v2" buttons to sourcefile and sourcedir pages - Added source filter banner to display current filter context - Enhanced FlashcardApp and FlashcardLanding components to show filtering info - Implemented "Clear filter" button to remove current filter f393e30
  • 2025-03-15 Consolidate flashcards to single implementation by merging v2 into main - Replace flashcards v1 with the Svelte-based flashcards system (previously v2) - Update all routes from /flashcards2 to /flashcards - Rename template files and update templates - Update button labels to remove "v1" and "v2" references - Fix audio autoplay on mobile devices with HTML5 autoplay attribute - Improve error message for audio playback failures 🤖 Generated with [Claude Code](https://claude 6eb6fa9
  • 2025-03-15 Add interactive vocabulary words to flashcards - Replace simple text list of lemma words with interactive MiniLemma components - Add functionality to fetch lemma data from the API in stage 3 - Improve styling for vocabulary section in flashcards - Reuse existing MiniLemma component for consistent UI across the app cb4bdac
  • 2025-03-15 Standardize Svelte component loading by removing UMD approach - Convert flashcard components from UMD to standard ES modules - Update base_svelte 31d2f6c
  • 2025-03-15 Fix Svelte component loading in production - Remove code in base 9f494b3
  • 2025-03-15 Add planning doc for Svelte ES modules standardization - Document the standardization of Svelte component loading - Explain reasoning behind ES modules over UMD approach - Track completed actions and future improvements 60c1729
  • 2025-03-15 Remove loading placeholder message from Svelte components - Remove the "Loading component fb36e3c
  • 2025-03-15 Fix Svelte warning for unused export property Changed FlashcardApp's targetLanguageName from 'export let' to 'export const' since it's passed from the template but not used within the component 3b5f23a
  • 2025-03-14 More mobile CSS changes f3d55d0
  • 2025-03-14 updated docs for Svelte front-end debugging e28662e
  • 2025-03-14 Add MiniLemma Svelte component for displaying lemma entries 57cb8f0
  • 2025-03-14 Replace MiniWordform with MiniLemma component in wordforms list 059dc86
  • 2025-03-14 Revert "Replace MiniWordform with MiniLemma component in wordforms list" This reverts commit 059dc867c25cd5cca1ca1a886c5b5920f5e6a288 334caf2
  • 2025-03-14 Use MiniLemma Svelte component in lemmas a285f5e
  • 2025-03-14 Fix Svelte component naming and loading issues - Renamed miniwordform-entry e8cfde0
  • 2025-03-03 Added MiniSentence component to lemma view 5527f7c
  • 2025-03-03 MiniWordform sort of has working tooltips 9eba7f3
  • 2025-03-02 New Tailwind base styles, lemma f92e27e
  • 2025-03-02 More lemma CSS changes - not so sure about Tailwind 234e8fc
  • 2025-03-02 Sentence works with Svelte and ok styling But lemma is broken fdf6b06

February 2025

Auth & Security

  • 2025-02-17 Imported prod dump into Supabase 9ea6387
  • 2025-02-17 About to try first deploy with Supabase 20cea49
  • 2025-02-16 Begin Supabase migration: Update env files and docs - Switch to DATABASE_URL connection string - Add local-to-prod debugging mode - Update DATABASE 07a806e
  • 2025-02-16 refactor: Update database connection to use DATABASE_URL for Supabase - Update env_config 4829ebe

Backend & Database

  • 2025-02-25 Fixed migrations 017 and 019 a71fe09
  • 2025-02-25 Fixed 019 migration (and added migrate_local_to_prod e443121
  • 2025-02-24 Checking migrations a375843
  • 2025-02-17 Fixed localhost database (which doesn't expect SSL) 8370bfa
  • 2025-02-17 Updated remaining Fly-database-related issues 10af656
  • 2025-02-09 Using pytest-postgresql (UNTESTED) also renamed test_db fixture -> fixture_for_testing_db 8904b48
  • 2025-02-09 Using pytest-postgresql (UNTESTED) also renamed test_db fixture -> fixture_for_testing_db 4aba5c3
  • 2025-02-09 Added API keys to 38d0680
  • 2025-02-09 Added API keys to 6069c65
  • 2025-02-09 Don't send API keys in ef9b52b
  • 2025-02-09 Don't send API keys in 5ba3fa9
  • 2025-02-09 Fixed tests/backend/conftest import issue 1d22b61
  • 2025-02-09 Fixed tests/backend/conftest import issue cd8265a
  • 2025-02-09 Fixed migration to use correct utils/migrate 032dafe

Deployment & Ops

  • 2025-02-17 Reorganised scripts still need to update docs b677403
  • 2025-02-17 Updated docs from scripts reorg 9811f4f
  • 2025-02-17 Make deployment scripts executable 2439f15
  • 2025-02-17 Removed duplicate scripts that somehow got returned when we did the Git fixing 207f737
  • 2025-02-09 Tests and local seem to be working, bash scripts updated but I haven't tried deploying 373d674
  • 2025-02-09 Tests and local seem to be working, bash scripts updated but I haven't tried deploying 304d173
  • 2025-02-09 Moved out _secrets, nearly finished with env still need to test deploy etc 82f3cfc
  • 2025-02-09 Moved out _secrets, nearly finished with env still need to test deploy etc 1fc4e14
  • 2025-02-09 Dockerignore 503dba9

Documentation & Testing

  • 2025-02-25 Fixed normalisation tests (not sure why they were broken already) 05cde09
  • 2025-02-17 Getting tests working 8103e03
  • 2025-02-16 Renamed gdutils -> gjdutils tests are passing d7f4b26
  • 2025-02-09 Slowly making progress getting tests to run 056ef50
  • 2025-02-09 Slowly making progress getting tests to run c864576
  • 2025-02-09 Moved out mocks into tests/mocks lots of tests failing, for all sorts of reasons b2f6369
  • 2025-02-09 Moved out mocks into tests/mocks lots of tests failing, for all sorts of reasons c0dc924
  • 2025-02-09 Fixed test import errors 9bd54a9
  • 2025-02-09 Fixed test import errors 534acdc
  • 2025-02-09 Moved fixtures/ -> tests/fixtures/ ada3c02
  • 2025-02-09 Moved fixtures/ -> tests/fixtures/ 0c2d4bf
  • 2025-02-09 Moved tests/test_* 13b6390
  • 2025-02-09 Moved tests/test_* 0f68c03
  • 2025-02-09 Fixed a few unit tests 50bf9b2
  • 2025-02-09 Fixed a few unit tests b2c6a42
  • 2025-02-09 test_word_utils passes 1db786c
  • 2025-02-09 test_word_utils passes 04e431c
  • 2025-02-09 Fixed test_vocab_llm_utils mock a94d5e3
  • 2025-02-09 Fixed test_vocab_llm_utils mock 1c6bf2c
  • 2025-02-08 Updated conftest 65433c3
  • 2025-02-08 Updated conftest 1162709

Flashcards & Content

  • 2025-02-17 Fixed issue with missing lemma b6a6446
  • 2025-02-09 Hopefully sped up sentence query for flashcards 3d9c97b

Miscellaneous

  • 2025-02-25 Removed duplicate/old db_connection dd6f305
  • 2025-02-25 Fixed migrate 94b7e40
  • 2025-02-25 Fixed prod migrate fe8e65a
  • 2025-02-25 Added Sourcefile 9052d29
  • 2025-02-25 Made Sourcefile buttons command-clickable and visually consistent 8606937
  • 2025-02-25 Add ON DELETE CASCADE constraints to sourcefile relations and simplify delete_sourcefile function 7b6444c
  • 2025-02-25 Update 019_standardize_unicode_normalization 7c864bf
  • 2025-02-24 Pick a random voice 1c5f4a5
  • 2025-02-23 Ignore gjdutils rules cd636c7
  • 2025-02-17 Updated env_config 0645309
  • 2025-02-17 Added export_envs 28b60ed
  • 2025-02-17 Moved and renamed verify_db_connection 9e51edd
  • 2025-02-17 Got verify_db_connection 35f3615
  • 2025-02-17 Use standard pip gjdutils 2f0f21a
  • 2025-02-17 Fixed check_health 3a7f51d
  • 2025-02-17 Merge preserved-work-main into main, keeping all recent changes 8af1cf2
  • 2025-02-16 Lower-case type a832b06
  • 2025-02-16 Improved PROJECT_MANAGEMENT 01ceaa5
  • 2025-02-16 Gitignore 4b1a7d8
  • 2025-02-09 Big tidy-up of env in config cb71f68
  • 2025-02-09 Big tidy-up of env in config fd00f62
  • 2025-02-09 Trying to simplify db_connection 1891ace
  • 2025-02-09 Trying to simplify db_connection 0c5e927
  • 2025-02-09 Connect & backup by proxy worked! a72754e
  • 2025-02-09 Connect & backup by proxy worked! 6107758
  • 2025-02-09 Don't reboot after setting each secret 115f89e
  • 2025-02-09 Don't reboot after setting each secret ec1710f
  • 2025-02-09 Oops, updated the obsolete set_secrets 75ae1d9
  • 2025-02-09 Oops, updated the obsolete set_secrets d616030
  • 2025-02-09 Fixed issue with comment e74a0be
  • 2025-02-09 Fixed issue with comment 6baaa7c
  • 2025-02-09 Removed secrets from fly 39485c6
  • 2025-02-09 Removed secrets from fly fbb1b9d
  • 2025-02-09 Moved *_views 085596c
  • 2025-02-09 Moved *_views 53dda35
  • 2025-02-09 Fixed language_name breadcrumb 1132e67
  • 2025-02-09 Fixed language_name breadcrumb eda0b4c
  • 2025-02-09 Moved health-check etc out to system_views and utils fa3de5f
  • 2025-02-09 Moved health-check etc out to system_views and utils f27ad9a
  • 2025-02-09 Moved lots into utils/ d5aefc5
  • 2025-02-09 Moved lots into utils/ fda03e4
  • 2025-02-09 Moved favicon() to views 213fea3
  • 2025-02-09 Moved favicon() to views eb2a9f6
  • 2025-02-09 Fixed another import error a65d6ba
  • 2025-02-09 Fixed another import error 25a3267
  • 2025-02-09 Removed 2a3634b
  • 2025-02-09 Removed 5ebc29c
  • 2025-02-09 Added support for 73888e5
  • 2025-02-09 Added support for 4a471a1
  • 2025-02-09 Updated references to `utils/migrate 89a56b5
  • 2025-02-09 Updated references to `utils/migrate 387f33d
  • 2025-02-09 Removed unused imports 22a5ca3
  • 2025-02-09 Removed unused imports a13d616
  • 2025-02-09 Some light refactoring 16c7850
  • 2025-02-09 Some light refactoring 73a7fc2
  • 2025-02-09 Fixing Pydantic env_config e5b7553
  • 2025-02-09 Fixing Pydantic env_config ce1d3e8
  • 2025-02-09 Trying to fix word_utils 4ace2b9
  • 2025-02-09 Trying to fix word_utils 0ba4dc2
  • 2025-02-09 Gitignore obsolete/ 513c9bb
  • 2025-02-09 Gitignore obsolete/ bf73130
  • 2025-02-09 Fixed flask secret key config ed90943
  • 2025-02-09 Fixed flask secret key config 187d60e
  • 2025-02-09 Updated migrate_fly 7a2310f
  • 2025-02-09 Removed duplicate db_connection b800eb0
  • 2025-02-08 Initial commit 67afc7d
  • 2025-02-08 Initial commit 10dbed7
  • 2025-02-08 Moved from spideryarn/241103_vocab 9ee7d82
  • 2025-02-08 Moved from spideryarn/241103_vocab 3cb272b
  • 2025-02-08 First stage of env planning and dotfile creation 6679fa9
  • 2025-02-08 First stage of env planning and dotfile creation eca92a7
  • 2025-02-08 Reworked env_config 3d1cb51
  • 2025-02-08 Reworked env_config 785834a
  • 2025-02-08 Moved out google_cloud_run_utils to obsolete/ 7a988cf
  • 2025-02-08 Moved out google_cloud_run_utils to obsolete/ 9b83384
  • 2025-02-08 Store obsolete/ in Git, just in case 86403c1
  • 2025-02-08 Store obsolete/ in Git, just in case cc9db31
  • 2025-02-08 Updated to use env_config e10ce43
  • 2025-02-08 Updated to use env_config ed9b632
  • 2025-02-08 Updated f0ae705
  • 2025-02-08 Updated 4ab9e97
  • 2025-02-08 Setting Fly secrets 12b93e6
  • 2025-02-08 Setting Fly secrets 5d5220b

UI & Components

  • 2025-02-25 Fixed the weird unicode bug with τροφή in tooltip preview e8344f5
  • 2025-02-17 Update gjdutils requirement to use Git repository c3e8d4e
  • 2025-02-09 Don't require 15844df

April 2025

Auth & Security

  • 2025-04-27 Added default sort to lemmas and phrases Co-Authored-By: Claude <noreply@anthropic 50f3a1a
  • 2025-04-27 Show the default sort with an arrow in the column Co-Authored-By: Claude <noreply@anthropic 9107a85
  • 2025-04-26 Tried to add Supabase-js type generation (not sure if it's working) it's running as part of run_frontend 7e0a4c8
  • 2025-04-25 Supabase confirm-signup email template 4a5e7ed
  • 2025-04-25 If you're already logged in, then /auth redirects you 9e80817
  • 2025-04-24 Update confirm_signup bc26b5d
  • 2025-04-23 Updating colours as per 250423 planning doc Co-Authored-By: Claude <noreply@anthropic aa66cae
  • 2025-04-23 About and FAQ backgrounds look ok Co-Authored-By: Claude <noreply@anthropic fe14818
  • 2025-04-22 Fixed Flashcards auth issue 64d3295
  • 2025-04-22 Renamed Supabase_local MCP cde6728
  • 2025-04-21 fix(auth): Use validated session in search server load, add plan doc 8b9fe87
  • 2025-04-21 Another fix re Supabase getSession warning 4dfe87d
  • 2025-04-20 Fixed lemma login-gating 2657cb2
  • 2025-04-20 Fix Supabase client serialization errors in Sourcefile tabs - Fixed 500 errors in all Sourcefile tabs (image, audio, words, phrases, translation) - Removed non-serializable Supabase client from server-to-client data flow - Updated all tab page 8fa98ea
  • 2025-04-20 Removed signup alert f48d175
  • 2025-04-20 Fix: Validate 'next' param in /auth to prevent open redirect and loops 7b7d3f3
  • 2025-04-20 Fixing auth redirect to language homepage but the site logo link is not right 6a280b0
  • 2025-04-20 Update authentication documentation - Enhance AUTH 7483167
  • 2025-04-20 Fixed search 401 login-gating 582fd7a
  • 2025-04-19 Seemingly fixed the auth issue when processing, but now it's in a loop d4cfc46
  • 2025-04-19 Switched to supabase/SSR library for auth f85f307
  • 2025-04-18 Login to process text 2f30190
  • 2025-04-12 Renamed rule Co-Authored-By: Claude <noreply@anthropic 97d9415
  • 2025-04-12 Finished rename of language_code -> target_language_code Co-Authored-By: Claude <noreply@anthropic 0a5e9c9
  • 2025-04-12 Include more translations in lemma Co-Authored-By: Claude <noreply@anthropic f1fe186
  • 2025-04-12 Docs Co-Authored-By: Claude <noreply@anthropic 26cb2b5
  • 2025-04-12 Rename rules Co-Authored-By: Claude <noreply@anthropic 865315a
  • 2025-04-11 Supabase_prod MCP 2b36530
  • 2025-04-08 Comment Co-Authored-By: Claude <noreply@anthropic 400b5da
  • 2025-04-08 Superfluous mis-installation Co-Authored-By: Claude <noreply@anthropic c80ed26
  • 2025-04-05 Fixe prompt templates DIRN reference Co-Authored-By: Claude <noreply@anthropic 468dfe7
  • 2025-04-05 Docs re Vercel logs Co-Authored-By: Claude <noreply@anthropic 8895d26
  • 2025-04-05 Less verbose logging Co-Authored-By: Claude <noreply@anthropic 31ca74e

Backend & Database

  • 2025-04-26 Migrations for adding various fields, including created_by migrations seemed to run successfully, pages work 04632bd
  • 2025-04-23 Add timestamp fields to Sourcedir API - Added created_at and updated_at timestamp fields to the Sourcedir API responses - Fixed metadata section in SourcedirHeader showing 'undefined' for timestamps - Ensured both API endpoints (list and detail) include timestamp data - Updated sourcedir_utils to include timestamps in sourcedir dictionaries 89d089f
  • 2025-04-22 Added trim to apiFetch to try and fix issues with Flashcards random 0357d4b
  • 2025-04-20 Add API support for image and audio tabs in Sourcefile pages - Added new API endpoints for image and audio tabs - Updated the sourcefile_utils f7e6dc6
  • 2025-04-19 API-gating various AI-generation functions ae93093
  • 2025-04-12 Update language_code to target_language_code throughout the codebase - Update all occurrences in backend code to match the database migration - Fix models and queries to use the new field name - Update frontend type definitions to match the backend changes - This completes the migration started in migration file 030 db0445f
  • 2025-04-12 Make 'Process this text' operation synchronous - Modified process_sourcefile to run synchronously instead of using parallelisation - Removed run_async calls for text processing - Removed run_again_after parameter from all functions - Updated API message to indicate synchronous completion - Cleaner UX as the page will automatically reload when processing is done a85dde3
  • 2025-04-12 Add database MODELS 4710f81
  • 2025-04-12 Replace parallel processing with serial for-loop in process_individual_words_api and add detailed response 1ace5c6
  • 2025-04-12 Add lemma metadata completion to frontend-orchestrated processing - Add functions to identify incomplete lemmas for a sourcefile - Create API endpoint for completing individual lemma metadata - Update processing queue to handle lemma completion steps - Document future enhancement to order lemmas by text appearance 97ab26b
  • 2025-04-08 Remove fallbacks, bandaids and excessive logging from lemma generation This commit simplifies the code by: - Removing excessive error handling and fallbacks that masked issues - Eliminating diagnostic logging that was left in production code - Simplifying API response validation to raise errors properly - Making the code fail loudly and clearly when there are problems - Properly propagating errors with informative messages 9d68c5c
  • 2025-04-07 Unified search API stage 1 promising, but you have to refresh the page for it to work fb2960f
  • 2025-04-07 Tidied 250406_unified_search_api f86289b
  • 2025-04-07 Remove hardcoded localhost fallbacks to fix production API URLs - Centralize API base URL management in config f5c972d
  • 2025-04-05 Fix language selector in sourcedir page - Fix ReferenceError by properly using supported_languages from API - Add fallback for supported languages in case API doesn't provide them - Update variable names for consistency in templates 37007fc
  • 2025-04-05 Fix Process this text button by adding empty JSON body to API request The button was failing with a 400 Bad Request error because the API expected a JSON body, but the request was sent without one 5292105
  • 2025-04-05 Fix database migration scripts for production - Update migrate 412d91c
  • 2025-04-05 Moved backend/views/*_api 5181ee5
  • 2025-04-05 Fixed backend 342656c
  • 2025-04-05 Revert "Fixed backend 81214d2
  • 2025-04-05 Revert "Moved backend/views/*_api bfc7552
  • 2025-04-03 Successful deploy, correct API urls 364a3c5
  • 2025-04-01 API works again for non-Jinja Lots of tidying, e ad8bfab

Deployment & Ops

  • 2025-04-25 Easier to edit description 1a61f49
  • 2025-04-23 Redesign FAQ page with table of contents and anchor links - Remove accordion expanding boxes in favor of always-visible content - Add table of contents with links to each question - Create descriptive anchors and heading links for direct navigation - Add back-to-top buttons for better navigation - Improve styling with color-coded question headings - Optimize spacing between questions and answers 101ca97
  • 2025-04-22 Fixed migrate scripts 2823699
  • 2025-04-21 Added image-upload queue to get over Vercel 4 ad81d00
  • 2025-04-08 Improve description text formatting with line breaks - Enhance description display in sourcedir and sourcefile pages - Parse \n as line breaks within paragraphs using <br> tags - Parse \n\n as paragraph breaks using separate <p> tags - Truncate descriptions in SourceItem listings to 100 chars f17f4b9
  • 2025-04-07 Fix Sourcefile rename issue with reactive URLs and hard refresh This fixes an issue where Sourcefile rename updates the URL, but elements referencing the old slug (View image, Delete, etc a7a63a5
  • 2025-04-06 Tweak to line spacing of enhanced text de67217
  • 2025-04-05 Fix accessibility issues in sourcedir page modals - Add ARIA roles to divs with keydown handlers - Add aria-labels to close buttons - Add proper title associations for modal dialogs - Update STYLING ee3f52c
  • 2025-04-05 Update deployment ID environment variable names in documentation and scripts f77f578
  • 2025-04-05 Getting rid of VERCEL_PROD_*_DEPLOYMENT_ID environment variables 08c580a
  • 2025-04-04 Better deployment error message 2f63f8c
  • 2025-04-04 Hopefully fixing syntax error in deploy 5f2c51d
  • 2025-04-04 Fixed deploy urls (and hopefully health checks) 1a8e6db

Documentation & Testing

  • 2025-04-27 Add changelog links throughout the application - Added changelog link to README 75c2623
  • 2025-04-21 Update README 1317705
  • 2025-04-20 docs(frontend): Refactor architecture and site organisation docs c66469c
  • 2025-04-05 Updated docs references aa245f7
  • 2025-04-04 Tidying up docs and tests b26588f

Flashcards & Content

  • 2025-04-26 Changed wordforms columns f70e735
  • 2025-04-26 Styling for Wordform column afeada3
  • 2025-04-26 Slight improvement to processing see planning doc some refactoring It continues past transcribing and translating but I'm still not convinced that it will extract the wordforms more than once! c49a7d1
  • 2025-04-26 Added modified column to Wordforms list c9dbd72
  • 2025-04-25 Tidied up Flashcards display 8a09301
  • 2025-04-25 More flashcard display tidying f903151
  • 2025-04-25 Hiding button in flashcard if no next stage a000f44
  • 2025-04-25 Tweaks to flashcard display & links 56a92bd
  • 2025-04-25 Tidied flashcard sentence & keyboard shortcuts display ce23fdd
  • 2025-04-25 Filter Wordforms list by target language 8d7a438
  • 2025-04-25 Ignore existing phrases 99937a4
  • 2025-04-23 Enhance FAQ page with categorized questions and expand content - Reorganize FAQ into 6 logical categories for better organization - Expand from 8 to 30 questions with detailed answers based on marketing notes - Amalgamate audio flashcard questions into a comprehensive explanation - Update terminology from 'texts' to 'source materials/files' to reflect multi-media nature - Consistently hyphenate 'centaur-sourcing' throughout - Improve styling with category headers and enhanced TOC - Add visual separators between categories e256a1b
  • 2025-04-22 Ignore lemmas in Flashcards bc5d2d9
  • 2025-04-22 Fixed Flashcard ignore double-encoding 48058d0
  • 2025-04-22 Improved Flashcards page display 1ad5ded
  • 2025-04-21 Reload Wordform page when Lemma has completed 6761da1
  • 2025-04-21 Enhanced text now links to wordform 789bf6a
  • 2025-04-21 Tweaked slow speed for sentence audio b678c62
  • 2025-04-21 Add link from Flashcard to Sentence 364b2a0
  • 2025-04-21 Fixed SourcefilePhrases 4ca87d3
  • 2025-04-20 Don't try and populate related_words_phrases_idioms any more because I don't think that's very useful f21be97
  • 2025-04-20 feat: Complete standardized titles for all pages - Add standardized titles to all remaining sections: sentences, phrases, wordforms, search, flashcards - Add meta descriptions to sentence and phrase detail pages - Update planning document to reflect progress - Fix SITE_NAME import errors - Standardize title format across the entire application 7c21444
  • 2025-04-12 Simplified/updated how many words/phrases we get per processing 56fd056
  • 2025-04-08 Seemingly fixed lemma generation, but with a lot of extra fallbacks and logging 1132c9d
  • 2025-04-07 Add links to sourcefile/sourcedir in flashcard pages - Convert sourcefile and sourcedir references to hyperlinks in flashcard pages - Update URL registry documentation to include getPageUrl best practices - Remove fallbacks for better fail-fast behavior e0728d8
  • 2025-04-05 Enhance flashcard experience to always play audio with LEFT key - Update documentation to clarify LEFT arrow always plays audio - Add dedicated playAudio function that doesn't interrupt already playing audio - Modify keyboard handler to play audio in any stage with LEFT arrow - Enable audio play in stage 1 with the Play audio button - Add KeyReturn icon to New sentence button for better UX a6a3aef
  • 2025-04-04 Fixed Flashcards error 641e929
  • 2025-04-04 Fixed links to lemma 62af782
  • 2025-04-04 Fixed Flashcards 5eed173
  • 2025-04-04 Changed enhanced text links to wordform instead of lemma 480f06b
  • 2025-04-04 Added Translation tab 175a764

Miscellaneous

  • 2025-04-26 Removed deprecations verbosity from run_frontend a69d135
  • 2025-04-26 Add text-on-light class for dark text on lavender background - Added new b30618d
  • 2025-04-26 Update CLAUDE 673f8d6
  • 2025-04-25 Updated language list and added config contact variables 5e6827b
  • 2025-04-25 Moved marketing images around ee0cb5e
  • 2025-04-25 Replaced contact buttons, and using global contact variables e95f359
  • 2025-04-25 Improved GitHub logo bf0a2f9
  • 2025-04-25 Fixed Sourcedir rename 42b09ab
  • 2025-04-25 0 2dcd3ec
  • 2025-04-25 Tweaked footer 663a2fa
  • 2025-04-25 Minor header layout tweak ce23214
  • 2025-04-25 Improved layout for long Sourcefile titles b25f91e
  • 2025-04-25 Fixed issue with audio upload 582e02d
  • 2025-04-25 Reduce overlap between STYLING 2d1e791
  • 2025-04-25 Automatically slow down if you keep replaying the audio of a flash card fb9deec
  • 2025-04-25 Added Croatian 006c56e
  • 2025-04-25 Search paste button automatically triggers a search 4173de2
  • 2025-04-25 Search result prepopulated with search term a5fcbd6
  • 2025-04-24 Created CLAUDE 0942f81
  • 2025-04-24 Removed package 2a34a36
  • 2025-04-24 Moved logo 3c05fe8
  • 2025-04-23 Changelog 4d3244f
  • 2025-04-23 Marketing materials 473d1f7
  • 2025-04-23 Updated Sourcedir v1 100fe33
  • 2025-04-23 New homepage be0dea1
  • 2025-04-23 More homepage images 24446c7
  • 2025-04-23 Sourcedir using same buttons as Sourcefile 82513af
  • 2025-04-23 Homepage & image updates ceac5ed
  • 2025-04-23 More marketing and copy prep 963ccb0
  • 2025-04-23 Fix Memrise link rendering in FAQ page - Update FAQ page to use {@html} directive for answers to correctly render HTML links - The Memrise link in the 'Is this a complete language course?' section now displays properly e879dcd
  • 2025-04-23 Add consistent page titles across the site - Update STYLING d795fcb
  • 2025-04-23 Update CLAUDE 25e0ed0
  • 2025-04-23 NebulaBackground works for a few pages about to make a big update so it'll appear on all pages d88ea4b
  • 2025-04-23 Apply NebulaBackground to entire site via root layout - Add NebulaBackground to root layout for consistent site-wide application - Remove redundant NebulaBackground from about page - Ensure header and footer are properly layered with z-index 787ae2f
  • 2025-04-23 Updated FAQ e852581
  • 2025-04-23 Add marked markdown package and blog route structure e9f84db
  • 2025-04-23 Create GIT-COMMIT-GROUPED 3c309d5
  • 2025-04-23 Smaller images 8285dab
  • 2025-04-23 Error page 3e12a31
  • 2025-04-23 Tweak homepage copy f024fbb
  • 2025-04-23 Improved apology - links to search b1d31f5
  • 2025-04-23 Tweaked error page button ordering daa7a7a
  • 2025-04-23 Added link to blog post image 148f6f5
  • 2025-04-23 Remove Markdown processing from blog post - Remove markdown content from page 66b3ea4
  • 2025-04-23 chore(frontend): improve Lightbox UX Portal modal to document 72e725e
  • 2025-04-23 Fixed minor SourcedirGrid import error a04c864
  • 2025-04-23 Create hz-class-replacements 5f7745f
  • 2025-04-23 Slightly fainter background d369eb2
  • 2025-04-23 Using auto-generated language name, fixed duplicate SearchBarMini de0c837
  • 2025-04-23 Added node --trace-deprecation 20eda8c
  • 2025-04-22 Using SearchBarMini for search page after all seems to work ok 509bd51
  • 2025-04-22 Styling autofocus 29a55f6
  • 2025-04-22 Strip whitespace for all the environment variables we're getting an Eleven Labs issue with this now e15fb98
  • 2025-04-22 Updating CLAUDE 814306c
  • 2025-04-22 Updating the env variables strip for secret variables 3cecd20
  • 2025-04-21 Improved title when uploading from url 408cccd
  • 2025-04-21 Mention LoadingSpinner 12ee205
  • 2025-04-21 Added SearchBarMini c942a76
  • 2025-04-21 Tweaking EnhancedText size 479b4ce
  • 2025-04-21 Marketing explainer notes a4e55df
  • 2025-04-21 Marketing ideas v1 I haven't read through them b220eea
  • 2025-04-21 Removed redundant CORS lines 24de19e
  • 2025-04-21 Tidying frontend log warnings 58d4cf7
  • 2025-04-21 Removed progress bar expanding details and updated the collapsed message to be more informative 293ac29
  • 2025-04-21 Tidying unused export let f6300ae
  • 2025-04-21 Removed verbose logging 8691122
  • 2025-04-20 Added Puppeteer 54c58bb
  • 2025-04-20 Add debugging documentation for Sourcefile tab issues Created a comprehensive debugging document (250420_Sourcefile_debugging 9c91c83
  • 2025-04-20 Site logo link 6e61f50
  • 2025-04-20 feat: Implement base title and trailing slash setting - Add base title via root layout (Stage 1) bff365f
  • 2025-04-20 Adding SourcefileFooter plus maybe some misc changes from the titles/slashes work 880855a
  • 2025-04-20 Try to ignore soft linebreaks 7d7aa87
  • 2025-04-20 Coding always-rule 441b094
  • 2025-04-20 Removed broken and unnecessary 9e8f8a9
  • 2025-04-20 Plan for checking data egress issue cd97330
  • 2025-04-20 fix: Standardize titles for remaining pages - Fix truncate import bug in sourcefile text page causing 500 error 0fd2b5d
  • 2025-04-20 Planning doc 995eb4f
  • 2025-04-20 Extract source from url v1 (working) e8cdbb1
  • 2025-04-19 Avoid prefetching word previews 50f76e2
  • 2025-04-19 Processing seems to work! c2dbdc0
  • 2025-04-19 Fixed more errors 5aa9212
  • 2025-04-18 Update 23d3718
  • 2025-04-18 Partway through frontend orchestrated Sourcefile processing 29fe8eb
  • 2025-04-12 Moved out dcbf264
  • 2025-04-12 Collapsible Sourcefile header 77606fd
  • 2025-04-12 Planning frontend-orchestrated Sourcefile-processing e1490e3
  • 2025-04-12 First stage of frontend Sourcefile orchestration seems to work 8d521e1
  • 2025-04-12 Next stage of Sourcefile processing (auto-clicks, and counter) ece68db
  • 2025-04-12 Fix aggressive auto-processing and implement live-updating enhanced text 1 39f4a7e
  • 2025-04-12 Planning enhanced text transition 53c42c4
  • 2025-04-12 Click process counter multiple times 0b620b2
  • 2025-04-12 Renamed logs 7dd52e7
  • 2025-04-11 Moved gjdutils rules into ~/ 2098c13
  • 2025-04-11 Planning doc for large data egress issue c94bb31
  • 2025-04-11 Moved cursor-tools e194824
  • 2025-04-08 Log Flask output to both file and terminal using tee efc569e
  • 2025-04-07 Search is working much better 4090b56
  • 2025-04-07 Search page working pretty well 321cf5b
  • 2025-04-07 Uses unslugified filename for Sourcefile title 361b08a
  • 2025-04-07 Handle Cmd-click search 70af24f
  • 2025-04-07 Redirect Flask server output to log file - Capture both stdout and stderr in logs/flask 6cfbbe6
  • 2025-04-06 Tilted logo - thanks, Carolina! ddac8d9
  • 2025-04-06 Adjust hero styling on homepage a987613
  • 2025-04-06 Refactor EnhancedText word data fetching with async/await - Replace complex Promise chains with cleaner async/await syntax - Remove unnecessary XMLHttpRequest fallback (modern browsers support fetch) - Commit to type-safe URL generation using routes 01c17a4
  • 2025-04-06 Update EnhancedText debugging documentation - Document parameter naming standardization (language_code → target_language_code) - Add details about async/await implementation benefits - Update lessons learned with naming consistency best practices - Add code evolution summary showing incremental improvements - Remove outdated references to XMLHttpRequest fallback - Expand implementation details for future reference 21df4fe
  • 2025-04-06 Disable YouTube button 0047ff4
  • 2025-04-06 Tweak to "easily confused" generation a18fe69
  • 2025-04-06 Rewrote enhanced text using structured word data instead of pre-generated HTML cbba331
  • 2025-04-05 Fixing routes a017078
  • 2025-04-05 Sourcedir sort by date default 48ad3a6
  • 2025-04-05 Speeding up & refactoring Sourcefile pages 9714373
  • 2025-04-05 Tidied up index 0a2e988
  • 2025-04-05 Update SEARCH 6fbccc6
  • 2025-04-05 Added EnhancedText and Tippy, but only partially, not working 6906ebe
  • 2025-04-05 Refactor prompt templates to use individual files c6f838c
  • 2025-04-05 Removed console ceb761c
  • 2025-04-05 Add logo to header with animated hover effect 50e4ef6
  • 2025-04-05 Add 'Up' button to sourcedir page for easier navigation ae33d11
  • 2025-04-05 Using client-side sorting hack to fix /sources :( 7ead745
  • 2025-04-05 Update CLAUDE b024905
  • 2025-04-05 Got rid of 1e29553
  • 2025-04-05 Improving ENHANCED_TEXT 16d519b
  • 2025-04-05 Fix accessibility issues in sourcedir page 1 fd8b0af
  • 2025-04-05 Update DEVOPS dded6d1
  • 2025-04-05 Update ENHANCED_TEXT c23bf59
  • 2025-04-04 Fixed routes 01f43df
  • 2025-04-04 Fixed routes de2e25d
  • 2025-04-04 Fixed Prev and Next buttons 83d9cb0
  • 2025-04-04 Added first and last buttons to Sourcefile 01fbcdc
  • 2025-04-04 SourcefileLayout and improved nav tabs 0047e94
  • 2025-04-04 Create SITE_ORGANISATION 0a14b02
  • 2025-04-03 Tidying 86ce1c1
  • 2025-04-01 Delete vite_helpers 5121ad6
  • 2025-04-01 Update eed954d

Profile & User

  • 2025-04-27 Fix user email lookup to use AuthUser model instead of Profile - Update Profile b2d7200
  • 2025-04-27 Fix profile page URL error by using correct profile API route name Fixed the TypeError in the profile page by updating the route name from PROFILE_API_GET_PROFILE_API to PROFILE_API_GET_CURRENT_PROFILE_API, which matches the actual backend API endpoint /api/profile/current 05fc099
  • 2025-04-26 Add language-specific back button to profile page - Add back navigation button to the user profile page - Show "Back to languages" when no language is saved or selected - Show "Back to [LANGUAGE_NAME]" when a language is saved and selected - Hide button when selected language differs from saved language - Use lavender background with dark text for consistent styling c1484ae
  • 2025-04-25 Fix the issue with the profile target language drop-down when the page is very wide 026b8d8
  • 2025-04-23 Update homepage with clickable marketing images - Made all marketing images link to the languages page - Added subtle hover effects to indicate clickable images - Improved user journey with clear visual call-to-actions - Maintained existing animation effects and styling e08de1e
  • 2025-04-23 feat(frontend): add next query parameter to languages page - Implement next parameter for language selection page - Redirect users to specific features after language selection - Add Try Flashcards overlay on homepage flashcard image - Add documentation explaining the feature and usage 4d08766
  • 2025-04-21 Refactor authentication in sourcedir page using createAuthHeaders… - Added createAuthHeaders helper function to centralize auth token handling - Updated all API calls to use this helper for consistent auth implementation - Fixed file upload authentication issues reported by user with 401 errors - Added comment suggesting future integration with apiFetch for consistency 3d2ca25
  • 2025-04-20 Fix Unauthorized errors in Sourcefile processing and search - Fix processing queue authentication by properly passing Supabase client - Add robust error handling for authentication failures - Fix search functionality to handle authentication gracefully - Improve user feedback for authentication errors with login links - Make error messages more user-friendly with HTML formatting 59aa74b
  • 2025-04-19 Profile page works 0c12fa2
  • 2025-04-18 Some of the auth is working, now trying profile page f7b1f5d
  • 2025-04-08 Make wordform generation fully synchronous This commit fixes the issue where users needed to manually refresh the page after wordform generation a6816cc
  • 2025-04-05 Add dev-mode error details for better debugging - Import dev flag from $app/environment to detect development mode - Add collapsible developer error details section to both error pages - Display comprehensive debug information in dev mode only - Include error details, stack trace, route info, and page data - Keep the interface user-friendly in production a5b45eb

SEO & Analytics

  • 2025-04-27 Terms and privacy policies Co-Authored-By: Claude <noreply@anthropic 86f1f7e
  • 2025-04-26 Google Analytics tag 51c7117
  • 2025-04-26 Add sitemap generator - Create sitemap_generator 3852978
  • 2025-04-26 Refactor sitemap generator to use Jinja templates - Add Jinja templates for XML sitemap generation - Create reusable templates for URL entries - Implement Jinja rendering for all sitemap types - Apply DRY principles to reduce code duplication - Improve maintainability by separating XML structure from logic 57e1446
  • 2025-04-26 Improve sitemap generation system - Refactor sitemap generator to use sitemap-generated- prefix for all dynamic sitemaps - Reorganize sitemaps into /sitemaps/ subdirectory for better organization - Consolidate scripts to avoid duplication (local and production versions) - Move print_header function to common b82a037
  • 2025-04-26 Sitemap 4f6474d
  • 2025-04-21 Create robots 5073bdc
  • 2025-04-20 feat: Implement standard page titles and meta enhancements - Add consistent title structure with pipe separators - Fix trailing slash redirection with 307 status code - Add meta description utility function for SEO - Implement error page title standardization - Add language section redirect to sources page - Add truncation utility for long content in titles - Fix bug in languages page DOM binding 883d393

UI & Components

  • 2025-04-27 Add tooltip support to DataGrid component and implement etymology tooltips on Lemmas page 2149d29
  • 2025-04-27 Update Phrases list page to use DataGrid component - Implement DataGrid for the phrases page - Add columns for phrase, translations, part of speech, level, and modified date - Include hover tooltips that display usage notes - Display language difficulty level in a column e732ffd
  • 2025-04-27 Update sentences list page to use DataGrid with descending date sort - Convert sentences list to use DataGrid component - Configure default sort to show newest sentences first (updated_at desc) - Add columns for sentence, translation, language level, and modified date - Match styling with other DataGrid implementations 9ae1da3
  • 2025-04-27 Add default sort options to DataGrid component This commit adds two new props to DataGrid: - defaultSortField: to specify which column to sort by initially - defaultSortDir: to specify the initial sort direction (asc/desc) Updated documentation with examples of how to use the new feature 5c31498
  • 2025-04-27 Implement DataGrid for sourcedirs page - Fix column name (created_by_id instead of created_by) - Remove user email lookup to simplify implementation - Add transformation for API data to match database fields - Include null checking for sources array to prevent errors - Fix file count display by using statistics 3bbe8a8
  • 2025-04-27 Improve DataGrid for sourcedirs page - Add loading spinner to prevent "No data" flash - Set default sort to modified date descending - Rename "Files" column to "# Sources" for clarity - Add custom SQL query with JOIN to count sourcefiles - Handle both API and direct database data formats - Use row f906f88
  • 2025-04-27 Improve DataGrid with loading spinner on initial load - Add loading spinner to DataGrid for initial data load state - Replace "No data" with spinner when server data is loading - Update sources and wordforms pages to use the new functionality - Make spinner the default behavior so all pages benefit f3e6773
  • 2025-04-27 Update changelog page with GitHub issue button and improved commit display - Added GithubIssueButton component at the top of the page - Modified commit links to show only first 6 chars while keeping full SHA in tooltip - Added missing date to the Terms entry - Added changelog link to the footer 8f28671
  • 2025-04-27 Fix DataGrid sourcefile count display by aliasing count aggregate and handling PostgREST array response format Co-Authored-By: Claude <noreply@anthropic 948480c
  • 2025-04-26 Add interactive page input to DataGrid navigation - Replace static page display with an editable input field - Allow users to jump to any page by entering a number and pressing Enter - Use DOM focus detection to prevent input hijacking while editing - Add input validation with visual error feedback - Utilize Svelte's tick to ensure proper synchronization e2ab962
  • 2025-04-26 Fixed DataGrid row clicks to use proper hrefs 570d822
  • 2025-04-26 Added queryModifier prop to DataGrid 909127c
  • 2025-04-26 DataGrid styling e7d8476
  • 2025-04-26 Add row count display to DataGrid component - Shows total records in the grid - Updates to show filtered count when filters are applied - Styled as a badge with primary green background - Positioned properly with flex layout 5768adc
  • 2025-04-26 Gave up on DataGrid filtering for now we have a plan from o3 in 250426 56e931b
  • 2025-04-26 DataGrid header less obtrusive 5fa4828
  • 2025-04-26 Add reusable DropdownButton component with tooltip and click-outside behavior - Created new DropdownButton 3bcb67c
  • 2025-04-26 Improve user profile page layout - Add Card component for consistent styling - Enhance with Phosphor icons for better visual hierarchy - Use Bootstrap grid for responsive layout - Add help text for the language selection dropdown - Improve form styling and button placement - Add loading spinner component - Implement Alert component for messages a94d57c
  • 2025-04-26 Implement DataGrid for lemmas page - Replace alphabetical list with DataGrid component - Add server-side pagination and sorting - Configure columns: lemma, translations, part_of_speech, language_level, is_complete, commonality, updated_at - Comment out letter navigation for potential future reuse - Create planning document for DataGrid implementation on other list pages 2065556
  • 2025-04-25 New AudioPlayer component 074770b
  • 2025-04-25 Add navigation buttons to top of DataGrid - Create DataGridNavButtons component to abstract pagination controls - Add navigation buttons at both top and bottom of DataGrid - Only show navigation when pagination is required (multiple pages) - Rename NavButtons to SourcefileNavButtons for clarity - Update LoadingSpinner to support different sizes via runes syntax d6f4560
  • 2025-04-23 Refactor(theme): Update components for new color palette (Part 1) 8a91011
  • 2025-04-23 Add FAQ page and update About page with external links - Create new FAQ page with responsive accordion-style Q&A - Add links to Memrise bdf40b8
  • 2025-04-23 Update UI components with consistent color styling - Update SearchResults component to use brand color variables for better theming - Update Sentence component to use more consistent button styles - Add hover effects to SentenceCard and SourceItem components - Fix SourcedirHeader border styling using theme variables - Add playback rate buttons to SourcefileAudio component - Update planning document with component styling progress 0773604
  • 2025-04-23 Fix search results component and styling - Fix SearchResults component to use proper Phosphor icon imports - Standardize variable naming between search pages (searchResults → result) - Add missing CSS classes for card headers in theme d58b5d6
  • 2025-04-23 Add LightboxImage component with svelte-lightbox for screenshots • Created a reusable LightboxImage component that uses svelte-lightbox • Applied to screenshots on homepage • Updated documentation in STYLING ea6c53d
  • 2025-04-23 Fix unused CSS selectors in homepage and improve flashcard image accessibility - Remove unused flashcard-screenshot-wrapper CSS selectors - Remove redundant href attribute from LightboxImage - Add detailed alt text to flashcard image for better accessibility 748dda9
  • 2025-04-23 Fix TypeScript errors in EnhancedText component - Properly type error variables as 'unknown' - Add type guards for error handling - Replace || with nullish coalescing operator for data-lemma attribute 719d857
  • 2025-04-23 Add playback rate control to SourcefileAudio component - Add variable binding for the audio element - Add currentPlaybackRate state - Add setPlaybackRate function for controlling playback speed 68a8ef0
  • 2025-04-23 Fix navigation URLs and use dynamic content - Update SourceItem component to use variable sourceUrl instead of hardcoded path - Change homepage link in site layout from '/languages' to '/' - Use dynamic TAGLINE variable in footer instead of hardcoded text fffe94c
  • 2025-04-23 Updated phosphor-svelte imports b53aece
  • 2025-04-23 Standardize colors in Sourcedir UI - Replace hardcoded colors with theme variables - Create consistent button styling with proper hover states - Add semantic badge classes for words, phrases, audio - Add hover effects to list items - Replace custom button class with standardized btn-action class - Document additional UI improvement ideas in planning doc de685c7
  • 2025-04-23 Fix svelte-lightbox dependency issue with Svelte 5 - Add --legacy-peer-deps flag to build script - Document dependency management in DEVOPS 95312e9
  • 2025-04-23 Improve blog UI with enhanced styling and UX - Convert 'Back to all posts' to styled pill button - Enhance date & author display with frosted glass effect - Improve CTA box with gradient border and better spacing - Use proper Phosphor icon imports for better compatibility - Apply consistent styling across blog pages d98ddc1
  • 2025-04-23 Centralize error handling and update error page styling - Consolidate error pages for consistent UI experience across the app - Add multilingual apology component to all error pages - Update language-specific error page to reuse root error component - Change button color to match official style guide (btn-primary) 26dd4d9
  • 2025-04-23 Add SVAR DataGrid implementation documentation - Create detailed planning document for SVAR DataGrid integration - Document implementation challenges with Svelte 5 compatibility - Include code examples for component structure and server-side integration - Update action items with current progress - Document next steps for further development 2e80422
  • 2025-04-23 Fix error component import path in language error component This resolves the failed import from ' 8134eb3
  • 2025-04-23 Create reusable TableOfContents component for FAQ and blog posts This commit extracts the table of contents functionality into a reusable component that can support both category-based TOCs (for FAQ) and flat item TOCs (for blog posts) c21576b
  • 2025-04-23 refactor(frontend): rename languages page query param from next to section Better distinguishes from /auth?next= which takes a URL, while section is more descriptive for a section of functionality within a language's pages a643374
  • 2025-04-23 feat: auto-generate language data TypeScript file to eliminate API calls - Created language data generator to produce TypeScript with hardcoded language data - Added Flask CLI commands to generate language data TypeScript file - Created frontend utilities to use generated data instead of API calls - Updated frontend components to use the new utilities - Maintained backward compatibility with API fallbacks - Improved performance by eliminating unnecessary network requests e54a142
  • 2025-04-23 Sourcedir DataGrid v1 working but ugly, with Flask API 3a7e886
  • 2025-04-23 feat(ui): switch secondary color from peach to lavender Update CSS variables and styling to use lavender as the secondary color throughout the application instead of peach, affecting buttons and card headers eb3a968
  • 2025-04-23 fix(frontend): update button colors to use theme variables Replaced hardcoded #4CAD53 green with --hz-color-primary-green in NavButtons and SourcefileHeader components to maintain consistent brand styling c65a51c
  • 2025-04-23 fix(ui): adjust dropcap letters to fit inside language cards bdfc635
  • 2025-04-23 feat(DataGrid): add provider abstraction, pagination, sorting, filtering, loading spinner; update planning checklist 3a30bc8
  • 2025-04-23 Wordform page displays, but UI components don't work ee62353
  • 2025-04-23 Wordforms DataGrid UI components mostly work but you can't unset the filter a7c04ec
  • 2025-04-22 Trying to improve main search UI but I think the core navigation is still a bit broken 4657b02
  • 2025-04-21 feat: Add LoadingSpinner component and integrate into URL upload modal fae4bf4
  • 2025-04-21 Fix auth integration in SvelteKit routes Pass Supabase client to API functions for proper authentication in language routes b9ebd88
  • 2025-04-21 Add visual highlighting for active playback speed Highlight the currently selected playback speed button in the Sentence component 1b91b05
  • 2025-04-21 Add delete button to Sentence component 7d2987f
  • 2025-04-21 Enhance word tooltips to show wordform translation and inflection type - Update tooltips to show wordform translation instead of lemma translation - Add grammatical information (inflection type) to tooltips with distinctive styling - Keep lemma form in tooltip header for reference - Update WordPreview interface and backend to support new fields 0083c4b
  • 2025-04-21 feat(search): Improve 401 error message for unauthenticated search - Replace generic error message with a friendly 'Login Required' card - Add direct 'Log in to Search' button with next URL parameter - Change card styling from danger to info for 401 errors - Add better explanation about why authentication is required ab5dbae
  • 2025-04-21 Refactor(svelte): Update on:event syntax in sourcedir page e774da4
  • 2025-04-21 Fixing unused CSS selectors d9ad1d2
  • 2025-04-21 Improved SearchBarMini UI 80ea86c
  • 2025-04-21 Improved UI for both kinds of search bar d552559
  • 2025-04-20 Refine auth: Require login for costly generation (audio, word search) 28eac93
  • 2025-04-20 Add clickable tooltips linking to lemma pages - Made lemma name in tooltips clickable, linking to lemma detail page - Added "View full details" link at the bottom of tooltips - Added hover effects and styling for tooltip links - Enhanced error tooltips to also have clickable links to lemma pages 9b9259e
  • 2025-04-20 Make EnhancedText tooltip links open in new tab with target=\_blank\ cab5a19
  • 2025-04-20 feat(search): Add clear and paste buttons to search bar - Add X button (clear) that appears when text is present - Add clipboard button for one-click paste functionality - Both buttons include helpful tooltips - Focus input after button actions db94a7b
  • 2025-04-20 feat: Add progressive lemma loading to wordform page - Create new shared LemmaContent component used by both Lemma and Wordform pages - Add new LemmaDetails component with progressive loading and auth awareness - Show lemma details below wordform details with a clear visual separator - Fix SSR compatibility issues with window references - Add detailed planning document with implementation strategy 7034ae7
  • 2025-04-18 First stage of new SvelteKit auth 04c338c
  • 2025-04-12 Improve API error handling and visibility - Add global 500 error handler for API routes with JSON responses - Add specific error handling for field mismatch errors - Use appropriate status codes to distinguish error types - Improve logging for better error visibility - Complete migration from language_code to target_language_code 8ebb28c
  • 2025-04-12 Add text file upload feature with tooltip guidance - Add 7722a63
  • 2025-04-12 Add description field to Create from Text dialog - Add optional description field to Create from Text dialog in SvelteKit frontend - Update backend API to process description parameter in create_sourcefile_from_text_api - Set consistent metadata format with text uploads for better API alignment - Improve UX by providing description capability in both upload and direct creation 12f7f15
  • 2025-04-12 Fix sourcedir dropdown with Svelte reactive approach - Replace manual DOM manipulation with Svelte's reactive approach - Fix reference error in moveSourcefile function - Use isDropdownOpen state variable to control dropdown visibility - Add proper click-outside handling to close dropdown when needed - Close dropdown after selection is made 23d964b
  • 2025-04-12 Fixed language_code variable in build Co-Authored-By: Claude <noreply@anthropic 96179e4
  • 2025-04-12 Update homepage with key benefits instead of SvelteKit port status 8b3299c
  • 2025-04-12 Improve Sourcefile UI with collapsible header and unified actions row - Add CollapsibleHeader component with expand/collapse functionality - Reorganize Sourcefile page buttons into a single row with dividers - Group actions logically: Process, Flashcards, and Navigation - Update STYLING 0dbd2af
  • 2025-04-12 Improve SourcefileHeader organization - Move File Operations section above Description in the expanded header - Remove duplicate divider line between CollapsibleHeader and MetadataSection - Add Learning Operations divider to distinguish expandable content from permanent buttons c50953e
  • 2025-04-11 Fix SvelteKit build issues for Vercel deployment - Removed unused CSS selectors from EnhancedText component - Reverted experimental SvelteKit typed URL routing code from SourcefileHeader - Added SVELTE_WARNINGS_STRICT to run_frontend 76fe35d
  • 2025-04-08 Create DescriptionFormatted shared component for consistent description handling - Created a reusable component for formatting text with line breaks and paragraphs - Updated Sourcedir page to use the shared component - Updated SourcefileHeader to use the shared component - Exported the component through $lib for easy importing 0325db3
  • 2025-04-08 Enhance DescriptionFormatted with editing capabilities - Convert component to include both display and edit functionality - Add keyboard shortcuts (Ctrl+Enter to save, Esc to cancel) - Standardize description editing across Sourcedir and Sourcefile components - Maintain consistent styling and UX between components - Remove duplicate code for description editing logic 27256ce
  • 2025-04-08 Fix missing PencilSimple import in SourcefileHeader component 8a26886
  • 2025-04-08 Remove duplicate search bar from SourcefileLayout The search bar was appearing twice on sourcefile pages because it was included in both the main layout and the SourcefileLayout component 721169b
  • 2025-04-07 Renaming Sourcefile updates in the UI 9777632
  • 2025-04-07 Add SvelteKit typed URL routing planning document with gradual implementation strategy c3ed63a
  • 2025-04-07 Update SvelteKit typed routing documentation with implementation details 7c458a3
  • 2025-04-06 Tooltips are working for Sourcefile, still in progress - still using hand-constructed url - lots of debug logging fed4131
  • 2025-04-06 Tooltips seem to be working, with routes 1eb62e2
  • 2025-04-06 Standardize language parameter naming in EnhancedText component - Rename language_code prop to target_language_code for consistency with API - Update all references to language_code in EnhancedText 15a9152
  • 2025-04-06 Add WordPreview TypeScript interface for tooltips - Create dedicated WordPreview interface in types 49cc444
  • 2025-04-06 Update tooltip styling to use dark theme with loading spinner - Replace light theme with custom dark theme matching site colors - Add loading spinner for better user feedback during API requests - Style headers with primary color and errors with secondary color - Update debug info styling to match dark theme - Document styling changes in tooltip debugging notes 51d1965
  • 2025-04-06 Fix navigation in SourcefileHeader using SvelteKit's proper routing 905168d
  • 2025-04-06 Add tooltips to navigation buttons with file names and directory path 34be676
  • 2025-04-05 Add source directory management buttons - Add New Source Directory button at the top of the page - Add Delete buttons for empty source directories - Update SourceItem component to accept className property for styling 86d4ad6
  • 2025-04-05 Improve modal dialogues with better UX patterns - Add keyboard shortcuts (ESC to cancel, ENTER/CTRL+ENTER to submit) - Add loading spinners and disable buttons during API operations - Fix delete button UI using Phosphor icons - Add auto-focus to modal input fields - Add form validation with disabled buttons and tooltips - Prevent double submissions of forms - Add documentation in USER_EXPERIENCE 5902b84
  • 2025-04-05 Fix image upload functionality by modernizing API - Change API to return JSON responses with proper HTTP status codes - Remove legacy template rendering code causing Flask errors - Update SvelteKit component to properly handle API responses - Fix error handling and simplify success flow - Only display alerts for errors, not for successful uploads 975a977
  • 2025-04-05 Fix accessibility and CSS issues in languages page - Remove autofocus attribute to improve accessibility - Eliminate unused CSS selectors by using global styles - Update styling documentation with best practices for focus management - Properly scope card styling to avoid unused CSS warnings 74525bd
  • 2025-04-05 Update favicon implementation - Move favicon handling entirely to SvelteKit - Remove Flask favicon route from backend - Add modern favicon assets for different platforms - Configure proper favicon links in app affa396
  • 2025-04-05 Use API-based sorting instead of client-side hack for /sources page Replace client-side JavaScript sorting with proper SvelteKit URL-based routing that leverages the API's sorting capabilities 8aa1a47
  • 2025-04-05 Require virtualenv to deploy backend 8aded97
  • 2025-04-05 Fix accessibility and Svelte warnings 1 82c4ef2
  • 2025-04-05 Fix Svelte component unused export warnings 1 5868948
  • 2025-04-05 Add error handling pages to SvelteKit frontend - Create root error page that catches 404s and other errors - Create language-specific error page that preserves language context - Add language detection to root error for better navigation - Create test-error route for testing language-specific errors - Use Bootstrap styling consistent with the rest of the site 7c42b46
  • 2025-04-05 Fix API requests in EnhancedText component and handle favicon requests - Updated EnhancedText 0705b66
  • 2025-04-04 Phosphor-Svelte icons for Sourcefile fd915dd
  • 2025-04-03 Renamed sveltekit -> frontend, run_flask -> run_backend 8e479a4

March 2025

SvelteKit Migration

  • 2025-03-31 Deploy frontend to Vercel for improved performance fa3ae8
  • 2025-03-30 Migrate frontend to SvelteKit ed1c3c

Authentication & API Structure

  • 2025-03-17 Add standardized API URL structure f2c4b8
  • 2025-03-16 Integrate Supabase Authentication dd50d4

Flashcards & Translations

  • 2025-03-15 Add sentence flashcards using Svelte components eac15d
  • 2025-03-15 Add literal translations to phrases c3fef9

February 2025

Database & Project Initialization

  • 2025-02-24 Fix accent normalization and diacritic handling e11f0f
  • 2025-02-16 Migrate database to Supabase a8fdab
  • 2025-02-08 Project initialization with basic architecture and database schema 9ee7d8