Estado de la memoria — una página, una verdad (BL-428)
Qué es esta página
OrbitPilot ya ha rastreado, en varios lugares diferentes, lo que recuerda sobre
tu: una tarjeta de construcción en el panel de control, pequeños íconos al lado de cada Blink, y una línea que
agrega a sus propias respuestas cuando la memoria está desactualizada. Las propias palabras del propietario en el
día en que se lanzó: un tiempo de actualización que es silencioso sobre SCOPE — "actualizado hoy pero
no puede acceder" — es una oración veraz que aún te deja confundido. La
página de Estado de la Memoria (/orbitpilot/memory-status/) pone todo en una
página: cuándo cambió la memoria por última vez y cómo, cada fuente que actualmente está en ella con recuentos,
y — para cualquier cosa que falte — la razón honesta de por qué, en lenguaje simple.
Qué muestra
- Última actualización. La hora en la que la memoria cambió por última vez y el método — una reconstrucción completa, una actualización rápida, o una actualización automática/manual desde un solo cambio guardado — además, si la memoria está obsoleta, degradada, o nunca se ha construido, la frase exacta que OrbitPilot adjuntaría a una respuesta en este momento.
- En tu memoria. Cada fuente con contenido real en la memoria — Blinks, Objetivos, Proyectos, Negocios, archivos, y más — con un recuento de elementos y cuándo se construyó por última vez.
- No en tu memoria. Cada otra fuente disponible, cada una con un razonamiento accionable: fuera de sitio, no en tu plan (mejorar lo añadiría), archivos esperando ser movidos a la carpeta protegida de Archivos de OrbitPilot, o simplemente no recogido por una construcción aún.
Refrescando la memoria desde esta página
Desde BL-435 la tarjeta de Última actualización lleva las dos acciones de refresco en sí misma —
A Actualización rápida (lee nuevamente solo lo que cambió desde la última construcción; barato) y
Reconstrucción completa (lee nuevamente y vuelve a incrustar todo; usa más créditos de IA) — así
que nadie tiene que salir de la página para actuar sobre lo que muestra. Son los mismos controles que el
A menú de la ventana de chat de OrbitPilot A Memory, por la regla del propietario "no duplicar
el código": UN parcial de plantilla compartido
(templates/_orbitpilot_rebuild_controls.html) renderizado en ambas superficies, UN
punto final (orbitpilot_rebuild_memory, POST mode=soft|hard), el mismo
diálogo de confirmación, la misma sanación de construcción atascada al hacer clic (BL-404 reaper) y el mismo
anillo de progreso en vivo (BL-410). Los botones están conectados por un [data-op-rebuild] delegación a nivel de documento
en static/js/orbitpilot-widget.js; dado que ese script se carga de manera perezosa, orbitpilot-loader.js encola un clic que aterriza
antes de que se haya cargado y lo reproduce (rebuildFromButton), de la misma manera en que protege
el primer clic del botón de chat. Cuando una construcción se completa, esta página se recarga
a sí misma para que los hechos de "Última actualización" se lean nuevamente desde get_memory_status_page en lugar de volverse obsoletos.
Guardias: orbitpilot/test_memory_status_page.py::RebuildControlsTests fallan en el momento en que los botones se copian a una segunda plantilla o se registra una segunda ruta de reconstrucción.
Dónde encontrarlo
Un enlace "A Estado de la memoria" se encuentra en la barra de herramientas inferior de la ventana de chat de OrbitPilot — en la misma fila que Nueva / Historial / Copiar / Este chat — así que está a un clic de cada conversación, acoplada o a pantalla completa. Los invitados ven el mismo enlace, pero conduce a la creación de cuenta en su lugar, ya que no hay memoria personal que informar aún.
Cómo funciona esto — para administradores
No hay nada que configurar hoy. La página está abierta a cada usuario que ha iniciado sesión; una posterior
puerta de plan (por ejemplo, restringiéndola a niveles superiores) está a una fila del Registro de Características —
registra una Feature con la clave orbitpilot_memory_status_page y asígnala o desactívala, sin necesidad de cambios de código.
Las cuentas de personal y superusuario ven un aviso adicional en la página: su cuenta
bypassea totalmente las puertas de plan (plans.services.get_effective_limits
rinde al personal cada bandera incondicionalmente), así que lo que una cuenta de personal ve no es lo que un
usuario no personal del mismo plan vería. Esto existe para que un administrador nunca confunda su
propia vista eludida con lo que parece la página de un usuario real.
Cómo funciona esto — para desarrolladores
orbitpilot/services.py::get_memory_status_page(user) es toda la
computación, y AGLOMERA SOLO — llama las mismas funciones exactas que ya utilizan otras superficies, para que esta página nunca pueda discriminar con ellas:
get_last_build/get_last_completed_build,
memory_is_stale, build_notice.ask_honesty_note (BL-405,
devuelto textualmente), y resolve_build_sources + _plan_gate_reason
(#597 / BL-410-P1, las mismas razones que build_user_snapshot entrega al modelo
en mitad de la conversación). Los recuentos por fuente provienen de un GROUP BY sobre
OrbitPilotMemoryChunk, excluyendo get_rag_disabled_keys() de
la misma manera que pipeline/retrieve.py los excluye — una fuente que un administrador
apagó después de que se construyó aún tiene filas en la tabla, y esta página no debe
llamar a esas filas "en memoria" cuando la recuperación nunca las buscará.
Vista: orbitpilot.views.orbitpilot_memory_status, nombre de URL
orbitpilot_memory_status. Plantilla:
orbitpilot/templates/orbitpilot/memory_status.html. La paridad está fijada
por orbitpilot/test_memory_status_page.py — una prueba crea una fila de chunk
real y asegura que el recuento de la página es igual a una consulta simple sobre la misma tabla, de modo que la
página no puede comenzar silenciosamente a recalcular sus propios números.
Páginas relacionadas
Docshub: "Íconos de estado de memoria por Blink" (BL-417, el mismo vocabulario y
familia de redacción), "Tu memoria permanece honesta" (BL-405). docs/orbitpilot/TASKS.md.
This guide was translated automatically. Read the English original.