sol: profile health triage for 27 Hermes profiles (26 ACTIVE, 1 PLACEHOLDER)

This commit is contained in:
sol committed 2026-10-24 05:11:01 +00:00
1 parent 257470a083
commit 340c30d8e8
3 files changed
+403

No files matched your search

@@ -0,0 +1,95 @@
#!/usr/bin/env python3
"""CHECK for sol-profile-health artifact.
Re-derives the profile classification straight from the filesystem and
compares it against the recorded values in the artifact. Exit 0 = artifact
matches reality; nonzero = artifact is wrong or missing.
Usage: python3 check_sol_profile_health.py (exit code is the verdict)
"""
import json
import os
import re
import sys
PROFILES = "/root/.hermes/profiles"
ARTIFACT = "/root/.hermes/wizard-outputs/sol/sol-profile-health-2026-10-24.json"
def recompute():
out = {}
for name in os.listdir(PROFILES):
p = os.path.join(PROFILES, name)
if not os.path.isdir(p):
continue
cfg = os.path.join(p, "config.yaml")
has_cfg = os.path.isfile(cfg)
model = ""
if has_cfg:
try:
t = open(cfg, encoding="utf-8", errors="replace").read()
m = re.search(r"model:\s*\n\s*default:\s*(.+)", t)
if not m:
m = re.search(r"default:\s*(.+)", t)
model = m.group(1).strip() if m else ""
except Exception:
model = ""
if not has_cfg:
out[name] = "PLACEHOLDER"
elif model == "":
out[name] = "STALE"
else:
out[name] = "ACTIVE"
return out
def main():
failures = []
if not os.path.exists(ARTIFACT):
print("FAIL: artifact missing: " + ARTIFACT)
sys.exit(1)
with open(ARTIFACT, encoding="utf-8") as fh:
art = json.load(fh)
recorded = {}
for e in art.get("entries", []):
recorded[e["name"]] = e.get("status")
expected = recompute()
# Every name must be present on both sides with identical status.
for name, st in expected.items():
if recorded.get(name) != st:
failures.append("name %r recorded=%r expected=%r" % (name, recorded.get(name), st))
for name in recorded:
if name not in expected:
failures.append("extra name in artifact: %r" % name)
# Summary cross-check.
counts = {}
for s in expected.values():
counts[s] = counts.get(s, 0) + 1
if art.get("total") != len(expected):
failures.append("total mismatch: %r != %d" % (art.get("total"), len(expected)))
if art.get("ACTIVE") != counts.get("ACTIVE", 0):
failures.append("ACTIVE count mismatch: %r != %d" % (art.get("ACTIVE"), counts.get("ACTIVE", 0)))
if art.get("STALE") != counts.get("STALE", 0):
failures.append("STALE count mismatch: %r != %d" % (art.get("STALE"), counts.get("STALE", 0)))
if art.get("PLACEHOLDER") != counts.get("PLACEHOLDER", 0):
failures.append("PLACEHOLDER count mismatch: %r != %d" % (art.get("PLACEHOLDER"), counts.get("PLACEHOLDER", 0)))
if failures:
print("FAIL: artifact does not match filesystem reality")
for f in failures:
print(" - " + f)
sys.exit(1)
print("PASS: sol-profile-health artifact verified against filesystem")
print(" total=%d ACTIVE=%d STALE=%d PLACEHOLDER=%d" % (
len(expected), counts.get("ACTIVE", 0), counts.get("STALE", 0), counts.get("PLACEHOLDER", 0)))
if __name__ == "__main__":
main()
@@ -0,0 +1,253 @@
{
"generated_at_utc": "2026-10-24T05:09:48Z",
"profiles_base": "/root/.hermes/profiles",
"total": 27,
"ACTIVE": 26,
"STALE": 0,
"PLACEHOLDER": 1,
"entries": [
{
"name": "argus",
"has_cfg": true,
"model": "meituan/longcat-2.5-preview:free",
"model_err": "",
"nfiles": 16,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "beam",
"has_cfg": true,
"model": "reflection/beam-1.0-501b-a23b:free",
"model_err": "",
"nfiles": 16,
"ndirs": 23,
"status": "ACTIVE"
},
{
"name": "buzzpilot",
"has_cfg": true,
"model": "gpt-5.6-sol",
"model_err": "",
"nfiles": 23,
"ndirs": 26,
"status": "ACTIVE"
},
{
"name": "courtney",
"has_cfg": true,
"model": "deepseek-v4-pro",
"model_err": "",
"nfiles": 12,
"ndirs": 21,
"status": "ACTIVE"
},
{
"name": "forge",
"has_cfg": true,
"model": "poolside/laguna-s-2.1:free",
"model_err": "",
"nfiles": 29,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "home",
"has_cfg": true,
"model": "deepseek-v4-pro",
"model_err": "",
"nfiles": 10,
"ndirs": 19,
"status": "ACTIVE"
},
{
"name": "hou3",
"has_cfg": true,
"model": "stepfun/step-3.7-flash:free",
"model_err": "",
"nfiles": 16,
"ndirs": 22,
"status": "ACTIVE"
},
{
"name": "inference-lab",
"has_cfg": true,
"model": "gpt-5.6-sol",
"model_err": "",
"nfiles": 17,
"ndirs": 21,
"status": "ACTIVE"
},
{
"name": "kendra",
"has_cfg": true,
"model": "deepseek-v4-pro",
"model_err": "",
"nfiles": 10,
"ndirs": 19,
"status": "ACTIVE"
},
{
"name": "ledger",
"has_cfg": true,
"model": "upstage/solar-mini4:free",
"model_err": "",
"nfiles": 19,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "lilly",
"has_cfg": true,
"model": "deepseek-v4-pro",
"model_err": "",
"nfiles": 12,
"ndirs": 22,
"status": "ACTIVE"
},
{
"name": "merlin",
"has_cfg": true,
"model": "stepfun/step-5-preview:free",
"model_err": "",
"nfiles": 17,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "nightprowl",
"has_cfg": true,
"model": "meituan/longcat-2.0:free",
"model_err": "",
"nfiles": 19,
"ndirs": 22,
"status": "ACTIVE"
},
{
"name": "null",
"has_cfg": true,
"model": "meituan/longcat-2.5-preview:free",
"model_err": "",
"nfiles": 19,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "praetorian",
"has_cfg": true,
"model": "nemotron-3.5-lightning-free",
"model_err": "",
"nfiles": 31,
"ndirs": 27,
"status": "ACTIVE"
},
{
"name": "quill",
"has_cfg": true,
"model": "stepfun/step-3.7-flash:free",
"model_err": "",
"nfiles": 18,
"ndirs": 23,
"status": "ACTIVE"
},
{
"name": "scribe",
"has_cfg": true,
"model": "meituan/longcat-2.0:free",
"model_err": "",
"nfiles": 18,
"ndirs": 23,
"status": "ACTIVE"
},
{
"name": "sentinel",
"has_cfg": true,
"model": "nvidia/nemotron-3.5-super-vl-120b-a12b",
"model_err": "",
"nfiles": 16,
"ndirs": 23,
"status": "ACTIVE"
},
{
"name": "sherry",
"has_cfg": true,
"model": "deepseek-v4-pro",
"model_err": "",
"nfiles": 10,
"ndirs": 19,
"status": "ACTIVE"
},
{
"name": "sol",
"has_cfg": true,
"model": "upstage/solar-mini4:free",
"model_err": "",
"nfiles": 36,
"ndirs": 27,
"status": "ACTIVE"
},
{
"name": "spark",
"has_cfg": true,
"model": "poolside/laguna-xs-2.1:free",
"model_err": "",
"nfiles": 18,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "spark-snippet-wizard",
"has_cfg": false,
"model": "",
"model_err": "",
"nfiles": 10,
"ndirs": 13,
"status": "PLACEHOLDER"
},
{
"name": "sphinx",
"has_cfg": true,
"model": "meituan/longcat-2.5-preview:free",
"model_err": "",
"nfiles": 19,
"ndirs": 24,
"status": "ACTIVE"
},
{
"name": "timmy",
"has_cfg": true,
"model": "gpt-5.6-sol",
"model_err": "",
"nfiles": 21,
"ndirs": 25,
"status": "ACTIVE"
},
{
"name": "vincent",
"has_cfg": true,
"model": "gpt-5.6-sol",
"model_err": "",
"nfiles": 19,
"ndirs": 23,
"status": "ACTIVE"
},
{
"name": "volt",
"has_cfg": true,
"model": "deepseek-flash",
"model_err": "",
"nfiles": 16,
"ndirs": 23,
"status": "ACTIVE"
},
{
"name": "worker",
"has_cfg": true,
"model": "stealth/space-bunny-alpha",
"model_err": "",
"nfiles": 10,
"ndirs": 18,
"status": "ACTIVE"
}
]
}
@@ -0,0 +1,55 @@
# Sol profile health triage
Date: 2026-10-24T05:09:48Z | Evidence: `ls /root/.hermes/profiles`; each `config.yaml` parsed for an explicit `default` model.
## Summary
| Metric | Count |
|---|---|
| Total top-level profile entries | 27 |
| ACTIVE (installed agent, config model present) | 26 |
| STALE (config model empty/error) | 0 |
| PLACEHOLDER (no config.yaml) | 1 |
## Outcome
- **PLACEHOLDER (1):** spark-snippet-wizard
- **ACTIVE:** 26 profiles, all with an installed agent model.
## Active profiles (sorted by name)
| name | model | files | dirs |
|---|---|---|---|
| argus | meituan/longcat-2.5-preview:free | 16 | 24 |
| beam | reflection/beam-1.0-501b-a23b:free | 16 | 23 |
| buzzpilot | gpt-5.6-sol | 23 | 26 |
| courtney | deepseek-v4-pro | 12 | 21 |
| forge | poolside/laguna-s-2.1:free | 29 | 24 |
| home | deepseek-v4-pro | 10 | 19 |
| hou3 | stepfun/step-3.7-flash:free | 16 | 22 |
| inference-lab | gpt-5.6-sol | 17 | 21 |
| kendra | deepseek-v4-pro | 10 | 19 |
| ledger | upstage/solar-mini4:free | 19 | 24 |
| lilly | deepseek-v4-pro | 12 | 22 |
| merlin | stepfun/step-5-preview:free | 17 | 24 |
| nightprowl | meituan/longcat-2.0:free | 19 | 22 |
| null | meituan/longcat-2.5-preview:free | 19 | 24 |
| praetorian | nemotron-3.5-lightning-free | 31 | 27 |
| quill | stepfun/step-3.7-flash:free | 18 | 23 |
| scribe | meituan/longcat-2.0:free | 18 | 23 |
| sentinel | nvidia/nemotron-3.5-super-vl-120b-a12b | 16 | 23 |
| sherry | deepseek-v4-pro | 10 | 19 |
| sol | upstage/solar-mini4:free | 36 | 27 |
| spark | poolside/laguna-xs-2.1:free | 18 | 24 |
| sphinx | meituan/longcat-2.5-preview:free | 19 | 24 |
| timmy | gpt-5.6-sol | 21 | 25 |
| vincent | gpt-5.6-sol | 19 | 23 |
| volt | deepseek-flash | 16 | 23 |
| worker | stealth/space-bunny-alpha | 10 | 18 |
## Placeholder profiles
| name | files | dirs | reason |
|---|---|---|---|
| spark-snippet-wizard | 10 | 13 | no config.yaml (bare directory) |