Name provider context by arrival order

This commit is contained in:
Meta Vens 2026-07-13 02:59:05 +01:00
commit d263b80993
7 changed files with 51 additions and 37 deletions

View file

@ -2592,7 +2592,7 @@ fn run_cli() -> Result<()> {
write_epiphany_cultmesh_agent_state_soa_summary(&args.store, agent_state_summary)?;
let context = query_epiphany_local_verse_context(&args.store, args.runtime_id.clone())?;
if context
.latest_bifrost_body_change_publication_intent
.arrival_latest_bifrost_body_change_publication_intent
.is_none()
|| context.eve_surface_states.len() != context.odin_advertisements.len()
|| context.daemon_statuses.len() != context.cluster_topology.len()
@ -2604,10 +2604,14 @@ fn run_cli() -> Result<()> {
.as_ref()
.is_some_and(|brake| brake.private_state_exposed)
|| context
.latest_bifrost_body_change_publication_receipt
.arrival_latest_bifrost_body_change_publication_receipt
.is_some()
|| context.latest_bifrost_github_publication_receipt.is_some()
|| context.latest_bifrost_collaboration_feedback.is_none()
|| context
.arrival_latest_bifrost_github_publication_receipt
.is_some()
|| context
.arrival_latest_bifrost_collaboration_feedback
.is_none()
|| context.latest_imagination_consensus_receipt.is_some()
|| context.latest_work_loop_summary.is_none()
|| context.latest_agent_state_soa_summary.is_none()
@ -2914,10 +2918,10 @@ fn run_cli() -> Result<()> {
"latestToolInvocationReceipt": context.latest_daemon_tool_invocation_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"latestDaemonPokeIntent": context.latest_daemon_poke_intent.as_ref().map(|intent| intent.intent_id.clone()),
"latestDaemonPokeReceipt": context.latest_daemon_poke_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"arrivalLatestBifrostPublicationIntent": context.latest_bifrost_body_change_publication_intent.as_ref().map(|intent| intent.intent_id.clone()),
"arrivalLatestBifrostPublicationReceipt": context.latest_bifrost_body_change_publication_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"arrivalLatestBifrostGithubReceipt": context.latest_bifrost_github_publication_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"arrivalLatestBifrostCollaborationFeedback": context.latest_bifrost_collaboration_feedback.as_ref().map(|feedback| feedback.feedback_id.clone()),
"arrivalLatestBifrostPublicationIntent": context.arrival_latest_bifrost_body_change_publication_intent.as_ref().map(|intent| intent.intent_id.clone()),
"arrivalLatestBifrostPublicationReceipt": context.arrival_latest_bifrost_body_change_publication_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"arrivalLatestBifrostGithubReceipt": context.arrival_latest_bifrost_github_publication_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"arrivalLatestBifrostCollaborationFeedback": context.arrival_latest_bifrost_collaboration_feedback.as_ref().map(|feedback| feedback.feedback_id.clone()),
"latestImaginationConsensusReceipt": context.latest_imagination_consensus_receipt.as_ref().map(|receipt| receipt.receipt_id.clone()),
"latestWorkLoopTelemetry": context.latest_work_loop_summary.as_ref().map(|summary| summary.telemetry_id.clone()),
"latestAgentStateSoaSummary": context.latest_agent_state_soa_summary.as_ref().map(|summary| summary.summary_id.clone()),
@ -6776,17 +6780,17 @@ fn receipt_directory_report(
owner: "Bifrost".to_string(),
document_kind: "gamecult.bifrost.github_publication_receipt.v0".to_string(),
latest_id: context
.latest_bifrost_github_publication_receipt
.arrival_latest_bifrost_github_publication_receipt
.as_ref()
.map(|receipt| receipt.receipt_id.clone())
.unwrap_or_else(|| "missing".to_string()),
status: context
.latest_bifrost_github_publication_receipt
.arrival_latest_bifrost_github_publication_receipt
.as_ref()
.map(|receipt| receipt.publication_status.clone())
.unwrap_or_else(|| "missing".to_string()),
route: context
.latest_bifrost_github_publication_receipt
.arrival_latest_bifrost_github_publication_receipt
.as_ref()
.map(|receipt| receipt.pull_request_url.clone())
.unwrap_or_else(|| "none".to_string()),
@ -6796,9 +6800,11 @@ fn receipt_directory_report(
artifact_ref: "none".to_string(),
artifact_status: "none".to_string(),
artifact_sha256: "none".to_string(),
present: context.latest_bifrost_github_publication_receipt.is_some(),
present: context
.arrival_latest_bifrost_github_publication_receipt
.is_some(),
private_state_exposed: context
.latest_bifrost_github_publication_receipt
.arrival_latest_bifrost_github_publication_receipt
.as_ref()
.map(|receipt| receipt.private_state_exposed)
.unwrap_or(false),
@ -6812,17 +6818,17 @@ fn receipt_directory_report(
owner: "Bifrost".to_string(),
document_kind: "gamecult.bifrost.public_proof_publication_receipt.v0".to_string(),
latest_id: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| receipt.receipt_id.clone())
.unwrap_or_else(|| "missing".to_string()),
status: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| receipt.status.clone())
.unwrap_or_else(|| "missing".to_string()),
route: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| receipt.publication_url.clone())
.unwrap_or_else(|| "none".to_string()),
@ -6830,12 +6836,12 @@ fn receipt_directory_report(
service_route: "none".to_string(),
follow_up_command: WRAPPER_BIFROST_LEDGER_COMMAND.to_string(),
artifact_ref: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| receipt.public_proof_ref.clone())
.unwrap_or_else(|| "none".to_string()),
artifact_status: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| {
if receipt.public_proof_ref == "none" {
@ -6846,15 +6852,15 @@ fn receipt_directory_report(
})
.unwrap_or_else(|| "none".to_string()),
artifact_sha256: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| receipt.public_proof_sha256.clone())
.unwrap_or_else(|| "none".to_string()),
present: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.is_some(),
private_state_exposed: context
.latest_bifrost_public_proof_publication_receipt
.arrival_latest_bifrost_public_proof_publication_receipt
.as_ref()
.map(|receipt| receipt.private_state_exposed)
.unwrap_or(false),

View file

@ -2426,15 +2426,15 @@ pub struct EpiphanyLocalVerseContext {
Option<EpiphanyCultMeshDaemonToolInvocationIntentEntry>,
pub latest_daemon_tool_invocation_receipt:
Option<EpiphanyCultMeshDaemonToolInvocationReceiptEntry>,
pub latest_bifrost_body_change_publication_intent:
pub arrival_latest_bifrost_body_change_publication_intent:
Option<EpiphanyCultMeshBifrostBodyChangePublicationIntentEntry>,
pub latest_bifrost_body_change_publication_receipt:
pub arrival_latest_bifrost_body_change_publication_receipt:
Option<EpiphanyCultMeshBifrostBodyChangePublicationReceiptEntry>,
pub latest_bifrost_github_publication_receipt:
pub arrival_latest_bifrost_github_publication_receipt:
Option<EpiphanyCultMeshBifrostGithubPublicationReceiptEntry>,
pub latest_bifrost_public_proof_publication_receipt:
pub arrival_latest_bifrost_public_proof_publication_receipt:
Option<EpiphanyCultMeshBifrostPublicProofPublicationReceiptEntry>,
pub latest_bifrost_collaboration_feedback:
pub arrival_latest_bifrost_collaboration_feedback:
Option<EpiphanyCultMeshBifrostCollaborationFeedbackEntry>,
pub latest_imagination_consensus_receipt:
Option<EpiphanyCultMeshImaginationConsensusReceiptEntry>,
@ -6098,15 +6098,15 @@ pub fn query_epiphany_local_verse_context(
.get(EPIPHANY_CULTMESH_DAEMON_TOOL_INVOCATION_INTENT_LATEST_KEY)?,
latest_daemon_tool_invocation_receipt: node
.get(EPIPHANY_CULTMESH_DAEMON_TOOL_INVOCATION_RECEIPT_LATEST_KEY)?,
latest_bifrost_body_change_publication_intent: node
arrival_latest_bifrost_body_change_publication_intent: node
.get(EPIPHANY_CULTMESH_BIFROST_BODY_CHANGE_PUBLICATION_INTENT_LATEST_KEY)?,
latest_bifrost_body_change_publication_receipt: node
arrival_latest_bifrost_body_change_publication_receipt: node
.get(EPIPHANY_CULTMESH_BIFROST_BODY_CHANGE_PUBLICATION_RECEIPT_LATEST_KEY)?,
latest_bifrost_github_publication_receipt: node
arrival_latest_bifrost_github_publication_receipt: node
.get(EPIPHANY_CULTMESH_BIFROST_GITHUB_PUBLICATION_RECEIPT_LATEST_KEY)?,
latest_bifrost_public_proof_publication_receipt: node
arrival_latest_bifrost_public_proof_publication_receipt: node
.get(EPIPHANY_CULTMESH_BIFROST_PUBLIC_PROOF_PUBLICATION_RECEIPT_LATEST_KEY)?,
latest_bifrost_collaboration_feedback: node
arrival_latest_bifrost_collaboration_feedback: node
.get(EPIPHANY_CULTMESH_BIFROST_COLLABORATION_FEEDBACK_LATEST_KEY)?,
latest_imagination_consensus_receipt: node
.get(EPIPHANY_CULTMESH_IMAGINATION_CONSENSUS_RECEIPT_LATEST_KEY)?,
@ -9883,7 +9883,7 @@ mod tests {
let context = query_epiphany_local_verse_context(&store, "epiphany-test")?;
assert_eq!(
context
.latest_bifrost_collaboration_feedback
.arrival_latest_bifrost_collaboration_feedback
.as_ref()
.map(|feedback| feedback.requested_consensus_route.as_str()),
Some("imagination.consensus_discovery")

View file

@ -208,7 +208,7 @@ pub fn render_epiphany_prompt_context(input: &EpiphanyPromptContextInput) -> Str
if let Some(intent) = input
.local_verse
.latest_bifrost_body_change_publication_intent
.arrival_latest_bifrost_body_change_publication_intent
.as_ref()
{
lines.push("## Bifrost Publication Gate".to_string());
@ -224,7 +224,7 @@ pub fn render_epiphany_prompt_context(input: &EpiphanyPromptContextInput) -> Str
));
if let Some(receipt) = input
.local_verse
.latest_bifrost_body_change_publication_receipt
.arrival_latest_bifrost_body_change_publication_receipt
.as_ref()
.filter(|receipt| receipt.intent_id == intent.intent_id)
{
@ -238,7 +238,7 @@ pub fn render_epiphany_prompt_context(input: &EpiphanyPromptContextInput) -> Str
));
if let Some(github) = input
.local_verse
.latest_bifrost_github_publication_receipt
.arrival_latest_bifrost_github_publication_receipt
.as_ref()
.filter(|github| github.bifrost_publication_receipt_id == receipt.receipt_id)
{
@ -664,7 +664,7 @@ mod tests {
.intent_id = "another-eve-intent".to_string();
prompt_input
.local_verse
.latest_bifrost_body_change_publication_receipt
.arrival_latest_bifrost_body_change_publication_receipt
.as_mut()
.expect("Bifrost receipt remains available for mismatch probe")
.intent_id = "another-bifrost-intent".to_string();

View file

@ -948,6 +948,12 @@ and JSON surface: provider-derived IDs use `arrival_latest_*` and
while locally ordered Imagination consensus retains its legitimate `latest`
name.
`EpiphanyCultMeshContext` now completes the correction: its five provider
mirror fields use `arrival_latest_bifrost_*`, and prompt-context plus Verse
consumers read those names directly. The only remaining Bifrost `LATEST_KEY`
identifiers describe persisted `/latest` compatibility keys, not chronology
claims in typed runtime state.
The same inspection found 33 consecutive duplicate `#[cfg(test)]` attributes
on provider constructors/writers and their re-exports. One gate already makes
each item test-only; the second owned nothing. The duplicates are removed.

View file

@ -292,6 +292,8 @@ persisted `/latest` key spelling is retained as external storage compatibility,
not interpreted as provider chronology.
The Bifrost ledger report also uses `arrival_latest_*` typed fields and
`arrivalLatestBifrost*` JSON keys; no old report aliases remain.
`EpiphanyCultMeshContext`, prompt assembly, and Verse consumers now also use
`arrival_latest_bifrost_*`; only persisted key constants retain `LATEST_KEY`.
The latest structural count is 32 closure family branches, 744 remaining
substring assertions in the closure region, and 1,284 lines in

Binary file not shown.

View file

@ -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 conceptual-substitution pass. Ten high-authority closure families, including publication and sync requests, are typed and guarded against regaining substring authority; sync has an explicit malicious push-grant fixture. The closure region still has 32 family branches and 667 substring assertions; closure contracts remain a parent-private lexical facade over external_governance and operations authority domains. External governance production anatomy is 668 lines and its counterfeit fixtures live in a dedicated private test include. Do not substitute a blind struct forest for coherent ownership. Provider chronology is explicitly external: Bifrost receipt contracts lack provider timestamp/revision, so Epiphany mirrors know only arrival order; all seven loader APIs, typed report fields, and JSON report keys now say arrival latest and no misleading aliases remain. Thirty-three duplicate test gates around provider writers/re-exports are removed while single test-only gates remain. Prioritize consequence-bearing request families and continue auditing evidence/security mirrors and adapters for borrowed authority.
next_action: Continue the conceptual-substitution pass. Ten high-authority closure families, including publication and sync requests, are typed and guarded against regaining substring authority; sync has an explicit malicious push-grant fixture. The closure region still has 32 family branches and 667 substring assertions; closure contracts remain a parent-private lexical facade over external_governance and operations authority domains. External governance production anatomy is 668 lines and its counterfeit fixtures live in a dedicated private test include. Do not substitute a blind struct forest for coherent ownership. Provider chronology is explicitly external: Bifrost receipt contracts lack provider timestamp/revision, so Epiphany mirrors know only arrival order; loader APIs, CultMesh context fields, prompt consumers, typed report fields, and JSON report keys now say arrival latest. Only persisted LATEST_KEY constants retain external storage vocabulary. Thirty-three duplicate test gates around provider writers/re-exports are removed while single test-only gates remain. Prioritize consequence-bearing request families and continue auditing evidence/security mirrors and adapters for borrowed authority.