ship: fix evaluator column + correct contributor attribution

- Add domain_agent and domain_model to pr-lifecycle API response (data was
  queried but dropped before serialization — evaluator column showed blank)
- Show model name tag next to evaluator (Gemini Flash, GPT-4o, etc.)
- Re-attribute 1201 "pipeline (self-directed)" PRs to @m3taversal — these
  were Cory-directed, not autonomous overnight research
- Re-attribute 252 NULL PRs to @m3taversal
- Fix extract.py defaults: new PRs without proposed_by default to @m3taversal
- Fix backfill script defaults: extract/ branches → @m3taversal, not
  "pipeline (self-directed)"
- Only agent-named branches (rio/, theseus/, etc.) from research-session.sh
  remain as "(self-directed)"

Pentagon-Agent: Ship <B8D06D3F-1589-4777-B2E7-B2460D51C81F>
This commit is contained in:
m3taversal 2026-04-07 13:02:07 +01:00 committed by Teleo Agents
parent 9925576c13
commit efe23f931a
4 changed files with 27 additions and 16 deletions

View file

@ -97,9 +97,10 @@ def main():
agent = agent_map.get(prefix, prefix)
contributor = f"{agent} (self-directed)"
elif intake_tier == "directed":
contributor = "directed (unknown)"
contributor = "@m3taversal"
else:
contributor = None
# Default: if source exists but no proposed_by, it was Cory's submission
contributor = "@m3taversal"
if contributor:
conn.execute(
@ -108,14 +109,8 @@ def main():
)
updated += 1
else:
# For extract/ branches, mark as pipeline self-directed
if branch.startswith("extract/") or branch.startswith("ingestion/"):
conn.execute(
"UPDATE prs SET submitted_by = 'pipeline (self-directed)' WHERE number = ?",
(pr["number"],),
)
updated += 1
elif branch.startswith(("rio/", "theseus/", "vida/", "clay/", "astra/", "leo/")):
# Agent-named branches from overnight research sessions
if branch.startswith(("rio/", "theseus/", "vida/", "clay/", "astra/", "leo/")):
agent = branch.split("/", 1)[0]
conn.execute(
"UPDATE prs SET submitted_by = ? WHERE number = ?",
@ -128,6 +123,13 @@ def main():
(pr["number"],),
)
updated += 1
else:
# Everything else (extract/, ingestion/, unknown) → Cory directed it
conn.execute(
"UPDATE prs SET submitted_by = '@m3taversal' WHERE number = ?",
(pr["number"],),
)
updated += 1
conn.commit()
conn.close()

View file

@ -316,12 +316,18 @@ def render_prs_page(now: datetime) -> str:
contribClass = 'contributor-self';
}
// Evaluator: domain agent + model tags
// Evaluator: domain agent + model tag
var evaluator = '';
if (p.domain_agent) {
evaluator = esc(p.domain_agent);
} else if (p.agent && p.agent !== 'pipeline') {
evaluator = esc(p.agent);
var modelShort = '';
if (p.domain_model) {
var m = p.domain_model;
if (m.indexOf('gemini') >= 0) modelShort = 'Gemini Flash';
else if (m.indexOf('gpt-4o') >= 0) modelShort = 'GPT-4o';
else if (m.indexOf('sonnet') >= 0) modelShort = 'Sonnet';
else modelShort = m.split('/').pop();
}
evaluator = esc(p.domain_agent) + (modelShort ? ' <span class="model-tag">' + esc(modelShort) + '</span>' : '');
}
rows.push(

View file

@ -882,6 +882,8 @@ async def handle_pr_lifecycle(request):
"review_snippet": snippet_map.get(pr_num),
"submitted_by": r["submitted_by"],
"source_path": r["source_path"],
"domain_agent": r["domain_agent"],
"domain_model": r["domain_model"],
})
# Summary KPIs

View file

@ -525,9 +525,10 @@ async def _extract_one_source(
elif intake_tier == "research-task":
contributor = f"{agent_name} (self-directed)"
elif intake_tier == "directed":
contributor = "directed (unknown)"
contributor = "@m3taversal"
else:
contributor = "unknown"
# Default: if no proposed_by and not a research task, Cory submitted it
contributor = "@m3taversal"
# Build pipe-separated claim titles for the description field
claim_titles = " | ".join(