vibe.web_core.devel

Developer mode utilities for VIBE and extensions.

Developer mode enables debug-only features like explain relevance, LLM playback, parsing visualizers, etc. It requires BOTH conditions:

  1. Flask DEBUG=True (development server)
  2. User navigates via ?devel=1 which sets session["devel"] = True

This two-gate approach prevents dev-only features from being accidentally exposed even in debug builds.

Usage in Python

from vibe.web_core.devel import is_devel if is_devel(): # dev-only logic

Usage in Jinja templates

{% if devel %} {# dev-only UI #}

Extensions MUST use this shared utility rather than checking the session directly or creating their own session flags.

is_devel

is_devel() -> bool

Check if developer mode is enabled for the current session.

Returns True only when BOTH conditions are met: 1. Flask app is in debug mode (current_app.debug) 2. User explicitly enabled devel mode via ?devel=1 (session["devel"])

This prevents dev-only features from being accidentally exposed even in debug builds.

set_devel_from_request

set_devel_from_request() -> None

Set devel mode in session based on request query parameter.

Call this from entry point routes (e.g., interview start, review sessions list) to enable devel mode when ?devel=1 is present.

Only entry points should call this - subsequent routes inherit the session value.