Fixes
- Per-
DataStoragemetrics page memory leak. EachDataStorageregistered a metrics page in the global C++ metrics storage and only detached it on destruction, but detached pages are physically reclaimed only during C++ metrics collection — which was disabled by default in v0.8.2. With the collector off, every created-and-destroyedDataStorageleaked its metrics page (observed as steady heap growth on stage).DataStoragenow owns its metrics object directly instead of registering it globally, so no page can leak. As a consequence the per-DataStorageprompp_data_storage_*metrics are no longer exposed to the C++ metrics collector. - C++ metrics collector re-enabled by default. The v0.8.2 use-after-free mitigation disabled the C++ metrics collector by default (
PROMPP_FEATURES=enable_cpp_metrics) because it iterated metrics-page memory that could be freed concurrently byremove_unused_pages. Now thatDataStorageno longer registers pages in the global metrics storage, nothing populates it in production, so that concurrent-free path is gone and the collector is safe to run unconditionally again. Theenable_cpp_metricsfeature flag is removed.