build_tools.syllable_walk_web.services.walker_session_lock

Cooperative walker session lock service for single-user multi-tab safety.

This module implements a lease-style lock for loaded walker sessions.

Important: - This lock is a UX consistency guard to reduce accidental drift across tabs. - It is not an authentication/authorization mechanism and not a security boundary.

Attributes

LOCK_TTL_SECONDS

Functions

get_session_lock_info(*, state, session_id)

Return current lock info for one session after pruning expired leases.

acquire_session_lock(*, state, session_id, holder_id)

Acquire or refresh one session lock lease.

heartbeat_session_lock(*, state, session_id, holder_id)

Refresh an existing session lock; fail when ownership does not match.

release_session_lock(*, state, session_id, holder_id)

Release one session lock when called by the current holder.

Module Contents

build_tools.syllable_walk_web.services.walker_session_lock.LOCK_TTL_SECONDS = 45
build_tools.syllable_walk_web.services.walker_session_lock.get_session_lock_info(*, state, session_id)[source]

Return current lock info for one session after pruning expired leases.

build_tools.syllable_walk_web.services.walker_session_lock.acquire_session_lock(*, state, session_id, holder_id, force=False)[source]

Acquire or refresh one session lock lease.

Returns a payload with status in: - acquired: no prior lock existed (or it had expired) - held: same holder already had the lock; lease refreshed - taken_over: force-acquire replaced a different active holder - locked: another active holder owns the lock and force was false - error: invalid parameters

build_tools.syllable_walk_web.services.walker_session_lock.heartbeat_session_lock(*, state, session_id, holder_id)[source]

Refresh an existing session lock; fail when ownership does not match.

build_tools.syllable_walk_web.services.walker_session_lock.release_session_lock(*, state, session_id, holder_id)[source]

Release one session lock when called by the current holder.