Test-gate orphaned provider responses

This commit is contained in:
Meta Vens 2026-07-12 21:34:21 +01:00
commit bd72c5bbea
8 changed files with 81 additions and 182 deletions

View file

@ -39,16 +39,13 @@ use epiphany_core::default_epiphany_cultmesh_swarm_brake;
use epiphany_core::epiphany_cluster_service_execution_audit_report;
use epiphany_core::epiphany_cultmesh_agent_state_soa_summary_from_entry;
use epiphany_core::epiphany_cultmesh_bifrost_body_change_publication_intent;
use epiphany_core::epiphany_cultmesh_bifrost_body_change_publication_receipt_for_intent;
use epiphany_core::epiphany_cultmesh_bifrost_collaboration_feedback;
use epiphany_core::epiphany_cultmesh_bifrost_github_publication_receipt_for_publication;
use epiphany_core::epiphany_cultmesh_daemon_poke_intent_from_status;
use epiphany_core::epiphany_cultmesh_daemon_poke_receipt_for_intent;
use epiphany_core::epiphany_cultmesh_daemon_tool_invocation_intent_from_capability;
use epiphany_core::epiphany_cultmesh_daemon_tool_invocation_receipt_for_intent;
use epiphany_core::epiphany_cultmesh_eve_connection_intent_from_advertisement;
use epiphany_core::epiphany_cultmesh_eve_connection_receipt_for_intent;
use epiphany_core::epiphany_cultmesh_imagination_consensus_receipt_for_feedback;
use epiphany_core::epiphany_service_execution_audit_report;
use epiphany_core::load_agent_state_soa_entry;
use epiphany_core::load_epiphany_cultmesh_cluster_topology;
@ -92,9 +89,7 @@ use epiphany_core::query_epiphany_local_verse_context;
use epiphany_core::seed_epiphany_local_verse_context;
use epiphany_core::write_epiphany_cultmesh_agent_state_soa_summary;
use epiphany_core::write_epiphany_cultmesh_bifrost_body_change_publication_intent;
use epiphany_core::write_epiphany_cultmesh_bifrost_body_change_publication_receipt;
use epiphany_core::write_epiphany_cultmesh_bifrost_collaboration_feedback;
use epiphany_core::write_epiphany_cultmesh_bifrost_github_publication_receipt;
use epiphany_core::write_epiphany_cultmesh_daemon_poke_intent;
use epiphany_core::write_epiphany_cultmesh_daemon_poke_receipt;
use epiphany_core::write_epiphany_cultmesh_daemon_restart_policy;
@ -105,7 +100,6 @@ use epiphany_core::write_epiphany_cultmesh_daemon_tool_invocation_intent;
use epiphany_core::write_epiphany_cultmesh_daemon_tool_invocation_receipt;
use epiphany_core::write_epiphany_cultmesh_eve_connection_intent;
use epiphany_core::write_epiphany_cultmesh_eve_connection_receipt;
use epiphany_core::write_epiphany_cultmesh_imagination_consensus_receipt;
use epiphany_core::write_epiphany_cultmesh_swarm_brake;
use epiphany_core::write_epiphany_cultmesh_work_loop_telemetry;
use serde::Serialize;
@ -2414,38 +2408,6 @@ fn run_cli() -> Result<()> {
args.runtime_id.clone(),
bifrost_intent.clone(),
)?;
let bifrost_receipt =
epiphany_cultmesh_bifrost_body_change_publication_receipt_for_intent(
"bifrost-publication-receipt-smoke",
&bifrost_intent,
"accepted-for-github-publication",
"bifrost-ledger-smoke",
"github-publication-smoke",
vec!["credit-receipt-smoke".to_string()],
vec!["maintainer-review-smoke".to_string()],
"https://github.com/GameCult/EpiphanyAgent/pull/smoke",
);
write_epiphany_cultmesh_bifrost_body_change_publication_receipt(
&args.store,
args.runtime_id.clone(),
bifrost_receipt.clone(),
)?;
let github_receipt =
epiphany_cultmesh_bifrost_github_publication_receipt_for_publication(
"github-publication-smoke",
&bifrost_receipt,
"hands-pr-smoke",
"E:/Projects/EpiphanyAgent",
"codex/perfect-machine-cultmesh",
"smoke",
"dry-run-no-commit",
"epiphany.Hands",
);
write_epiphany_cultmesh_bifrost_github_publication_receipt(
&args.store,
args.runtime_id.clone(),
github_receipt,
)?;
let feedback = epiphany_cultmesh_bifrost_collaboration_feedback(
"collaboration-feedback-smoke",
"epiphany.Persona",
@ -2463,38 +2425,7 @@ fn run_cli() -> Result<()> {
write_epiphany_cultmesh_bifrost_collaboration_feedback(
&args.store,
args.runtime_id.clone(),
feedback.clone(),
)?;
let consensus = epiphany_cultmesh_imagination_consensus_receipt_for_feedback(
"imagination-consensus-smoke",
&feedback,
"queued-for-consensus-discovery",
vec!["epiphany.Imagination".to_string()],
"gamecult-local/imagination/consensus-packets/smoke",
);
let collaboration_tui_rows = collaboration_feedback_tui_rows(&feedback, &consensus);
if !collaboration_tui_rows.iter().any(|row| {
row.contains("collaboration-feedback")
&& row.contains("owner=Persona->Imagination")
&& row.contains(
"public=https://gamecult.org/Blog/purge-the-heretek-from-our-daemonic-swarm",
)
&& row.contains("candidates=candidate-action:open-collaboration-thread")
&& row.contains("private=false")
}) || !collaboration_tui_rows.iter().any(|row| {
row.contains("imagination-consensus")
&& row.contains("owner=Imagination")
&& row.contains("adoptionGate=mind.review_then_bifrost_adoption")
&& row.contains("private=false")
}) {
anyhow::bail!(
"local Verse query smoke lost compact collaboration feedback routing rows"
);
}
write_epiphany_cultmesh_imagination_consensus_receipt(
&args.store,
args.runtime_id.clone(),
consensus,
feedback,
)?;
if !WRAPPER_COLLABORATION_FEEDBACK_COMMAND.contains("-Mode collaboration-feedback")
|| !WRAPPER_BIFROST_PUBLICATION_COMMAND.contains("-Mode bifrost-publication")
@ -2507,72 +2438,18 @@ fn run_cli() -> Result<()> {
);
}
let bifrost_ledger_report = load_bifrost_ledger_report(&args)?;
if bifrost_ledger_report.status != "ok"
|| bifrost_ledger_report.publication_chain_count != 3
|| bifrost_ledger_report.collaboration_chain_count != 2
|| bifrost_ledger_report.accounting_rows.len() != 6
|| bifrost_ledger_report.closed_accounting_row_count != 2
|| bifrost_ledger_report.attention_accounting_row_count != 0
|| bifrost_ledger_report.repo_work_accounting_request_count != 0
|| bifrost_ledger_report.rows.len() != 5
if bifrost_ledger_report.latest_publication_intent_id.is_none()
|| bifrost_ledger_report
.latest_publication_receipt_id
.is_some()
|| bifrost_ledger_report.latest_github_receipt_id.is_some()
|| bifrost_ledger_report.latest_feedback_id.is_none()
|| bifrost_ledger_report.latest_consensus_receipt_id.is_some()
|| bifrost_ledger_report.private_state_exposed
|| !bifrost_ledger_report.tui_rows.iter().any(|row| {
row.contains("github-publication-receipt")
&& row.contains("owner=Bifrost/GitHub")
&& row.contains(
"public=https://github.com/GameCult/EpiphanyAgent/pull/smoke",
)
&& row.contains("private=false")
})
|| !bifrost_ledger_report.tui_rows.iter().any(|row| {
row.contains("imagination-consensus-receipt")
&& row.contains("owner=Imagination")
&& row.contains(
"public=https://gamecult.org/Blog/purge-the-heretek-from-our-daemonic-swarm",
)
&& row.contains("private=false")
})
|| !bifrost_ledger_report.accounting_tui_rows.iter().any(|row| {
row.contains("BIFROST-ACCOUNTING | body-change-publication")
&& row.contains("status=closed")
&& row.contains("intent=present publication=present github=present")
&& row.contains("review=1")
&& row.contains("credit=1")
&& row.contains("private=false")
})
|| !bifrost_ledger_report.accounting_tui_rows.iter().any(|row| {
row.contains("BIFROST-ACCOUNTING | public-proof-publication")
&& row.contains("status=missing")
&& row.contains("proof=missing")
&& row.contains("private=false")
})
|| !bifrost_ledger_report.accounting_tui_rows.iter().any(|row| {
row.contains("BIFROST-ACCOUNTING | repo-work-readiness-review")
&& row.contains("status=missing")
&& row.contains("review=0")
&& row.contains("approval=missing")
&& row.contains("private=false")
})
|| !bifrost_ledger_report.accounting_tui_rows.iter().any(|row| {
row.contains("BIFROST-ACCOUNTING | artifact-acceptance-request")
&& row.contains("status=missing")
&& row.contains("request=missing")
&& row.contains("private=false")
})
|| !bifrost_ledger_report.accounting_tui_rows.iter().any(|row| {
row.contains("BIFROST-ACCOUNTING | metrics-request")
&& row.contains("status=missing")
&& row.contains("request=missing")
&& row.contains("private=false")
})
|| !bifrost_ledger_report.accounting_tui_rows.iter().any(|row| {
row.contains("BIFROST-ACCOUNTING | collaboration-consensus")
&& row.contains("status=closed")
&& row.contains("feedback=present consensus=present")
&& row.contains("private=false")
})
{
anyhow::bail!("local Verse query smoke lost compact Bifrost ledger readback");
anyhow::bail!(
"local Verse query smoke must preserve pending requester state without manufacturing Bifrost, GitHub, or Imagination responses"
);
}
write_epiphany_cultmesh_work_loop_telemetry(
&args.store,
@ -2694,15 +2571,15 @@ fn run_cli() -> Result<()> {
.is_some_and(|brake| brake.private_state_exposed)
|| context
.latest_bifrost_body_change_publication_receipt
.is_none()
|| context.latest_bifrost_github_publication_receipt.is_none()
.is_some()
|| context.latest_bifrost_github_publication_receipt.is_some()
|| context.latest_bifrost_collaboration_feedback.is_none()
|| context.latest_imagination_consensus_receipt.is_none()
|| context.latest_imagination_consensus_receipt.is_some()
|| context.latest_work_loop_summary.is_none()
|| context.latest_agent_state_soa_summary.is_none()
{
anyhow::bail!(
"local Verse query smoke lost daemon statuses, Eve surfaces, Bifrost publication, collaboration feedback, work-loop receipts, or agent state SoA summary"
"local Verse query smoke lost requester state, manufactured provider responses, or lost work-loop/agent-state summaries"
);
}
let agent_summary = context
@ -2764,10 +2641,8 @@ fn run_cli() -> Result<()> {
args.runtime_id.clone(),
)?;
let receipt_directory = receipt_directory_report(&context, &lifecycle_receipts, None);
if receipt_directory.status != "ok"
|| receipt_directory.private_state_exposed
if receipt_directory.private_state_exposed
|| !receipt_directory.attention_route_rows.is_empty()
|| receipt_directory.ready_row_count < 7
|| receipt_directory.artifact_none_count != receipt_directory.rows.len()
|| receipt_directory.artifact_external_ref_count != 0
|| receipt_directory.artifact_present_count != 0
@ -2779,13 +2654,13 @@ fn run_cli() -> Result<()> {
})
|| !receipt_directory.rows.iter().any(|row| {
row.family == "bifrost-publication"
&& row.latest_id == "github-publication-smoke"
&& !row.present
&& row.follow_up_command == WRAPPER_BIFROST_LEDGER_COMMAND
})
|| !receipt_directory.rows.iter().any(|row| {
row.family == "imagination-consensus"
&& row.latest_id == "imagination-consensus-smoke"
})
|| !receipt_directory
.rows
.iter()
.any(|row| row.family == "imagination-consensus" && !row.present)
|| !receipt_directory.rows.iter().any(|row| {
row.family == "work-loop" && row.latest_id == "work-loop-telemetry-smoke"
})
@ -9358,41 +9233,6 @@ fn present_word(present: bool) -> &'static str {
if present { "present" } else { "missing" }
}
fn collaboration_feedback_tui_rows(
feedback: &EpiphanyCultMeshBifrostCollaborationFeedbackEntry,
consensus: &EpiphanyCultMeshImaginationConsensusReceiptEntry,
) -> Vec<String> {
let public_refs = compact_tui_list(&feedback.public_discussion_refs);
let candidate_refs = compact_tui_list(&feedback.candidate_action_refs);
let private_feedback = if feedback.private_state_included {
"private=true"
} else {
"private=false"
};
let private_consensus = if consensus.private_state_exposed {
"private=true"
} else {
"private=false"
};
vec![
format!(
"OK | collaboration-feedback | owner=Persona->Imagination | {} | topic={} | public={} | candidates={} | route={} | {private_feedback}",
feedback.feedback_id,
feedback.collaboration_topic,
public_refs,
candidate_refs,
feedback.requested_consensus_route
),
format!(
"OK | imagination-consensus | owner=Imagination | {} | packet={} | adoptionGate={} | public={} | {private_consensus}",
consensus.receipt_id,
consensus.consensus_packet_ref,
consensus.adoption_gate,
compact_tui_list(&consensus.public_feedback_refs)
),
]
}
fn compact_tui_list(values: &[String]) -> String {
if values.is_empty() {
"none".to_string()

View file

@ -4408,6 +4408,7 @@ pub fn epiphany_cultmesh_bifrost_body_change_publication_intent(
}
}
#[cfg(test)]
pub fn epiphany_cultmesh_bifrost_body_change_publication_receipt_for_intent(
receipt_id: impl Into<String>,
intent: &EpiphanyCultMeshBifrostBodyChangePublicationIntentEntry,
@ -4456,6 +4457,7 @@ pub fn write_epiphany_cultmesh_bifrost_body_change_publication_intent(
Ok(written)
}
#[cfg(test)]
pub fn write_epiphany_cultmesh_bifrost_body_change_publication_receipt(
store_path: impl AsRef<Path>,
runtime_id: impl Into<String>,
@ -4491,6 +4493,7 @@ pub fn load_latest_epiphany_cultmesh_bifrost_body_change_publication_receipt(
}
#[allow(clippy::too_many_arguments)]
#[cfg(test)]
pub fn epiphany_cultmesh_bifrost_github_publication_receipt_for_publication(
receipt_id: impl Into<String>,
publication_receipt: &EpiphanyCultMeshBifrostBodyChangePublicationReceiptEntry,
@ -4526,6 +4529,7 @@ pub fn epiphany_cultmesh_bifrost_github_publication_receipt_for_publication(
}
}
#[cfg(test)]
pub fn write_epiphany_cultmesh_bifrost_github_publication_receipt(
store_path: impl AsRef<Path>,
runtime_id: impl Into<String>,
@ -4552,6 +4556,7 @@ pub fn load_latest_epiphany_cultmesh_bifrost_github_publication_receipt(
}
#[allow(clippy::too_many_arguments)]
#[cfg(test)]
pub fn epiphany_cultmesh_bifrost_public_proof_publication_receipt_for_proof(
receipt_id: impl Into<String>,
proof: &EpiphanyCultMeshRepoWorkPublicProofEntry,
@ -4589,6 +4594,7 @@ pub fn epiphany_cultmesh_bifrost_public_proof_publication_receipt_for_proof(
}
}
#[cfg(test)]
pub fn write_epiphany_cultmesh_bifrost_public_proof_publication_receipt(
store_path: impl AsRef<Path>,
runtime_id: impl Into<String>,
@ -4616,6 +4622,7 @@ pub fn load_latest_epiphany_cultmesh_bifrost_public_proof_publication_receipt(
}
#[allow(clippy::too_many_arguments)]
#[cfg(test)]
pub fn epiphany_cultmesh_bifrost_artifact_acceptance_receipt_for_map_entry(
receipt_id: impl Into<String>,
map_entry: &EpiphanyCultMeshRepoWorkMapEntry,
@ -4650,6 +4657,7 @@ pub fn epiphany_cultmesh_bifrost_artifact_acceptance_receipt_for_map_entry(
}
}
#[cfg(test)]
pub fn write_epiphany_cultmesh_bifrost_artifact_acceptance_receipt(
store_path: impl AsRef<Path>,
runtime_id: impl Into<String>,
@ -4677,6 +4685,7 @@ pub fn load_latest_epiphany_cultmesh_bifrost_artifact_acceptance_receipt(
}
#[allow(clippy::too_many_arguments)]
#[cfg(test)]
pub fn epiphany_cultmesh_bifrost_metrics_receipt_for_map_entry(
receipt_id: impl Into<String>,
map_entry: &EpiphanyCultMeshRepoWorkMapEntry,
@ -4710,6 +4719,7 @@ pub fn epiphany_cultmesh_bifrost_metrics_receipt_for_map_entry(
}
}
#[cfg(test)]
pub fn write_epiphany_cultmesh_bifrost_metrics_receipt(
store_path: impl AsRef<Path>,
runtime_id: impl Into<String>,
@ -4768,6 +4778,7 @@ pub fn epiphany_cultmesh_bifrost_collaboration_feedback(
}
}
#[cfg(test)]
pub fn epiphany_cultmesh_imagination_consensus_receipt_for_feedback(
receipt_id: impl Into<String>,
feedback: &EpiphanyCultMeshBifrostCollaborationFeedbackEntry,
@ -4812,6 +4823,7 @@ pub fn write_epiphany_cultmesh_bifrost_collaboration_feedback(
Ok(written)
}
#[cfg(test)]
pub fn write_epiphany_cultmesh_imagination_consensus_receipt(
store_path: impl AsRef<Path>,
runtime_id: impl Into<String>,
@ -4891,6 +4903,7 @@ fn validate_bifrost_body_change_publication_intent(
Ok(())
}
#[cfg(test)]
fn validate_bifrost_body_change_publication_receipt(
receipt: &EpiphanyCultMeshBifrostBodyChangePublicationReceiptEntry,
) -> Result<()> {
@ -4917,6 +4930,7 @@ fn validate_bifrost_body_change_publication_receipt(
Ok(())
}
#[cfg(test)]
fn validate_bifrost_github_publication_receipt(
receipt: &EpiphanyCultMeshBifrostGithubPublicationReceiptEntry,
) -> Result<()> {
@ -4958,6 +4972,7 @@ fn validate_bifrost_github_publication_receipt(
Ok(())
}
#[cfg(test)]
fn validate_bifrost_public_proof_publication_receipt(
receipt: &EpiphanyCultMeshBifrostPublicProofPublicationReceiptEntry,
) -> Result<()> {
@ -5010,6 +5025,7 @@ fn validate_bifrost_public_proof_publication_receipt(
Ok(())
}
#[cfg(test)]
fn validate_bifrost_artifact_acceptance_receipt(
receipt: &EpiphanyCultMeshBifrostArtifactAcceptanceReceiptEntry,
) -> Result<()> {
@ -5069,6 +5085,7 @@ fn validate_bifrost_artifact_acceptance_receipt(
Ok(())
}
#[cfg(test)]
fn validate_bifrost_metrics_receipt(
receipt: &EpiphanyCultMeshBifrostMetricsReceiptEntry,
) -> Result<()> {
@ -5155,6 +5172,7 @@ fn validate_bifrost_collaboration_feedback(
Ok(())
}
#[cfg(test)]
fn validate_imagination_consensus_receipt(
receipt: &EpiphanyCultMeshImaginationConsensusReceiptEntry,
) -> Result<()> {
@ -6304,22 +6322,27 @@ fn epiphany_cultmesh_bifrost_body_change_publication_intent_key(intent_id: &str)
format!("gamecult-local/bifrost/body-change-publication-intent/{intent_id}")
}
#[cfg(test)]
fn epiphany_cultmesh_bifrost_body_change_publication_receipt_key(receipt_id: &str) -> String {
format!("gamecult-local/bifrost/body-change-publication-receipt/{receipt_id}")
}
#[cfg(test)]
fn epiphany_cultmesh_bifrost_github_publication_receipt_key(receipt_id: &str) -> String {
format!("gamecult-local/bifrost/github-publication-receipt/{receipt_id}")
}
#[cfg(test)]
fn epiphany_cultmesh_bifrost_public_proof_publication_receipt_key(receipt_id: &str) -> String {
format!("gamecult-local/bifrost/public-proof-publication-receipt/{receipt_id}")
}
#[cfg(test)]
fn epiphany_cultmesh_bifrost_artifact_acceptance_receipt_key(receipt_id: &str) -> String {
format!("gamecult-local/bifrost/artifact-acceptance-receipt/{receipt_id}")
}
#[cfg(test)]
fn epiphany_cultmesh_bifrost_metrics_receipt_key(receipt_id: &str) -> String {
format!("gamecult-local/bifrost/metrics-receipt/{receipt_id}")
}
@ -6328,6 +6351,7 @@ fn epiphany_cultmesh_bifrost_collaboration_feedback_key(feedback_id: &str) -> St
format!("gamecult-local/bifrost/collaboration-feedback/{feedback_id}")
}
#[cfg(test)]
fn epiphany_cultmesh_imagination_consensus_receipt_key(receipt_id: &str) -> String {
format!("gamecult-local/imagination/consensus-discovery-receipt/{receipt_id}")
}

View file

@ -374,13 +374,18 @@ pub use cultmesh_integration::default_epiphany_cultmesh_operator_status;
pub use cultmesh_integration::default_epiphany_cultmesh_swarm_brake;
pub use cultmesh_integration::epiphany_cluster_service_execution_audit_report;
pub use cultmesh_integration::epiphany_cultmesh_agent_state_soa_summary_from_entry;
#[cfg(test)]
pub use cultmesh_integration::epiphany_cultmesh_bifrost_artifact_acceptance_receipt_for_map_entry;
pub use cultmesh_integration::epiphany_cultmesh_bifrost_body_change_publication_intent;
#[cfg(test)]
pub use cultmesh_integration::epiphany_cultmesh_bifrost_body_change_publication_receipt_for_intent;
pub use cultmesh_integration::epiphany_cultmesh_bifrost_collaboration_feedback;
pub use cultmesh_integration::epiphany_cultmesh_bifrost_contracts;
#[cfg(test)]
pub use cultmesh_integration::epiphany_cultmesh_bifrost_github_publication_receipt_for_publication;
#[cfg(test)]
pub use cultmesh_integration::epiphany_cultmesh_bifrost_metrics_receipt_for_map_entry;
#[cfg(test)]
pub use cultmesh_integration::epiphany_cultmesh_bifrost_public_proof_publication_receipt_for_proof;
pub use cultmesh_integration::epiphany_cultmesh_continuity_contracts;
pub use cultmesh_integration::epiphany_cultmesh_coordinator_run_receipt_from_summary_json;
@ -399,6 +404,7 @@ pub use cultmesh_integration::epiphany_cultmesh_eyes_contracts;
pub use cultmesh_integration::epiphany_cultmesh_global_room_policies;
pub use cultmesh_integration::epiphany_cultmesh_hands_action_gate_from_summary_json;
pub use cultmesh_integration::epiphany_cultmesh_hands_contracts;
#[cfg(test)]
pub use cultmesh_integration::epiphany_cultmesh_imagination_consensus_receipt_for_feedback;
pub use cultmesh_integration::epiphany_cultmesh_mind_contracts;
pub use cultmesh_integration::epiphany_cultmesh_operator_snapshot_from_status_json;
@ -466,13 +472,18 @@ pub use cultmesh_integration::publish_epiphany_cultmesh_provider_state;
pub use cultmesh_integration::query_epiphany_local_verse_context;
pub use cultmesh_integration::seed_epiphany_local_verse_context;
pub use cultmesh_integration::write_epiphany_cultmesh_agent_state_soa_summary;
#[cfg(test)]
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_artifact_acceptance_receipt;
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_body_change_publication_intent;
#[cfg(test)]
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_body_change_publication_receipt;
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_collaboration_feedback;
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_contracts;
#[cfg(test)]
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_github_publication_receipt;
#[cfg(test)]
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_metrics_receipt;
#[cfg(test)]
pub use cultmesh_integration::write_epiphany_cultmesh_bifrost_public_proof_publication_receipt;
pub use cultmesh_integration::write_epiphany_cultmesh_continuity_contracts;
pub use cultmesh_integration::write_epiphany_cultmesh_coordinator_run_receipt;
@ -493,6 +504,7 @@ pub use cultmesh_integration::write_epiphany_cultmesh_hands_action_gate;
pub use cultmesh_integration::write_epiphany_cultmesh_hands_contracts;
pub use cultmesh_integration::write_epiphany_cultmesh_idunn_aftercare_audit_receipt;
pub use cultmesh_integration::write_epiphany_cultmesh_idunn_deployment_receipt;
#[cfg(test)]
pub use cultmesh_integration::write_epiphany_cultmesh_imagination_consensus_receipt;
pub use cultmesh_integration::write_epiphany_cultmesh_managed_service_policy;
pub use cultmesh_integration::write_epiphany_cultmesh_mind_contracts;

View file

@ -110,6 +110,10 @@
topology. Rendering a worker prompt cannot initialize shared state. Its
standalone smoke accepts no path arguments and writes only beneath
`.epiphany-smoke`.
- Bifrost publication/GitHub/public-proof/artifact/metrics response constructors
and Imagination consensus response construction are test-only. Production
retains typed schemas and readers for provider-authored ingest, but no local
shipped binary owns or writes those response documents.
- Store/runtime overrides fail before fixture seeding or receipt construction.
- Negative proof: targeting `state/local-verse.ccmp` was rejected and its SHA-256 did not change.
- Positive proof: the built-in quarantined smoke completes successfully and reports its quarantine coordinates.

View file

@ -33,6 +33,9 @@ The confirmed conceptual substitutions have been cut:
- worker launch-context rendering requires the existing Verse and cannot seed
it. The prompt-context smoke accepts no destination and is fixed beneath
`.epiphany-smoke`.
- orphaned Bifrost/GitHub/Maintainer response and Imagination consensus
constructors/writers are test-only. The aggregate smoke proves requests stay
pending; production keeps readers for externally provider-authored documents.
The presentation boundary is now plain: `swarm overview` is a generic compact read-only projection. Gjallar is a downstream TUI application on Nightwing and is not an Epiphany organ, provider, owner, runtime, or architectural dependency. Eve/CultUI graphs may be lowered or composited downstream without Epiphany caring which presentation client does it.

View file

@ -40,3 +40,19 @@ Negative proof passed both directions: a plan command given hostile `--execute-i
## Standalone receipt-smoke quarantine update
The two standalone smoke binaries found writing canonical receipt schemas no longer accept receipt-store destinations. `epiphany-repo-deployment-config-family-smoke` accepts only `--root` and derives its entire disposable repo/Verse body under `<root>/.epiphany-smoke`; `--smoke-root` is rejected. `epiphany-weksa-interlingua-smoke` accepts no arguments and writes only `.epiphany-smoke/weksa-interlingua/local-verse.ccmp`. Attempts to redirect either at live state fail before fixture construction.
## Orphaned provider response API quarantine
The aggregate `epiphany-verse-query smoke` was the only shipped caller of local
Bifrost publication/GitHub response constructors and Imagination consensus
response construction. It fabricated closed provider chains so its own ledger
projection could report success. Public-proof, artifact-acceptance, and metrics
response writers had no shipped callers but remained publicly exported.
The aggregate smoke now proves the opposite invariant: requester intent and
Persona feedback are present while Bifrost publication, GitHub publication,
and Imagination consensus responses remain absent. All six orphaned response
constructors, six writers, their validators, and event-key helpers are compiled
only under `cfg(test)`. Typed response schemas and read loaders remain in
production for ingesting documents authored by external owning providers; no
shipped Epiphany binary can construct or persist those responses.

Binary file not shown.

View file

@ -70,7 +70,7 @@ data_flow:
- move historical proof to git, commits, smoke artifacts, or distilled evidence rather than plan prose
active_subgoals:
- Use `notes/conceptual-substitution-audit-2026-07-12.md` plus `notes/receipt-writer-provenance-audit-2026-07-12.md` as the current authority-corrosion maps. Snapshot promotion, synthetic smoke escape, unbound operator completion, hidden service execution flags, provider/bootstrap collapse, the central topology-derived Odin publisher, all-provider writers, cluster-daemon bootstrap, daemon-supervisor production bootstrap, requester/operator query bootstrap, and launch-context bootstrap are cut. Only explicit seed commands and named path-confined fixtures initialize; providers, Idunn, requesters, diagnostics, and worker-launch assembly require the existing shared body. Next remove or test-gate dead public receipt constructors where provider binaries are absent and audit remaining projections, caches, schedulers, adapters, and non-receipt smokes for borrowed authority or path escape.
- Use `notes/conceptual-substitution-audit-2026-07-12.md` plus `notes/receipt-writer-provenance-audit-2026-07-12.md` as the current authority-corrosion maps. Snapshot promotion, synthetic smoke escape, unbound operator completion, hidden service execution flags, provider/bootstrap collapse, central/all-provider publication, production-side implicit bootstrap, and orphaned Bifrost/GitHub/Maintainer/Imagination response authority are cut. Only explicit seed commands and named path-confined fixtures initialize; provider response constructors/writers without local owning bodies are test-only while production retains typed readers for external ingest. Next audit remaining projections, caches, schedulers, adapters, and non-receipt smokes for borrowed authority or path escape.
- `swarm-overview` is an Epiphany-local, renderer-neutral diagnostic projection over provider-owned typed state. It owns no lifecycle, discovery, composition, or mutation authority. Epiphany publishes clean provider-owned Eve surfaces; Odin may discover them; downstream lowerers and compositors remain outside Epiphany's concern.
- Idunn owns daemon survival and service lifecycle physiology. Codex/operator sessions may inspect, generate runbooks, and route explicit operator authority, but keeping daemons alive belongs to Idunn-owned service lifecycle receipts, scheduler policy, audits, and aftercare. Do not let Self, diagnostic projections, or ad hoc wrapper summaries become a second daemon-keeper. Global tool readbacks for Self `service-health`, `service-policy-directory`, and `swarm-online-runbook` state `lifecycleOwner=Idunn` and `hostedBody=Epiphany` without service mutation or private-state exposure.
- Use `notes/epiphany-cultmesh-dreaming-roadmap.md` as the design authority for distributed Epiphany dreaming. Public dreams are separately authored typed documents distributed through CultMesh/CultNet; private state remains local and cannot be shared by flipping a visibility flag. Foreign dreams are external thought weather until a reviewed local adoption receipt digests them into memory, planning, doctrine, or governance.