{"version":"2.1.248","anchor":"the-debug-log-s-latest-pointer-is-now-requested-from-the-sto","canonical_anchor":"the-debug-log-s-latest-pointer-is-now-requested-from-the-sto","heading":"The debug log's latest pointer is now requested from the storage backend","tier":"internal","area":"Internals","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248\/e\/the-debug-log-s-latest-pointer-is-now-requested-from-the-sto","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.248","markdown":"### The debug log's `latest` pointer is now requested from the storage backend\n\nThe debug log's latest pointer is now requested from storage, with a fallback if refused.\n\n**What**\n\nInstead of creating a `latest` symlink itself, the debug logger asks the storage layer to mark the current log as latest, once per process. If the backend rejects that request, the logger remembers the refusal, retries the write without it, and warns that `latest` will not be pointed for the rest of the process. Only taken when the newer storage path is active, which is decided once at startup; otherwise the old symlink is used.\n\n**Details**\n\n- The option is validated as a boolean and accepted only for a session's debug log, described as `is offered only on a session's debug log ({ namespace: 'log', channel: 'debug', sessionId })`.\n- The append helper now returns landed, refused or dropped rather than a bare true\/false, so a backend that does not know the option is distinguishable from a real write failure.\n- Refusal is detected specifically as an invalid-argument error naming the option.\n\n**Evidence**\n\n`debug log: the storage backend refused markLatest; <debug folder>\/latest is not pointed in this process`, `is offered only on a session's debug log ({ namespace: 'log', channel: 'debug', sessionId })`, `s.error.argument === \"opts.markLatest\"`\n\n- Area: Internals\n- Tier: Under the hood\n- Useful: 1\/5\n- Signal: 2\/5"}