Add gitUrl and gitBranch fields to kilo_meta so shared sessions
include repository context. Resolves the best remote (origin > single
available > upstream) and fetches the URL with a 10s in-flight cache.
Unify ingest queue and session close reasons via `Session.CloseReason` and
ensure `TurnOpen`/`TurnClose` publishing is awaited; mark close reason as
`error` on unexpected exceptions and handle abort-induced stops correctly.
Add ingest queue tests for stable-key coalescing of session open/close and for
including `?v=1` on flush requests.
Wrap callback execution in a promise microtask so synchronous errors flow
through the existing `.catch()` and the in-flight entry is reliably cleaned
up. Update tests to await the microtask before asserting call count.
Always return the in-flight promise when a refresh is running so callers
don’t receive an expired cached value. Preserve the original timestamp
until refresh succeeds and only update it on successful recompute to
avoid masking failed refreshes.