sol: publish 2026-10-28 daily ledger, profile classification record, and lane-status checker
This commit is contained in:
1 parent
21ff2643ff
commit
f0e31cee70
3 files changed
+173
No files matched your search
@@ -0,0 +1,24 @@
|
||||
# Sol Daily Ledger - 2026-10-28
|
||||
|
||||
Classification measured from real disk and from the live `wizard-outputs` tree.
|
||||
|
||||
## Verdict
|
||||
|
||||
sol lane status: **ACTIVE** (fresh daily log written in this session; age 0.000 h at measurement)
|
||||
|
||||
## Real measured state
|
||||
|
||||
| Item | Measured value |
|
||||
|---|---|
|
||||
| profile entries (os.listdir) | 64 |
|
||||
| profile category counts | {"identity": 2, "config": 3, "state_db": 11, "soul": 1, "script": 19, "cache": 4, "backups": 1, "extension_dir": 17, "logs": 1, "plugins": 2, "sessions": 1, "skills": 1, "vault": 1} |
|
||||
| counts sum | 64 |
|
||||
| sol latest log | sol-2026-10-28-183533.txt |
|
||||
| sol latest age (h) | 0.000 |
|
||||
| sol status | ACTIVE |
|
||||
|
||||
## Artifacts
|
||||
|
||||
- `sol-2026-10-28-<ts>.txt` - daily ledger (working copy under `wizard-outputs`).
|
||||
- `sol-2026-10-28-<ts>.json`, `Triage-2026-10-28-sol-ledger.md`, `check_2026-10-28_sol_ledger.py` - committed record + checker.
|
||||
|
||||
@@ -0,0 +1,122 @@
|
||||
#!/usr/bin/env python3
|
||||
"""CHECK -- verify the 2026-10-28 sol daily ledger record against real disk.
|
||||
|
||||
Independently re-derives the sol profile classification and the sol-lane daily
|
||||
status straight from the filesystem and diffs them against the committed
|
||||
artifact sol-2026-10-28-<ts>.json. Exit code 0 == record matches disk.
|
||||
|
||||
Single bare shell command whose exit code is the verdict:
|
||||
python3 /root/troupe-standup/wizard-work/sol/check_2026-10-28_sol_ledger.py
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
REPO = "/root/troupe-standup/wizard-work/sol"
|
||||
PROFILE = "/root/.hermes/profiles/sol"
|
||||
WIZARD_OUT = "/root/.hermes/wizard-outputs"
|
||||
|
||||
EXACT = {
|
||||
"identity": {".env", ".env.bak-20261014T165715Z"},
|
||||
"soul": {"SOUL.md"},
|
||||
"config": {".env.lock", "config.yaml", "config.yaml.bak-20261014T165715Z"},
|
||||
"state_db": {
|
||||
"state.db", "state.db-shm", "state.db-wal",
|
||||
"state.db.auto-maintenance.lock", "state.db.fts_rebuild.lock",
|
||||
"state.db.quarantine.lock", "auth.json", "auth.lock",
|
||||
".skills_prompt_snapshot.json", "models_dev_cache.json",
|
||||
"models_dev_cache.etag",
|
||||
},
|
||||
"cache": {"cache", "audio_cache", "image_cache", "context_length_cache.yaml"},
|
||||
"sessions": {"sessions"},
|
||||
"skills": {"skills"},
|
||||
"plugins": {"plugins", "plugin-update-checks"},
|
||||
"logs": {"logs"},
|
||||
"backups": {"backups"},
|
||||
"vault": {"vault"},
|
||||
}
|
||||
|
||||
|
||||
def categorize(name, is_dir):
|
||||
if name in EXACT["identity"]:
|
||||
return "identity"
|
||||
if name in EXACT["soul"]:
|
||||
return "soul"
|
||||
if name in EXACT["config"]:
|
||||
return "config"
|
||||
if name in EXACT["state_db"]:
|
||||
return "state_db"
|
||||
if name in EXACT["cache"]:
|
||||
return "cache"
|
||||
if name in EXACT["sessions"]:
|
||||
return "sessions"
|
||||
if name in EXACT["skills"]:
|
||||
return "skills"
|
||||
if name in EXACT["plugins"]:
|
||||
return "plugins"
|
||||
if name in EXACT["logs"]:
|
||||
return "logs"
|
||||
if name in EXACT["backups"]:
|
||||
return "backups"
|
||||
if name in EXACT["vault"]:
|
||||
return "vault"
|
||||
if is_dir:
|
||||
return "extension_dir"
|
||||
if name.endswith(".py"):
|
||||
return "script"
|
||||
if name.endswith(".yaml") or name.endswith(".json"):
|
||||
return "config_data"
|
||||
return "other"
|
||||
|
||||
|
||||
def main():
|
||||
jpaths = sorted(f for f in os.listdir(REPO) if f.startswith("sol-2026-10-28-") and f.endswith(".json"))
|
||||
if len(jpaths) != 1:
|
||||
print("FAIL: expected exactly one sol-2026-10-28-*.json, found %r" % jpaths)
|
||||
sys.exit(1)
|
||||
artifact = json.load(open(os.path.join(REPO, jpaths[0])))
|
||||
|
||||
# Independent re-derivation from real disk.
|
||||
names = sorted(os.listdir(PROFILE))
|
||||
counts = {}
|
||||
for n in names:
|
||||
counts[categorize(n, os.path.isdir(os.path.join(PROFILE, n)))] = counts.get(categorize(n, os.path.isdir(os.path.join(PROFILE, n))), 0) + 1
|
||||
|
||||
# Independent sol-lane status from real mtimes.
|
||||
latest_log = None
|
||||
latest_mtime = None
|
||||
for f in os.listdir(WIZARD_OUT):
|
||||
if f.startswith("sol-") and f.endswith(".txt"):
|
||||
m = os.path.getmtime(os.path.join(WIZARD_OUT, f))
|
||||
if latest_mtime is None or m > latest_mtime:
|
||||
latest_log, latest_mtime = f, m
|
||||
now = __import__("time").time()
|
||||
age = (now - latest_mtime) / 3600.0 if latest_log else None
|
||||
status = "ACTIVE" if (age is not None and age < 24) else ("WATCH" if age is not None and age <= 168 else ("STALE" if latest_log else "NO_LOG"))
|
||||
|
||||
problems = []
|
||||
if artifact.get("profile_entries") != len(names):
|
||||
problems.append("profile_entries %r != disk %d" % (artifact.get("profile_entries"), len(names)))
|
||||
if artifact.get("profile_counts") != counts:
|
||||
problems.append("profile_counts %r != recomputed %r" % (artifact.get("profile_counts"), counts))
|
||||
if artifact.get("profile_counts_sum") != sum(counts.values()):
|
||||
problems.append("profile_counts_sum %r != %d" % (artifact.get("profile_counts_sum"), sum(counts.values())))
|
||||
if latest_log != artifact.get("sol_latest_log"):
|
||||
problems.append("sol_latest_log %r != artifact %r" % (latest_log, artifact.get("sol_latest_log")))
|
||||
if artifact.get("sol_status") != status:
|
||||
problems.append("sol_status %r != recomputed %r" % (artifact.get("sol_status"), status))
|
||||
|
||||
if problems:
|
||||
print("FAIL")
|
||||
for p in problems:
|
||||
print(" -", p)
|
||||
sys.exit(1)
|
||||
|
||||
print("PASS: sol daily ledger record verified against live disk")
|
||||
print("profile_entries=%d profile_counts=%s" % (len(names), json.dumps(counts)))
|
||||
print("sol_status=%s sol_latest_log=%s" % (status, latest_log))
|
||||
sys.exit(0)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"artifact": "sol-2026-10-28-183533.txt",
|
||||
"source": "os.listdir(real disk) at generation time; sol-lane status from /root/.hermes/wizard-outputs",
|
||||
"generated_utc": "2026-10-28T18:35:33Z",
|
||||
"lane": "Triage - everyday Q&A and classification",
|
||||
"profile": "/root/.hermes/profiles/sol",
|
||||
"profile_entries": 64,
|
||||
"profile_counts": {
|
||||
"identity": 2,
|
||||
"config": 3,
|
||||
"state_db": 11,
|
||||
"soul": 1,
|
||||
"script": 19,
|
||||
"cache": 4,
|
||||
"backups": 1,
|
||||
"extension_dir": 17,
|
||||
"logs": 1,
|
||||
"plugins": 2,
|
||||
"sessions": 1,
|
||||
"skills": 1,
|
||||
"vault": 1
|
||||
},
|
||||
"profile_counts_sum": 64,
|
||||
"sol_latest_log": "sol-2026-10-28-183533.txt",
|
||||
"sol_latest_age_h": 7.34196768866645e-07,
|
||||
"sol_status": "ACTIVE"
|
||||
}
|
||||
Reference in new issue
Block a user