[Phase 2.1] Node join/provision capability #44
Labels
No labels
blocked:children
blocked:commit-ready-failed
blocked:depends-231
blocked:depends-236
blocked:depends-237
blocked:depends-238
blocked:depends-239
blocked:gate-fetch
blocked:gate-fetch
blocked:gate-lint
blocked:gate-research
blocked:needs-attention
blocked:needs-decision
blocked:no-changes
blocked:no-procedure
blocked:preflight
blocked:verify-failed
bug
enhancement
feature-request
high-priority
in-progress
lint-cleanup
needs-decompose
needs-triage
ops-retry
ops-task
phase-5
quickfix
security/medium
self-building
triage-approved
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Mark/mesh-seed#44
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Add new nodes (like
unstable.tail018ac4.ts.net) to the mesh.Distinction
Implementation
New capability:
capabilities/_muscle/node_provision_v1/Intent Type
Execution Flow
Acceptance
unstable.tail018ac4.ts.netas mesh nodeSeparate from Worker Provisioning
Next Steps After This
Once node is joined,
provision_workerintents can target it for worker deployment.Implementation Complete ✅
Files Created
capabilities/_muscle/node_provision/template.yaml- Capability metadatacapabilities/_muscle/node_provision/run.py- Node provision logicFunctionality
provision_nodeintent withtarget_addressalready_exists)Test
Phase 2.1 Complete
Both capabilities now available in mesh.
QA Verification Complete ✅
Test Results
test_full_lifecycle_with_spawnunrelated to node_provision)execute_node_provision()returnsstatus: provisionedforunstable.tail018ac4.ts.netImplementation Verified
primitives/_muscle/node_provision/run.py— acceptsprovision_nodeintentAcceptance Criteria Met
unstable.tail018ac4.ts.netas mesh nodeClosing as fixed.
QA Verification (independent re-verify) ✅
Re-verified the Mark/mesh-seed#44 fix on master at 2026-08-04.
Issue state (live API):
blocked:needs-attention+blocked:preflightcleaned upIndependent verification (not just trusting the prior comment):
from primitives._muscle.node_provision.run import execute_node_provision— module loadstemplate.yamlis valid: type=worker, tier=muscle, id=node_provision, skills=[provision_node]unstable.tail018ac4.ts.net→status: provisioned,node_id: node-ef853cc9-dce0-5b47-84d5-2023fdf93158status: failed, reason: missing_target_addressstatus: failed, reason: target_unreachableFixit card history: t_8acc2102 dispatched kilo-gsd on 2025-07-14; Verify gate failed after 3 bugfix retries (plan paths
primitives/_muscle/node_provision_v1/andtests/integration/test_node_provision.pymismatched what Implement produced). Per the 2026-03-16 comment on #44, Mark committed the capability under the corrected nameprimitives/_muscle/node_provision/(commita10e79f, "Rename capabilities/ to primitives/") and the file set has been on master since. The 2026-08-04 03:25Z close + the second Mark comment ("QA Verification Complete") match the on-disk reality.Note on the dispatch failure: the kilo-gsd plan's intended path was
node_provision_v1/but the actual repo hasnode_provision/(the v1 suffix was dropped during the April 2026 primitives rename). The functional capability is identical to what #44 asked for; the failure was plan-vs-impl path mismatch, not missing functionality. Issue is correctly closed.Closing this QA card. No further action required.