{% extends 'base.html' %} {% from 'components/ui.html' import page_header, panel, choice_card, select_field, tab_link %} {% block title %}Settings · Woltspace{% endblock %} {% block content %}
{% call page_header('Lodge controls', 'Settings', 'Shape how the lodge behaves without reaching for a config file.') %} Changes save here {% endcall %}
{% call panel('Lodge harness', 'Used when a wolt follows the lodge setting.', 'new sessions') %}
Default agent engine {% for harness in harnesses %} {{ choice_card( 'default-harness', harness.id, harness.label, '', 'experimental' if harness.experimental else '', harness.id == harness_default, harness.emoji, icon=harness.icon ) }} {% endfor %}
{% endcall %}
New sessions only

Sessions already running keep the harness they started with.

{% set tier_rows = [('raccoon', 'Raccoon', 'thinker'), ('beaver', 'Beaver', 'builder'), ('otter', 'Otter', 'quick')] %} {% call panel('Default models', 'The model a wolt gets for each working style. A wolt with its own model keeps it.', 'new sessions') %} {% for harness in harnesses if not harness.freeform_model and harness.catalog %} {% set labels = {} %} {% for model in harness.catalog %}{% set _ = labels.update({model.id: model.label}) %}{% endfor %}

{{ harness.label }}

{% for tier, title, pace in tier_rows %} {% set field_id = 'tier-' ~ harness.id ~ '-' ~ tier %} {% set current = harness.models[tier] %} {% call select_field(field_id, title, pace) %}
{% endcall %} {% endfor %} {% endfor %} {% endcall %}
{% call panel('Idle sessions', 'Close sessions nobody has been in touch with, to free resources. Their conversation stays resumable.', 'lodge-wide') %} {% call select_field('idle-session-timeout', 'Close idle sessions after', 'No contact means no message, notify or page update from the session for this long.') %}
{% endcall %} {% endcall %}
✓ Saved
{% endblock %} {% block scripts %} {% endblock %}