v0.8.7
PRODUCTION HOTFIX 5
Retrouvez les nouveautés, corrections et améliorations de chaque version.
PRODUCTION HOTFIX 5
PRODUCTION HOTFIX 4
PRODUCTION HOTFIX 3
PRODUCTION HOTFIX 2
PRODUCTION HOTFIX 1
PROFILE MANAGEMENT & USER SETTINGS REFACTOR
string | undefined assignment issues in user profile normalization logic.name, label) in profile form usage.isRead flag in notification rendering logic.TEST STABILIZATION & REVIEW FLOW HARDENING
example usage with examples in schema validation definitions.declarative_base import to sqlalchemy.orm.declarative_base.DRAFT COMMUNICATION & ADMIN REVIEW FLOW
needReview = true and isPublish = false, so draft submissions appear in moderation..pb.js file so it is copied into the container runtime.COOKIE CONSENT & STORAGE TRANSPARENCY
/preferences-cookies allowing users to:lib/consent/cookie-inventory.ts) with metadata including name, purpose, expiration, and httpOnly flags.useConsentManager): Central hook managing:ConsentBannerWrapper component to root layout after ThemeProvider; added pb-96 padding to main content to prevent overlap with bottom banner./preferences-cookies.PASSWORD RESET RECOVERY FLOW
/mot-de-passe-oublie page with email validation and a request flow that calls PocketBase password reset requests./mot-de-passe-reset/[token] page that accepts the reset token from the email link and submits a new password securely.CHATBOT IMPROVEMENTS
USERNAME CHANGE: UX IMPROVEMENTS & CONFIGURABLE COOLDOWN
USERNAME_CHANGE_COOLDOWN_MONTHS added to frontend config, reads NEXT_PUBLIC_USERNAME_CHANGE_COOLDOWN_MONTHS / USERNAME_CHANGE_COOLDOWN_MONTHS (defaults to 6)./api/auth/me updated to use configurable cooldown value and return explicit error when change attempted before allowed date.last_username_change and prevents repeated edits without reload.last_username_change after username update (prevented unlimited edits without reload).USERNAME CHANGE COOLDOWN, PROFILE SYNC & AUTH TOKEN HARDENING
app/api/auth/me/route.ts so username changes are limited to once every 6 months.change_username_dates and last_username_change tracking on user profile updates.app/profil/page.tsx when cooldown is active.AUTH HARDENING, TOTP-FIRST MFA & TRUSTED DEVICE MANAGEMENT
AI CHATBOT: SINGLE-CHAT PERSISTENCE & AUTH-AWARE UI
ai_chatbot_chats PocketBase collection: New base collection storing one chat record per authenticated user (user relation, unique index, messages JSON field).lib/chatbot.ts: loadUserChat and saveUserChat helpers for loading and upserting the single chat record per user.ChatMessage and AiChatbotChatRecord types: Exported from pocketbase-collections.ts for type-safe access.ChatBot component: Simplified to single-conversation UI (removed tabs, pin, archive, multi-conversation management). Authenticated users have their chat persisted to PocketBase and restored on reload; anonymous sessions remain in-memory only and reset on reload.EXPERT MODE SHARE MODAL: EXPORT & IMPORT CENTRALIZATION
/shared/{token} actions card.AUTH PAGES LIGHT MODE BACKGROUND & DARK MODE COMING SOON FIX
/connexion and /inscription (including loading state) now render a white background in light mode instead of a blue gradient, aligning them with the global design system.ComingSoon component (used by /analyse-marche) now uses design-system tokens (bg-background, bg-card, text-foreground, border-border) instead of hardcoded light values, fixing low contrast in dark mode.EXPERT MODE POPULARITY RANKING, ADMIN CURATION & WEEKLY CRON
component_popularity to store interaction counters, admin curation weight, final score, and category ranking in one PostgreSQL table.click / interaction) used by expert mode UI.alembic upgrade head to alembic upgrade heads when multiple heads are present, preventing boot-time crash.EXPERT MODE STICKY SIDEBAR VISIBILITY FIX
Résumé de la configuration now remains visible while scrolling.Récemment consultés now stays fixed directly below the summary section while the page scrolls.EXPERT MODE TDP CLARITY, MISSING DATA WARNINGS & HOVER PRECISION
Consommation TDP label.TDP manquant warnings.Refactor utils and configuration structure
PRODUCTION HOTFIX FOR CONFIGURATION NAME VALIDATION
CONFIGURATION NAME REQUIRED BEFORE SAVE
Sauvegarder now opens a modal that requires users to enter a configuration name before the save request is sent.CHANGELOG PAGE DARK MODE READABILITY FIX
CHANGELOG PAGE DARK MODE READABILITY FIX
EXPERT MODE RECENTLY VIEWED COMPONENTS FILTER
Voir les derniers composants vus button under the expert selection summary to show recently viewed components for the active category.DOCKERFILE CHANGLOG PATH FIX
UNIFIED OAUTH & EMAIL/PASSWORD ACCOUNT LINKING
GET /api/auth/external-auths, DELETE /api/auth/external-auths/[provider], POST /api/auth/link-oauthlistLinkedProviders, unlinkLinkedProvider, linkOAuthProvider utilities in utils/auth.tsSHARED LINK RELIABILITY, RETENTION POLICY CONTROLS & PERMANENT LINK ACCESS RULES
configuration is returned as a serialized JSON string.:param/:return: tags for new shared-link policy/retention functions and routes.EXPERT MODE EMPTY CONFIG POWER CONSUMPTION FIX
0W instead of a computed non-zero value.Consommation: 0W when the configuration is empty.EXPERT FILTER KEY ALIGNMENT, SCHEMA INTERFACE GENERATION & TOOLING UPDATES
type to storage_type so expert-mode filtering targets the backend field name actually exposed by the API.await on build_distinct_query in the backend getter route to align invocation with the function's synchronous behavior.0.37.1 to 0.37.2 in development compose configuration.TODO.md file.sqlModelToInterface.ts extraction logic to correctly parse multiline Mapped[...] declarations and multiline RHS calls (including relationship(...) assignments).globalSchemaInterfaces.ts with corrected mappings, including enum typing for PCCase.supported_motherboard_form_factors.ThermalCompound.general_product_information) that were previously dropped by line-based parsing.DYNAMIC CASE FIT VALIDATION, EXPERT MODE UX POLISH & ROUTE INTEGRATION COVERAGE
easy_mode_case_fit_service.py to evaluate physical fit constraints based on real specifications (GPU length, CPU cooler height, PSU form factor/length, motherboard form factor, and radiator support parsing)./config_validator/validate_component_compatibility to ensure dynamic case-fit conflicts are returned in API responses.No pccase recommendation found despite valid compatible options.get_case_fit_conflicts into focused helper functions to satisfy lint complexity limits while preserving behavior.CRON JOB MIGRATION, RECOMMENDED CONFIG PERSISTENCE & ENVIRONMENT HARDENING
find_repo_root function to programmatically locate repository paths for dynamic configuration and file operations./refresh endpoint for recommended configurations to enable on-demand cache regeneration and backend-triggered persistence.delete_all_recommended_configs to treat PocketBase 404 responses as empty collections rather than failures.models_registry.py to reflect recent schema changes.shared_configuration_service.py for improved maintainability.repo_path.py with clearer naming conventions.PRODUCTION HOTFIX
RECOMMENDED CONFIGURATIONS CRON, ADMIN REFRESH & IMPERSONATION TOKEN
recommended_config collection.recommended_cases unbound variable crash in the compatible-case recommendation flow.RECOMMENDED ARTICLES SECTION, IMAGE OPTIMIZATION & CONTENT RENDERING
RecommendedArticlesSection component to fetch and display articles marked as recommended (isRecommended = true) from the database instead of hardcoded sample data.thumb parameter (?thumb=350x100t) for optimized image preview display in article cards, cropping from the top with fixed 100px height.from-transparent via-black/20 to-black/95) on article images to create visual hierarchy and enhance the preview aesthetic.prose class and dangerouslySetInnerHTML to display formatted content instead of raw HTML entities.unoptimized prop to Image components for PocketBase URLs since Next.js Image optimization doesn't work with external file APIs.3slx0ftdz3e2xf3) by ensuring user data is fetched for all article types.MES CONFIGURATIONS STORAGE, BACKEND HELPER REFACTORING & UI POLISH
/shared-configurations/me flow to expose a user-owned configuration library to the frontend.last_accessed_at values no longer break response validation.src/utils/helpers folder to separate file, model, environment, string, and ORM helpers.EXPERT MODE POWER CONSUMPTION PRIORITY ENGINE
TDP or Estimated) in expert-mode summary cards and compatibility context.SONARQUBE UPGRADE, ANALYSIS CONFIGURATION & BADGE ALIGNMENT
sonar-project.properties to refine copy-paste exclusions, ignore TODO tracking issues, and tune analysis behavior.EASY MODE BUDGET TARGET GAP, API RESPONSE CONTRACTS & SERVICE REFACTORING
src/enums/config_enum.py.responses documentation for route-level HTTP errors (400, 404, 409, 500) across database, data-gathering, and getter endpoints.simple_budgets.py to support rapid budget-allocation debugging during easy-mode tuning.async signatures (and corresponding await usage) from recommendation helpers that had no asynchronous work.GIT SUBMODULE MIGRATION FOR EXTERNAL DATASET TRACEABILITY
buildcores-open-db as a tracked submodule at Dev/Backend/temp/open-db with branch metadata in .gitmodules.git submodule update --init --recursive.PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #8
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #7
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #6
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #5
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #4
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #3
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #2
PRODUCTION HOTFIX FOR SHARED CONFIGURATION SCHEMA DRIFT #1
SHARED-SCHEMA SELF-HEALING, STORAGE TYPE SAFETY & MODEL REGENERATION
storage_type exists and legacy type is absent./init/setup and /models/sync_models flows to reuse the shared schema readiness utility instead of route-local checks.package.json.global_schema.py and models_registry.py outputs after model regeneration, including enum/field ordering and generated metadata timestamp updates.shared_configuration_view and schema drift by applying safe idempotent schema repair before serving shared-config features.AttributeError: 'Storage' object has no attribute 'type' by normalizing storage type access to storage_type with backward-compatible fallback.Storage.type field.f3a9d7e5b1c2 to be idempotent by checking table and index existence before creation.STARTUP MIGRATIONS, CI MAIN TRIGGER & VERSION BUMP
upgrade head) with explicit failure reporting and timeout handling.PROD and main branches.0.7.2 to 0.7.3._wait_for_db_ready, _run_optional_startup_tasks, _cleanup_loop) to reduce complexity while preserving behavior.STARTUP RESILIENCE, FRONTEND PORT ALIGNMENT & TOOLING CLEANUP
memory.slots is missing.3938 so local and container startup behavior matches project networking expectations.memory.slots = null by normalizing missing values before score multiplication.ADMIN PRICE SHEET FILTERING, PROMQL SELECTORS & BULK CATEGORY TOGGLE
prom_query): Added support for PromQL-like label selector queries (for component_type, component_name, component_brand) in the admin price workflow.Select All and Deselect All based on current checkbox state./prices/components query handling into a structured validated query model and helper-based filter/order builders for maintainability.component_type values are correctly interpreted and applied.Expected unicode escape and page 500 on render.C901, PLR0912, PLR0913) while preserving behavior.AUTHENTICATION SYSTEM, OAUTH FINALIZATION & MFA HARDENING
EASY MODE GPU BRAND PROFILES, AFTERMARKET BRAND DETECTION & STRATEGY DEDUPLICATION
Strict, Flexible, and Budget saver configurations when alternatives are available.AMD, NVIDIA, INTEL) from both manufacturer and product name, improving detection for aftermarket boards (e.g., MSI, Sapphire, ASRock).get_all_recommendations into smaller helpers for GPU budget computation and GPU filter parsing to keep logic clearer and lint-compliant.component_metadata.manufacturer contained board partner names instead of chip vendor names.defusedxml in XML utilities and declared explicit dependency to satisfy security linting.EXPERT MODE PAGINATION CONTROLS & PAGE SIZE SELECTOR
Precedent / Suivant controls with explicit page indicator (Page x / y) in the expert component selection panel.10, 20, 30) to control how many components are displayed per page./getter/all/{component} so pagination UI can display accurate shown/total values.5 to 10 for better browsing efficiency.PUBLIC ARTICLE CREATION & FORUM TOPIC CREATION
/api/select-options/forum) with fallback handling.COMMUNITY NAVIGATION CONSISTENCY & FORUM BREADCRUMB ALIGNMENT
Home > Communauté > Forum > {topic}).STABLE BRANDING: REMOVE BETA LABEL
BETA badge from shared navigation and footer branding components to reflect the platform stable state.BETA label from the homepage title so the main product name is displayed consistently.Beta qualifier across user-visible title surfaces.CONTACT PAGE SUBMISSION & HYDRATION FIX
/contact page through a frontend API route to the backend contact endpoint./contact handling on the backend with request validation and structured success/error responses.src/enums/contact_enums.py alongside the contact enum values.EASY MODE NON-LINEAR BUDGET SLIDER
EASY MODE BUDGET STRATEGIES & PERFORMANCE COMPARISON
Strict budget (exact target), Flexible budget (target with ±100EUR comparison range), and Budget saver (target minus 100EUR with floor protection).strategy, strategy_label, target_budget, budget_range) and top-level comparison metadata (comparison_mode, input_budget) to support side-by-side frontend comparison.performance_indicators for each recommended build, including normalized performance score, usage suitability tier, and estimated FPS values for 1080p/1440p.EXPERT MODE SELECTION FLOW, COMPATIBILITY VALIDATION & PORT ALIGNMENT
app/api/config-validator/route.ts to centralize component compatibility checks from the configurator UI.Production/entrypoint-playwright.sh to improve E2E container startup orchestration.PLAYWRIGHT E2E TESTING, EXPERT MODE EXPORT & PRODUCT TRACKING
formatPrice() function by adding proper number conversion.ALEMBIC MIGRATION GOVERNANCE & SHARED CONFIG SCHEMA ALIGNMENT
d4b9c8e7f1aa to unify migration branches and restore a single migration head.shared_configuration_view, config_hash index, and related schema checks).migrate-assert-single-head task to detect multi-head regressions early in local checks and CI pipelines.INFRASTRUCTURE HARDENING, DOCS SECURITY & INIT FLOW
/init to run setup once, expose current status, and support startup health checks.DB_STARTUP_RETRIES, DB_STARTUP_RETRY_DELAY_SECONDS) to improve resilience during container boot./docs, /openapi.json, and /redoc.POPULATE NAME CLEANING & LOGGING CONSISTENCY
component_name_cleaner_service to normalize hardware product names during populate (for example, trimming CPU frequency/core/socket suffixes and GPU trailing part-number fragments).clean_component_names query parameter on POST /populate/component/{component} and POST /populate/components to control cleaning behavior per run.clean_component_names through populate settings and async session context so both bulk and relational upsert paths apply the same behavior.%s-style logger calls that were being emitted literally (e.g. Fetched %s: ID=%s, Name=%s) so runtime logs now include real values.SHARED CONFIGURATION & ADMIN OPERATIONS
permanent_link option (default false) to protect selected shares from automatic expiry cleanup.config_hash matching.EASY MODE CARD PHRASES ROTATION
usagePhrases.json with 20 standard phrases for each main usage category and each usage subcategory used by Easy Mode cards.EASY MODE ALGORITHM IMPROVEMENTS
configurations list (up to 3 complete builds) instead of a single config. The top-1 root fields are preserved for backward compatibility.DISPLAY_SHARE_BUTTON env variable (default false) controls visibility of the share button on each recommendation card. Exposed via window.__ENV for client-side consumption.form_factor metadata is missing or incorrect, ITX is inferred from the product name to reliably penalise ITX boards in mainstream gaming builds.water_cooled DB flag is missing or wrong.GET / welcome endpoint for infrastructure probing.used_by_algorithm column: Added to CPU, GPU, motherboard, RAM, PSU, storage, cooler, and PC case tables to flag components eligible for Easy Mode recommendations.null component names gracefully with a default fallback label.Storage type: Extended with storage_type discriminated field mapped to StorageStorageTypeEnum.None-safe extraction for all numeric CPU fields prevents scoring crashes on incomplete database records.name fields are now caught and reported instead of silently producing null component names.easy_mode_gpu_services, easy_mode_cpu_services, easy_mode_motherboard_services, easy_mode_ram_services, easy_mode_storage_services, easy_mode_cpu_cooler_services, easy_mode_services, easy_mode_recommendation_service, and easy_mode_response — scoring helpers extracted as module-level constants, high-complexity functions split, return-count warnings resolved._pick_component_at_rank and _gather_ranked_full_components helpers added.SQLALCHEMY MIGRATION
COMMUNITY UX & LIKES
user_view across community article listing and detail pages.EASY MODE PERSISTENCE & BACKEND FIXES
DOCUMENTATION
CLEAN NULL VALUE
clean_null_values function to filter by specific hardware model typeclean_null_values_endpoint to include hardware model type parameterclean_null_values function to skip updating None values for foreign key fields.gitignorepyproject.toml.PARSING
INIT