The controller ended by its unassignment, so its lease key is absent for good and the healers stayed in shadow while nobody swept the artifact store (issue 1126, A4). Drop both gates and each manifest's read of mesh-controller.lease; the would bucket stays readable until its keys expire. Claude-Session: https://claude.ai/code/session_01NcbgfJ9Gum47zkFKWRaovL
81 lines
1.5 KiB
JSON
81 lines
1.5 KiB
JSON
{
|
|
"module": "mesh-healers",
|
|
"version": "1",
|
|
"runs-as": "mesh-healers",
|
|
"claims": [
|
|
{
|
|
"name": "mesh-healers",
|
|
"scope": "mesh",
|
|
"serves": [
|
|
"healers",
|
|
"heal",
|
|
"drill"
|
|
]
|
|
}
|
|
],
|
|
"consumes": [
|
|
"mesh-conditions.condition-raised",
|
|
"mesh-conditions.condition-changed",
|
|
"mesh-hand-acts.act-recorded"
|
|
],
|
|
"invokes": [
|
|
"mesh-grants.grants_assert",
|
|
"seat:mesh-hand-acts.hand-act",
|
|
"seat:mesh-hand-acts.hand-acts"
|
|
],
|
|
"reads": [
|
|
"mesh-conditions.conditions"
|
|
],
|
|
"state": [
|
|
{
|
|
"name": "attempts",
|
|
"key-ttl": true
|
|
},
|
|
{
|
|
"name": "would",
|
|
"key-ttl": true
|
|
},
|
|
"findings",
|
|
{
|
|
"name": "wakes",
|
|
"key-ttl": true
|
|
}
|
|
],
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-healers",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-healers",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-healers"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-healers",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-healers",
|
|
"binary": "mesh-healers",
|
|
"loads": [
|
|
"mesh-healers"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|