CORRECTNESS FIXES:
- json_loader: Add RollbackTransaction() and call it on exception instead of
CommitTransaction(). Prevents partial data corruption on parse/disk errors.
- wikipedia_service: Fix invalid MediaWiki API parameter explaintext=true ->
explaintext=1. Now returns plain text instead of HTML markup in contexts.
- helpers: Fix ParseTwoLineResponse filter to only remove known thinking tags
(<think>, <reasoning>, <reflect>) instead of any <...> pattern. Prevents
silently removing legitimate output like <username>content</username>.
RELIABILITY & DESIGN IMPROVEMENTS:
- load/main: Make n_ctx (context window size) configurable via --n-ctx flag
(default 2048, range 1-32768) to support larger models like Qwen3-14B.
- generate_brewery: Prevent retry prompt growth by extracting location context
into constant and using compact retry format (error + schema + location only).
Avoids token truncation on final retry attempts.
- database: Fix data representativeness by changing QueryCities from
ORDER BY name (alphabetic bias) to ORDER BY RANDOM() for unbiased sampling.
Convert all SQLITE_STATIC to SQLITE_TRANSIENT to prevent use-after-free risks.
POLISH:
- infer: Advance sampling seed between generation calls to improve diversity
across brewery and user generation.
- data_downloader: Remove unnecessary commit hash truncation; use full hash.
- json_loader: Fix misleading log message from "RapidJSON" to "Boost.JSON".
Introduce a pluggable web client interface and concrete CURL implementation: adds IWebClient, CURLWebClient, and CurlGlobalState (headers + curl_web_client.cpp). DataDownloader now accepts an IWebClient and delegates downloads. Add WikipediaService for cached Wikipedia summary lookups. Refactor SqliteDatabase to return full City records and update consumers accordingly. Improve JsonLoader to use batched transactions during streaming parses. Enhance LlamaGenerator with sampling options, increased token limits, JSON extraction/validation, and other parsing helpers. Modernize CMake: set policy/version, add project_options, simplify FetchContent usage (spdlog), require Boost components (program_options/json), list pipeline sources explicitly, and tweak post-build/memcheck targets. Update README to match implementation changes and new CLI/config conventions.
* remove email out of register service
* Update auth service, move JWT handling out of controller
* add docker config for service auth test
* Update mock email system
* Format: ./src/Core/Service
* Refactor authentication payloads and services for registration and login processes
* Format: src/Core/API, src/Core/Service
* Add email functionality
* Add email template project and rendering service
* Update email template dir structure
* Add email header and footer components for user registration template
* update example env
* Refactor email templates namespace and components
* Format email dir