Skip to content

feat(health): add RegistryCheck for registry connectivity health checks#2957

Merged
asim merged 3 commits into
masterfrom
copilot/detect-registry-disconnection-state
Jun 10, 2026
Merged

feat(health): add RegistryCheck for registry connectivity health checks#2957
asim merged 3 commits into
masterfrom
copilot/detect-registry-disconnection-state

Conversation

Copilot AI commented Jun 9, 2026

Copy link
Copy Markdown
Contributor

Services using etcd (or other registries) can lose their connection without any signal to Kubernetes, causing silent discovery failures. The existing health package supports pluggable checks but has no built-in registry check.

Changes

  • Add health.RegistryCheck(reg) — a CheckFunc that calls ListServices() to verify registry connectivity
  • Returns wrapped errors with registry name for diagnostics
  • Handles nil registry gracefully

Usage

health.Register("registry", health.RegistryCheck(reg))
health.RegisterHandlers(mux) // /health/ready returns 503 when registry is unreachable
readinessProbe:
  httpGet:
    path: /health/ready
    port: 8080

Copilot AI added 2 commits June 9, 2026 10:21
Add a RegistryCheck function to the health package that creates a health
check verifying connectivity to the service registry. This enables
Kubernetes readiness probes to detect when a service loses its connection
to the registry (e.g. etcd).

Usage:
  health.Register("registry", health.RegistryCheck(reg))
Copilot AI changed the title [WIP] Add detection and reporting of registry disconnection state feat(health): add RegistryCheck for registry connectivity health checks Jun 9, 2026
Copilot AI requested a review from asim June 9, 2026 10:24
Copilot finished work on behalf of asim June 9, 2026 10:24
@asim asim marked this pull request as ready for review June 10, 2026 07:25
@asim asim merged commit 0b41c71 into master Jun 10, 2026
2 checks passed
asim pushed a commit that referenced this pull request Jun 10, 2026
Two PRs (#2957 and #2958) each added a RegistryCheck to the health
package, leaving the package uncompilable on master (RegistryCheck
redeclared: health/registry.go vs health/health.go). Keep the
health.go implementation — it honors the check's context timeout so a
hung registry (e.g. an unreachable etcd) reports down instead of
blocking the probe — and remove the duplicate registry.go and its test.
registry_check_test.go already covers healthy/down/nil/timeout/not-ready.
asim added a commit that referenced this pull request Jun 10, 2026
…2961)

* docs: add 'become a sponsor' call-to-action linking to Discord

Now that there are a couple of sponsors, invite more: a short CTA under
the Sponsors section in the README and on the landing page, pointing to
the Discord to get in touch.

* fix(health): remove duplicate RegistryCheck declaration

Two PRs (#2957 and #2958) each added a RegistryCheck to the health
package, leaving the package uncompilable on master (RegistryCheck
redeclared: health/registry.go vs health/health.go). Keep the
health.go implementation — it honors the check's context timeout so a
hung registry (e.g. an unreachable etcd) reports down instead of
blocking the probe — and remove the duplicate registry.go and its test.
registry_check_test.go already covers healthy/down/nil/timeout/not-ready.

* feat(agent): pluggable memory and custom tools

Make agents compose the way services do — pluggable pieces with working
defaults — by adding the two abstractions an agent needs beyond the model:

- Memory: a pluggable interface for conversation memory. The default is
  store-backed and durable across restarts (the previous hardcoded
  behavior, now behind an interface); supply your own with WithMemory
  (in-memory, database, semantic store). NewMemory / NewInMemory provided.
- Custom tools: WithTool registers any function as a tool the agent can
  call, so agents are no longer limited to orchestrating RPC services.

Both exposed at the micro package (AgentMemory, AgentTool, NewMemory,
NewInMemory). Behavior-preserving refactor of the agent's history into
the default Memory; tests cover persistence, in-memory, clear, custom
tool dispatch and errors. README + AGENT_DESIGN document the pluggable
composition (model / memory / tools / guardrails).

* blog: 'Doubling Down on Agents' (#20)

The vision post for making agents a first-class framework the way
services were: opinionated, batteries-included, pluggable. Frames an
agent as a composition of model + memory + tools + guardrails with
working defaults; introduces the new pluggable memory and custom tools;
makes the microagents argument (an agent for everything, distributed
like microservices); and lays out the three primitives — services,
agents, workflows — as one substrate, with an honest list of the gaps
still to fill (knowledge/retrieval, streaming, explicit loop).

---------

Co-authored-by: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] Detect and report registry disconnection state

2 participants