You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Follow-up to #224 / PR #225. The validation-driven descriptor-refresh path that #224 added only fires for resolveToolSubscriptions failures. Memory and feed subscriptions have the same chicken-and-egg shape but their resolution errors are plain fmt.Errorf strings, so the runtimeDescriptorRefreshCandidate helper never identifies them as candidates for claw up --fix -d auto-refresh.
Symptom
Operator updates a build-backed provider service to expose a new memory or feed capability, allowlists it on a consumer, and runs claw up -d:
For tools (already covered by Make descriptor refresh automatic during claw up --fix #224): service "X": tool policy for "Y" references unknown tool "Z" → wrapped with run: claw up --fix -d hint, and --fix mode auto-refreshes the descriptor.
For memory (still missing): service "X": memory target "Y" does not declare a memory capability → no remediation hint, no auto-refresh under --fix.
For feeds (still missing): service "X": feed "Y" was not found in the descriptor registry → no remediation hint, no auto-refresh under --fix.
Desired Behavior
Same UX as the tool path:
claw up -d (strict) failure for memory/feeds on a build-backed provider should wrap with run: claw up --fix -d.
claw up --fix -d should rebuild the provider, refresh its descriptor snapshot, and retry capability resolution.
No new operator-facing flags. Same internal helper (resolvePodCapabilities retry loop).
Extend runtimeDescriptorRefreshCandidate to also recognize the new typed errors and identify the build-backed provider service that needs refreshing.
The existing refreshRuntimeDescriptor + retry loop should require no changes — once the candidate detection covers all three error types, the recovery path is shared.
Tests:
Strict-mode hint coverage for memory + feed errors with build-backed providers.
--fix retry coverage for memory + feed unknown-capability errors that get fixed by snapshot refresh.
Code Pointers
cmd/claw/compose_up.go — resolveToolSubscriptions returns *toolResolutionError; resolveMemorySubscriptions and resolveFeedSubscriptions still return plain errors.
cmd/claw/compose_up.go — runtimeDescriptorRefreshCandidate extracts the typed error.
cmd/claw/compose_up.go — resolvePodCapabilities is the retry loop entry point.
Summary
Follow-up to #224 / PR #225. The validation-driven descriptor-refresh path that #224 added only fires for
resolveToolSubscriptionsfailures. Memory and feed subscriptions have the same chicken-and-egg shape but their resolution errors are plainfmt.Errorfstrings, so theruntimeDescriptorRefreshCandidatehelper never identifies them as candidates forclaw up --fix -dauto-refresh.Symptom
Operator updates a build-backed provider service to expose a new memory or feed capability, allowlists it on a consumer, and runs
claw up -d:service "X": tool policy for "Y" references unknown tool "Z"→ wrapped withrun: claw up --fix -dhint, and--fixmode auto-refreshes the descriptor.service "X": memory target "Y" does not declare a memory capability→ no remediation hint, no auto-refresh under--fix.service "X": feed "Y" was not found in the descriptor registry→ no remediation hint, no auto-refresh under--fix.Desired Behavior
Same UX as the tool path:
claw up -d(strict) failure for memory/feeds on a build-backed provider should wrap withrun: claw up --fix -d.claw up --fix -dshould rebuild the provider, refresh its descriptor snapshot, and retry capability resolution.No new operator-facing flags. Same internal helper (
resolvePodCapabilitiesretry loop).Implementation Sketch
resolveMemorySubscriptionsandresolveFeedSubscriptions(mirror oftoolResolutionErrorintroduced in Refresh runtime descriptors during claw up --fix #225).runtimeDescriptorRefreshCandidateto also recognize the new typed errors and identify the build-backed provider service that needs refreshing.refreshRuntimeDescriptor+ retry loop should require no changes — once the candidate detection covers all three error types, the recovery path is shared.--fixretry coverage for memory + feed unknown-capability errors that get fixed by snapshot refresh.Code Pointers
cmd/claw/compose_up.go—resolveToolSubscriptionsreturns*toolResolutionError;resolveMemorySubscriptionsandresolveFeedSubscriptionsstill return plain errors.cmd/claw/compose_up.go—runtimeDescriptorRefreshCandidateextracts the typed error.cmd/claw/compose_up.go—resolvePodCapabilitiesis the retry loop entry point.Acceptance Criteria
claw up --fix -d.claw up -dfor the same scenario errors with a directclaw up --fix -dhint.--fixretry for both memory and feed paths.