Separate metrics measurement dimensions
This commit is contained in:
parent
2bc6ec6be2
commit
b3dc8a15c0
7 changed files with 33 additions and 9 deletions
|
|
@ -4878,8 +4878,10 @@ fn derive_repo_metrics_request_plan(
|
|||
String::new(),
|
||||
"[metrics_packet]".to_string(),
|
||||
"requires_model_call_count = true".to_string(),
|
||||
"requires_token_or_cost_summary = true".to_string(),
|
||||
"requires_review_minutes_or_count = true".to_string(),
|
||||
"requires_token_summary = true".to_string(),
|
||||
"requires_cost_availability_status = true".to_string(),
|
||||
"requires_review_duration = true".to_string(),
|
||||
"requires_review_event_count = true".to_string(),
|
||||
"requires_accepted_artifact_ref = true".to_string(),
|
||||
"requires_public_proof_ref = true".to_string(),
|
||||
"requires_credit_readback_ref = true".to_string(),
|
||||
|
|
|
|||
|
|
@ -156,8 +156,10 @@ impl RepoMetricsRequest {
|
|||
pub(super) fn has_metrics_packet(&self) -> bool {
|
||||
let p = &self.metrics_packet;
|
||||
p.requires_model_call_count
|
||||
&& p.requires_token_or_cost_summary
|
||||
&& p.requires_review_minutes_or_count
|
||||
&& p.requires_token_summary
|
||||
&& p.requires_cost_availability_status
|
||||
&& p.requires_review_duration
|
||||
&& p.requires_review_event_count
|
||||
&& p.requires_accepted_artifact_ref
|
||||
&& p.requires_public_proof_ref
|
||||
&& p.requires_credit_readback_ref
|
||||
|
|
@ -223,8 +225,10 @@ struct RepoMetricsReceipts {
|
|||
#[derive(Debug, Deserialize)]
|
||||
struct RepoMetricsPacket {
|
||||
requires_model_call_count: bool,
|
||||
requires_token_or_cost_summary: bool,
|
||||
requires_review_minutes_or_count: bool,
|
||||
requires_token_summary: bool,
|
||||
requires_cost_availability_status: bool,
|
||||
requires_review_duration: bool,
|
||||
requires_review_event_count: bool,
|
||||
requires_accepted_artifact_ref: bool,
|
||||
requires_public_proof_ref: bool,
|
||||
requires_credit_readback_ref: bool,
|
||||
|
|
|
|||
|
|
@ -116,8 +116,10 @@ review_load = "gamecult.metrics.review_load_receipt.v0"
|
|||
credit_readback = "gamecult.bifrost.credit_readback_receipt.v0"
|
||||
[metrics_packet]
|
||||
requires_model_call_count = true
|
||||
requires_token_or_cost_summary = true
|
||||
requires_review_minutes_or_count = true
|
||||
requires_token_summary = true
|
||||
requires_cost_availability_status = true
|
||||
requires_review_duration = true
|
||||
requires_review_event_count = true
|
||||
requires_accepted_artifact_ref = true
|
||||
requires_public_proof_ref = true
|
||||
requires_credit_readback_ref = true
|
||||
|
|
|
|||
|
|
@ -1433,3 +1433,12 @@ the mutable ref Idunn watches and the immutable commit it deploys. The Idunn
|
|||
receipt contract already records both `watched_ref` and `source_commit`.
|
||||
Deployment requests now require both fields: trigger topology and artifact
|
||||
identity are conjunctive evidence.
|
||||
|
||||
## Measurement availability is not measurement equivalence
|
||||
|
||||
The metrics packet accepted token-or-cost and review-minutes-or-count summaries.
|
||||
Those quantities answer different questions. It now requires token usage, an
|
||||
explicit cost availability status, review duration, and review-event count.
|
||||
Unknown vendor pricing may be reported as unavailable rather than fabricated;
|
||||
it may not erase token accounting. A review count may not erase elapsed load,
|
||||
and duration may not erase how many review events occurred.
|
||||
|
|
|
|||
|
|
@ -534,3 +534,10 @@ Deployment git identity is also split. Requests now require both watched ref
|
|||
and source commit SHA, matching Idunn's receipt. A branch/ref identifies the
|
||||
mutable trigger path; the commit SHA identifies deployed bytes. Do not collapse
|
||||
them back into one convenient string.
|
||||
|
||||
Metrics packet completeness is now explicit: token summary, cost availability
|
||||
status, review duration, and review-event count are separate requirements.
|
||||
This permits honest unavailable pricing without treating cost and tokens—or
|
||||
duration and event count—as interchangeable. Next inspect projected accounting
|
||||
status to ensure receipt presence cannot close a row whose required dimensions
|
||||
are absent.
|
||||
|
|
|
|||
Binary file not shown.
|
|
@ -660,4 +660,4 @@ current_status:
|
|||
- Service lifecycle receipt history is now event-only: `load_epiphany_cultmesh_daemon_service_lifecycle_receipts` filters out the `epiphany-local/daemon-service-lifecycle-receipt/latest` mirror, while `load_latest_epiphany_cultmesh_daemon_service_lifecycle_receipt` remains the latest-state reader. Focused unit test `service_lifecycle_receipt_history_excludes_latest_mirror` proves two per-receipt writes return exactly two history records and latest points at the second. Fresh smoke `verse-query-lifecycle-history-filter-smoke` and live overview/triage `local-20260618-145632-497-efac6f0d` / `local-20260618-145632-321-867947af` prove compact swarm sights still expose service lifecycle attention plus the present elevated runbook artifact without daemon pokes or service mutation. Do not use a broad unscoped cargo test filter for this check on Windows; it fans out across bin harnesses and hit a broken pipe during this pass.
|
||||
- `epiphany-verse-query seed-compact` is the compact seed receipt for wrappers and read-only rites. The older `seed` command still prints the full local Verse context for explicit debugging, but compact wrapper modes now avoid full `seed`/final `query` readback after the combined overview proof exposed Windows debug stack overflow from full-context serialization pressure.
|
||||
last_completed_repo_swarm_cut: Huginn live-fire has crossed the first real repo Body from Persona pressure to branch-local Hands commit and Soul/Mind closure, and now has repeatable closure and redacted-public-proof mouths. On `E:\Projects\Huginn` branch `epiphany/huginn/first-awakening`, `tools/epiphany_local_run.ps1 -Mode repo-persona-intake` accepted item `huginn-inspection-readback-livefire`, Weksa/Persona intake remained sealed, and `epiphany-work derive-plan` lowered it to model-authored safe family `repo.status_section` for `README.md` only. `tools/epiphany_local_run.ps1 -Mode repo-swarm-run` advanced four bounded pulses: run-from-plan, adopt-from-plan, execute-from-plan, and close-from-execute. Huginn commit `e9b07c38fceabbdc89ea35c2156326c80c0393a2` updated only `README.md`; closure receipt `.epiphany\work\work-close-huginn-inspection-readback-livefire.json` records status `closed`, Soul verdict `passed`, Mind state commit `repo-work-close-huginn-inspection-readback-livefire-mind-commit`, safe family `repo.status_section`, path scope `README.md`, Bifrost publication gate, and `privateStateExposed=false`. Verification also ran Huginn's TypeScript compiler through concrete Node path: `C:\Program Files\nodejs\node.exe E:\Projects\Huginn\node_modules\typescript\bin\tsc -p tsconfig.json` passed. Native verifier `epiphany-repo-livefire-closure-smoke --workspace E:\Projects\Huginn --item huginn-inspection-readback-livefire --expected-path README.md --expected-family repo.status_section --expected-gate awaiting-publication --expected-blocker bifrost-publication-missing` checks closure receipt, Mind map entry, overview gate/blocker, authority seals, and `git show` changed paths, returning `status=ok`, `soulVerdict=passed`, `publicationGate=Bifrost`, and `privateStateExposed=false`. Wrapper `tools/epiphany_local_run.ps1 -Mode repo-livefire-closure -Workspace E:\Projects\Huginn -RepoWorkItem huginn-inspection-readback-livefire -SkipBuild` exposes the same read-only proof through the local operator mouth; artifact `local-20260621-190156-803-2f85ba15` printed commit, path, gate, blocker, Soul verdict, Mind commit receipt, and `privateStateExposed=False` without push, merge, publication, or target mutation. New wrapper `tools/epiphany_local_run.ps1 -Mode repo-work-public-proof -Workspace E:\Projects\Huginn -RepoWorkItem huginn-inspection-readback-livefire -SkipBuild` exports the redacted proof bundle and repo-local Verse index without publishing; artifact `local-20260621-190645-345-4555b1dc` wrote `.epiphany\public\proof-bundles\repo-work-public-proof-huginn-inspection-readback-livefire.json`, proof id `repo-work-public-proof-huginn-inspection-readback-livefire`, SHA-256 `857545b199f3e37eb06c2e757e5cfc201958e46667bb1f8403fd333a22620f63`, nine artifact rows, zero publication rows, and `privateStateExposed=False`. swarm overview readback `local-20260621-190701-140-b9519ec6` sees the `REPO-WORK-PUBLIC-PROOF` row and action row from Huginn's repo-local Verse with the same SHA-256 while Bifrost publication remains missing. Launcher compact modes are now named compact operator-context modes instead of read-only modes, and `bifrost-public-proof` summaries print item, target public Verse, room, proof SHA-256, review receipts, and credit receipts so publication receipts are auditable without claiming upstream sync.
|
||||
next_action: Continue the OR-field and observation-to-consequence audit. Deployment now requires watched ref plus immutable source commit, and script hash plus review receipt; trigger topology, byte identity, and approval are separate proofs. Classify remaining alternatives by invariant, then inspect status/receipt/scheduler/cache projections for borrowed closure or effect authority. Keep closure's zero-substring invariant.
|
||||
next_action: Continue the observation-to-consequence audit. Metrics requests now require token summary, explicit cost availability, review duration, and review-event count separately. Inspect Bifrost accounting projections next: receipt presence must not close metrics rows if required measurement dimensions are absent. Then continue scheduler/cache projection audit. Keep closure's zero-substring invariant.
|
||||
|
|
|
|||
Reference in a new issue