session naming: archive- prefix convention + cc-ci-report unique-name invariant
- _archive_stale_titles default label is now 'archive-<title> —' (operator convention: all archived sessions start with archive- so they sort/filter together in the web UI). - launch-report.py start() archives older cc-ci-report sessions before launch, same invariant as upgrader/supervisor (reuses the launch-upgrader helper). - 33 sessions restyled/archived live; canonical names now unique: cc-ci-upgrader (idle finisher), cc-ci-report (generating), cc-ci-supervisor (none — only exists during a rescue).
This commit is contained in:
@@ -70,6 +70,18 @@ def start(mode, date):
|
|||||||
log(f"{SESSION} busy with a report — leaving it"); return
|
log(f"{SESSION} busy with a report — leaving it"); return
|
||||||
log(f"{SESSION} exists (idle/leftover) — killing first"); kill_session(); time.sleep(1)
|
log(f"{SESSION} exists (idle/leftover) — killing first"); kill_session(); time.sleep(1)
|
||||||
|
|
||||||
|
# Unique-name invariant (same as upgrader/supervisor): archive-rename every older session
|
||||||
|
# titled SESSION so the one this launch creates is the ONLY 'cc-ci-report' in the web UI.
|
||||||
|
# Archived names start with 'archive-' (operator convention 2026-08-04).
|
||||||
|
try:
|
||||||
|
import importlib.util as _ilu
|
||||||
|
_spec = _ilu.spec_from_file_location(
|
||||||
|
"launch_upgrader", os.path.join(os.path.dirname(os.path.realpath(__file__)), "launch-upgrader.py"))
|
||||||
|
_lu = _ilu.module_from_spec(_spec); _spec.loader.exec_module(_lu)
|
||||||
|
_lu._archive_stale_titles(SESSION)
|
||||||
|
except Exception as e:
|
||||||
|
log(f" (archive-rename skipped: {e})")
|
||||||
|
|
||||||
kf = Path(LOG_DIR) / f".kickoff-{SESSION}.txt"
|
kf = Path(LOG_DIR) / f".kickoff-{SESSION}.txt"
|
||||||
kf.write_text(build_kickoff(date))
|
kf.write_text(build_kickoff(date))
|
||||||
model_flag = f"--model '{MODEL}'" if MODEL else ""
|
model_flag = f"--model '{MODEL}'" if MODEL else ""
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ def spawn_supervisor(sid, reason):
|
|||||||
# Unique-name invariant (same as the upgrader): archive-rename every older session titled
|
# Unique-name invariant (same as the upgrader): archive-rename every older session titled
|
||||||
# SUP_SESSION so the one this launch creates is the ONLY 'cc-ci-supervisor' in the web UI.
|
# SUP_SESSION so the one this launch creates is the ONLY 'cc-ci-supervisor' in the web UI.
|
||||||
try:
|
try:
|
||||||
lu._archive_stale_titles(SUP_SESSION, "supervisor archive —")
|
lu._archive_stale_titles(SUP_SESSION)
|
||||||
except Exception:
|
except Exception:
|
||||||
pass
|
pass
|
||||||
kf = Path(LOG_DIR) / f".kickoff-{SUP_SESSION}.txt"
|
kf = Path(LOG_DIR) / f".kickoff-{SUP_SESSION}.txt"
|
||||||
|
|||||||
@@ -293,7 +293,9 @@ def _archive_stale_titles(title=None, label=None):
|
|||||||
title lookup in _session_id() unambiguous. Old runs stay browsable under
|
title lookup in _session_id() unambiguous. Old runs stay browsable under
|
||||||
'<label> — <date>'. Also used by launch-supervisor.py for its own session name."""
|
'<label> — <date>'. Also used by launch-supervisor.py for its own session name."""
|
||||||
title = title or SESSION
|
title = title or SESSION
|
||||||
label = label or ("upgrader archive — weekly" if title == "cc-ci-upgrader" else f"{title} archive —")
|
# Archive names always start with 'archive-' (operator convention 2026-08-04) so they
|
||||||
|
# sort/filter together in the web UI: 'archive-<original-title> — <date>'.
|
||||||
|
label = label or f"archive-{title} —"
|
||||||
rows = _server_get("/session") or []
|
rows = _server_get("/session") or []
|
||||||
rows = rows if isinstance(rows, list) else rows.get("data", [])
|
rows = rows if isinstance(rows, list) else rows.get("data", [])
|
||||||
for s in rows:
|
for s in rows:
|
||||||
|
|||||||
Reference in New Issue
Block a user