Bind Hands intent to adopted frontier plan

This commit is contained in:
Meta Vens 2026-08-07 18:49:43 +01:00
commit 17d4ae47ca
4 changed files with 91 additions and 59 deletions

View file

@ -1178,9 +1178,21 @@ fn record_hands_implementation_gate(
requested_at: requested_at.clone(),
contract: "Coordinator continuation becomes a typed Hands action intent before any file edit, command, or commit may count as implementation evidence."
.to_string(),
frontier_route_id: String::new(),
plan_candidate_sha256: String::new(),
plan_action: String::new(),
frontier_route_id: route
.adopted_plan
.as_ref()
.map(|_| route.route_id.clone())
.unwrap_or_default(),
plan_candidate_sha256: route
.adopted_plan
.as_ref()
.map(|plan| plan.candidate_sha256.clone())
.unwrap_or_default(),
plan_action: route
.adopted_plan
.as_ref()
.map(|plan| plan.action.clone())
.unwrap_or_default(),
};
put_hands_action_intent(runtime_store, &intent)?;
@ -2346,6 +2358,12 @@ mod tests {
assert_eq!(grant.receipt_id, intent.substrate_gate_grant_receipt_id);
assert_eq!(intent.intent_id, review.intent_id);
assert_eq!(intent.requested_action, "continueImplementation");
assert_eq!(
Some(intent.frontier_route_id.as_str()),
gate["routeId"].as_str()
);
assert_eq!(intent.plan_candidate_sha256, "coordinator-plan-hash-test");
assert_eq!(intent.plan_action, "Implement the bounded coordinator gate test.");
assert_eq!(
gate.pointer("/recordPassCommand/executable")
.and_then(serde_json::Value::as_str),
@ -2363,7 +2381,7 @@ mod tests {
}
fn seed_hands_frontier(store: &Path) -> Result<()> {
let item = epiphany_core::RepoFrontierItem {
let mut item = epiphany_core::RepoFrontierItem {
id: "coordinator-hands-frontier-test".to_string(),
migration_body: "Exercise the coordinator-owned Hands gate.".to_string(),
question: "Does Self route the admitted implementation frontier?".to_string(),
@ -2375,6 +2393,20 @@ mod tests {
status: epiphany_core::RepoFrontierStatus::Active,
..Default::default()
};
item.adopted_plan = Some(epiphany_core::RepoFrontierAdoptedPlan {
planning_request_id: "coordinator-planning-request-test".to_string(),
result_id: "coordinator-imagination-result-test".to_string(),
job_id: "coordinator-imagination-job-test".to_string(),
candidate_id: "coordinator-plan-candidate-test".to_string(),
candidate_sha256: "coordinator-plan-hash-test".to_string(),
safe_paths: item.source_scope.clone(),
action: "Implement the bounded coordinator gate test.".to_string(),
command: "cargo test --bin epiphany-mvp-coordinator".to_string(),
checks: vec!["focused coordinator test passes".to_string()],
stop_conditions: vec!["authority scope changes".to_string()],
rollback_steps: vec!["revert the bounded change".to_string()],
commit_message: "Bind Hands intent to adopted plan".to_string(),
});
let mut model = epiphany_core::EpiphanyMemoryGraphSnapshot {
schema_version: Some(epiphany_core::MEMORY_GRAPH_SCHEMA_VERSION.to_string()),
graph_id: "mvp-coordinator-test-model".to_string(),

View file

@ -1,55 +1,55 @@
# Fresh Workspace Handoff
## Current authority — 2026-08-07 canonical-organ cut
## Current authority — 2026-08-07 Hands binding cut
The active branch is `codex/epiphany-shakedown-live`. Exact pushed commit
`872d8ad6188fdfe8afcf5d4e9dd65a791fa444f2` is authenticated and published as
`sha256-b97f457cfde1eea2b45464b3ca12e7cdba4cb13d4c1b261b20267e960e1a326e`
`4338b0331a374802c649aa2a647a9c39f9a9f92d` is authenticated and published as
`sha256-1023d71c625706694cc67e034172b9f33ea331594924c5e7b786d0818f077a21`
with witness
`sha256-40d6bda4d82a2da67614722a52810078abc37d2d5bfe60330b479fa611f726ab`.
The exact package contains 21 binaries and exposes no private state.
`sha256-0d351a7001c01a46b46207a9364e6221325d3811cd2cccfd72786430115282be`.
The package contains 21 binaries and exposes no private state.
Fresh v25 lives at
`F:\Projects\.epiphany-runtime\shakedown\live-20260807-v25`. It was cold-started
from the packaged repository-body tool at Git head `872d8ad6`; only canonical
`agents.cc` crossed from v24. Its repository Body is generation 1, its local
Verse was seeded fresh, and the exact release was published into that Verse.
Fresh v26 lives at
`F:\Projects\.epiphany-runtime\shakedown\live-20260807-v26`. It was cold-started
from the packaged repository-body tool at Git head `4338b033`; only canonical
`agents.cc` crossed from v25. The exact release was published into its fresh
local Verse.
Proposal `shakedown-v25-continuity-imagination-r1` selected request
`repo-frontier-proposal-modeling-e5e04c43b3d255baa8ba2f3778e2865b8aec275d8249dca0dfa3ace034b6d80c`.
Packaged Self derived `launchModeling` without overrides. Modeling job
`5af5100d-e097-4928-9bd3-2ba60a2fbbb3` completed, and Mind accepted its active
frontier with canonical sorted unique source scope at thread revision 3.
Proposal `shakedown-v26-continuity-imagination-r1` was selected without a
routing override. Packaged Self derived `launchModeling`; job
`6683204c-d2d5-46f2-a518-c355268afcf1` completed and was accepted. Its exact
canonical Imagination frontier became eligible, Self launched Imagination job
`b2c01a84-b006-4483-afd1-1dc4af4cebf1`, and dedicated Mind job
`7daa2630-0ea2-4adf-b17a-24f0c3c7037e` returned `adopt`.
The worker emitted `recommended_next_organ=imagination` in lowercase. Proposal
admission accepted the arbitrary non-empty string, while Self's planning
selector owns the exact canonical identity `Imagination`. Typed eligibility
therefore reported admission count one but zero candidates, and Self returned
`awaitFrontierProposal`. v25 is insert-only evidence; do not mutate or replay it.
The decision commit admitted the plan and selected the resulting Hands route.
The next gate failed with `repo frontier Hands authority chain violates its full
authority contract`. The validator is correct: `record_hands_implementation_gate`
persisted empty `frontier_route_id`, `plan_candidate_sha256`, and `plan_action`
even though the selected route carried an adopted plan. v26 is failure evidence;
do not mutate or replay it.
The local cut now makes proposal admission accept only exact routeable organ
identities `Hands`, `Eyes`, or `Imagination`. Modeling prompt and launch context
state that exact vocabulary. Planning eligibility exposes
`recommendedNextOrganValid` and includes case-mismatched Imagination-shaped
legacy documents as ineligible diagnostics; it does not case-fold them into
authority. Focused hostile-admission, challenge/eligibility, canonical launch
context, and MVP status tests pass.
The local cut derives those three intent fields from the selected route's
adopted plan. The existing no-plan path remains empty by derivation. The focused
regression test now seeds an adopted plan and proves persisted intent identity;
all 14 coordinator binary tests pass.
## Next action
Commit and push the canonical-organ cut, then package and publish that exact
commit. Cold-start v26. Prove the complete native path without overrides:
Commit and push the Hands binding cut, then package and publish that exact
commit. Preserve v26 and cold-start a clean generation. Replay the native path
without overrides and prove:
1. Self derives proposal-bound Modeling.
2. Mind admits one active frontier with sorted source scope and exact
`recommended_next_organ=Imagination`.
3. Self selects and launches Imagination.
4. Imagination emits one typed plan.
5. Dedicated Mind accepts, holds, or refuses it through the typed lifecycle.
6. Inspect the next typed action rather than assuming Hands authority.
1. Self derives proposal-bound Modeling and canonical Imagination.
2. Dedicated Mind adopts the typed candidate.
3. Hands intent exactly echoes route id, candidate digest, and plan action.
4. RepoFrontierHandsAuthority binds route, model, plan, intent, review, grant,
and sorted scope.
5. Execute the bounded Continuity crash/restart/closure proof and capture Soul
evidence rather than treating the gate as completion.
After that proof, continue the actual readiness campaign. Persona public
consequence, Continuity crash/restart/closure, retention bounds, long-duration
resource behavior, and Linux/Yggdrasil cognition remain open. Yggdrasil is the
small canonical public crossing Body; Starfire remains the temporary cognition
and release forge until measured runtime demand justifies resizing Yggdrasil.
After that, continue the actual readiness campaign. Persona public consequence,
retention bounds, long-duration resource behavior, and Linux/Yggdrasil cognition
remain open. Yggdrasil is the small canonical public crossing Body; Starfire
remains the temporary cognition and release forge until measured runtime demand
justifies resizing Yggdrasil.

Binary file not shown.

View file

@ -34,15 +34,15 @@ invariants:
- Evidence and git retain history; this map retains only state that changes future decisions.
current_status:
summary: Epiphany is a supervised engineering alpha on Starfire, not deployment-ready. Exact 872d8ad6 is authenticated and published as sha256-b97f457c with witness sha256-40d6bda4. Clean live v25 proved packaged Self derives proposal Modeling without overrides and Mind admits active canonical sorted-unique source_scope. It then exposed the next admission/selection split: Modeling emitted lowercase recommended_next_organ=imagination, Mind admitted it, and Self's exact canonical Imagination selector correctly found no candidate. The local repair makes exact routeable organ identity a Mind admission invariant, tells Modeling the canonical Hands/Eyes/Imagination vocabulary, and exposes organ validity in typed planning eligibility. Focused hostile-admission, eligibility, launch-context, and MVP status tests pass. v25 is sealed evidence; a clean next generation must prove Modeling-to-Imagination-to-Mind after this repair is packaged. Persona consequence, Continuity execution, retention, long-duration pacing, and Linux/Yggdrasil cognition remain open.
summary: Epiphany is a supervised engineering alpha on Starfire, not deployment-ready. Exact pushed 4338b033 is authenticated and published as sha256-1023d71c with witness sha256-0d351a70. Clean v26 proved the native proposal chain through dedicated Mind without routing overrides: Self launched Modeling, Mind admitted its exact canonical Imagination frontier, Self launched Imagination, and dedicated Mind returned adopt. The subsequent Hands gate exposed a coordinator authority-binding defect: the persisted route carried an adopted plan, but record_hands_implementation_gate emitted empty route/plan fields, so the correct runtime validator refused the chain. The local cut derives the Hands intent's route id, candidate digest, and action from the adopted route; all 14 coordinator tests pass. v26 is preserved as failure evidence until the fixed commit is packaged and replayed in a clean generation. Persona consequence, Continuity execution, retention, long-duration pacing, and Linux/Yggdrasil cognition remain open.
operational_state:
local_worktree: proposal_frontier_canonical_organ_invariant_repair_uncommitted
local_worktree: adopted_plan_hands_authority_binding_repair_uncommitted
operator_wireguard: restored
yggdrasil: canonical_small_public_crossing_body
starfire: temporary_epiphany_cognition_body
starfire_runtime_identity: epiphany-starfire
starfire_swarm_brake: released
starfire_release: authenticated_872d8ad6_published_v25_modeling_route_proven
starfire_release: authenticated_4338b033_published_v26_native_mind_chain_proven
starfire_repository_body: bound_and_observed
starfire_verse_topology: bound_to_current_repository_body
starfire_native_status: supervised_shakedown_active
@ -52,8 +52,8 @@ current_status:
bifrost_feedback_crossing: authenticated_transport_only
yggdrasil_epiphany_services: absent
resident_physiology: heartbeat_and_self_running
unresolved_authority: v25 revision 3 contains one admitted active frontier whose lowercase recommended_next_organ makes it permanently invisible to Self's canonical Imagination selector. Insert-only proposal authority provides no coherent typed repair, so v25 must not be used to prove native Imagination. The local canonical-organ admission/context/eligibility repair is focused-test-proven but unpublished. Native Imagination live proof, Persona consequence, Continuity crash/restart/closure, retention, long-duration behavior, and Linux/Yggdrasil cognition remain open.
next_action: Commit, push, package, and publish the proposal-frontier canonical-organ invariant repair. Seal v25 as evidence, bootstrap a clean v26 runtime generation, and prove one exact packaged proposal-Modeling result is admitted active with canonical source_scope and recommended_next_organ=Imagination, selected by Self, launched through Imagination, and decided by dedicated Mind without overrides.
unresolved_authority: v26 committed the adopted plan and selected its Hands route, then failed before persisting RepoFrontierHandsAuthority because the coordinator's intent did not echo the route's adopted-plan identity. The local owner-aligned repair is test-proven but unpublished. A clean generation must prove the repaired route-to-intent-to-review-to-grant chain and then execute the bounded Continuity proof. Persona consequence, retention, long-duration behavior, and Linux/Yggdrasil cognition remain open.
next_action: Commit, push, package, and publish the adopted-plan Hands binding repair. Preserve v26 as evidence, cold-start a clean generation, replay native Modeling-to-Imagination-to-Mind, and prove the resulting Hands authority exactly binds route, model, adopted plan, intent, review, grant, and scope before executing the Continuity crash/restart/closure plan.
active_subgoals:
- Prove Persona, Self, Eyes, Modeling, Imagination, Hands, Soul, Mind, Continuity, and nervous-system behavior individually.
@ -63,13 +63,13 @@ active_subgoals:
organ_readiness:
persona: partial; authenticated feedback transport is live, but public cognition and speech consequence still need a fresh end-to-end proof.
self: partial; proposal recovery, Mind admission, Hands routing, Soul routing, verdict incorporation, proposal preemption, challenge-aware Eyes routing, in-process status ownership, and single-use Research-to-Modeling routing are live. Exact 872d8ad6 also proved native proposal-to-Modeling launch and active frontier admission; canonical organ identity still blocks packaged Imagination proof.
self: partial; proposal recovery, Mind admission, Hands routing, Soul routing, verdict incorporation, proposal preemption, challenge-aware Eyes routing, in-process status ownership, and single-use Research-to-Modeling routing are live. Exact 4338b033 proved native proposal Modeling, canonical Imagination selection, Imagination launch, and dedicated Mind decision without overrides; the downstream coordinator Hands binding still needs packaged proof.
eyes: proven for one bounded challenged-claim circuit; exact 84f00929 launched Research and Mind accepted the first source-gap packet with typed evidence/checkpoint, exact 148d4527 accepted its causal reorientation, and exact 6f019cf8 proved downstream Modeling consumption.
modeling: proven for the current bounded circuit; proposal-bound source inspection, Mind admission, exact routed identity preservation, and first-valid verdict incorporation completed without retry churn. Broader Body-map coverage remains open.
imagination: unproven live in the current campaign; the typed lifecycle and MVP route are locally implemented, while v25 exposed that recommended_next_organ identity was admitted as an arbitrary string even though Self routes exact canonical organ names.
imagination: proven for one bounded live circuit; exact 4338b033 selected the admitted canonical frontier, launched Imagination, persisted its typed candidate, and handed it to dedicated Mind without overrides. Broader option generation remains open.
hands: proven for bounded consequences; native patch, command, commit, push, and typed receipts bind reviewed path ceilings to exact changed-path subsets.
soul: proven for the current bounded consequence; the exact 2dd25341 release launched Soul, produced an accepted pass verdict grounded in focused and full-library receipts, and routed verdict incorporation.
mind: partial; RepoModel admission, thread-state admission, gateway review, state commit, and first-valid verdict incorporation are live; broader stale or overstated frontier correction remains open.
mind: partial; RepoModel admission, thread-state admission, gateway review, state commit, first-valid verdict incorporation, and dedicated frontier-plan adoption are live; broader stale or overstated frontier correction remains open.
continuity: partial; heartbeat and resident Self survive sequential cycles, while restart, crash, reboot, closure, and retention remain open.
nervous_system: partial; detached scheduling, runtime jobs, typed feedback, ordinary Windows coverage-store identity, and operator projection work; long-duration pressure and resource plateau remain open. Exact release packaging took about seventeen minutes and observed more than 3 GiB compiler working set, so Yggdrasil is not a release forge at its current 1.9 GiB RAM.