Sprint 02 Release Notes

Table of Contents

October 2025

This sprint focused on establishing core project infrastructure, defining the foundational architecture, and implementing initial client-server communication using modern C++ and asio-based networking.


1. ✅ Highlights

  • Project foundation laid with a clean, modular structure: risk, comms, accounts, and CLI/console layers.
  • Client-server communication implemented using Boost.Cobalt over ASIO with SSL support.
  • PostgreSQL integration completed via sqlgen for domain persistence and schema management.
  • Data modeling modernized using reflect-cpp for serialization, replacing manual XML parsing.
  • Authentication framework started with database schema and messaging for accounts and login.

2. 🛠️ Key Improvements

2.1. Architecture & Structure

  • Conducted white-boarding sessions to define a data-oriented architecture with clear subsystem boundaries.
  • Created dedicated comms library for all communication primitives (socket handling, message framing, dispatch).
  • Renamed core to risk to better reflect domain focus and avoid ambiguity.
  • Refactored CLI to align with new project structure and improve maintainability.

2.2. Networking & Communication

  • Prototyped GRPC and ZeroMQ, then settled on Boost.Cobalt/ASIO for its modern coroutine support and simplicity.
  • Implemented a basic but secure Cobalt-based server and client with SSL.
  • Designed message structure with subsystem and message IDs for extensibility.
  • Established a generic dispatcher pattern for handling incoming messages.

2.3. Data & Persistence

  • Integrated sqlgen for PostgreSQL access, enabling type-safe database operations.
  • Added temporal support to currencies with valid_from=/=valid_to timestamps.
  • Replaced hand-rolled XML parsing with reflect-cpp for ORE domain types, improving maintainability.
  • Implemented commands to dump currencies: latest, as_of, and full history.

2.4. Authentication

  • Added initial support for accounts and logins:
    • Database tables for account and login with fields for security (hash, salt, TOTP).
    • Messaging infrastructure for login/logout workflows.
    • Began implementation of password management (hashing with HMAC-SHA512).

2.5. Developer Experience

  • Restored Qt UI support after abandoning ImGui due to cross-platform build issues.
  • Added logging support to tests for better debugging.
  • Fixed CI/CD build issues on Windows, macOS, and Linux (YAML, CMake, vcpkg).
  • Updated vcpkg to latest version and addressed binary caching warnings.
  • Added Valgrind suppressions for spurious leaks in test infrastructure.

3. ⚠️ Known Issues & Postponed

  • Qtbase build warnings remain due to system dependencies — workaround with VCPKG_DISABLE_SYSTEM_PACKAGE_CHECK=1 not yet applied.
  • Gemini CLI GitHub Action is failing — review automation temporarily disabled.
  • Initial account creation workflow not implemented — system does not yet enforce bootstrap mode for first admin creation.
  • GRPC and ZeroMQ experiments cancelled in favor of simpler ASIO/Cobalt approach.

4. 📊 Time Summary

  • Total effort: not tracked
  • PRs merged: not tracked
  • Sprint duration: 2025-02-02 → 2025-10-23

Next sprint: Sprint 03.

Emacs 29.3 (Org mode 9.6.15)