{% set context_limit_hit = namespace(value=false) %} {% set last_user_idx = namespace(value=-1) %} {% set first_user_idx = namespace(value=-1) %} {# Check if context percentage is at or above 100% #} {% if context_percentage is defined and context_percentage >= 100 %} {% set context_limit_hit.value = true %} {% endif %} {# Find the first and last user message indices #} {% for message in messages %} {% if message.role == 'user' %} {% if first_user_idx.value == -1 %} {% set first_user_idx.value = loop.index0 %} {% endif %} {% set last_user_idx.value = loop.index0 %} {% endif %} {% endfor %} {% for message in messages %} {% if 'CONTEXTLIMITREACHED' in message.content %} {% set context_limit_hit.value = true %} {% elif message.role == 'user' %}
{{ message.content | safe }}
Created: {{ message.time }} Status: {{ message.status }} {% if loop.index0 == first_user_idx.value and message.status == 'Processed' %} {% endif %} {% if loop.index0 == last_user_idx.value and loop.index0 != first_user_idx.value and message.status == 'Processed' %} {% endif %}
{% elif message.role == 'tool' %}
Show work...
Created: {{ message.time }} Status: {{ message.status }}
{% else %}
{{ message.content | safe }}
Created: {{ message.time }} Status: {{ message.status }}
{% endif %} {% endfor %} {% if context_limit_hit.value %}
âš ī¸
Context Limit Reached

I'm sorry, but you have reached the context limit of this Science Discussion. The conversation has grown too large for me to continue processing.

You can still:

  • 📊 Extract and download your data from the Analysts panel
  • 📁 Browse your Analysis database
  • 💾 Save a checkpoint of your project

To continue discussing, please create a new project with your papers.

{% if can_compress is not defined or can_compress %}

đŸ—œī¸ Want to try compressing the conversation?

This will summarize the first 50% of tool calls and responses to free up context space. Save a checkpoint first! This cannot be undone.

{% endif %}
{% endif %}
{% if context_limit_hit.value %} {% elif messages %} {% set last = messages|last %} {# Hide input if: last message is Pending OR last message is from user (waiting for AI response) #} {% if last.status == 'Pending' or last.role == 'user' %} {% else %} {% endif %} {% else %} {% endif %}