Use explicit layout timestamp probe

This commit is contained in:
2026-06-12 16:59:20 +02:00
parent a6b01c2d12
commit 48a795822a
3 changed files with 16 additions and 3 deletions

View File

@@ -247,6 +247,11 @@ agent or engineer to remove them without reconstructing context from chat.
and existing file coverage, and `plan_asset_file_load_for_platform` consumes
that probe instead of owning the `stat` call inline. Injected file-watch or
storage services still need to own the live probe before the debt closes.
- 2026-06-12: DEBT-0054 was narrowed again. `LayoutManager::load` now calls the
explicit timestamp probe only for platform families that use mtime reloads,
then passes the result into the pure `plan_asset_file_load_with_probe`
decision. The retained probe still uses local `stat` until injected storage
or file-watch services replace it.
- 2026-06-05: DEBT-0056 was narrowed. `src/asset.h` no longer exposes Android
SDK types or forward declarations; retained Android asset-manager and asset
handles are stored as opaque pointers and cast only inside `src/asset.cpp`,

View File

@@ -646,6 +646,9 @@ decision used by live canvas cursor requests before retained desktop platform
cursor bridges continue.
`pp_platform_api::probe_asset_file_timestamp` now owns the retained asset mtime
probe used by layout reload planning, with missing/existing file coverage.
`LayoutManager::load` now consumes that explicit probe plus the pure
`plan_asset_file_load_with_probe` decision instead of calling the probing
wrapper directly.
`pano_cli plan-clipboard-read` and `pano_cli plan-clipboard-write` expose the
app-core clipboard text decisions used by live clipboard get/set requests
before retained platform clipboard bridges continue.

View File

@@ -24,10 +24,15 @@ void LayoutManager::create()
bool LayoutManager::load(const char* path)
{
auto abs_path = Asset::absolute(path);
const auto file_load = pp::platform::plan_asset_file_load(
abs_path,
const auto platform_family = pp::platform::current_platform_family();
const auto file_probe = pp::platform::platform_uses_asset_file_mtime_reload(platform_family)
? pp::platform::probe_asset_file_timestamp(abs_path)
: pp::platform::AssetFileTimestampProbe {};
const auto file_load = pp::platform::plan_asset_file_load_with_probe(
platform_family,
m_loaded,
m_file_last_write_time);
m_file_last_write_time,
file_probe);
if (!file_load.should_read_file)
return file_load.skipped_load_result;
m_file_last_write_time = file_load.last_write_time;